/include/llvm/Pass.h
Pass框架是LLVM系统中一个重要的部分,Pass类是实现代码优化的主要资源,每个pass是LLVM系统进行转化和优化工作的一个节点,可以完成特定的优化工作,多个pass可共同完成优化和转化。
Pass分类
从代码结构上来说,LLVM 编译器给开发者们提供了一个Pass类和其子类,主要的子类有ModulePass、FunctionPass、BasicBlockPass等,声明在llvm/Pass.h文件中。根据所需功能,研究者们可以通过重写继承Pass的虚函数来满足不同工作的使用条件。
常见的子类如下:
- ModulePass:最通用的Pass,作用于整个模块,没有特定的函数顺序。通常需要编写一个从ModulePass继承的类,并重载runOnModule()方法。
- FunctionPass:该子类允许