diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 9587876b..bed552be 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -75,6 +75,33 @@ --- +### 1-00w. Phase 33-3.1 — IfSelectTest.* を JoinIR 対応済みケースとして固定(**完了** 2025-11-26) + +**実施内容** +- `IfSelectTest.*` の単純 if/else(simple/local パターン)は JoinIR Select 経路で実行可能になった +- dev 専用パス: `NYASH_JOINIR_IF_SELECT=1` + 関数名ガードで限定 +- MIR Builder 本線の if_phi 呼び出しは未削除(既存経路を保持) + +**JoinIR 対応範囲** +- ✅ simple パターン: `if cond { return 1 } else { return 2 }` +- ✅ local パターン: `if cond { x = a } else { x = b }; return x` +- ⏳ Stage-1/Stage-B/selfhost: Phase 33-4 で段階的拡大予定 + +**if_phi 系箱の削除計画** +- **削除条件**: Stage-1/Stage-B/selfhost の代表ケースを JoinIR Select/IfMerge に乗せてから再検討 +- **対象箱**: if_phi.rs (316行) / phi_invariants.rs (92行) / conservative.rs (169行) +- **削減見込み**: 約 600 行(Phase 33-3.2/3.3 で実施) + +**次のステップ** +- Phase 33-3.2: `phi_invariants/conservative` の JoinIR 側への移譲設計 +- Phase 33-3.3: 参照ゼロの箱から順次削除 + +**更新ドキュメント** +- `docs/private/roadmap2/phases/phase-30-final-joinir-world/PHI_BOX_INVENTORY.md` (Phase 33 進捗追加) +- `docs/private/roadmap2/phases/phase-33-joinir-if-phi-cleanup/TASKS.md` (33-3.1 完了) + +--- + ### 1-00u. Phase 32 L-4.3a — llvmlite ハーネスでの JoinIR 実験(**完了** 2025-11-26) **目的**