c++ - 在 llvm 6 中使用 PassManager
问题描述
我正在尝试将 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
实际上是一个类模板。
推荐阅读
- c# - 基础设施 - 同步和异步接口和实现?
- jquery - jQuery 选择器的问题(附加后)
- javascript - 如何以同步方式从js中的URI获取数据
- scala - Spark Scala:如何删除每行周围的双引号,包括标题?
- angular7 - Angular 7:类型'ElementRef'不是通用的
- wordpress - 将值从选择控件传递给函数
- css - 一些 gmail 客户端完全忽略了大纲 css
- c# - 如何创建 Firebird 数据库用户并授予该用户一些权限
- angular - 角度材料选择不会检测到嵌套组件生成的选项的更改
- reactjs - 如何验证单击的文本是否已格式化?