docs(doc): 调整 Lab4 图着色说明

master
Lane0218 7 days ago
parent f1fdeacf1b
commit c98bfb118b

@ -53,7 +53,7 @@ Lab4 的目标是在 Lab3 示例基础上,把“固定寄存器 + 栈槽”的
3. 按照可分配寄存器数 `K` 对图执行 simplify/select必要时结合启发式选择 spill 候选。
4. 若图可以着色,则回填每个虚拟寄存器对应的物理寄存器;若不能着色,则把选中的虚拟寄存器重写为 spill/reload 形式,并重新进行分析与分配。
5. 分配完成后,把使用到的 callee-saved 寄存器、额外 spill 栈槽等信息交给 `FrameLowering.cpp``AsmPrinter.cpp` 继续处理。
- 说明:图着色方法更接近经典教材中的完整后端流程,适合面向完整 SysY 后端逐步扩展;但实现成本通常更高,需要同学自己补齐活跃性分析、干涉图维护与 spill 重试机制。
- 说明:图着色方法可以参考课堂 PPT 中介绍的基本思路来实现。实际工程里这类方法有很多变体,你也可以在这个大方向下结合自己的实现继续调整和优化具体细节;但无论采用哪种变体,都需要补齐活跃性分析、干涉图维护与 spill 重试机制等关键环节
2. 线性扫描寄存器分配
- 整体思路:先把每个虚拟寄存器的活跃范围抽象为一个区间,再按照区间起点顺序扫描程序,动态维护当前正在占用物理寄存器的活跃区间集合;若出现寄存器不够用,再选择某个区间 spill。

Loading…
Cancel
Save