首页 > 解决方案 > LLVM 中的“ModulePassManagers”、“FunctionPassManager”和“BasicBlockPassManagers”有什么区别?

问题描述

LLVM 中的“ModulePassManagers”、“FunctionPassManager”和“BasicBlockPassManagers”有什么区别?

而且,“FunctionPassManager”是否只能用于 LLVM-IR 中的“函数”类型?

标签: llvmllvm-c++-api

解决方案


LLVM IR 被细分为不同的单元。LLVM IR的不同单位如下

  • 模块
  • 功能
  • 基本块
  • 指示

一个模块由功能组成,这些功能又由包含一系列指令的不同基本块组成。不同的 pass 管理器在 LLVM-IR 上的不同级别上运行。例如,它们之间的区别在于它们操作的抽象级别。

一些有用的链接更详细地讨论了这个问题。

通过 LLVM

关于 LLVM 通行证管理器


推荐阅读