我是编写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
是否有任何方法可以像上述方法一样运行通行证?
答案 0 :(得分:1)
例如,通过Module
获得有效的llvm::parseBitcodeFile
之后,您需要执行的所有操作只是创建llvm::legacy::Passmanager
,调用llvm::legacy::Passmanager::add
以添加通行证并最终调用{{ 1}}。
llvm::legacy::Passmanager::run
使用从opt
派生的类,但实际上调用基类中的方法来处理模块。