使用 LLVM 内联特定函数调用

Inline a particular function call with LLVM

本文关键字:函数调用 LLVM 使用      更新时间:2023-10-16

给定一个llvm::CallInst *,我如何告诉内联内联这个特定的调用。我可以将目标函数标记为AlwaysInline,这将内联调用,但它也会内联每个调用。也许有某种方法可以在我发出特定调用时调用内联?内联基本块中的所有调用也可以。

您可以使用 llvm/Transforms/Utils/Cloning.h 中存在的 InlineFunction 实用程序。它可以接受CallInst*作为参数:

llvm::CallInst* call = /* ... */;
llvm::InlineFunctionInfo ifi;
llvm::InlineFunction(call, ifi);