在上一篇的基础上,编写一个简单的LLVM Pass。
- 在
llvm-project-17.0.6.src/llvm/lib/Transforms/目录下,新建一个文件夹SweetWound:

- 在在
llvm-project-17.0.6.src/llvm/include/llvm/Transforms/目录下,新建一个文件夹SweetWound:

- 在
Transforms目录下的CMakeLists.txt文件末尾,增加如下代码:
1 | ... |

- 在
llvm-project-17.0.6.src/llvm/include/llvm/Transforms/SweetWound/目录下,新建ModuleTest.h文件,并写入如下代码:
1 | // ModuleTest.h |

- 在
llvm-project-17.0.6.src/llvm/lib/Transforms/SweetWound/目录下,创建ModuleTest.cpp文件,并写入如下代码:
1 | // ModuleTest.cpp |

- 在
llvm-project-17.0.6.src/llvm/lib/Transforms/SweetWound/目录下,创建CMakeLists.txt文件,并写入如下代码:
1 | add_llvm_component_library(LLVMSweetWound |

- 修改
llvm-project-17.0.6.src/llvm/lib/Passes/PassBuilder.cpp文件:
1 | ...... |
- 重新执行编译脚本,成功后,替换
LLVM17.0.6.xctoolchain文件。 - 在Xcode的
Build Settings-->Other C Flags中,设置编译参数:-mllvm -test:

Command + B编译(或Command + R运行):

可以看到每个编译单元都有对应的输出,即代表编写的LLVM Pass加载成功!!!