Repository navigation
cranelift: restore explicit no-region for alias analysis - #14373
Open
agourakis82 wants to merge 4 commits into
Open
agourakis82 wants to merge 4 commits into
agourakis82 wants to merge 4 commits into
Conversation
Contributor
Author
|
Thanks. Parking this on the meeting. #14373 follows the issue report’s reading (no-region load can see a named-region store). If the call is explicit no-region, I’ll rework/close it. |
Contributor
Author
|
Wrote up the store/load asymmetry on the issue. |
Contributor
Author
|
Better summary of the two options is here: #14323 (comment) |
agourakis82
force-pushed
the
users/agourakis/cranelift-regionless-load-alias-fence
branch
from
September 22, 2026 15:22
a482899 to
db762f6
Compare
Contributor
Author
|
Rebased on main. Tried the explicit-no-region store change locally; notes on the issue. |
Contributor
Author
Contributor
Author
|
Parking on the meeting: explicit no-region vs no-region as fence. Fine either way. |
Regionless stores had been treated as fences over every named region. That disagreed with the older alias-analysis behavior, where no-region was its own disjoint bucket for both loads and stores, and it disagreed with how regionless loads already worked. Put regionless stores back in the "other" bucket, keep loads on that same bucket, and leave true fences as the only thing that touches every region. Docs and alias tests updated to match. Assisted-by: Claude
agourakis82
force-pushed
the
users/agourakis/cranelift-regionless-load-alias-fence
branch
from
September 22, 2026 17:11
db762f6 to
962fcf8
Compare
Preserve the existing PR commits and integrate the pinned upstream changes without rewriting the branch history. Validate merged tree c76532a on Linux x86-64 with Rust 1.98.0: locked clif-util build, cargo fmt, the 50 alias filetests, and the six backend filetests added or changed since the previous base. Additional private regionless join and loop probes also passed; these are not part of the upstream test suite. This is scoped validation, not full cross-platform CI or maintainer approval. Assisted-by: OpenAI Codex
Preserve volatile accesses as fences while integrating upstream alias-region extent handling. Align the issue-13508 initializer with its named-region contract and correct regionless-slot comments. Native validation: 52 alias fixtures, three focused regionless join/loop/DSE fixtures, selected volatile and readonly cases, and 235 codegen unit tests. A volatile-guard mutant is rejected; restoring the source reproduces the original compiler artifact. Assisted-by: Codex:GPT-6.1-Sol
This branch has not been deployed
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.
Regionless stores were being treated as fences over every named region. That was a behavior change from the older alias analysis, where no-region was its own disjoint bucket for both loads and stores.
This restores that older shape:
otheronlyotheronlyAlso updates the docs/
memflagswording and the alias tests that had encoded the fence-for-stores behavior (issue-13508,no-region, etc.).For #14323: under explicit no-region, mixing a regionless access and a named-region access on the same address is outside the frontend invariant. Happy to close that issue once this lands, or rework again if the meeting picks the other rule.
Fixes #14323
Assisted-by: Claude