Skip to content

Rollup of 7 pull requests - #162846

Closed
Zalathar wants to merge 32 commits into
rust-lang:mainfrom
Zalathar:rollup-dwcWLal
Closed

Zalathar wants to merge 32 commits into
rust-lang:mainfrom
Zalathar:rollup-dwcWLal

Conversation

@Zalathar

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Randl and others added 30 commits September 14, 2026 10:41
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
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 16, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 16, 2026
@Zalathar

Copy link
Copy Markdown
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 40f81cb has been approved by Zalathar

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 16, 2026
@rust-bors

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)
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-aarch64-gnu failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 16, 2026
@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6d7db56 failed: CI. Failed job:

@Zalathar

Copy link
Copy Markdown
Member Author

Looks like the runner died for no reason?

@bors try jobs=test-aarch64-gnu

@rust-bors

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
@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 5e6f479 (5e6f479fbfcbc84b7286e2b18eb68df09f369e44)
Base parent: 28e8a8c (28e8a8c81bf3b37909edac6c2a76e56f30cd492f)

@Zalathar

Copy link
Copy Markdown
Member Author

Indeed, the failure was bogus.

Closing to make a larger rollup.

@Zalathar Zalathar closed this Sep 16, 2026
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 16, 2026
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 16, 2026
@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved due to being closed.

@Zalathar
Zalathar deleted the rollup-dwcWLal branch September 16, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants