Phase 29ae: JoinIR Regression Pack (docs-first)
Goal: JoinIR の最小回帰セットを SSOT として固定する。
Regression pack (SSOT)
- Pattern2:
phase29ab_pattern2_* - Pattern2 (real-world):
phase263_pattern2_* - Pattern3 (If‑Phi, VM):
phase118_pattern3_if_sum_vm - Pattern1 (strict shadow, VM):
phase29ao_pattern1_strict_shadow_vm - Pattern5 (Break, VM):
phase286_pattern5_break_vm - Pattern6:
phase29ab_pattern6_* - Pattern7:
phase29ab_pattern7_* - Merge/Phi代表:
apps/tests/phase1883_nested_minimal.hako(RC=9) - この pack が JoinIR 回帰の唯一の integration gate(phase143_* は対象外)
- phase143_* は LoopBuilder 撤去 / plugin disable 固定 / LLVM exe 期待が古いので除外
- phase286_pattern9_* は plugins disabled 経路の mismatch があるため legacy pack 側で SKIP(phase29ae pack には含めない)
Header PHI Entry/Latch Contract (SSOT)
- Entry preds:
entry_incomingのブロック + host entry block のみ - Latch preds: header の preds から entry preds を引いた残り
- PHI inputs: entry preds は entry 値、latch preds は latch 値を流す
- 根拠:
src/mir/builder/control_flow/joinir/merge/README.md(Phase 29ae セクション) - 修正コミット:
11adec0ab
Commands
./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh
Status
- phase1883: PASS(RC=9 を成功扱い)
- pattern2: PASS(JoinIR main param remap を carrier_order に揃える)
cf95afbd8