module-backend

模块分析:backend

1. 角色定位

backend/ 负责中后端优化与机器码生成,核心变换基本在 Coq 中实现,并经抽取得到可执行代码;OCaml 侧主要负责打印、寄存器分配辅助与特定算法实现。

2. 主要 IR 与阶段

3. 关键变换与实现细节

3.1 Instruction Selection (Selection.v)

3.2 RTL 生成 (RTLgen.v)

3.3 Inlining (Inlining.v)

3.4 常量传播、CSE、死代码

3.5 寄存器分配 (Regalloc.ml + Allocation.v)

3.6 CFG 线性化与栈布局

3.7 Asm 生成

4. OCaml 辅助与打印

5. Debug 支持