Skip to content

Rollup of 10 pull requests - #162853

Merged
rust-bors[bot] merged 41 commits into
rust-lang:mainfrom
Zalathar:rollup-7nlu8K9
Sep 16, 2026
Merged

rust-bors[bot] merged 41 commits into
rust-lang:mainfrom
Zalathar:rollup-7nlu8K9

Conversation

@Zalathar

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

petrochenkov and others added 30 commits August 7, 2026 15:14
It makes sense to put the top-level item first, before the use tree
within the item. And it makes sense to have a single function-level
comment explaining this rather than inline comments at the definition
and every call site.
`is_public` is not relevant here.
changes in later commits need this case out of the way
Originally introduced in the Enzyme build and coppied around since,
but without effect for a few years by now.
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`.
Currently a `NodeId` is stored in a pair with each nested use tree. This
commit changes the pair to a named type `UseTreeAndId`. In most places
this doesn't make much difference but in the AST visitor it gets rid of
several weird special cases.
@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 6f81ec1 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
@JonathanBrouwer

Copy link
Copy Markdown
Member

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-gnu-llvm-21-3,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 16, 2026
Rollup of 10 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-gnu-llvm-21-3
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
@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
@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

💔 Test for a5309a3 failed: CI, CI

@JonathanBrouwer

Copy link
Copy Markdown
Member

???

@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-x86_64-gnu-next-trait-solver-polonius failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/test-attrs/tests-listing-format-json.rs ... ok
test [ui] tests/ui/thir-print/thir-flat-const-variant.rs ... ok
test [ui] tests/ui/test-attrs/tests-listing-format-terse.rs ... ok

Session terminated, killing shell...::group::Clock drift check
  local time: test [ui] tests/ui/thir-print/thir-tree-array-index.rs ... ok
##[error]The runner has received a shutdown signal. This can happen when the runner service is stopped, or a manually started runner is canceled.
Wed Sep 16 14:32:43 UTC 2026
  network time: test [ui] tests/ui/thir-print/thir-flat.rs ... ok
test [ui] tests/ui/thir-print/thir-tree-field-expr-index.rs ... ok

Important

For more information how to resolve CI failures of this job, visit this link.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. 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 successful - CI
Approved by: Zalathar
Duration: 3h 3m 28s
Pushing 92801ed to main...

@rust-bors
rust-bors Bot merged commit 92801ed into rust-lang:main Sep 16, 2026
8 of 15 checks passed
@rustbot rustbot removed 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 added this to the 1.100.0 milestone Sep 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing e15cecc (parent) -> 92801ed (this PR)

Test differences

Show 604 test diffs

Stage 1

  • [ui] tests/ui/consts/const-for.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/next-solver/rpit-in-trait-malformed-bound-globally-156100.rs: [missing] -> pass (J0)
  • [ui] tests/ui-fulldeps/rustc_public/check_abi_cast.rs: [missing] -> ignore (ignored when the bootstrapping stage is stage1) (J2)
  • [ui (polonius)] tests/ui/consts/const-for.rs: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/next-solver/rpit-in-trait-malformed-bound-globally-156100.rs: [missing] -> pass (J3)

Stage 2

  • [ui] tests/ui-fulldeps/rustc_public/check_abi_cast.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-for.rs: pass -> [missing] (J4)
  • [ui] tests/ui/traits/next-solver/rpit-in-trait-malformed-bound-globally-156100.rs: [missing] -> pass (J4)
  • [ui] tests/ui-fulldeps/rustc_public/check_abi_cast.rs: [missing] -> ignore (only executed when the target is x86_64-unknown-linux-gnu) (J5)

Additionally, 595 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 92801ede88f6c10e34df6976a4cfde40142585f2 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-x86_64-msvc-ext3: 1h 14m -> 2h (+61.5%)
  2. test-x86_64-gnu-distcheck: 1h 32m -> 2h 24m (+56.7%)
  3. dist-riscv64-linux-musl: 59m 21s -> 1h 31m (+55.0%)
  4. test-various: 1h 29m -> 2h 18m (+54.9%)
  5. dist-ohos-x86_64: 1h 23m -> 54m 23s (-34.5%)
  6. test-x86_64-gnu-stable: 2h 42m -> 1h 49m (-32.3%)
  7. dist-sparcv9-solaris: 1h 45m -> 1h 13m (-30.0%)
  8. dist-i586-gnu-i586-i686-musl: 21m 42s -> 27m 46s (+28.0%)
  9. test-aarch64-apple-macos-26-1: 1h 57m -> 2h 30m (+27.3%)
  10. test-pr-check-1: 32m 44s -> 41m 35s (+27.0%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (92801ed): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.5% [0.5%, 0.5%] 1
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.5% [0.5%, 0.5%] 1

Max RSS (memory usage)

Results (primary 0.3%, secondary -1.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.6% [0.6%, 3.8%] 5
Regressions ❌
(secondary)
3.4% [3.0%, 4.0%] 3
Improvements ✅
(primary)
-3.6% [-5.8%, -2.2%] 3
Improvements ✅
(secondary)
-4.4% [-4.9%, -4.0%] 6
All ❌✅ (primary) 0.3% [-5.8%, 3.8%] 8

Cycles

Results (primary -2.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.6% [-2.6%, -2.6%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.6% [-2.6%, -2.6%] 1

Binary size

Results (primary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.8%] 12
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.1%, 0.8%] 12

Bootstrap: 494.504s -> 496.571s (0.42%)
Artifact size: 406.72 MiB -> 408.84 MiB (0.52%)

@rust-bors

rust-bors Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#156216 implement const Iterator for Range d590e758c24013648ce05cc7f5cff237acf44971
(link)
#160697 rustc: Tweak the effect of --jobs on frontend parallelism 6efd7e690559249ec4ffdce2c098164f299d327a
(link)
#162748 Enable LLVM Thin LTO for LoongArch64 91790d27e32b77d9d8f553c6e4a119e8765c740e
(link)
#162769 Yeet the DeepRegionResolver (earlier called `Opportunisti… 6fd08ec252167b4dc0beaaa02a791bd5ad39e548
(link)
#162794 Simplify ast::UseTreeKind 22a7d451e1d5da830e84404c99323ac7f913b3dc
(link)
#162800 Cleanups related to RefDecodable e15a3f8b0598500b5e8e308cc03528aaeebdd804
(link)
#162826 wasm: fix ABI for enums with integer layout and ZST fields 1606c5f150d1438a62e88173ee4b44fe722a82ec
(link)
#159359 [rustc_public] Enhance PassMode API e82400817b4f43bae4011899333520a9f06194db
(link)
#162196 Offload cmake cleanups 55279b973eb2df57f12e06a6578e2c667a47333d
(link)
#162818 Add regression test for malformed RPITIT bound ICE with the… 9f5a85dab61b5de3ad826250d3f13e1864fdb3c2
(link)

parent commit: e15ceccfc6

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@Zalathar
Zalathar deleted the rollup-7nlu8K9 branch September 17, 2026 00:15
@Zalathar

Copy link
Copy Markdown
Member Author

@rust-timer triage 22a7d45 e15a3f8

@rust-timer

rust-timer commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator
Running triage with 2 benchmarks

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • nalgebra-0.33.0-new-solver
  • unicode-normalization-0.1.24

#162794 22a7d45 Simplify ast::UseTreeKind

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#162800 e15a3f8 Cleanups related to RefDecodable

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.4% [0.4%, 0.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.4%, 0.4%] 1

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.

flip1995 pushed a commit to flip1995/rust that referenced this pull request Sep 17, 2026
Rollup of 10 pull requests

Successful merges:

 - rust-lang#156216 (implement const Iterator for Range)
 - rust-lang#160697 (rustc: Tweak the effect of `--jobs` on frontend parallelism)
 - rust-lang#162748 (Enable LLVM Thin LTO for LoongArch64)
 - rust-lang#162769 (Yeet the `DeepRegionResolver` (earlier called `OpportunisticRegionResolver`))
 - rust-lang#162794 (Simplify `ast::UseTreeKind`)
 - rust-lang#162800 (Cleanups related to RefDecodable)
 - rust-lang#162826 (wasm: fix ABI for enums with integer layout and ZST fields)
 - rust-lang#159359 ([rustc_public] Enhance PassMode API)
 - rust-lang#162196 (Offload cmake cleanups)
 - rust-lang#162818 (Add regression test for malformed RPITIT bound ICE with the new solver)
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-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. 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. T-rustfmt Relevant to the rustfmt 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.