你可以从LLVM传递中调用传球吗?

时间:2012-08-02 16:02:48

标签: c++ c llvm clang

我正在编写自己的LLVM传递,它修改了LLVM bitcode。在生成bitcode时,我想禁用内联函数,但是当我完成修改bitcode时,我想调用执行内联函数的pass。可以做到这一点。如果是,怎么样?

为了更好地理解,我在说什么,请看下面的代码。

bool MyBitCodeModifier::runOnModule(Module &M)
{
   // Here is the code of my pass which modifies bitcode
   // I need to call inline pass here
}

1 个答案:

答案 0 :(得分:1)

对于内联,您无需调用传球。请改用InlineFunction。您可以在include/llvm/Transforms/Utils/Cloning.h中找到定义。

但是如果你坚持在你的后面调用内联传递,你可以修改PassManager以按你想要的顺序运行传球。