代码之家  ›  专栏  ›  技术社区  ›  Indiana Kernick Michael Durrant

用llvm内联特定函数调用

  •  5
  • Indiana Kernick Michael Durrant  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   sallaigy    6 年前

    你可以使用 InlineFunction 实用程序存在于 llvm/Transforms/Utils/Cloning.h . 它可以接受 CallInst* 作为一个论点:

    llvm::CallInst* call = /* ... */;
    llvm::InlineFunctionInfo ifi;
    
    llvm::InlineFunction(call, ifi);
    
    推荐文章