Skip to content

Rollup of 9 pull requests #142443

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 23 commits into from
Jun 13, 2025
Merged

Rollup of 9 pull requests #142443

merged 23 commits into from
Jun 13, 2025

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jun 13, 2025

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: x86_64-gnu
try-job: dist-i586-gnu-i586-i686-musl
try-job: test-various

azhogin and others added 23 commits June 9, 2025 21:29
Some architectures gain target-cpu minimums in doing so.
This removes the `compiler_builtins` dependency from a handful of
library dependencies, which is progress toward [1].

[1]: rust-lang#142265
0.37.0 is a semver-breaking release but the only breakage is in
`elf::R_RISCV_GNU_*` and `pe::IMAGE_WEAK_EXTERN_*` constants, as well as
Mach-O dyld. This API is not used by `std`, so we should be fine to
upgrade.

This new version also includes functionality for parsing Wasm object
files that we may eventually like to make use of.

Also includes the minor bump from 0.37.0 to 0.37.1 to help [1].

Changelog: https://github.com/gimli-rs/object/blob/master/CHANGELOG.md#0370

[1]: rust-lang#142265
0.25.0 is a breaking change only because it upgrades the `gimli`
version. It also includes a change to the `compiler-builtins` dependency
that helps with [1].

Changelog: https://github.com/gimli-rs/addr2line/blob/master/CHANGELOG.md#0250-20250611

[1]: rust-lang#142265
This comes with a `gimli` upgrade, so we no longer have two different
versions.
This was attempted in [1] then reverted in [2] because of fallout.
Recently, this was made an edition-dependent error in [3].

Make missing fragment specifiers an unconditional error again.

[1]: rust-lang#75516
[2]: rust-lang#80210
[3]: rust-lang#128006
Includes the following changes:

* Add s390x z17 target features [1]
* Remove `compiler-builtins` from `rustc-dep-of-std` dependencies [2]
* Darwin AArch64 detection update [3]
* Fixes for the latest nightly [4]
* Add a lockfile [5]

[1]: rust-lang/stdarch#1826
[2]: rust-lang/stdarch#1825
[3]: rust-lang/stdarch#1827
[4]: rust-lang/stdarch#1830
[5]: rust-lang/stdarch#1829
…r-unconditional, r=petrochenkov,traviscross

Make `missing_fragment_specifier` an unconditional error

This was attempted in [1] then reverted in [2] because of fallout. Recently, this was made an edition-dependent error in [3].

Make missing fragment specifiers an unconditional error again, across all editions.

More context: rust-lang#128006
Most recent crater: rust-lang#128425 (comment)
Fixes: rust-lang#40107

[1]: rust-lang#75516
[2]: rust-lang#80210
[3]: rust-lang#128006
…twco

retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features

`-Zretpoline` and `-Zretpoline-external-thunk` flags are target modifiers (tracked to be equal in linked crates).
* Enables target features for `-Zretpoline-external-thunk`:
`+retpoline-external-thunk`, `+retpoline-indirect-branches`, `+retpoline-indirect-calls`.
* Enables target features for `-Zretpoline`:
`+retpoline-indirect-branches`, `+retpoline-indirect-calls`.

It corresponds to clang -mretpoline & -mretpoline-external-thunk flags.

Also this PR forbids to specify those target features manually (warning).

Issue: rust-lang#116852
add `extern "custom"` functions

tracking issue: rust-lang#140829
previous discussion: rust-lang#140566

In short, an `extern "custom"` function is a function with a custom ABI, that rust does not know about. Therefore, such functions can only be defined with `#[unsafe(naked)]` and `naked_asm!`, or via an `extern "C" { /* ... */ }` block. These functions cannot be called using normal rust syntax: calling them can only be done from inline assembly.

The motivation is low-level scenarios where a custom calling convention is used. Currently, we often pick `extern "C"`, but that is a lie because the function does not actually respect the C calling convention.

At the moment `"custom"` seems to be the name with the most support. That name is not final, but we need to pick something to actually implement this.

r? `@traviscross`
cc `@tgross35`

try-job: x86_64-apple-2
…-per-arch, r=nikic

tests: Split dont-shuffle-bswaps along opt-levels and arches

This duplicates dont-shuffle-bswaps in order to make each opt level its own test. Then -opt3.rs gets split into a revision per arch we want to test, with certain architectures gaining new target-cpu minimums.
Add supported asm types for LoongArch32

r? ``````@Amanieu``````
…n-ast-lowering, r=oli-obk

assert more in release in `rustc_ast_lowering`

My understanding of the compiler's architecture is that in the `ast_lowering` crate, we are constructing the HIR as a one-time thing per crate. This is after tokenizing, parsing, resolution, expansion, possible reparsing, reresolution, reexpansion, and so on. In other words, there are many reasons that perf-focused PRs spend a lot of time touching `rustc_parse`, `rustc_expand`, `rustc_ast`, and then `rustc_hir` and "onwards", but `ast_lowering` is a little bit of an odd duck.

In this crate, we have a number of debug assertions. Some are clearly expensive checks that seem like they are prohibitive to run in actual optimized compiler builds, but then there are a number that are simple asserts on integer equalities, `is_empty`, or the like. I believe we should do some of them even in release builds, because the correctness gain is worth the performance cost: almost zero.
Update the stdarch submodule

Includes the following changes:

* Add s390x z17 target features [1]
* Remove `compiler-builtins` from `rustc-dep-of-std` dependencies [2]
* Darwin AArch64 detection update [3]
* Fixes for the latest nightly [4]
* Add a lockfile [5]

[1]: rust-lang/stdarch#1826
[2]: rust-lang/stdarch#1825
[3]: rust-lang/stdarch#1827
[4]: rust-lang/stdarch#1830
[5]: rust-lang/stdarch#1829
…r=Mark-Simulacrum

Update dependencies in `library/Cargo.lock`

This removes the `compiler_builtins` dependency from a handful of library dependencies, which is progress toward [1].

[1]: rust-lang#142265
…=Mark-Simulacrum

Upgrade `object`, `addr2line`, and `unwinding` in the standard library

Object:

0.37.0 is a semver-breaking release but the only breakage is in `elf::R_RISCV_GNU_*` and `pe::IMAGE_WEAK_EXTERN_*` constants, as well as Mach-O dyld. This API is not used by `std`, so we should be fine to upgrade.

This new version also includes functionality for parsing Wasm object files that we may eventually like to make use of.

Changelog: https://github.com/gimli-rs/object/blob/master/CHANGELOG.md#0370

Addr2line:

0.25.0 is a breaking change only because it upgrades the `gimli` version. It also includes a change to the `compiler-builtins` dependency that helps with [1].

Changelog: https://github.com/gimli-rs/addr2line/blob/master/CHANGELOG.md#0250-20250611

[1]: rust-lang#142265
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-json Area: Rustdoc JSON backend S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-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. labels Jun 13, 2025
@rustbot rustbot added the rollup A PR which is a rollup label Jun 13, 2025
@matthiaskrgr
Copy link
Member Author

@bors try

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

⌛ Trying commit 71490ff with merge 99a51b8...

bors added a commit that referenced this pull request Jun 13, 2025
Rollup of 9 pull requests

Successful merges:

 - #128425 (Make `missing_fragment_specifier` an unconditional error)
 - #135927 (retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features)
 - #140770 (add `extern "custom"` functions)
 - #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
 - #142248 (Add supported asm types for LoongArch32)
 - #142267 (assert more in release in `rustc_ast_lowering`)
 - #142274 (Update the stdarch submodule)
 - #142276 (Update dependencies in `library/Cargo.lock`)
 - #142308 (Upgrade `object`, `addr2line`, and `unwinding` in the standard library)

Failed merges:

 - #140920 (Extract some shared code from codegen backend target feature handling)

r? `@ghost`
`@rustbot` modify labels: rollup

try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: x86_64-gnu
try-job: dist-i586-gnu-i586-i686-musl
try-job: test-various
@bors
Copy link
Collaborator

bors commented Jun 13, 2025

☀️ Try build successful - checks-actions
Build commit: 99a51b8 (99a51b8bd454ef18d133c664ec2940fe4a19e93e)

@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

📌 Commit 71490ff has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Jun 13, 2025
@bors
Copy link
Collaborator

bors commented Jun 13, 2025

⌛ Testing commit 71490ff with merge 8da6239...

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 8da6239 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 13, 2025
@bors bors merged commit 8da6239 into rust-lang:master Jun 13, 2025
11 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 13, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#128425 Make missing_fragment_specifier an unconditional error 21dbb46b302a92d03e5a003bf22333b802a91b06 (link)
#135927 retpoline and retpoline-external-thunk flags (target modifi… 696f7e3fed88e7b67d379ef9d6abf331dbb97417 (link)
#140770 add extern "custom" functions 2bf564a237a7f8c4f7586a356ef57958d84e7c1a (link)
#142176 tests: Split dont-shuffle-bswaps along opt-levels and arches cbd61f9172a18c5a7e157facc5632f7713561ec5 (link)
#142248 Add supported asm types for LoongArch32 c92c6dfe22c3e00a7428c7a34743689bd6a23efb (link)
#142267 assert more in release in rustc_ast_lowering bd9d8ad0fc2d8e11914103e056e13098dddd27dd (link)
#142274 Update the stdarch submodule 909ff0731710ed75d4bd04ff33bad465d01098fe (link)
#142276 Update dependencies in library/Cargo.lock fd611ab56c534ff49b3840a26e907b37efa3a96c (link)
#142308 Upgrade object, addr2line, and unwinding in the stand… e8dfa76f0573550aad100f56b6e459e8e42254e5 (link)

previous master: 0d6ab209c5

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

Copy link
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 0d6ab20 (parent) -> 8da6239 (this PR)

Test differences

Show 410 test diffs

Stage 1

  • errors::verify_ast_passes_abi_custom_coroutine_64: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_custom_invalid_signature_65: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_custom_safe_foreign_function_62: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_custom_safe_function_63: [missing] -> pass (J0)
  • errors::verify_session_forbidden_ctarget_feature_52: [missing] -> pass (J0)
  • errors::verify_session_unstable_ctarget_feature_53: [missing] -> pass (J0)
  • lints::verify_lint_ambiguous_glob_reexport_143: pass -> [missing] (J0)
  • lints::verify_lint_associated_const_elided_lifetime_145: [missing] -> pass (J0)
  • lints::verify_lint_associated_const_elided_lifetime_146: pass -> [missing] (J0)
  • lints::verify_lint_byte_slice_in_packed_struct_with_derive_139: [missing] -> pass (J0)
  • lints::verify_lint_byte_slice_in_packed_struct_with_derive_140: pass -> [missing] (J0)
  • lints::verify_lint_custom_inner_attribute_unstable_126: pass -> [missing] (J0)
  • lints::verify_lint_duplicate_matcher_binding_120: [missing] -> pass (J0)
  • lints::verify_lint_duplicate_matcher_binding_121: pass -> [missing] (J0)
  • lints::verify_lint_extern_crate_not_idiomatic_142: pass -> [missing] (J0)
  • lints::verify_lint_extern_without_abi_129: [missing] -> pass (J0)
  • lints::verify_lint_extern_without_abi_130: pass -> [missing] (J0)
  • lints::verify_lint_hidden_glob_reexport_144: pass -> [missing] (J0)
  • lints::verify_lint_ill_formed_attribute_input_123: [missing] -> pass (J0)
  • lints::verify_lint_ill_formed_attribute_input_124: pass -> [missing] (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_124: [missing] -> pass (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_125: pass -> [missing] (J0)
  • lints::verify_lint_legacy_derive_helpers_130: [missing] -> pass (J0)
  • lints::verify_lint_legacy_derive_helpers_131: pass -> [missing] (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_127: [missing] -> pass (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_128: pass -> [missing] (J0)
  • lints::verify_lint_metavariable_still_repeating_118: [missing] -> pass (J0)
  • lints::verify_lint_metavariable_still_repeating_119: pass -> [missing] (J0)
  • lints::verify_lint_metavariable_wrong_operator_119: [missing] -> pass (J0)
  • lints::verify_lint_metavariable_wrong_operator_120: pass -> [missing] (J0)
  • lints::verify_lint_missing_fragment_specifier_118: pass -> [missing] (J0)
  • lints::verify_lint_missing_unsafe_on_extern_136: [missing] -> pass (J0)
  • lints::verify_lint_missing_unsafe_on_extern_137: pass -> [missing] (J0)
  • lints::verify_lint_named_argument_used_positionally_139: pass -> [missing] (J0)
  • lints::verify_lint_or_patterns_back_compat_131: [missing] -> pass (J0)
  • lints::verify_lint_or_patterns_back_compat_132: pass -> [missing] (J0)
  • lints::verify_lint_out_of_scope_macro_calls_147: [missing] -> pass (J0)
  • lints::verify_lint_out_of_scope_macro_calls_148: pass -> [missing] (J0)
  • lints::verify_lint_proc_macro_derive_resolution_fallback_126: [missing] -> pass (J0)
  • lints::verify_lint_proc_macro_derive_resolution_fallback_127: pass -> [missing] (J0)
  • lints::verify_lint_raw_prefix_133: [missing] -> pass (J0)
  • lints::verify_lint_raw_prefix_134: pass -> [missing] (J0)
  • lints::verify_lint_redundant_import_visibility_146: [missing] -> pass (J0)
  • lints::verify_lint_redundant_import_visibility_147: pass -> [missing] (J0)
  • lints::verify_lint_reserved_multihash_150: [missing] -> pass (J0)
  • lints::verify_lint_reserved_prefix_133: pass -> [missing] (J0)
  • lints::verify_lint_reserved_string_149: [missing] -> pass (J0)
  • lints::verify_lint_reserved_string_150: pass -> [missing] (J0)
  • lints::verify_lint_trailing_semi_macro_136: pass -> [missing] (J0)
  • lints::verify_lint_unknown_macro_variable_122: pass -> [missing] (J0)
  • lints::verify_lint_unnecessary_qualification_144: [missing] -> pass (J0)
  • lints::verify_lint_unnecessary_qualification_145: pass -> [missing] (J0)
  • lints::verify_lint_unqualified_local_imports_148: [missing] -> pass (J0)
  • lints::verify_lint_unqualified_local_imports_149: pass -> [missing] (J0)
  • lints::verify_lint_unused_crate_dependency_122: [missing] -> pass (J0)
  • lints::verify_lint_unused_crate_dependency_123: pass -> [missing] (J0)
  • lints::verify_lint_unused_doc_comment_128: [missing] -> pass (J0)
  • lints::verify_lint_unused_doc_comment_129: pass -> [missing] (J0)
  • lints::verify_lint_unused_extern_crate_140: [missing] -> pass (J0)
  • lints::verify_lint_unused_extern_crate_141: pass -> [missing] (J0)
  • lints::verify_lint_unused_lifetime_137: [missing] -> pass (J0)
  • lints::verify_lint_unused_lifetime_138: pass -> [missing] (J0)
  • transmute::verify_lint_undefined_transmute_152: pass -> [missing] (J0)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs: [missing] -> pass (J2)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#AARCH64: [missing] -> ignore (only executed when the architecture is aarch64) (J2)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#X86_64: [missing] -> pass (J2)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#Z13: [missing] -> ignore (only executed when the architecture is s390x) (J2)
  • [codegen] tests/codegen/dont-shuffle-bswaps.rs#OPT2: pass -> [missing] (J2)
  • [codegen] tests/codegen/dont-shuffle-bswaps.rs#OPT3_S390X: ignore (only executed when the architecture is s390x) -> [missing] (J2)
  • [codegen] tests/codegen/retpoline.rs#disabled: [missing] -> pass (J2)
  • [codegen] tests/codegen/retpoline.rs#enabled_retpoline_external_thunk: [missing] -> pass (J2)
  • [ui] tests/ui/abi/bad-custom.rs: [missing] -> pass (J2)
  • [ui] tests/ui/abi/custom.rs: [missing] -> pass (J2)
  • [ui] tests/ui/macros/macro-missing-fragment.rs#e2015: pass -> [missing] (J2)
  • [ui] tests/ui/macros/macro-missing-fragment.rs#e2024: pass -> [missing] (J2)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_feature1: [missing] -> pass (J2)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_feature2: [missing] -> pass (J2)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_feature3: [missing] -> pass (J2)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_flag: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/feature-gates/feature-gate-abi-custom.rs: [missing] -> pass (J1)
  • [ui] tests/ui/macros/macro-missing-fragment.rs: [missing] -> pass (J1)
  • [ui] tests/ui/macros/macro-missing-fragment.rs#e2015: pass -> [missing] (J1)
  • [ui] tests/ui/macros/macro-missing-fragment.rs#e2024: pass -> [missing] (J1)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_feature2: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_feature3: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/retpoline-target-feature-flag.rs#by_flag: [missing] -> pass (J1)
  • [ui] tests/ui/abi/custom.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs: [missing] -> pass (J4)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#Z13: [missing] -> ignore (only executed when the architecture is s390x) (J4)
  • [codegen] tests/codegen/dont-shuffle-bswaps.rs#OPT2: pass -> [missing] (J4)
  • [codegen] tests/codegen/dont-shuffle-bswaps.rs#OPT3_S390X: ignore (only executed when the architecture is s390x) -> [missing] (J4)
  • [codegen] tests/codegen/retpoline.rs#disabled: [missing] -> pass (J4)
  • [codegen] tests/codegen/retpoline.rs#enabled_retpoline: [missing] -> pass (J4)
  • [codegen] tests/codegen/retpoline.rs#enabled_retpoline_external_thunk: [missing] -> pass (J4)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#X86_64: [missing] -> ignore (only executed when the architecture is x86_64) (J5)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#X86_64: [missing] -> pass (J6)
  • [ui] tests/ui/abi/custom.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J7)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#AARCH64: [missing] -> ignore (only executed when the architecture is aarch64) (J8)
  • [codegen] tests/codegen/dont-shuffle-bswaps.rs#OPT3: pass -> [missing] (J9)
  • [codegen] tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs#AARCH64: [missing] -> pass (J10)

(and 20 additional test diffs)

Additionally, 290 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 8da623945f83933dd38644d5745532ee032e855b --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-aarch64-apple: 6368.5s -> 4604.1s (-27.7%)
  2. x86_64-apple-2: 4441.9s -> 5617.4s (26.5%)
  3. i686-gnu-2: 5327.8s -> 6253.9s (17.4%)
  4. mingw-check-1: 1680.7s -> 1961.5s (16.7%)
  5. mingw-check-2: 1949.8s -> 2231.2s (14.4%)
  6. x86_64-rust-for-linux: 2547.4s -> 2906.8s (14.1%)
  7. i686-gnu-nopt-1: 7120.0s -> 8045.2s (13.0%)
  8. dist-apple-various: 7103.0s -> 7919.5s (11.5%)
  9. i686-gnu-1: 7622.6s -> 8471.4s (11.1%)
  10. mingw-check-tidy: 64.5s -> 71.5s (10.8%)
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
Collaborator

Finished benchmarking commit (8da6239): comparison URL.

Overall result: ❌ regressions - please read the text below

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

Max RSS (memory usage)

Results (primary 1.6%, secondary 1.1%)

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

mean range count
Regressions ❌
(primary)
1.6% [1.6%, 1.6%] 2
Regressions ❌
(secondary)
2.4% [1.7%, 3.3%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.1% [-2.3%, -1.9%] 2
All ❌✅ (primary) 1.6% [1.6%, 1.6%] 2

Cycles

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

Binary size

Results (primary 0.4%, secondary 0.8%)

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

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

Bootstrap: 755.964s -> 756.284s (0.04%)
Artifact size: 372.26 MiB -> 372.34 MiB (0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 13, 2025
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-rustdoc-json Area: Rustdoc JSON backend merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants