我正在尝试将llvm 3.6代码更新为llvm 6.0,但无法找到如何在此版本中使用PassManager。
我在3.6中使用了以下代码:
llvm::PassManager pm;
pm.add(new MyPass);
pm.run();
编译器拒绝此代码:错误:推论类型为“llvm::PassManager”的变量“pm”的声明需要初始化程序
llvm::PassManager pm;
我没有得到所需的初始化程序,我在LLVM的源代码中看到PassManager具有默认的构造函数。
我想念什么?
最佳答案
它应该是llvm::legacy::PassManager
而不是llvm::PassManager
。要使用它,您需要包括LegacyPassManager.h。 (#include "llvm/IR/LegacyPassManager.h"
)llvm::PassManager
is actually a class template。
关于c++ - 在llvm 6中使用PassManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56894943/