pass-renumber
Pass:Renumber
1. 目标与位置
- 位置:
backend/Renumber.v - 输入/输出:
RTL.program→RTL.program - 目标:对 RTL 的 CFG 节点进行后序编号,以提升数据流分析精度与收敛性。
2. 核心思想
- 依据后序遍历重新编号 CFG 节点。
- 使得数据流分析(Kildall)更容易获得精确解。
3. 关键函数
renum_pc/renum_instr:节点与指令重写。renum_cfg:重建 CFG。transf_program:程序入口。
4. 与前后 pass 的接口
- 前:
Inlining - 后:
Constprop(及其他 RTL 级优化)
5. 常见边界与约束
- 仅改变节点编号,不改变指令语义。
- 要保持 CFG 的可达性与入口一致性。