Files
hakorune/docs/development/current/main/phases/phase-29ae/README.md

36 lines
1.6 KiB
Markdown
Raw Normal View History

# Phase 29ae: JoinIR Regression Pack (docs-first)
Goal: JoinIR の最小回帰セットを SSOT として固定する。
## Regression pack (SSOT)
- Pattern2: `phase29ab_pattern2_*`
- Pattern2 (real-world): `phase263_pattern2_*`
- Pattern3 (IfPhi, VM): `phase118_pattern3_if_sum_vm`
- Pattern1 (strict shadow, VM): `phase29ao_pattern1_strict_shadow_vm`
- Pattern1 (subset reject, VM): `phase29ao_pattern1_subset_reject_extra_stmt_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 gatephase143_* は対象外)
- phase143_* は LoopBuilder 撤去 / plugin disable 固定 / LLVM exe 期待が古いので除外
- phase286_pattern9_* は plugins disabled 経路の mismatch があるため legacy pack 側で SKIPphase29ae 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: PASSRC=9 を成功扱い)
- pattern2: PASSJoinIR main param remap を carrier_order に揃える) `cf95afbd8`