docs: record Phase 265/266 EdgeCFG progress and research note
This commit is contained in:
@ -108,7 +108,7 @@ Related:
|
||||
- Normal/Return/Unwind の EdgeStub.target = None(上位へ伝搬)
|
||||
- **制約**:
|
||||
- MIR 命令生成なし(Frag 層のみ)
|
||||
- NormalizedShadow 未適用(Phase 266 に繰り越し)
|
||||
- NormalizedShadow 未適用(Phase 267 に繰り越し)
|
||||
|
||||
- **(✅ 完了)Phase 265 P2: seq/if_ 実装(wires/exits 分離)**
|
||||
- **目的**: 「解決済み配線(wires)」と「未解決 exit(exits)」を分離し、Frag 合成の基本パターンを完成
|
||||
@ -123,8 +123,27 @@ Related:
|
||||
- **設計判断**:
|
||||
- wires/exits 分離で再配線バグ防止
|
||||
- if_ は join_frag: Frag で「join 以降」を明確化
|
||||
- verify は警告のみ(Err 化は Phase 266)
|
||||
- **次**: Phase 266 で MIR 命令生成 + NormalizedShadow 適用
|
||||
- verify は警告のみ(Err 化は Phase 266 の strict 版で段階導入)
|
||||
- **次**: Phase 266 で MIR 命令生成 PoC(emit_wires)、Phase 267 で NormalizedShadow/JoinIR へ実適用
|
||||
|
||||
- **(✅ 完了)Phase 266: wires → MIR terminator 生成(最小 PoC)**
|
||||
- **目的**: wires を MIR terminator に変換する最小 PoC を実装し、Phase 267 での本格適用に備える
|
||||
- **完了内容**:
|
||||
- emit.rs 作成(emit_wires 実装 + unit test 4個)
|
||||
- verify_frag_invariants_strict() 追加(段階導入を壊さない)
|
||||
- Jump/Return 対応(Branch は Phase 267)
|
||||
- mod.rs 更新(emit module エクスポート)
|
||||
- 全テスト PASS(1392 passed: 既存 1388 + 新規 4個)
|
||||
- **核心原則**:
|
||||
- from ごとにグループ化して1本だけ許可(1 block = 1 terminator 制約)
|
||||
- Return は target=None を許可(意味を持たない)
|
||||
- verify_frag_invariants() は変更なし(警告のまま、strict 版を別名で用意)
|
||||
- Phase 260 terminator 語彙ルールを厳守
|
||||
- **設計判断**:
|
||||
- from グループ化で terminator 上書きバグ防止
|
||||
- Return は target 不要(呼び出し元に戻る)
|
||||
- verify strict 版で段階導入を壊さない
|
||||
- **次**: Phase 267 で JoinIR Pattern への適用
|
||||
|
||||
- **real-app loop regression の横展開(VM + LLVM EXE)**
|
||||
- ねらい: 実コード由来ループを 1 本ずつ最小抽出して fixture/smoke で固定する(段階投入)。
|
||||
|
||||
Reference in New Issue
Block a user