Skip to content

Rollup of 9 pull requests - #163680

Merged
rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-L685mEZ
Oct 3, 2026
Merged

rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-L685mEZ

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

lcnr and others added 21 commits October 2, 2026 10:02
Document layout of Saturating, similarly to Wrapping
Co-Authored-By: Brian Smith <brian@briansmith.org>
Co-Authored-By: Ralf Jung <post@ralfj.de>
Signed-off-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
Signed-off-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
Signed-off-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
Co-authored-by: Rémy Rakic <remy.rakic+github@gmail.com>
Co-authored-by: Augie Fackler <augie@google.com>
The semantics of `intrinsics::abort()` are closer to what we have
unstably as `abort_immediate()` than to `process::abort()` or
`libc::abort()`. Rename it to make more clear that the intrinsic is more
of an intentional crash with platform-specific behavior than what
`libc::abort()` tries to be (i.e. raising `SIGABRT`).
explicitly handle tests that pass with -Znext-solver

these are all UI tests which pass with the new solver and fail with old. Using explicit revisions here.

Editing some of them to actually test what they should 😁
Send -fno-lto when linker plugin LTO is not requested to avoid having GCC do LTO when using rustc_codegen_gcc

More info on [this Zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Add.20linker.20flag.20from.20the.20codegen/near/375045533).

cc @bjorn3
Update the minimum external LLVM to 22

With this change, we'll have stable support for LLVM 22 and 23.
For reference, the previous increase to LLVM 21 was rust-lang#153684.

cc @rust-lang/wg-llvm @durin42
r? nikic
…update, r=clarfonthey

Docs - type guarantees update

**Content:**
- Pin::map_unchecked | Safety section update
- String::reserve, String::reserve_exact | Panic section update
- Saturating | Introduce Layout section
- Fix typos

**Questions:**

1. This proposes to update String reserve methods docs:

    > Panics if the new capacity overflows [`usize`].

    ->

    > Panics if the new capacity exceeds [`isize::MAX`] bytes.

    There are a few other types that are based on Vec and offer similar reserve API (like BinaryHeap).
    Should they be updated, too?

ACP: ~~rust-lang/libs-team#482 [not required]
…docs, r=RalfJung

Distinguish `repr(C)` ZSTs from others in ABI compatibility rules

FCP: rust-lang#157973 (comment)

(Split out from compiler implementation in rust-lang#156112)

Some C ABIs pass and return ZSTs by pointer. But `()` should never be returned by pointer, as it must match `void`. To account for this, we have to weaken the present guarantee of "any two types with size 0 and alignment 1 are ABI-compatible" to exclude `repr(C)`.

[t-lang nomination summary comment](rust-lang#157973 (comment))

Fixes rust-lang/unsafe-code-guidelines#552; see also rust-lang#78586, rust-lang#155299.
Also related to rust-lang#155984.

@rustbot label T-lang A-ABI needs-fcp
…flow, r=lcnr

preserve overflow in builtin Field candidates

preserve overflow from the builtin Field candidate instead of treating it as `NoSolution`
the Sized requirements are now evaluated inside the candidate probe and coherence correctly rejects overlapping impls when evaluation overflows.

fixes rust-lang#162125
…r=clarfonthey

intrinsics: Rename `abort` to `abort_immediate`

The semantics of `intrinsics::abort()` are closer to what we have unstably as `abort_immediate()` than to `process::abort()` or `libc::abort()`. Rename it to make more clear that the intrinsic is more of an intentional crash with platform-specific behavior than what `libc::abort()` tries to be (i.e. raising `SIGABRT`).

If desired, a new intrinsic like `abort_gracefully` could be introduced that performs platform-specific behavior. This would more cleanly unblock rust-lang#149780.

See also discussion at the tracking issue for `immediate_abort` rust-lang#154601.
avoid trivial `fn map_bound` validations

when compiling `zerocopy` a lot of time is spent simply checking the bound vars in `Clause::kind` because it does
```rust
        self.0.internee.map_bound(|kind| match kind {
            PredicateKind::Clause(clause) => clause,
            _ => unreachable!(),
        })
```
let's make performance with `debug_assertions` a bit better:

`zerocopy` with `-Znext-solver`:
```
16884862 counts
(  1) 12189626 (72.2%, 72.2%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:174:25
(  2)  1853971 (11.0%, 83.2%): Binder::map_bound called at compiler/rustc_type_ir/src/binder.rs:89:14
(  3)  1443803 ( 8.6%, 91.7%): Binder::map_bound called at compiler/rustc_type_ir/src/inherent.rs:493:14
(  4)   572570 ( 3.4%, 95.1%): Binder::map_bound called at compiler/rustc_type_ir/src/predicate.rs:234:14
(  5)   272733 ( 1.6%, 96.7%): Binder::map_bound called at compiler/rustc_type_ir/src/inherent.rs:507:14
(  6)   184934 ( 1.1%, 97.8%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:523:14
(  7)   183998 ( 1.1%, 98.9%): Binder::map_bound called at compiler/rustc_type_ir/src/predicate.rs:251:14
```
`zerocopy` with `-Znext-solver=no`
```
13476410 counts
(  1)  9906183 (73.5%, 73.5%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:174:25
(  2)  2107825 (15.6%, 89.1%): Binder::map_bound called at compiler/rustc_type_ir/src/binder.rs:89:14
(  3)   376524 ( 2.8%, 91.9%): Binder::map_bound called at compiler/rustc_type_ir/src/inherent.rs:493:14
(  4)   321976 ( 2.4%, 94.3%): Binder::map_bound called at compiler/rustc_type_ir/src/predicate.rs:251:14
(  5)   262305 ( 1.9%, 96.3%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:523:14
(  6)    84143 ( 0.6%, 96.9%): Binder::map_bound called at compiler/rustc_infer/src/infer/outlives/verify.rs:49:47
(  7)    83876 ( 0.6%, 97.5%): Binder::map_bound called at compiler/rustc_infer/src/traits/mod.rs:183:24
```
compiling `std`:
```
32803629 counts
(  1) 12234204 (37.3%, 37.3%): Binder::map_bound called at compiler/rustc_type_ir/src/binder.rs:89:14
(  2)  9624749 (29.3%, 66.6%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:174:25
(  3)  3805442 (11.6%, 78.2%): Binder::map_bound called at compiler/rustc_type_ir/src/inherent.rs:493:14
(  4)  2542468 ( 7.8%, 86.0%): Binder::map_bound called at compiler/rustc_type_ir/src/predicate.rs:234:14
(  5)  1229480 ( 3.7%, 89.7%): Binder::map_bound called at compiler/rustc_middle/src/ty/predicate.rs:523:14
(  6)  1176716 ( 3.6%, 93.3%): Binder::map_bound called at compiler/rustc_type_ir/src/predicate.rs:251:14
(  7)   385823 ( 1.2%, 94.5%): Binder::map_bound called at compiler/rustc_type_ir/src/inherent.rs:507:14
```
Could spend more effort to avoid the validation in trivial `Binder::fold_with`, but that's not worth it I think.

cc https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/casual.20chat.20and.20support/near/628479010
yeet compare-mode-coherence

`-Znext-solver=coherence` is stable
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 2, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool F-explicit_tail_calls `#![feature(explicit_tail_calls)]` labels Oct 2, 2026
@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. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 3, 2026
@rust-bors

rust-bors Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 1199dc5 failed: CI. Failed job:

@jhpratt

jhpratt commented Oct 3, 2026

Copy link
Copy Markdown
Member

@bors retry spurious

@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 Oct 3, 2026
@rust-bors

This comment has been minimized.

@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 Oct 3, 2026
@rust-bors

rust-bors Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

💥 Test timed out after 21600s

@rust-highfive

Copy link
Copy Markdown
Contributor

📣 Toolstate changed by #163680!

Tested on commit b6e4b5c.
Direct link to PR: #163680

💔 nomicon on windows: test-pass → test-fail (cc @JohnTitor @traviscross).
💔 nomicon on linux: test-pass → test-fail (cc @JohnTitor @traviscross).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Oct 3, 2026
Tested on commit rust-lang/rust@b6e4b5c.
Direct link to PR: <rust-lang/rust#163680>

💔 nomicon on windows: test-pass → test-fail (cc @JohnTitor @traviscross).
💔 nomicon on linux: test-pass → test-fail (cc @JohnTitor @traviscross).
@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 Oct 3, 2026
@rust-bors

rust-bors Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 2h 59m 2s
Pushing b6e4b5c to main...

@github-actions

github-actions Bot commented Oct 3, 2026

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 e0452e2 (parent) -> b6e4b5c (this PR)

Test differences

Show 2331 test diffs

Stage 1

  • [ui] tests/ui/const-generics/gca/require-next-solver.rs: pass -> [missing] (J0)
  • [ui] tests/ui/explicit-tail-calls/rpit.rs: pass -> [missing] (J0)
  • [ui] tests/ui/explicit-tail-calls/rpit.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/float/minmax.rs: pass -> [missing] (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs: pass -> [missing] (J0)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/rpit/early_bound.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/rpit/non-defining-use-lifetimes.rs: pass -> [missing] (J0)
  • [ui] tests/ui/impl-trait/rpit/non-defining-use-lifetimes.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/rpit/non-defining-use.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/iterators/generator_capture_.rs: pass -> [missing] (J0)
  • [ui] tests/ui/iterators/iter-macro-not-async-closure.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/lazy-type-alias-impl-trait/recursion3.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/marker_trait_attr/overlap-marker-trait-with-static-lifetime.rs: pass -> [missing] (J0)
  • [ui] tests/ui/type-alias-impl-trait/defined-in-closure-external-lifetime.rs: pass -> [missing] (J0)
  • [ui] tests/ui/type-alias-impl-trait/generic-not-strictly-equal.rs#next_basic: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/impl_trait_for_tait_bound.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-infer.rs: pass -> [missing] (J0)
  • [ui] tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-int-infer.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/param_mismatch4.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/param_mismatch4.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/type-alias-impl-trait/taint.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/const-generics/gca/require-next-solver.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/error-codes/E0275.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/error-codes/E0275.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/explicit-tail-calls/support/byval.rs#riscv: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/float/minmax.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/impl-trait/recursive-ice-101862.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/impl-trait/rpit/non-defining-use.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/impl-trait/rpit/non-defining-use.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/iterators/generator_capture_2.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/iterators/iter-macro-not-async-closure.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/lazy-type-alias-impl-trait/branches.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/lazy-type-alias-impl-trait/branches.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/lazy-type-alias-impl-trait/branches.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/lazy-type-alias-impl-trait/recursion3.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/lazy-type-alias-impl-trait/recursion3.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/marker_trait_attr/overlap-marker-trait-with-static-lifetime.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/marker_trait_attr/overlap-marker-trait-with-underscore-lifetime.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/marker_trait_attr/overlap-marker-trait-with-underscore-lifetime.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/type-alias-impl-trait/defined-in-closure-external-lifetime.rs#current: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/type-alias-impl-trait/defined-in-closure-external-lifetime.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/type-alias-impl-trait/param_mismatch4.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/type-alias-impl-trait/reveal_local.rs#next: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/type-alias-impl-trait/taint.rs: pass -> [missing] (J2)
  • [codegen] tests/codegen-llvm/amdgpu-addrspacecast.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs#LLVM22: pass -> [missing] (J3)
  • [codegen] tests/codegen-llvm/vecdeque_pop_push.rs#new: pass -> [missing] (J3)
  • [codegen] tests/codegen-llvm/amdgpu-addrspacecast.rs#LLVM21: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J5)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs#LLVM21: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J5)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs#old: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J5)
  • [codegen] tests/codegen-llvm/scalable-vectors/debuginfo.rs#POST-LLVM-22: ignore (only executed when the architecture is aarch64) -> [missing] (J10)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs#old: ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) -> [missing] (J10)
  • [ui] tests/ui/explicit-tail-calls/support/bystack.rs#riscv: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J10)

Stage 2

  • [codegen] tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs#old: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [codegen] tests/codegen-llvm/scalable-vectors/debuginfo.rs#PRE-LLVM-22: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs#LLVM21: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs#LLVM21: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-store.rs#LLVM21: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs#old: ignore (ignored when the LLVM version (23.1.1) is newer than majorversion 21) -> [missing] (J1)
  • [ui] tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs: pass -> [missing] (J4)
  • [ui] tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/explicit-tail-calls/rpit.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs: pass -> [missing] (J4)
  • [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-71955.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/impl-trait/recursive-ice-101862.rs: pass -> [missing] (J4)
  • [ui] tests/ui/impl-trait/recursive-ice-101862.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/impl-trait/rpit/non-defining-use-lifetimes.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/impl-trait/rpit/non-defining-use.rs: pass -> [missing] (J4)
  • [ui] tests/ui/iterators/generator_capture_2.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/iterators/iter-macro-not-async-closure.rs: pass -> [missing] (J4)
  • [ui] tests/ui/iterators/iter-macro-not-async-closure.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/iterators/iter-macro-not-async-closure.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/lazy-type-alias-impl-trait/branches.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/lazy-type-alias-impl-trait/recursion3.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/lifetimes/conflicting-bounds.rs: pass -> [missing] (J4)
  • [ui] tests/ui/lifetimes/conflicting-bounds.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/type-alias-impl-trait/generic-not-strictly-equal.rs#next_member_constraints: [missing] -> pass (J4)
  • [ui] tests/ui/type-alias-impl-trait/reveal_local.rs#current: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/amdgpu-addrspacecast.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs#LLVM22: pass -> [missing] (J6)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs#LLVM22: pass -> [missing] (J6)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs#LLVM21: ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) -> [missing] (J7)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs#LLVM21: ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) -> [missing] (J7)
  • [ui] tests/ui/explicit-tail-calls/support/byval.rs#riscv: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J7)
  • [run-make] tests/run-make/fno-lto: [missing] -> ignore (llvm backend is not part of required backends) (J8)
  • [codegen] tests/codegen-llvm/scalable-vectors/debuginfo.rs: [missing] -> ignore (only executed when the operating system is linux) (J9)
  • [ui] tests/ui/explicit-tail-calls/support/byval.rs#riscv: [missing] -> pass (J11)
  • [codegen] tests/codegen-llvm/scalable-vectors/debuginfo.rs: [missing] -> pass (J12)
  • [codegen] tests/codegen-llvm/scalable-vectors/debuginfo.rs#POST-LLVM-22: pass -> [missing] (J12)

(and 215 additional test diffs)

Additionally, 2016 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 b6e4b5c4e954f26d2ac32d2fb11d92192bf905ee --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. dist-arm-linux-musl: 1h 7m -> 1h 50m (+63.7%)
  2. test-x86_64-gnu-debug: 1h 24m -> 2h 11m (+56.3%)
  3. test-armhf-gnu: 1h 2m -> 1h 36m (+54.9%)
  4. test-x86_64-gnu-tools: 45m 46s -> 1h 10m (+54.2%)
  5. dist-x86_64-msvc-alt: 1h 55m -> 2h 52m (+49.4%)
  6. test-x86_64-gnu-next-trait-solver-polonius: 43m 7s -> 1h 1m (+42.1%)
  7. dist-s390x-linux: 1h 4m -> 1h 30m (+41.7%)
  8. test-x86_64-gnu-aux: 2h 40m -> 1h 38m (-38.6%)
  9. test-pr-check-1: 40m 32s -> 25m 7s (-38.0%)
  10. test-x86_64-gnu-gcc: 1h 24m -> 53m 29s (-36.9%)
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 (b6e4b5c): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary -0.8%, secondary 4.8%)

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)
4.8% [3.6%, 6.0%] 2
Improvements ✅
(primary)
-0.8% [-0.8%, -0.8%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.8% [-0.8%, -0.8%] 1

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.

Bootstrap: 491.518s -> 490.028s (-0.30%)
Artifact size: 408.68 MiB -> 407.45 MiB (-0.30%)

@rust-bors

rust-bors Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163655 explicitly handle tests that pass with -Znext-solver b6f3bc25f1d5856333ed0de7e1db018cd96029ff
(link)
#159924 Send -fno-lto when linker plugin LTO is not requested to av… c4a3041f54fe5148dfb5b4ea829791d16d34edac
(link)
#163572 Update the minimum external LLVM to 22 146275d50b015583ac5c2734c88b4e8a76b7b220
(link)
#129822 Docs - type guarantees update d93b144490523ddcf6a0218e18478b98ceef2288
(link)
#157973 Distinguish repr(C) ZSTs from others in ABI compatibility… 67108d55222328e3e6e54fed360f47a443ac8763
(link)
#162332 preserve overflow in builtin Field candidates 54ed93770331d2bcb359c663354107363dfe69d9
(link)
#163574 intrinsics: Rename abort to abort_immediate ddf5a7cd5ce4ee5f9eb4f20da4719e99a4a1a18e
(link)
#163638 avoid trivial fn map_bound validations ee54993a4f245473cab51900dafdbfd8ffcdf65f
(link)
#163660 yeet compare-mode-coherence 0826a971a196597bcb985dbbf70f3f1b5997b4c0
(link)

parent commit: e0452e266c

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool F-explicit_tail_calls `#![feature(explicit_tail_calls)]` merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like O-windows Operating system: Windows rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. 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.