llvm - 将 LLVM 传递应用于特定的基本块
问题描述
是否可以将 LLVM 转换传递应用于特定的基本块,而不是整个 IR?
我知道如何对整个 IR 应用通行证:$ opt –S –instcombine test.ll –o out.ll
但是 test.ll 中可能有几个基本块,我想只对其中一个应用 –instcombine。
解决方案
一般来说,没有。一些 LLVM 通行证是针对整个模块编写的,另一些是针对整个函数编写的。有些也可以安全地用于单个基本块(更多的是偶然而不是设计),但 LLVM 的 pass 接口仅处理设计单元(函数传递的情况下的函数,模块传递的情况下的模块)。也就是说,函数传递由传递管理器赋予一个函数,仅此而已。
推荐阅读
- c++ - 我不知道为什么我的 while 循环没有给出预期的结果):
- c++ - Cmake 编译 Hydrogen 0.9.7 Beta1 时出错
- python - 是否可以在散景中使图像的特定颜色透明?
- amazon-web-services - 如何使用 AWS Cognito 限制自定义 api 访问
- excel - 工作表名称等于输入文本文件的名称
- java - DropWizard(使用 Jetty)使用 maven 在“org/eclipse/jetty/util/thread/ExecutionStrategy$Factory”上抛出 NoClassDefFoundError
- linux - Shell 脚本 - 如何在不重复行的情况下合并两个文本文件
- javascript - Electron 应用程序在透明模式下显示额外的边框
- ssh - 我应该为 SSH 输入什么密码?
- r - 为投资组合分析编写条件 If 语句