Skip to content

Rollup of 24 pull requests#159046

Merged
rust-bors[bot] merged 102 commits into
rust-lang:mainfrom
jhpratt:rollup-mqQhHMX
Jul 10, 2026
Merged

Rollup of 24 pull requests#159046
rust-bors[bot] merged 102 commits into
rust-lang:mainfrom
jhpratt:rollup-mqQhHMX

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 10, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

jackh726 and others added 30 commits June 26, 2026 15:04
This change prevents our lints from returning a span with stuff in it
that isn't actually part of the doc comment. When that happens, it
returns `None` instead.
It requires an allocation, and doesn't seem to help in practice.
Fixes a nit found during review.
Co-authored-by: binarycat <binarycat@envs.net>
Co-authored-by: binarycat <binarycat@envs.net>
Co-authored-by: binarycat <binarycat@envs.net>
The function `fn best_blame_constraint()` returns a
`Vec<OutlivesConstraint>` and a `BlameConstraint`. The `BlameConstraint`
is really just a slimmed down version of an `OutlivesConstraint`. So we
can remove `BlameConstraint` entirely and instead return
`Vec<OutlivesConstraint>` and an index into that `Vec`. (Encapsulated in
a struct for nice ergonomics.)

To prepare for that, change the code to adjust `Vec<OutlivesConstraint>`
in-place and return info about the adjusted element, rather than
returning info for a newly created "fake" `OutlivesConstraint`.
A recent change in InstSimplify is able to skip the `and` in this
codegen, which is strictly an improvement. We accept the new version on
newer LLVM and the old verison on older ones using the revisions system.

The change in array-cmp.rs appears to have come from the same revision,
so I gave it the same treatment. It's weirder to me though, because it
merely changes the order of the phi operands which if I understand right
doesn't actually matter.
@rustbot rustbot added T-rustdoc Relevant to the rustdoc 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) labels Jul 10, 2026
@jhpratt

jhpratt commented Jul 10, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1,i686-msvc-*

@rust-bors

rust-bors Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 589dd84 has been approved by jhpratt

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 Jul 10, 2026
@rust-bors

This comment has been minimized.

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


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
try-job: i686-msvc-*
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 6d30cdc (6d30cdc5bf6516fea832fb29050bbdb3a305821b)
Base parent: af3d955 (af3d95584dbddcae597890340995509a7fb47a50)

@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 Jul 10, 2026
@rust-bors

rust-bors Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 7m 21s
Pushing 3ead112 to main...

@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 d465559 (parent) -> 3ead112 (this PR)

Test differences

Show 1510 test diffs

Stage 1

  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#edition2015: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#edition2024: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives-env.rs#edition2015: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives-env.rs#edition2024: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives-implied.rs#polonius_alpha: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives.rs#polonius_alpha: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/nested-rpit.rs: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2024: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> pass (J1)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#edition2024: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/direct-const-arg-feature-gate.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/direct-const-arg-multiple-exprs.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/mgca/double-wrapped-path-not-accidentally-stabilized.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/generics/const-predicates-ice-158675.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_const/malformed_format_literals.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2024: pass -> [missing] (J1)
  • [ui] tests/ui/impl-trait/hidden-lifetimes.rs#edition2015: pass -> [missing] (J1)
  • [ui] tests/ui/impl-trait/hidden-lifetimes.rs#edition2024: pass -> [missing] (J1)
  • [ui] tests/ui/impl-trait/hidden-lifetimes.rs#polonius_alpha: pass -> [missing] (J1)
  • [ui] tests/ui/nll/polonius/allow-backward-incompatible-drop-hint.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/arg-count-ice-issue-158482.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-ptr-ptr-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-ptr-rust-call.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/hygiene.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-in-type-arg-for-swap.rs#edition2015: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-in-type-arg-for-swap.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-outlives-env.rs#edition2015: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-outlives-env.rs#polonius_alpha: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-outlives-implied.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/gat-outlives-implied.rs#polonius_alpha: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpit-hidden-erased-unsoundness.rs#edition2024: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#edition2015: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpitit-hide-lifetime-for-swap.rs#edition2024: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/rpitit-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) (J4)
  • [ui (polonius)] tests/ui/borrowck/alias-liveness/tait-hidden-erased-unsoundness-2.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/const-generics/mgca/double-wrapped-path-not-accidentally-stabilized.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/impl-trait/alias-liveness/rpit-hidden-erased-unsoundness.rs#edition2015: pass -> [missing] (J4)
  • [ui (polonius)] tests/ui/impl-trait/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2015: ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) -> [missing] (J4)
  • [ui (polonius)] tests/ui/impl-trait/alias-liveness/rpit-hide-lifetime-for-swap.rs#polonius_alpha: ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) -> [missing] (J4)
  • [ui (polonius)] tests/ui/impl-trait/hidden-lifetimes.rs#edition2024: ignore (ignored when comparing with compare-mode-polonius ((explicit revisions))) -> [missing] (J4)
  • [ui (polonius)] tests/ui/nll/polonius/allow-backward-incompatible-drop-hint.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/splat/splat-fn-ptr-ptr-tuple.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/splat/splat-fn-ptr-rust-call.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/splat/splat-fn-ptr-tuple-const.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/view-types/duplicate_field.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/view-types/hygiene.rs: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/array-cmp.rs: ignore (ignored when randomizing layouts ((checks depend on tuple layout))) -> [missing] (J6)
  • [codegen] tests/codegen-llvm/enum/enum-match.rs: pass -> [missing] (J6)
  • [codegen] tests/codegen-llvm/enum/enum-match.rs#LLVM22: [missing] -> pass (J6)
  • [crashes] tests/crashes/157568.rs: pass -> [missing] (J6)
  • [pretty] tests/pretty/direct-const-arg.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/array-cmp.rs: pass -> [missing] (J7)
  • [codegen] tests/codegen-llvm/array-cmp.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.8 is older than 23.0.0) (J7)

Stage 2

  • [crashes] tests/crashes/157568.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/array-cmp.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J2)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-in-type-arg-for-swap.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/gat-hide-lifetime-in-type-arg-for-swap.rs#polonius_alpha: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives-env.rs#polonius_alpha: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/gat-outlives.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/nested-rpit.rs: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hidden-erased-unsoundness.rs#edition2015: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hidden-erased-unsoundness.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2015: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-for-swap.rs#polonius_alpha: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#edition2015: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpit-hide-lifetime-in-type-arg-for-swap.rs#polonius_alpha: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/rpitit-hide-lifetime-for-swap.rs#edition2024: [missing] -> pass (J3)
  • [ui] tests/ui/borrowck/alias-liveness/tait-hidden-erased-unsoundness-2.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/bad-direct-const-arg.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/direct-const-arg-feature-gate.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/direct-const-arg-multiple-exprs.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/double-wrapped-path-not-accidentally-stabilized.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/mixed-direct-anon-expression-diagnostics.rs: [missing] -> pass (J3)
  • [ui] tests/ui/diagnostic_namespace/on_const/generic_parameters_handling.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/diagnostic_namespace/on_const/malformed_format_literals.rs: [missing] -> pass (J3)
  • [ui] tests/ui/impl-trait/alias-liveness/rpit-hidden-erased-unsoundness.rs#edition2015: pass -> [missing] (J3)
  • [ui] tests/ui/impl-trait/alias-liveness/tait-hidden-erased-unsoundness.rs: pass -> [missing] (J3)
  • [ui] tests/ui/impl-trait/hidden-lifetimes.rs#edition2024: pass -> [missing] (J3)
  • [ui] tests/ui/nll/polonius/allow-backward-incompatible-drop-hint.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/arg-count-ice-issue-158482.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/splat-fn-ptr-cast.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/splat-fn-ptr-ptr-tuple.rs: [missing] -> pass (J3)
  • [ui] tests/ui/view-types/hygiene.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/array-cmp.rs: pass -> [missing] (J5)
  • [codegen] tests/codegen-llvm/array-cmp.rs#LLVM22: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/array-cmp.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.8 is older than 23.0.0) (J5)
  • [codegen] tests/codegen-llvm/enum/enum-match.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.8 is older than 23.0.0) (J5)
  • [codegen] tests/codegen-llvm/enum/enum-match.rs: pass -> [missing] (J8)
  • [ui] tests/ui/eii/duplicate/dylib_default_duplicate.rs: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/array-cmp.rs: ignore (ignored when randomizing layouts ((checks depend on tuple layout))) -> [missing] (J10)
  • [codegen] tests/codegen-llvm/enum/enum-match.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J11)

(and 110 additional test diffs)

Additionally, 1300 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 3ead112e67f8feb4d6b09e12f1b5d83b87698961 --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. x86_64-mingw-1: 2h 53m -> 1h 47m (-38.3%)
  2. x86_64-gnu-miri: 1h 10m -> 1h 32m (+31.3%)
  3. dist-various-2: 35m 29s -> 45m (+26.8%)
  4. dist-arm-linux-musl: 1h 16m -> 1h 37m (+26.7%)
  5. x86_64-gnu-llvm-22-2: 1h 42m -> 1h 16m (-25.1%)
  6. dist-powerpc-linux: 1h 14m -> 1h 33m (+24.7%)
  7. dist-x86_64-llvm-mingw: 1h 34m -> 1h 57m (+24.3%)
  8. x86_64-gnu-aux: 2h 9m -> 2h 40m (+23.7%)
  9. x86_64-gnu-llvm-21-3: 1h 55m -> 1h 29m (-22.6%)
  10. dist-i586-gnu-i586-i686-musl: 1h 16m -> 1h 33m (+22.3%)
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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150946 intrinsics: Add a fallback for non-const libm float functio… ba59afcfe4db71f19e39ab8a105100651b8f82a2 (link)
#158541 Move std::io::Write to core::io 0ffdcdb2b658591abfb86086a931c3cb8227c0ce (link)
#156027 Consider captured regions for opaque type region liveness. 9b082edcf5fde871d89915f14a0152f5b74845ac (link)
#156370 Reject linked dylib EII default overrides abd605f2b64715d9c8fbb44810c46f0a2651978a (link)
#156508 Infer all anonymous lifetimes in assoc consts as 'static eebb7edb14a7d47899d5acab411e90b32846a34f (link)
#157561 rustdoc: do not include extra stuff in span 7cf2e71da64c40498f756a5bb68dfa488f5c215a (link)
#158617 allow mGCA const arguments to fall back to anon consts 34f29a2e47e12402689524fda62fbf97ef33f4cf (link)
#158645 Fix splat ICEs and ban it in closures b6b8328ad53a75259422ea0f159892f81ab9fcd3 (link)
#158859 Improve -Zls diagnostic message on .rs files 7766d4b3092143d866fc9ebe97666e3985b15d99 (link)
#158988 Redo TokenStreamIter fd54015b55ec1f2237be30da08b913a7503f1c7d (link)
#158347 Improve generic parameters handling for #[diagnostic::on_co… 0ce6d3aa1c8b9976838d64aee9d10bc70540ee4d (link)
#158384 Allow BackwardIncompatibleDropHint in polonius legacy d8980f3beba97d185d8a3186b06e65633c1211ba (link)
#158722 delegation: do not always inherit ConstArgHasType predica… afab6b44408e6b2d315ab2c129c8d8e2b5466cb0 (link)
#158739 view-types: HIR lowering 6f0da8017dccf070649837e64797ce3eae1f4599 (link)
#158877 borrowck: Keep returned path from `best_blame_constraint(… a98949b3756a0d4397a06916f34ee78718c95837 (link)
#158883 tests: fix enum-match.rs to handle LLVM 23 fd4dfc71d5e51763e7ca3f220cbb269c7f5632aa (link)
#158886 Add documentation for the no_std attribute 5d7b436b168ae4e420d196be8b04f6e453efb1e6 (link)
#158940 Implement feature char_to_u32 8799197d3a8bd10c9885375f25be5d8a3592eeb6 (link)
#158951 Merge three MaxUniverses into one d53d38185b82935c5bfbce1276671052a96416b2 (link)
#158960 Fix bootstrap submodule path prefix matching da7942750717b1d9fb02f8330b8df052fecd9715 (link)
#158961 Reapply "LLVM 23: Run AssignGUIDPass in some places" 3f5d238384f166343d590854a570726453865e6f (link)
#158995 Use REST API in linkchecker script d133748e422a87bfacb4a3b7e28a80ef19d48f8e (link)
#158996 [compiler] Implement PartialOrd via Ord for Span and … 4db5f9672a1b08856d04ef1495621893bf7ee5a5 (link)
#159036 bootstrap: expand '@argfile' arguments to rustc shim 9ae0155108f0c5930d136b0e54a8898fc395fb6d (link)

previous master: d465559281

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 (3ead112): 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.3% [0.1%, 0.7%] 3
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
-0.4% [-0.4%, -0.4%] 1
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) 0.1% [-0.4%, 0.7%] 4

Max RSS (memory usage)

Results (primary -1.5%, secondary -3.0%)

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)
-1.5% [-3.2%, -0.7%] 7
Improvements ✅
(secondary)
-3.0% [-5.0%, -1.4%] 8
All ❌✅ (primary) -1.5% [-3.2%, -0.7%] 7

Cycles

Results (primary -2.2%, secondary -5.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)
-5.2% [-7.0%, -3.5%] 2
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 1

Binary size

Results (primary 0.2%, secondary 0.3%)

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

mean range count
Regressions ❌
(primary)
0.3% [0.0%, 0.8%] 83
Regressions ❌
(secondary)
0.3% [0.0%, 0.8%] 122
Improvements ✅
(primary)
-0.8% [-0.8%, -0.8%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [-0.8%, 0.8%] 84

Bootstrap: 490.768s -> 490.513s (-0.05%)
Artifact size: 389.74 MiB -> 389.99 MiB (0.06%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI 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-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations 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-rustdoc Relevant to the rustdoc 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.