在llvm中添加InstNamer传递作为必需的传递

时间:2017-05-12 18:44:28

标签: optimization compiler-construction llvm llvm-ir intermediate-language

我在llvm中执行优化,需要在优化之前运行InstNamer传递。目前,我通过手动将“-instnamer”传递给opt来运行它。有没有办法可以在代码中添加InstNamer作为必需的传递?

我试过了         AU.addRequired();

但是这不会编译,因为它会抛出“未声明的标识符'InstNamer'”。

有没有办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

如果传递在include / llvm中被删除,那么您可以使用AU.addRequired<PassClassName>();,这实际上是AU.addRequiredID(PassClassName::ID);

如果在lib /中声明并定义了传递,则必须使用AU.addRequiredID(PassClassID);

在这种情况下,您必须使用:

#include "llvm/Transforms/Scalar.h"

AU.addRequiredID(InstructionNamerID);