docs(vcr): record landed optimized-path fixes + the optimizer_bridge control-flow frontier (#242) - #501
Merged
Conversation
… + the optimizer_bridge control-flow frontier (#242) 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>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Behavior-frozen, doc-only update to the rivet-traced #242 roadmap (
artifacts/verified-codegen-roadmap.yaml). VCR-ORACLE-001's running log was stale — it ended at "#490 blocks the non-leaf prologue lever / the lever stays unmerged until #490 lands", but both that fix and a companion control-flow fix have since landed. This records the resolution and the broader frontier the work surfaced, so the roadmap reflects reality and prioritizes the next gated step.Appended to VCR-ORACLE-001
push {r4-r8,lr}/pop {r4-r8,pc}, decided on the post-realloc body (no spurious push; >4-param fns decline to the direct selector so incoming stack-arg offsets are untouched), CI oraclecallee_saved_490_differential.py. The non-leaf prologue lever it blocked is now unblocked.block+br_ifmid-instruction landing —Endlabelled with its own id not the closed block's, plusStrh/Strb/Ldrh/… sized 2 vs the 4-byte.wthe high-base optimized path emits; CI oracleblock_brif_483_differential.py.Cmp/Cmn/Adds/Subs/Popcnt), Optimized path silently miscompiles register-exhausting i32 folds (no spill, no decline) #496 (register-exhausting folds silently miscompiled). All separate gated steps; none in shipped firmware (gale ships--relocatable/direct).Verification
rivet validateprofile unchanged vs baseline (49 errors / 75 warnings / 0 broken cross-refs — all pre-existing xref/coverage gaps; NON_XREF = 0, the CI gate's pass condition);rivet coverageexit 0.🤖 Generated with Claude Code