feat(edgecfg): Phase 265 P1 - compose 配線ロジック実装(test-only PoC)
## 目的 Frag/ExitKind が BasicBlockId 層で配線できることを証明 ## 実装完了内容 - EdgeStub に target: Option<BasicBlockId> 追加 - compose::loop_() 配線ロジック実装(Continue → header, Break → after) - verify_frag_invariants() 配線契約検証追加 - test-only PoC で実証完了(5個のテスト) ## 配線契約 - Continue(loop_id) の EdgeStub.target = Some(header) - Break(loop_id) の EdgeStub.target = Some(after) - Normal/Return/Unwind の EdgeStub.target = None(上位へ伝搬) ## テスト - compose::tests: 5 PASS(既存2個更新 + 新規3個追加) - verify::tests: 1 PASS(基本smoke test) - cargo test -p nyash-rust --lib: SUCCESS ## 重要な制約 - MIR 命令生成はまだしない(Frag 層の配線能力証明のみ) - NormalizedShadow/JoinIR層への適用は Phase 266 に繰り越し - Pattern6/7/8 未改変(配線能力の証明に集中) ## 次のステップ - Phase 265 P2: seq/if_ 実装(順次合成・条件分岐合成) - Phase 266: JoinIR-VM Bridge 改修後、NormalizedShadow への適用 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -143,6 +143,27 @@ Frag = { entry_block, exits: Map<ExitKind, Vec<EdgeStub>> }
|
||||
- `verify_frag_invariants()`: 最小検証追加(デバッグガード付き)
|
||||
- Pattern8適用: P0ではやらない(偽Frag回避、P1から実戦投入)
|
||||
|
||||
次フェーズ(Phase 265 P1+)で配線ロジック + Pattern8適用 + seq/if_ 実装へ。
|
||||
現時点では既存 pattern6/7/8 や merge/EdgeCFG は未改変(入口だけ用意)。
|
||||
**Phase 265 P1: 配線ロジック実装完了**
|
||||
|
||||
**目的**: Frag/ExitKind が BasicBlockId 層で配線できることを証明
|
||||
|
||||
**実装完了内容**:
|
||||
- EdgeStub に `target: Option<BasicBlockId>` 追加
|
||||
- compose::loop_() が Continue → header, Break → after への配線を実行
|
||||
- verify_frag_invariants() が配線契約を検証(デバッグモード)
|
||||
- test-only PoC で配線の実証完了(5個のテスト)
|
||||
|
||||
**配線契約**:
|
||||
- Continue(loop_id) の EdgeStub.target = Some(header)
|
||||
- Break(loop_id) の EdgeStub.target = Some(after)
|
||||
- Normal/Return/Unwind の EdgeStub.target = None(上位へ伝搬)
|
||||
|
||||
**Phase 265 P1 のスコープ**:
|
||||
- ✅ Frag 層での配線ロジック
|
||||
- ✅ BasicBlockId 層でのテスト証明
|
||||
- ❌ MIR 命令生成(Phase 266+)
|
||||
- ❌ NormalizedShadow/JoinIR層への適用(Phase 266+、JoinIR-VM Bridge 改修後)
|
||||
|
||||
次フェーズ(Phase 265 P2)で seq/if_ 実装 + pattern番号分岐削減へ。
|
||||
現時点では既存 pattern6/7/8 や merge/EdgeCFG は未改変(配線能力の証明のみ)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user