首页 > 解决方案 > 使用 LLVM 内联特定的函数调用

问题描述

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

标签: c++llvmllvm-c++-api

解决方案


您可以使用. llvm/Transforms/Utils/Cloning.h它可以接受 aCallInst*作为参数:

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

llvm::InlineFunction(call, ifi);

推荐阅读