forked from NUDT-compiler/nudt-compiler-cpp
根因:block-level liveness 下多轮 spill 创建的 reload vreg 与保守修复 (block_defs 全干涉)交互,产生错误寄存器分配,导致段错误/输出不匹配。 修复: - MAX_SPILL_ROUNDS 3→1:防止多轮 spill 产生错误 reload vreg - 保守修复阈值 20→200:避免过度干涉导致图着色错误分配 修复用例: - 04_arr_defn3:段错误 → 正确 (14) - 05_arr_defn4:错误输出 → 正确 (21) - 09_BFS:bad_alloc/段错误 → 正确 - 13_LCA、54_hidden_var 等多个预存故障也一并修复 剩余已知问题:84_long_array2(编译超时)、30_many_dimensions(GEP偏移)lzk
parent
ca6c9fa540
commit
c12b6830b8
Loading…
Reference in new issue