Commit dc1d122
VCR-ORACLE-001's running log was stale: it ended with "#490 blocks the non-leaf
prologue lever / the lever stays unmerged until #490 lands". Both that fix and a
companion control-flow fix have since landed this arc — record the resolution and
the broader frontier the work surfaced, so the #242 roadmap reflects reality and
prioritizes the next gated step.
Appended (behavior-frozen, doc-only) to VCR-ORACLE-001:
- #490 LANDED (PR #495): optimized path now wraps a body that touches r4-r8 in
push {r4-r8,lr}/pop {r4-r8,pc}, decided on the post-realloc body (no spurious
push; >4-param fns decline to direct so stack-arg offsets are untouched), CI
oracle callee_saved_490_differential.py. The non-leaf prologue lever it blocked
is now unblocked.
- #483 LANDED (PR #497): forward block+br_if mid-instruction landing — End
labelled with its own id not the closed block's, plus Strh/Strb/Ldrh/... sized
2 vs the 4-byte .w the high-base optimized path emits; CI oracle
block_brif_483_differential.py.
- The multi-modal control-flow sweep established these are one cluster of
optimizer_bridge control-flow/ABI defects — the concrete measured evidence for
VCR-SEL-001's "collapse the two/three-selector accretion" motivation — and the
next gated frontier: #500 (br_if still unresolved for if/else + sequential
blocks; seqblocks the minimal repro; Pattern-3 ruled out), #499 (spill frame
not deallocated under control flow; #490's pop epilogue made the SP leak fatal,
#215-class), #498 (byte-size estimator incomplete for Cmp/Cmn/Adds/Subs/Popcnt;
structural mirror drift), #496 (register-exhausting folds silently miscompiled).
All four are separate gated steps, never idle-tick increments; none in shipped
firmware (gale ships --relocatable/direct).
rivet validate profile unchanged (49 errors / 75 warnings / 0 broken cross-refs,
all pre-existing xref/coverage gaps; NON_XREF=0); coverage exit 0.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 024be09 commit dc1d122
1 file changed
Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
596 | 596 | | |
597 | 597 | | |
598 | 598 | | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
599 | 637 | | |
600 | 638 | | |
601 | 639 | | |
| |||
0 commit comments