refactor(joinir): Phase 27.9 - Modular separation of join_ir.rs into directory structure

Phase 27.9 で join_ir.rs (~1,336行) を以下のモジュール構造に分離:

## 新規ディレクトリ構造:
```
src/mir/join_ir/
├── mod.rs                           # 型定義・共通ユーティリティ (~330行)
└── lowering/
    ├── mod.rs                       # lowering インターフェース
    ├── min_loop.rs                  # lower_min_loop_to_joinir (~140行)
    ├── skip_ws.rs                   # skip_ws lowering 3関数 (~390行)
    └── funcscanner_trim.rs          # trim lowering (~480行)
```

## 技術的変更:
- **型定義統一**: JoinFuncId, JoinInst, JoinModule 等を mod.rs に集約
- **lowering 分離**: 3つの lowering 関数を個別モジュールに移動
- **後方互換性**: pub use で lowering 関数を re-export(既存コード影響なし)
- **削除**: src/mir/join_ir.rs (旧単一ファイル)

## テスト結果:
- **385 passed** (+1 from 384)
- **9 failed** (-1 from 10)
- **ビルド成功**: 0 errors, 18 warnings (変化なし)

## 効果:
- **保守性向上**: 1,336行 → 4ファイル(各300-500行)で可読性向上
- **モジュール境界明確化**: 型定義 vs lowering 実装の責務分離
- **将来の拡張容易**: 新 lowering 関数追加が簡単に

Phase 27.8 で実装した MIR 自動解析 lowering の基盤整備完了。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-11-23 16:49:49 +09:00
parent a575b046ad
commit 3d5979c78e
9 changed files with 1393 additions and 1337 deletions

View File

@ -385,7 +385,14 @@ pub(super) fn lower_loop_stmt(
// 7) header PHI seallatch + canonical continue_merge スナップショット)
// Step 5-1/5-2: Pass writes 集合 for PHI縮約
loopform.seal_phis(&mut ops, latch_bb, &canonical_continue_snaps, &writes)?;
// Phase 27.4C: JSON v0 bridge は常に header_bypass = false本線経路
loopform.seal_phis(
&mut ops,
latch_bb,
&canonical_continue_snaps,
&writes,
false, // header_bypass (JSON v0 bridge はレガシー経路なので false)
)?;
// 8) exit PHIheader fallthrough + break スナップショット)
// Option C: Create inspector (build_exit_phis will populate it)