Skip to content

Rollup of 11 pull requests - #162631

Merged
rust-bors[bot] merged 40 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-YFp9vQG
Sep 11, 2026
Merged

Rollup of 11 pull requests#162631
rust-bors[bot] merged 40 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-YFp9vQG

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

mejrs and others added 30 commits September 1, 2026 01:09
Co-authored-by: Jubilee <workingjubilee@gmail.com>
* Refactor `HygieneEncodeContext`
* Review: remove comment outdated part
* Review: return `raw_encode_syntax_context` as a free function
* Review: small cleanups
* Review: add comment about expansions data `Option`
* Review: don't set explicit capacity
* Review: return `queued` -> `latest`
* Remove not needed changes
* Fix `Rc` cloning
* Return comment
As a Tier 1 (without host tools) target.

- Fix an outdated claim that all T1 targets have host tools, since
  `i686-pc-windows-msvc` no longer does.
- Remove a duplicate Tier 1 section.
- Put `i686-pc-windows-msvc` under its own Tier 1 without host tools
  section.
We no longer ship host tools for this target.
…nkov

Refactor `HygieneEncodeContext`

Some refactorings around `HygieneEncodeContext` with minor perf improvements, the most notable thing is that `Lock`s were removed.

First part for rust-lang#161450.

r? @petrochenkov
@Zalathar

Copy link
Copy Markdown
Member

Heh, you won the race; I'll close mine. 👍

@JonathanBrouwer

JonathanBrouwer commented Sep 11, 2026

Copy link
Copy Markdown
Member Author

I tried to immediately make a new rollup after closing the previous one but github took a few minutes to load... I love github

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 11, 2026
@rust-bors

rust-bors Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 2h 56m 18s
Pushing ada41e1 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 ca0a647 (parent) -> ada41e1 (this PR)

Test differences

Show 60 test diffs

Stage 1

  • [ui] tests/ui/closures/2229_closure_analysis/migrations/opaque-field-projection.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: [missing] -> pass (J0)
  • [ui] tests/ui/lint/unused_braces-issue-154247.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/closures/2229_closure_analysis/migrations/opaque-field-projection.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/lint/unused_braces-issue-154247.rs: [missing] -> pass (J2)
  • [mir-opt] tests/mir-opt/building/custom/arbitrary_cast.rs: [missing] -> pass (J3)

Stage 2

  • [ui] tests/ui/closures/2229_closure_analysis/migrations/opaque-field-projection.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: [missing] -> pass (J1)
  • [ui] tests/ui/lint/unused_braces-issue-154247.rs: [missing] -> pass (J1)
  • [mir-opt] tests/mir-opt/building/custom/arbitrary_cast.rs: [missing] -> pass (J4)

Additionally, 46 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 ada41e1ce81819f01577c0ee40ccbd6fc41384e8 --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-riscv64-linux-gnu: 1h 5m -> 1h 33m (+42.8%)
  2. test-x86_64-mingw-2: 2h 56m -> 1h 42m (-41.9%)
  3. test-pr-check-2: 33m 43s -> 44m 51s (+33.0%)
  4. test-i686-gnu-nopt-1: 1h 33m -> 2h 4m (+32.8%)
  5. test-x86_64-mingw-1: 3h 8m -> 2h 8m (-32.0%)
  6. dist-x86_64-freebsd: 1h 31m -> 1h 3m (-31.3%)
  7. test-x86_64-gnu: 2h 37m -> 1h 49m (-30.2%)
  8. test-x86_64-gnu-llvm-22-3: 1h 29m -> 1h 56m (+30.0%)
  9. dist-powerpc64le-linux-musl: 1h 19m -> 1h 41m (+27.9%)
  10. dist-various-2: 39m 4s -> 49m 51s (+27.6%)
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 11, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#162520 Refactor HygieneEncodeContext 9b2b438493c578f7cffb9f4178180d3b20dc6445
(link)
#154373 Skip linting unused braces for FunctionArg and MethodArg co… 00df995411dc27f9af9e1e6f0fafced82619e22e
(link)
#160023 Refactor the way cg_ssa handles indirect returns (returns v… 51474fdd64d488f96a0ea5d1be921236d45b46e0
(link)
#160860 Implement arbitrary casts in custom mir e2d2eb8a0d81b1433cae46eb72f1d09b1c6309f8
(link)
#161482 Use attribute parser for #[non_exhaustive] attribute check e7050291bb79bba56411327ed7d761d1b4aa628c
(link)
#161867 deeper rustc_builtin_macros cleanups 022c464af7945773eeb7091dd3b548348b5343ba
(link)
#162099 small refactor of doc attribute arguments warnings 0e0356e8c8070c23622fac565f655a3f5aabc027
(link)
#162541 split macroless_generic_const_args in two aa10195b10bd38c2de78858082003da5631dbc41
(link)
#162549 The fuchsia team maintains riscv64gc-unknown-fuchsia a4f87c3d5b0670bada3056bc7f31360af4adc2c7
(link)
#162577 Fix i686-pc-windows-msvc platform support docs and target… 20d15c7710efa9805bcc8fe4560c5edaa3c0f518
(link)
#162624 regression test for opaque field projection in closure capt… 9ffcfe22e49d350ae42c10305ee32ee8b6581a13
(link)

parent commit: ca0a6473ff

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 (ada41e1): 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.2%, 0.3%] 3
Regressions ❌
(secondary)
0.4% [0.2%, 0.8%] 4
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 7
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.1%] 3
All ❌✅ (primary) -0.1% [-0.2%, 0.3%] 10

Max RSS (memory usage)

Results (primary -0.1%, secondary 1.5%)

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

mean range count
Regressions ❌
(primary)
0.6% [0.4%, 0.8%] 3
Regressions ❌
(secondary)
1.5% [1.5%, 1.6%] 2
Improvements ✅
(primary)
-0.9% [-1.2%, -0.6%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.1% [-1.2%, 0.8%] 6

Cycles

Results (primary 0.7%, secondary -4.0%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.4%, 3.0%] 12
Regressions ❌
(secondary)
2.0% [2.0%, 2.0%] 1
Improvements ✅
(primary)
-0.6% [-0.8%, -0.5%] 2
Improvements ✅
(secondary)
-4.7% [-7.6%, -2.7%] 9
All ❌✅ (primary) 0.7% [-0.8%, 3.0%] 14

Binary size

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

Bootstrap: 494.036s -> 497.659s (0.73%)
Artifact size: 407.63 MiB -> 406.94 MiB (-0.17%)

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

Copy link
Copy Markdown
Member Author

@rust-timer

rust-timer commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator
Running triage with 10 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
  • clap_derive-4.5.32-nll
  • deep-vector
  • hyper-1.6.0
  • large-workspace
  • libc-0.2.172
  • projection-caching
  • serde_derive-1.0.219
  • tt-muncher

#162520 9b2b438 Refactor HygieneEncodeContext

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#154373 00df995 Skip linting unused braces for FunctionArg and MethodArg context for 2024 later

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 (secondary 4.9%)

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

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.


#160023 51474fd Refactor the way cg_ssa handles indirect returns (returns via sret) — Take 2

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

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#160860 e2d2eb8 Implement arbitrary casts in custom mir

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#161482 e705029 Use attribute parser for #[non_exhaustive] attribute check

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

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#161867 022c464 deeper rustc_builtin_macros cleanups

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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

#162099 0e0356e small refactor of doc attribute arguments warnings

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

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#162541 aa10195 split macroless_generic_const_args in two

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 0.6%, secondary -4.6%)

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

mean range count
Regressions ❌
(primary)
0.6% [0.6%, 0.6%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.6% [-4.6%, -4.6%] 1
All ❌✅ (primary) 0.6% [0.6%, 0.6%] 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.


#162549 a4f87c3 The fuchsia team maintains riscv64gc-unknown-fuchsia

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 (secondary -1.8%)

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

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

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.


#162577 20d15c7 Fix i686-pc-windows-msvc platform support docs and target spec metadata

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

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#162624 9ffcfe2 regression test for opaque field projection in closure capture

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

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) 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) F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.