Repository navigation
Preserve captured HighC loads across memory assignments - #610
Merged
Merged
Conversation
NeverSightAI
marked this pull request as ready for review
October 7, 2026 13:28
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.
Summary
Static evidence
The sequence store(slot, x); t1 = load(slot); assign(load(slot), 5); return t1 could fold the captured load past the overwrite. Existing statement emission supports this write form; earlier immutable-slot forwarding refuses it and liveness retains it. The fix preserves the original captured value and does not change shared IR or LLVMC.
Code commit: a6468b8.
Report commit: 550608a.
Reviewed dev range: 6f885eb → db18af3.
Inventory: 198 commits / 557 paths; 196 / 556 excluding the two report-only commits and PROGRESS path. This is not exhaustive audit coverage.
Verification and limits
Strictly static. No project execution, build, test, benchmark, repository script, formatter/linter or CI dispatch/rerun.
The new regression declares emitted-C checks at O0/O2 using the existing helper; it has not been executed. No compilation/runtime/formatting pass is claimed.
Remote source/test readbacks equal intended content. The code commit changes exactly two files, 26 additions/3 deletions; its remote diff was inspected. Report readback is exact and preserves all prior history; its separate commit changes only PROGRESS.md with zero deleted lines.
Existing qualification blockers
At October 7 01:01:56 UTC, pinned dev has 19 checks: four success, two failure, three running, ten skipped. Linux cannot compile four Darwin initializer lists; all four repairs already exist in unmerged #589, whose default Linux build passed but later Mach-O tests failed. No duplicate patch is included.
Pinned dev mobile macOS fails on unsupported preprocessor directives, and all real-application jobs are skipped. Existing #605 has failed remote CI and mergeability false. Local author reports remain separate from remote results.
The full report records exact heads, jobs, sample times, missing-test denominators, open work and bounded next priorities.
No other documentation, dependency, security setting, issue state, merge or deployment changed. No CI-skip markers; ordinary automatic checks may run. This draft does not authorize merging.