如果给定一个 llvm::CallInst *
,我怎样才能告诉内联程序内联这个特定的调用。我可以将目标函数标记为 AlwaysInline
,这将内联调用,但它也会内联每个调用。也许有一种方式可以在发射它时调用内联程序来针对特定的调用进行内联?内联基本块中的所有调用也可以起作用。
如果给定一个 llvm::CallInst *
,我怎样才能告诉内联程序内联这个特定的调用。我可以将目标函数标记为 AlwaysInline
,这将内联调用,但它也会内联每个调用。也许有一种方式可以在发射它时调用内联程序来针对特定的调用进行内联?内联基本块中的所有调用也可以起作用。
llvm/Transforms/Utils/Cloning.h
的 InlineFunction 实用程序。
它可以接受一个CallInst*
作为参数。llvm::CallInst* call = /* ... */;
llvm::InlineFunctionInfo ifi;
llvm::InlineFunction(call, ifi);
AlwaysInLine
? - Willis Blackburn