Rollup of 7 pull requests - #162846
Closed
Zalathar wants to merge 32 commits into
Closed
Rollup of 7 pull requests#162846Zalathar wants to merge 32 commits into
Zalathar wants to merge 32 commits into
Conversation
changes in later commits need this case out of the way
Replace the opaque representation of `PassMode::Cast` with a structured `CastTarget` type that exposes the register layout used by the platform ABI. Add `Uniform`, `Reg`, and `RegKind` types so tools can inspect how arguments are mapped to registers. Add `CastTarget::size()` and `Uniform::reg_count()` helpers. Add a test covering cast on args, returns, mixed register kinds, multiple arguments, and register exhaustion causing stack spill.
Expose argument ABI attributes through a structured type instead of opaque debug strings. ArgAttributes provides accessors for the extension mode (zero/sign-extend) and pointee alignment, which are needed by tools doing their own code generation. This removes all uses of Opaque from the abi module.
BREAKING CHANGE: `ValueAbi` is renamed to `ValueRepr` and the `LayoutShape::abi` field is renamed to `LayoutShape::value_repr`. The old name was misleading: this type does not describe how values are passed in function calls (that is `PassMode`), it is a hint for how backends should represent values (as scalars, vectors, or aggregates). This aligns with the internal rename from `Abi` to `BackendRepr`. Also fixes several doc comments that incorrectly claimed layout fields define calling behavior.
For !needs_drop types, this should allow decoding directly into the arena-allocated slice. For needs_drop types, the arena already collects into a SmallVec<T>, so this avoids an intermediate conversion from Vec<T> to SmallVec<T>.
These impls all match the impl provided by the into-arena macro.
The existing `codec` module contains a sea of impls that is hard to navigate. Extracting the RefDecodable parts into another file should make it easier to keep track of what is where. This commit tries to move everything as-is, so that `git diff --color-moved` can verify that nothing was changed. Subsequent commits will modify the moved code.
- Added and expanded comments - Renamed and clarified the impl-decodable macro - Sorted the macro list of Decodable impls
This commit replaces the existing boilerplate impls and the existing macro with a less confusing macro. Some unused impls have been removed.
It's simpler to make the `decode` method generic over `impl TyDecoder`.
This PR switches the LLVM build cross-compiler from GCC to Clang and enables LLVM Thin LTO for LoongArch64 distributions. There is no significant performance difference with this change. It also reduces the size of the build artifacts: | Artifacts | Before | After | |-------------------------------------------------------|--------|-------| | rust-nightly-loongarch64-unknown-linux-gnu.tar.xz | 287M | 177M | | rust-nightly-loongarch64-unknown-linux-gnu directory | 1.6G | 849M | | rust-nightly-loongarch64-unknown-linux-musl.tar.xz | 285M | 177M | | rust-nightly-loongarch64-unknown-linux-musl directory | 1.6G | 847M |
implement const Iterator for Range This allows the use of `for i in i..n` in `const`. This I believe is interesting enough to be justified under rust-lang#155816 r? @oli-obk
…, r=jieyouxu Enable LLVM Thin LTO for LoongArch64 This PR switches the LLVM build cross-compiler from GCC to Clang and enables LLVM Thin LTO for LoongArch64 distributions. There is no significant performance difference with this change. It also reduces the size of the build artifacts: | Artifacts | Before | After | |-------------------------------------------------------|--------|-------| | rust-nightly-loongarch64-unknown-linux-gnu.tar.xz | 287M | 177M | | rust-nightly-loongarch64-unknown-linux-gnu directory | 1.6G | 849M | | rust-nightly-loongarch64-unknown-linux-musl.tar.xz | 285M | 177M | | rust-nightly-loongarch64-unknown-linux-musl directory | 1.6G | 847M | --- try-job: dist-loongarch64*
…gion-resolver, r=adwinwhite Yeet the `DeepRegionResolver` (earlier called `OpportunisticRegionResolver`) r? @lcnr or @rust-lang/initiative-trait-system-refactor See [#t-types > resolving equal regions @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/144729-t-types/topic/resolving.20equal.20regions/near/623484771) > [!NOTE] > I've not used an LLM for any part of this PR, or any other PR I make. This includes any related work like research.
Cleanups related to RefDecodable - Earlier experiments: rust-lang#162287 --- This PR is a series of cleanups to the RefDecodable trait and its associated impls. Details in individual commits. There should be no change to compiler output. r? nnethercote (or compiler)
…excrichton wasm: fix ABI for enums with integer layout and ZST fields fixes rust-lang#121408 follow-up to rust-lang#162806 Clang is doing something that is rather annoying for us to emulate: like with unions it looks at the structure of the type, not the representation. But in rust an `enum` that is represented as an integer is not considered an `aggregate` at all, yet may still need to be passed as one if it has any (even ZST) fields. r? alexcrichton cc @hanna-kruppe
…enkov Add regression test for malformed RPITIT bound ICE with the new solver Fixes rust-lang#156100
Member
Author
|
Rollup of everything. @bors r+ rollup=never p=5 |
Contributor
This comment has been minimized.
This comment has been minimized.
rust-bors Bot
pushed a commit
that referenced
this pull request
Sep 16, 2026
Rollup of 7 pull requests Successful merges: - #156216 (implement const Iterator for Range) - #162748 (Enable LLVM Thin LTO for LoongArch64) - #162769 (Yeet the `DeepRegionResolver` (earlier called `OpportunisticRegionResolver`)) - #162800 (Cleanups related to RefDecodable) - #162826 (wasm: fix ABI for enums with integer layout and ZST fields) - #159359 ([rustc_public] Enhance PassMode API) - #162818 (Add regression test for malformed RPITIT bound ICE with the new solver)
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
Contributor
|
💔 Test for 6d7db56 failed: CI. Failed job:
|
Member
Author
|
Looks like the runner died for no reason? @bors try jobs=test-aarch64-gnu |
This comment has been minimized.
This comment has been minimized.
rust-bors Bot
pushed a commit
that referenced
this pull request
Sep 16, 2026
Rollup of 7 pull requests try-job: test-aarch64-gnu
Contributor
Member
Author
|
Indeed, the failure was bogus. Closing to make a larger rollup. |
Contributor
|
This pull request was unapproved due to being closed. |
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.
Successful merges:
DeepRegionResolver(earlier calledOpportunisticRegionResolver) #162769 (Yeet theDeepRegionResolver(earlier calledOpportunisticRegionResolver))r? @ghost
Create a similar rollup