ai-infra-interview-305

第 39 题:编译器的pass manager如何工作?top-down vs bottom-up遍历?

题目

编译器的pass manager如何工作?top-down vs bottom-up遍历?


完整讲解

一、Pass manager 在做什么?

Pass manager 负责 按顺序或条件执行一系列 pass(每个 pass 对 IR 做分析或变换):保证 依赖关系(如 A pass 在 B 之前)、失效信息的维护(某 pass 改了 IR,后续可能依赖的分析要重算或标记失效)、可选并行(无依赖的 pass 可并行)。用户或编译器把 pass 注册成 pipeline,run 时依次执行,直到得到目标 IR 或完成优化。

二、Top-down 与 bottom-up 遍历

三、与 MLIR/LLVM 的对应


面试要点


记忆要点

  1. Pass manager = 顺序执行 pass、管依赖与失效;pipeline 由用户/编译器注册。
  2. Top-down = 根到子;bottom-up = 子到根;fold 等常用 bottom-up。
  3. 遍历顺序由各 pass 自定;PassManager 不强制单 pass 内顺序。
返回模块 返回总览