feat(joinir): Phase 61-2 If-in-loop JoinIR dry-run検証インフラ実装
## 実装内容 ### 61-2.1: dry-runフラグ追加 - `src/config/env.rs`: joinir_if_in_loop_dryrun_enabled() 追加 (+11行) - `HAKO_JOINIR_IF_IN_LOOP_DRYRUN=1` でdry-runモード有効化 ### 61-2.2: loop_builder.rs dry-run統合 - `src/mir/loop_builder.rs`: JoinIR PhiSpec計算とA/B比較実装 (+47行) - JoinInst取得時にPhiSpec保存、PhiBuilderBox実行後に比較 ### 61-2.3: PhiSpec計算ロジック実装 - `src/mir/join_ir/lowering/if_phi_spec.rs`: 新規作成 (+203行) - PhiSpec構造体(header_phis/exit_phis) - compute_phi_spec_from_joinir(): JoinInstからPHI仕様計算 - extract_phi_spec_from_builder(): PhiBuilderBox結果抽出 - compare_and_log_phi_specs(): A/B比較とログ出力 - BTreeMap/BTreeSet使用(決定的イテレーション保証) ### 61-2.4: A/B比較テスト実装 - `src/tests/phase61_if_in_loop_dryrun.rs`: 新規作成 (+49行) - phase61_2_dry_run_flag_available: フラグ動作確認 - phase61_2_phi_spec_creation: PhiSpec構造体テスト - テスト結果: ✅ 2/2 PASS ## テスト結果 - Phase 61-2新規テスト: ✅ 2/2 PASS - 既存loopformテスト: ✅ 14/14 PASS(退行なし) - ビルド: ✅ 成功(エラー0件) ## コード変更量 +312行(env.rs: +11, if_phi_spec.rs: +203, loop_builder.rs: +47, tests: +49, その他: +2) ## 技術的成果 1. PhiSpec構造体完成(JoinIR/PhiBuilderBox統一表現) 2. dry-run検証インフラ(本番動作に影響なし) 3. BTreeMap統一(Option C知見活用) ## 次のステップ(Phase 61-3) - dry-run → 本番経路への昇格 - PhiBuilderBox If側メソッド削除(-226行) - JoinIR経路のみでif-in-loop PHI生成 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -23,6 +23,7 @@ pub mod generic_case_a;
|
||||
pub mod if_dry_runner; // Phase 33-10.0
|
||||
pub mod if_merge; // Phase 33-7
|
||||
pub mod if_phi_context; // Phase 61-1
|
||||
pub mod if_phi_spec; // Phase 61-2
|
||||
pub mod if_select; // Phase 33
|
||||
pub mod loop_form_intake;
|
||||
pub mod loop_scope_shape;
|
||||
|
||||
Reference in New Issue
Block a user