c++ - 你能从 LLVM pass 调用 pass 吗?

标签 c++ c llvm clang

我正在编写自己的 LLVM pass,它修改了 LLVM 位码。在生成位码时,我想禁用函数内联,但是当我完成对位码的修改后,我想调用执行函数内联的传递。这个可以吗。如果是,如何?

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

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

最佳答案

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

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

关于c++ - 你能从 LLVM pass 调用 pass 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781438/

相关文章:

c++ - 来自 shared_ptr 的类型转换错误

c - 在编译时提取宏常量中的位数

c++ - 在 LLVM 中获取非常量操作数

c++ - 将字符串移动到 vector 中

c++ - 将目录链接到标准输入

c++ - vector.back() 和 vector.end() 有什么区别?

c - qsort() 性能问题

c - 使用具有不同数据类型的输入读取 C 中的文件

c++ - 如何从值中获取精确的整数

xcode - LLVM 环境变量在哪里或如何配置 LLVM 环境?