我正在尝试将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/

10-11 17:46