使用LLVM内联特定的函数调用

时间:2019-01-24 04:16:11

标签: c++ llvm llvm-c++-api

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

1 个答案:

答案 0 :(得分:3)

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

llvm::CallInst* call = /* ... */;
llvm::InlineFunctionInfo ifi;

llvm::InlineFunction(call, ifi);