可能你已经大概知道了LLVM中pass是什么,那么你或许正跃跃欲试想在LLVM中实际编写一个pass试试;即使你对pass的概念还很朦胧,实际practice一下或许也恰恰可以帮助你更加形象和具体的理解LLVM中的pass。所以本文就是要向你介绍如何在LLVM中实际编写并使用一个pass的入门教程。特别说明,以下示例是在MacOS上完成的,但其实在Ubuntu上也同样适用。

LLVM 的pass框架是LLVM系统的一个很重要的部分。LLVM的优化和转换工作就是由多个pass来一起完成的。类似流水线操作一样,每个pass完成特定的优化工作。 要想真正发挥LLVM的威力,掌握pass是不可或缺的一环。LLVM中pass架构的可重用性和可控制性都非常好,这允许用户自己开发pass或者关闭一些默认提供的pass。总的来说,所有的pass大致可以分为两类:分析和转换分析类的pass以提供信息为主,转换类的会修改中间代码。
假设你的LLVM之安装目录为 ... .../llvm,那么你首先在路径 ... .../llvm/lib/Transf