我在llvm中执行优化,需要在优化之前运行InstNamer传递。目前,我通过手动将“-instnamer”传递给opt来运行它。有没有办法可以在代码中添加InstNamer作为必需的传递?
我试过了 AU.addRequired();
但是这不会编译,因为它会抛出“未声明的标识符'InstNamer'”。
有没有办法可以做到这一点?
答案 0 :(得分:0)
如果传递在include / llvm中被删除,那么您可以使用AU.addRequired<PassClassName>();
,这实际上是AU.addRequiredID(PassClassName::ID);
如果在lib /中声明并定义了传递,则必须使用AU.addRequiredID(PassClassID);
在这种情况下,您必须使用:
#include "llvm/Transforms/Scalar.h"
AU.addRequiredID(InstructionNamerID);