About definition of llvm pass
我不太了解llvm中pass的定义。这是否意味着我只能使用opt命令来运行程序?
我的情况就像我想在基本块的CFG中找到循环,并且我想使用LLVM API而不是自己编写代码。我找到了一个名为Loopinfo的文件http://llvm.org/docs/doxygen/html/LoopInfo_8h_source.html,其中包含pass.h和从Functionpass继承的class passinfo。这是否意味着我只能使用opt命令来调用,而不能编写使用类的某些功能并进行构建和执行的普通项目?我希望我能清楚地阐明我的问题。
您可以很好地分析和操作LLVM IR,而无需了解通行证。只需使用LLVM API,您就可以了。
那么通行证有什么用?好吧,如果您确实按照通过的形式编写了分析或转换-按照本指南进行操作-您仍然可以将其用作任何常规C类1,但是您会得到一些好处:
您可以使用
您可以使用通行管理器轻松地将通行证与其他通行证合并,这非常方便(例如,将为您解决通行证的依赖性)。
因此,通常建议但不要求以通行证的形式写东西。
1好吧,如果您定义了其他通行证的要求,那么如果您不使用
sub>
最简单的方法是添加通过
请参见此处的示例:
解析和修改LLVM IR代码
https://llvm.org/svn/llvm-project/llvm/trunk/tools/opt/opt.cpp