在不使用opt工具的情况下运行LLVM Pass

时间:2018-08-07 18:40:38

标签: clang llvm llvm-clang

我是编写LLVM Pass的初学者,我正在阅读有关编写自己的LLVM Pass的文档,然后使用opt工具(即

)运行它
/llvm/bin/opt -load /llvm/lib/LLVMHello.so  -hello input.ll

在这里,我的密码是Hello.cpp,并且input.c中有一个C函数,该函数由Clang转换为input.ll

我的问题是我们是否可以在不使用opt工具的情况下运行通行证?

./hello input.ll

是否有任何方法可以像上述方法一样运行通行证?

1 个答案:

答案 0 :(得分:1)

例如,通过Module获得有效的llvm::parseBitcodeFile之后,您需要执行的所有操作只是创建llvm::legacy::Passmanager,调用llvm::legacy::Passmanager::add以添加通行证并最终调用{{ 1}}。

llvm::legacy::Passmanager::run使用从opt派生的类,但实际上调用基类中的方法来处理模块。