Skip to content

Rollup of 23 pull requests - #162907

Merged
rust-bors[bot] merged 56 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZYkL9DX
Sep 17, 2026
Merged

rust-bors[bot] merged 56 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZYkL9DX

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

ChayimFriedman2 and others added 30 commits August 10, 2026 01:08
Giving access to `std::os::windows::process::ChildExt::main_thread_handle()`.
It does not look like these items are actually used by rustc.
This is to make it easy to update the static template, like its skeleton or style,
and add features there, instead of doing it all with rust code. The dynamic sections
are marked as dummy tokens and are replaced when dumping the MIR.
display a list of all the nodes each loan can reach (and whether the node's region
is live at the node's point)
Loan traces can be big and numerous, so we hide them by default. We instead
use a button to show a loan's trace.
margins and spacing, section separators, reachability layout, etc.
This API is in FCP, but there are no examples and much of it is
untested. Add examples here.
Item bounds already instantiate higher-ranked GAT arguments with identity parameters. Compare the bound self type with the identity alias directly, and treat any remaining bound region as static.
Co-authored-by: Amanda Stjerna <amanda@stjerna.space>
Co-authored-by: Jack Huey <31162821+jackh726@users.noreply.github.com>
Right now things are undertested and underspecified.

Some of the library code would get in a loop if searcher starts
returning empty rejects.

And there's no tests for backwards multi byte char matchers. Pull
request I'm reviving had a problem implementing that, so making sure
it's tested before the actual code lands.

Right now it is possible to break both tests (and user code) without
breaking anything else in the test suite I think.
LLVM prior to 24 didn't do some optimizations around call slots on
pointers without `dereferenceable` set. A recent change enhanced the
optimizer so it can handle that case (at least in this test) so we relax
the checks here slightly. We still (from what I can tell) demonstrate
that `sse41_blend_nofeature` is not inlined, which seems to be the
import part of this region of the test.
`annotate-snippets-rs` supports pointing at `Span`s without an underline. Start using that feature in `rustc`. We currently use secondary span labels with no text to point at context that should appear in the diagnostic, but that are merely context.
Generally `rustc_middle::query` has types while `rustc_query_impl` has
operations. So this commit moves some operations from the former to the
latter. Some of them are just moved, while others are inlined and
removed.
The old name `implement_ty_decoder!` historically made some sense, but nowadays
is quite misleading for a macro that only forwards Decoder methods.

Requiring the caller to provide the `impl` block makes the calling code
clearer, while also reducing the complexity of dealing with generics. The
downside is a little less context at the macro-definition site, which seems
fine.

The closure-like syntax allows for arbitrary expressions involving `self`,
without running into hygiene problems and without requiring separate closures
for `&self` and `&mut self` methods. It also works well with IDE hover hints.
@rust-bors

rust-bors Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 10s
Pushing 76af58f to main...

@rust-bors
rust-bors Bot merged commit 76af58f into rust-lang:main Sep 17, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 17, 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 c999cef (parent) -> 76af58f (this PR)

Test differences

Show 1372 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_be_unknown_linux_gnu: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_be_unknown_linux_gnu_ilp32: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_linux_pauthtest: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv6_unknown_freebsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_linux_androideabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_linux_gnueabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_linux_ohos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_linux_uclibceabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_trusty: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7a_kmc_solid_asp3_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#i586_unknown_linux_gnu: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#i686_unknown_helenos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#loongarch32_unknown_none_softfloat: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#m68k_unknown_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mipsel_mti_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mipsisa64r6_unknown_linux_gnuabi64: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc_unknown_linux_gnuspe: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc_wrs_vxworks: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32e_unknown_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32ima_unknown_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32imafc_esp_espidf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32imafc_unknown_nuttx_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32imc_unknown_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64_oe_linux_gnu: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_fuchsia: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_managarm_mlibc: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#sparc64_unknown_netbsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#sparcv9_sun_solaris: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv4t_none_eabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv5te_none_eabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7a_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7r_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv8m_main_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#wasm32_wali_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#wasm32_wasip1: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#wasm32_wasip3: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#wasm64_unknown_unknown: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_linux_android: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unikraft_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_helenos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_illumos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_linux_gnux32: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_linux_ohos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_motor: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_trusty: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s2_espidf: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J0)
  • pattern::two_way_next_reject_never_reports_empty_reject: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s2_espidf: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/rigid-alias-liveness-issue-160206.rs: [missing] -> pass (J6)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/drop-liveness-invariance-issue-160670.rs#nll: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J8)
  • [ui (polonius)] tests/ui/traits/next-solver/rigid-alias-liveness-issue-160206.rs: [missing] -> pass (J8)
  • [mir-opt] tests/mir-opt/match_branch_simplification_aliasing.rs: [missing] -> pass (J9)

Stage 2

  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_kmc_solid_asp3: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_nto_qnx700: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_redox: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#arm_unknown_linux_gnueabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armeb_unknown_linux_gnueabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv6_none_eabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv6k_nintendo_3ds: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_freebsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_linux_gnueabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7_unknown_linux_uclibceabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#armv7a_kmc_solid_asp3_eabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#loongarch64_unknown_none: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#m68k_unknown_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mips64_unknown_linux_muslabi64: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mips_mti_none_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mips_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#mipsel_sony_psp: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc64le_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc_unknown_freebsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32_wrs_vxworks: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32gc_unknown_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_hermit: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_nuttx_elf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#sparc64_unknown_helenos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#sparc64_unknown_linux_gnu: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7a_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7a_nuttx_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7neon_unknown_linux_musleabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7r_none_eabi: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv7r_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#thumbv8m_main_none_eabihf: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#wasm32_wali_linux_musl: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_oe_linux_gnu: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_freebsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_helenos: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_none: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#x86_64_unknown_openbsd: pass -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s3_espidf: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s3_none_elf: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s2_none_elf: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#xtensa_esp32s3_none_elf: [missing] -> pass (J2)
  • num::complex::complex_conjugate: [missing] -> pass (J5)
  • num::complex::complex_negation: [missing] -> pass (J5)
  • [ui] tests/ui/traits/next-solver/rigid-alias-liveness-issue-160206.rs: [missing] -> pass (J7)
  • [crashes] tests/crashes/160553.rs: pass -> [missing] (J10)

(and 496 additional test diffs)

Additionally, 776 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 76af58f665c5cd76672e64ca118efbb0101fb224 --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-x86_64-msvc-alt: -> 2h 17m (+inf%)
  2. test-aarch64-gnu-debug: -> 1h 19m (+inf%)
  3. test-x86_64-gnu-gcc: -> 1h 24m (+inf%)
  4. dist-x86_64-msvc: -> 3h 9m (+inf%)
  5. dist-arm-linux-gnueabi: -> 1h 30m (+inf%)
  6. test-x86_64-gnu-parallel-frontend: -> 2h 4m (+inf%)
  7. dist-powerpc64-linux-gnu: -> 1h 39m (+inf%)
  8. dist-powerpc64le-linux-gnu: -> 1h 38m (+inf%)
  9. test-aarch64-gnu-llvm-21-2: -> 42m 36s (+inf%)
  10. test-x86_64-mingw-2: -> 2h 48m (+inf%)
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-bors

rust-bors Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#161596 coretests: Add more pattern tests. e06b230e74b0e7a9aa019c2ee9bf95c9eb1b09f8
(link)
#162411 Make Receiver #[rustc_dyn_incompatible_trait] 5fbcfadc58c20f7bcf3e8cf1127e4d2c721eb194
(link)
#162760 yeet alias new_from_def_id 509c753094afaecab63acef310140c067cf0c520
(link)
#162796 libtest: do not early exit from test runners 0581d810aca12726224df0b7c04f1b49ce43849f
(link)
#162844 Add loan reachability traces to polonius MIR dumps 3bfa0accdc6aaae6e7a95e797260e4f79748ac64
(link)
#162876 Move operations out of rustc_middle::query::job 7775c35b93acbb05e6f88622fdd685a86ae4a693
(link)
#160108 Stabilize windows_process_extensions_main_thread_handle 2dc7eb16c86f72b34fb0b54f2e5940de7f67f2bc
(link)
#160212 traits: Fix rigid alias liveness matching e64de43fbe45238d7cef1c049f9b74b35a4bc42d
(link)
#160544 Stabilize feature(trim_prefix_suffix) (`{str, [T], Path}:… 873883ae1cbef4006959ccf8d9269f965b5add6f
(link)
#161305 Use the entire type of a dropped local to compute variance … 1c9b0c44c3ca7b648c6d9d1e0158a3bc2eec8bd0
(link)
#161838 tests: accept LLVM 24 optimization in this test d4ec1603c110f027f694b797b1c127454a0eac04
(link)
#162312 core: Rewrite docs for try_as_dyn 7c01ae94fb0609b896eb33f081eaf94634cef3c1
(link)
#162785 Avoid creating overlapping assignments in MatchBranchSimpli… 94320310cc56c8ad5c833f31a411ba1885119084
(link)
#162805 Add must_use lint to ExitCode 60933760d74314ece411afd60dff769680ee80cb
(link)
#162825 core: Add examples for debug_closure_helpers fa6c73bfb8b0bfc3811e03a972215e832d74fa98
(link)
#162841 enable asm tests for xtensa targets f6f393ebb8af3bde263e23443c6d3ccd1c4a4b3d
(link)
#162842 reintroduce check RibKind::ConstParamTy did in direct consts c6044ac866761f640c4d97577ca5f3cd7d63678d
(link)
#162845 mgca: fix issue with mismatched array valtree/valtree tys 5c983d0738ffb037922c56305369d337a9b0e11d
(link)
#162856 Stabilize CommandExt::show_window 72c56c93d9d7ee8fbb7439943a127177e1153bc1
(link)
#162865 Complex conjugate, negation and default 3a42b0753aaeced1f3192c88918c124a6ee20f14
(link)
#162874 Add support for `annotate_snippets::snippet::AnnotationKind… e2eef9968b1df9396b6091891ce47c08592fd4f7
(link)
#162881 Simplify the macro for forwarding Decoder methods 1008424aee35b4e0ee847fed508a4d5d32dce2d9
(link)
#162888 Fix a typo on the Armv7-R platform docs page 16f52a3b00122e7cbe476f85ce5ee11f46247e59
(link)

parent commit: c999cef531

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

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (76af58f): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.2% [0.1%, 0.3%] 33
Regressions ❌
(secondary)
0.2% [0.1%, 0.4%] 14
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) 0.2% [0.1%, 0.3%] 33

Max RSS (memory usage)

Results (primary -4.6%, secondary 1.9%)

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

mean range count
Regressions ❌
(primary)
1.5% [1.5%, 1.5%] 1
Regressions ❌
(secondary)
5.0% [3.2%, 7.2%] 9
Improvements ✅
(primary)
-6.6% [-15.2%, -2.2%] 3
Improvements ✅
(secondary)
-2.9% [-4.6%, -1.9%] 6
All ❌✅ (primary) -4.6% [-15.2%, 1.5%] 4

Cycles

Results (primary 2.1%, secondary 3.4%)

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

mean range count
Regressions ❌
(primary)
2.1% [2.1%, 2.1%] 1
Regressions ❌
(secondary)
3.4% [2.8%, 4.0%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.1% [2.1%, 2.1%] 1

Binary size

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

Bootstrap: 500.132s -> 498.345s (-0.36%)
Artifact size: 406.81 MiB -> 408.96 MiB (0.53%)

@rustbot rustbot added the perf-regression Performance regression. label Sep 17, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rust-timer triage all
Let's see how long this takes :) I think it's probably fine?

@rust-timer

rust-timer commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator
Running triage with 23 benchmarks

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

  • cargo-0.87.1
  • clap_derive-4.5.32
  • cranelift-codegen-0.119.0
  • eza-0.21.2
  • html5ever-0.31.0
  • html5ever-0.31.0-new-solver
  • hyper-1.6.0
  • image-0.25.6
  • include-blob
  • issue-58319
  • nalgebra-0.33.0
  • nalgebra-0.33.0-new-solver
  • projection-caching
  • regex-automata-0.4.8
  • regression-31157
  • ripgrep-14.1.1
  • serde-1.0.219
  • serde-1.0.219-new-solver
  • serde_derive-1.0.219
  • stm32f4-0.15.1
  • syn-2.0.101
  • syn-2.0.101-new-solver
  • tokio-1.53.1

#161596 e06b230 coretests: Add more pattern tests.

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
Regressions ❌
(secondary)
0.3% [0.2%, 0.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.2%)

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.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 1

Cycles

Results (secondary 4.1%)

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.1% [4.1%, 4.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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


#162411 5fbcfad Make Receiver #[rustc_dyn_incompatible_trait]

Queued 5fbcfad with parent c999cef, future comparison URL.
There are currently 2 preceding artifacts in the queue.
It will probably take at least ~1.5 hours until the benchmark run finishes.


#162760 509c753 yeet alias new_from_def_id

Queued 509c753 with parent c999cef, future comparison URL.
There are currently 3 preceding artifacts in the queue.
It will probably take at least ~2.3 hours until the benchmark run finishes.


#162796 0581d81 libtest: do not early exit from test runners

Queued 0581d81 with parent c999cef, future comparison URL.
There are currently 4 preceding artifacts in the queue.
It will probably take at least ~3.0 hours until the benchmark run finishes.


#162844 3bfa0ac Add loan reachability traces to polonius MIR dumps

Queued 3bfa0ac with parent c999cef, future comparison URL.
There are currently 5 preceding artifacts in the queue.
It will probably take at least ~3.8 hours until the benchmark run finishes.


#162876 7775c35 Move operations out of rustc_middle::query::job

Queued 7775c35 with parent c999cef, future comparison URL.
There are currently 6 preceding artifacts in the queue.
It will probably take at least ~4.5 hours until the benchmark run finishes.


#160108 2dc7eb1 Stabilize windows_process_extensions_main_thread_handle

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)

Results (primary -2.1%)

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.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 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.


#160212 e64de43 traits: Fix rigid alias liveness matching

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)

Results (primary -2.3%, secondary -2.2%)

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.3% [-2.3%, -2.3%] 1
Improvements ✅
(secondary)
-2.2% [-2.2%, -2.2%] 1
All ❌✅ (primary) -2.3% [-2.3%, -2.3%] 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.


#160544 873883a Stabilize feature(trim_prefix_suffix) ({str, [T], Path}::trim_prefix and {str, [T]}::trim_suffix)

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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.2%, secondary -2.2%)

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.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
-2.2% [-2.3%, -2.0%] 2
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 1

Cycles

Results (secondary 4.2%)

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.2% [4.2%, 4.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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


#161305 1c9b0c4 Use the entire type of a dropped local to compute variance (edge direction) for Polonius alpha

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.2% [0.1%, 0.4%] 33
Regressions ❌
(secondary)
0.2% [0.1%, 0.3%] 11
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) 0.2% [0.1%, 0.4%] 33

Max RSS (memory usage)

Results (primary -0.4%, secondary -2.2%)

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

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

Cycles

Results (primary 2.6%, secondary 3.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% [2.5%, 2.7%] 2
Regressions ❌
(secondary)
3.8% [3.8%, 3.8%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.6% [2.5%, 2.7%] 2

Binary size

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


#161838 d4ec160 tests: accept LLVM 24 optimization in this test

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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.2%)

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.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 1

Cycles

Results (primary 2.7%)

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

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

Binary size

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


#162312 7c01ae9 core: Rewrite docs for try_as_dyn

Queued 7c01ae9 with parent c999cef, future comparison URL.
There are currently 7 preceding artifacts in the queue.
It will probably take at least ~5.3 hours until the benchmark run finishes.


#162785 9432031 Avoid creating overlapping assignments in MatchBranchSimplification

Queued 9432031 with parent c999cef, future comparison URL.
There are currently 10 preceding artifacts in the queue.
It will probably take at least ~7.6 hours until the benchmark run finishes.


#162805 6093376 Add must_use lint to ExitCode

Queued 6093376 with parent c999cef, future comparison URL.
There are currently 12 preceding artifacts in the queue.
It will probably take at least ~9.1 hours until the benchmark run finishes.


#162825 fa6c73b core: Add examples for debug_closure_helpers

Queued fa6c73b with parent c999cef, future comparison URL.
There are currently 13 preceding artifacts in the queue.
It will probably take at least ~9.8 hours until the benchmark run finishes.


#162841 f6f393e enable asm tests for xtensa targets

Queued f6f393e with parent c999cef, future comparison URL.
There are currently 14 preceding artifacts in the queue.
It will probably take at least ~10.6 hours until the benchmark run finishes.


#162842 c6044ac reintroduce check RibKind::ConstParamTy did in direct consts

Queued c6044ac with parent c999cef, future comparison URL.
There are currently 15 preceding artifacts in the queue.
It will probably take at least ~11.3 hours until the benchmark run finishes.


#162845 5c983d0 mgca: fix issue with mismatched array valtree/valtree tys

Queued 5c983d0 with parent c999cef, future comparison URL.
There are currently 17 preceding artifacts in the queue.
It will probably take at least ~12.9 hours until the benchmark run finishes.


#162856 72c56c9 Stabilize CommandExt::show_window

Queued 72c56c9 with parent c999cef, future comparison URL.
There are currently 18 preceding artifacts in the queue.
It will probably take at least ~13.6 hours until the benchmark run finishes.


#162865 3a42b07 Complex conjugate, negation and default

Queued 3a42b07 with parent c999cef, future comparison URL.
There are currently 19 preceding artifacts in the queue.
It will probably take at least ~14.4 hours until the benchmark run finishes.


#162874 e2eef99 Add support for annotate_snippets::snippet::AnnotationKind::Visible

Queued e2eef99 with parent c999cef, future comparison URL.
There are currently 20 preceding artifacts in the queue.
It will probably take at least ~15.1 hours until the benchmark run finishes.


#162881 1008424 Simplify the macro for forwarding Decoder methods

Queued 1008424 with parent c999cef, future comparison URL.
There are currently 22 preceding artifacts in the queue.
It will probably take at least ~16.6 hours until the benchmark run finishes.


#162888 16f52a3 Fix a typo on the Armv7-R platform docs page

Queued 16f52a3 with parent c999cef, future comparison URL.
There are currently 23 preceding artifacts in the queue.
It will probably take at least ~17.4 hours until the benchmark run finishes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler 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. 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.