Phase 29aa P3: Jump→Return single-pred rc propagation
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# Phase 29aa: RC insertion safety expansion(CFG-aware design)
|
||||
|
||||
Status: P2 Complete (No cleanup on Jump/Branch)
|
||||
Status: P3 In Progress (Jump→Return single-predecessor propagation)
|
||||
Scope: Phase 29z の単一block限定実装から、誤releaseを起こさない形で CFG-aware に拡張するための設計を固める。
|
||||
|
||||
Entry:
|
||||
@ -22,3 +22,18 @@ Progress:
|
||||
- P0: CFG-aware 設計の固定(RcPlan/危険パターン/安全条件の契約)
|
||||
- P1: rc_insertion を RcPlan の Plan→Apply 2-stage へ分離(挙動不変)
|
||||
- P2: Jump/Branch 終端では cleanup を入れない契約を SSOT 化(Fail-Fast guard)
|
||||
- P3: Jump→Return(単一 predecessor)で state 伝播し ReturnCleanup を成立させる(P2維持)
|
||||
|
||||
P3 SSOT:
|
||||
- Contract:
|
||||
- cleanup は Return block の BeforeTerminator のみ(Jump/Branch block には入れない)
|
||||
- Jump→Return かつ predecessor が 1 つの場合のみ state 伝播を許可
|
||||
- 条件不一致で伝播/cleanup を試みたら debug_assert! で Fail-Fast
|
||||
- Non-goals:
|
||||
- Branch/PHI/loop/early-exit の cleanup
|
||||
- multi-predecessor の合流(PHI 問題回避)
|
||||
- Jump block への release 挿入(P2維持)
|
||||
- Acceptance:
|
||||
- quick 154/154 PASS 維持
|
||||
- `cargo run --bin rc_insertion_selfcheck --features rc-insertion-minimal` PASS
|
||||
- 既定OFF維持(featureなしは no-op)
|
||||
|
||||
Reference in New Issue
Block a user