首页 > 解决方案 > 将 LLVM 传递应用于特定的基本块

问题描述

是否可以将 LLVM 转换传递应用于特定的基本块,而不是整个 IR?

我知道如何对整个 IR 应用通行证:$ opt –S –instcombine test.ll –o out.ll

但是 test.ll 中可能有几个基本块,我想只对其中一个应用 –instcombine。

标签: llvmllvm-clangllvm-ir

解决方案


一般来说,没有。一些 LLVM 通行证是针对整个模块编写的,另一些是针对整个函数编写的。有些也可以安全地用于单个基本块(更多的是偶然而不是设计),但 LLVM 的 pass 接口仅处理设计单元(函数传递的情况下的函数,模块传递的情况下的模块)。也就是说,函数传递由传递管理器赋予一个函数,仅此而已。


推荐阅读