llvm - LLVM 中的“ModulePassManagers”、“FunctionPassManager”和“BasicBlockPassManagers”有什么区别?
问题描述
LLVM 中的“ModulePassManagers”、“FunctionPassManager”和“BasicBlockPassManagers”有什么区别?
而且,“FunctionPassManager”是否只能用于 LLVM-IR 中的“函数”类型?
解决方案
LLVM IR 被细分为不同的单元。LLVM IR的不同单位如下
- 模块
- 功能
- 基本块
- 指示
一个模块由功能组成,这些功能又由包含一系列指令的不同基本块组成。不同的 pass 管理器在 LLVM-IR 上的不同级别上运行。例如,它们之间的区别在于它们操作的抽象级别。
一些有用的链接更详细地讨论了这个问题。
推荐阅读
- jsf - 添加primefaces ajax时未调用JSF命令按钮
- amazon-web-services - AWS App Load-Balancer 的侦听器是否针对目标或目标组?
- sqlalchemy - hdp 中的 Apache superset 0.23.3 无法通过 sqlalchemy url 连接到 sql server
- python-3.x - 如何在 Jupyter Notebook 中运行`wx python`
- c# - Microsoft GraphAPI 在一个项目中工作,但不在另一个项目中
- shell - Shell:如果将多个语句放在一行中
- ruby-on-rails - Rails:控制器无法从模块/命名空间识别类 - 未初始化的常量
- javascript - 添加“nofollow”Twitter 小部件
- docker - 使用 docker server 运行服务器启动但请求未到达服务器
- python - Openpyxl/Pandas - 将 CSV 转换为 XLSX