pass-cleanuplabels
Pass:CleanupLabels
1. 目标与位置
- 位置:
backend/CleanupLabels.v - 输入/输出:
Linear.program→Linear.program - 目标:移除线性化后未被引用的标签,减少指令体积。
2. 核心思想
- 统计被分支指令引用的标签集合。
- 删除不在引用集合中的
Plabel指令。
3. 关键函数
labels_branched_to:收集被引用标签。remove_unused_labels:删除无用标签。transf_program:程序入口。
4. 与前后 pass 的接口
- 前:
Linearize - 后:
Debugvar或Stacking(取决于是否开启调试)
5. 常见边界与约束
- 只删除未被引用标签;保证不破坏分支目标。