pjh123
|
2239eeac24
|
perf: 字节码调用压帧窗口按调用点存活上界拷贝减少整窗搬移
RegAlloc 改写后补第三次 liveness,为每条 CALL/NEW/SUPER_CALL 计算调用点
存活上界(最大存活物理槽号 + 1,254/255 由帧单独保存不计入),编码进
ext 高 8 位(nargs 低 8 位不变)。三处手写压帧窗口 = min(调用方活动寄存
器, 存活上界),restore_frame 按窗口回拷;CallFrame 新增
caller_active_reg_limit 保存调用方真实活动上限,恢复时不随截断窗口缩水。
生成器/异步函数体调用点保持全量窗口。spread 调用与运行时发起压帧
(accessor/内联)走全量路径不受影响。
|
2026-08-15 09:56:22 +08:00 |
|
pjh123
|
9b2e33916a
|
perf: CONCAT_N 多操作数拼接单趟精确预分配替代逐次 ADD
新增 CONCAT_N opcode(0x93):连续加号左结合链摊平为单条指令,
字符串模式单趟精确总长预分配,消除 N-2 次中间串分配与逐次整串重拷贝。
- emit 只下钻 left 链、right 括号不拆(a+(b+c) 退化 ADD),求值序与
f64 结合性保持左结合原义;摊平上限 14 防超长链寄存器压力
- dispatch 两阶段:数值前缀逐项复用 ADD 判定序列(int 溢出升 double、
BigInt 混合 TypeError、对象 ToPrimitive 副作用序),遇字符串转入
字符串模式单趟预分配拼接(concat_n_strings)
- RegAlloc graph/rewrite 登记 CONCAT_N ext 操作数(漏收集即错值);
ic_helper ext_word_count 登记(clear_ic_caches 字节定位)
- contract golden 显式 CONCAT_N 分支(规避 canonical_inst _ 兜底)
|
2026-08-15 09:08:05 +08:00 |
|
爱特每羊队
|
d443808d96
|
fix: synchronize nested builtin register mappings
|
2026-08-11 18:06:42 +08:00 |
|
爱特每羊队
|
67c6d3a53a
|
fix: preserve high template expression registers
|
2026-08-11 17:17:30 +08:00 |
|
爱特每羊队
|
1a7cef45d9
|
fix: support high register slots in register allocation
|
2026-08-11 12:37:56 +08:00 |
|
爱特每羊队
|
ada4b23844
|
fix: builtin 槽恒等预着色号 >253 时改分配自由色,修复大函数晚引用全局报 too many registers
|
2026-08-11 00:19:29 +08:00 |
|
爱特每羊队
|
51da7ed3d9
|
feat: 新增 DEFINE_ACCESSOR_DYNAMIC opcode 支持计算键对象访问器
|
2026-08-10 23:28:18 +08:00 |
|
爱特每羊队
|
d3ed1113ef
|
feat: 编译管线/类型层 crate 补全多级日志宏 + 关键路径日志
|
2026-08-10 17:56:28 +08:00 |
|
爱特每羊队
|
223f1a04e7
|
refactor: opcode 语义单张声明式表(def/use/pure/jump/term/ic 六维收敛)
|
2026-08-10 12:23:19 +08:00 |
|
爱特每羊队
|
d18b2adf08
|
fix: 私有字段 brand 检查 own 槽(字段不跨原型,规避 cell 值缺陷)
|
2026-08-10 11:23:52 +08:00 |
|
爱特每羊队
|
06951dcec3
|
feat: 循环 let/const 每迭代绑定(MAKE_CELL_FRESH + 解构捕获修复)
|
2026-08-10 10:18:39 +08:00 |
|
爱特每羊队
|
8f8c9a39ff
|
feat: 解构模式语义补齐(REST 枚举/getter/computed 排除、IteratorClose、RegAlloc def 干涉、for-in 捕获遮蔽)
|
2026-08-09 15:01:31 +08:00 |
|
爱特每羊队
|
915dedb151
|
feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复)
|
2026-08-09 11:08:36 +08:00 |
|
爱特每羊队
|
3a8bf56a68
|
fix: 全量单测修复(flatten 健壮性 + 测试链路补 flatten + 断言对齐规范)
|
2026-08-08 16:03:24 +08:00 |
|
爱特每羊队
|
a814dd0700
|
fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制)
|
2026-08-08 12:38:25 +08:00 |
|
爱特每羊队
|
2777b00c82
|
feat: 调用实参 spread(f(...args) / new F(...args) / super(...args))
|
2026-08-08 10:33:16 +08:00 |
|
爱特每羊队
|
4a0de6212c
|
fix(regalloc): builtin 槽 vreg 预着色恒等排除出可分配集防 prologue 覆写
|
2026-08-07 17:40:09 +08:00 |
|
爱特每羊队
|
accc677769
|
fix(emit): 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志
|
2026-08-07 17:13:57 +08:00 |
|
爱特每羊队
|
f4d95f373e
|
fix(vm): 链式 upvalue 捕获支持多层嵌套函数引用深层变量
|
2026-08-07 14:56:51 +08:00 |
|
爱特每羊队
|
328b8a3ddc
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
爱特每羊队
|
4e0fd762c2
|
refactor(regalloc): 清除 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 |
|
爱特每羊队
|
d8aa902ff0
|
fix(regalloc): nested 子模块引用父槽无预着色保护致读错物理槽(B014)
子模块 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 |
|
爱特每羊队
|
e667d5a329
|
test(regalloc): B005 复现 + n_registers 汇总断言(REG-04 验收)
|
2026-08-06 19:33:16 +08:00 |
|
爱特每羊队
|
8317c03edb
|
fix(emit): 调用参数打包连续寄存器 + 捕获参数建 cell + TEMPLATE_STR ext 重映射(修复 JSON/closures/template 回归)
|
2026-08-06 19:33:05 +08:00 |
|
爱特每羊队
|
a763e7ab75
|
feat(compiler): 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18)
|
2026-08-06 17:56:55 +08:00 |
|
爱特每羊队
|
a2afae670d
|
feat(regalloc): 指令改写 + 元数据回写 + alloc 入口,RegAlloc on/off 运行时等价(D-16/D-20)
|
2026-08-06 17:44:31 +08:00 |
|
爱特每羊队
|
31bba82912
|
feat(regalloc): 新增 oxide_regalloc crate,干涉图 + graph coloring + spill 拆分(D-09/D-10/D-11)
|
2026-08-06 17:13:27 +08:00 |
|