我正在编写自己的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
}
答案 0 :(得分:1)
对于内联,您无需调用传球。请改用InlineFunction
。您可以在include/llvm/Transforms/Utils/Cloning.h
中找到定义。
但是如果你坚持在你的后面调用内联传递,你可以修改PassManager
以按你想要的顺序运行传球。