docs: record Phase 265/266 EdgeCFG progress and research note

This commit is contained in:
2025-12-21 17:20:58 +09:00
parent f8779df5a6
commit 655a8efbc6
10 changed files with 207 additions and 12 deletions

View File

@ -19,6 +19,11 @@
- spans は並行 Vec を最終的に廃止し、`Vec<Spanned<_>>` へ収束(段階導入: 編集APIの一本化 → 内部表現切替)。
- edge-args の参照 API は `Jump` だけでなく `Branch` を含むため、単発 `edge_args()` ではなく `out_edges()`/`edge_args_to(target)` のような “複数 edge” 前提の参照点を SSOT にする。
20251221
- MIR 側の block-parameterized CFG を短い通称として **EdgeCFG** と呼ぶdocs では “Block-Parameterized CFGEdgeCFG
- EdgeCFG の P2`BasicBlock.jump_args` 削除まで到達し、edge-args は `Jump/Branch` の terminator operand を SSOT に一本化するReturn は `return_env` のみ例外)。
- 「pattern番号で推測分岐」は長期的に消したい。Structured→CFG lowering の中心概念を **ExitKind + Fragfragment**へ移し、pattern は “Extractor/Plan の薄い層” に縮退させる設計SSOT: `docs/development/current/main/design/edgecfg-fragments.md`)。
20250908
- ループ制御は既存命令Branch/Jump/Phiで表現し、新命令は導入しない。
- Builder に loop_ctx{head, exit}を導入し、continue/break を分岐で降ろす。