Files
TransPyC/lib/core
TermiNexus 5844e6e725 fix(TPC): range for 循环 body 以 break 终结时不再发射死代码 load(游离指令致 opt expected instruction opcode)
根因: HandlesFor.py L229-233 在 body 使 _reg_values[循环变量] 失效后,
于当前 builder 位置重新 load 循环变量(该值实际未被使用, 死代码)。
当 body 最后一条语句是 break 时当前块已带 terminator, load 落在
br for.end 之后 → 非法 IR → opt/llc 报 'expected instruction opcode'。
触发场景: 装饰器扫描循环 body 内 list[ASTptr].get 调用触发泛型特化
重入编译(_EmitFunctionLlvm L1647 整体清空 _reg_values 且不恢复)。
修复: else 分支加 is_terminated 守卫, 终结时跳过死 load(语义不变)。
2026-08-15 07:36:40 +08:00
..
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-22 21:55:36 +08:00