跳转到内容

编译流程

从字符流到 token 流到 AST 到 IR(如 SSA)到目标代码。本章讲每个阶段的任务与经典算法(LR 解析、SSA 构造、寄存器分配的图着色),以及 LLVM 如何把前端与后端解耦。

  • SSA 形式让很多优化变简单
  • 寄存器分配是 NP 难的,用启发式
  • 前端—IR—后端的分离让 N 种语言 × M 种目标只需 N+M 个组件