Commit Graph

13 Commits

Author SHA1 Message Date
pjh123 cd214069cd fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制) 2026-08-08 12:38:25 +08:00
pjh123 ab979dc47b feat: 调用实参 spread(f(...args) / new F(...args) / super(...args)) 2026-08-08 10:33:16 +08:00
pjh123 df69213849 fix: builtin 槽 vreg 预着色恒等排除出可分配集防 prologue 覆写 2026-08-07 17:40:09 +08:00
pjh123 76b3bcf6eb fix: 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志 2026-08-07 17:13:57 +08:00
pjh123 de67cc8eee fix: 链式 upvalue 捕获支持多层嵌套函数引用深层变量 2026-08-07 14:56:51 +08:00
pjh123 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 e36a69976e refactor: 清除 color() 冗余干涉图构建 + use_points 改用精确 use 判定
- color() 入口移除无用的 graph::build(run 内重建),删掉 _graph 参数
- graph.rs reg_count 改名 inst_count(实为指令数)
- use_points 由 live_before 活集改为 inst.use_regs() 精确 use 点,消除冗余 UNSPILL,spill 压力测试 38s→6s
2026-08-06 20:41:01 +08:00
pjh123 d65fa03de6 fix: nested 子模块引用父槽无预着色保护致读错物理槽
子模块 alloc 时引用父槽的 LOAD_VAR.a/STORE_VAR.rd 被当作自身 vreg 染色移走,
父侧 collect_escaped 只保护父不移动槽,子侧无对称保护。以 param_layout.base
(inherited_reg_start 分界)识别父槽引用并预着色恒等,spill 自由色排除。

新增 nested_parent_slot_regress 回归测试(field/method + 高压力变量),
workspace 全绿 + clippy 干净。
2026-08-06 20:34:55 +08:00
pjh123 c47a0a73d1 test: vreg 超 253 高复用复现样例 + n_registers 汇总断言 2026-08-06 19:33:16 +08:00
pjh123 50b843a72a fix: 调用参数打包连续寄存器 + 捕获参数建 cell + TEMPLATE_STR ext 重映射(修复 JSON/closures/template 回归) 2026-08-06 19:33:05 +08:00
pjh123 d3385bc838 feat: 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18) 2026-08-06 17:56:55 +08:00
pjh123 08f061dfd3 feat: 指令改写 + 元数据回写 + alloc 入口,RegAlloc on/off 运行时等价(D-16/D-20) 2026-08-06 17:44:31 +08:00
pjh123 0b0d36fa85 feat: 新增 oxide_regalloc crate,干涉图 + graph coloring + spill 拆分(D-09/D-10/D-11) 2026-08-06 17:13:27 +08:00