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