Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Dec 17, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

GuillaumeGomez and others added 8 commits December 15, 2025 14:53
…owedBuf` and `BorrowedCursor`)

This caused several performance regressions because of existing code
which uses `Read::read` and therefore requires full buffer
initialization. This is particularly a problem when the same buffer is
re-used for multiple read calls since this means it needs to be fully
re-initialized each time.

There is still some benefit to landing the API changes, but we will have
to add private APIs so that the existing infrastructure can
track and avoid redundant initialization.
…ng, r=lqd

Correctly encode doc attribute metadata

Follow-up of rust-lang#149645.

The change I made was slightly wrong. [Originally](https://github.com/rust-lang/rust/pull/149645/changes#diff-72bf3e63aae0c5f24a5ce78a560db321ac6ead9df5ada3e33462a7f7d6218a55) the check was:

```rust
        if let Some(item_list) = attr.meta_item_list() {
            for item in item_list {
                if !item.has_name(sym::inline) {
```

So we were checking that there was no `doc(inline)` attribute. This PR should fix it.

r? ``@lqd``
mir_build: Rename `TestCase` to `TestableCase`

In the spirit of rust-lang#149946, this is another renaming of something I've always found confusing.

When lowering match conditions, there is a subtle distinction between the kind of *test* being performed (on a scrutinee place), the possible outcomes of that test, and the different “cases” (corresponding to pattern nodes) that the test is distinguishing. Cases imply a particular preferred test, but once a test is chosen it can also interact with other cases as well.

I have often mixed up `TestKind` and `TestCase`, since the names are so similar, and they share several variant names. Therefore, this PR renames `TestCase` to `TestableCase`, to emphasise that these are the things selected by whatever test is being performed.

There should be no change to compiler behaviour.
…fJung

miri: add `miri_spin_loop` to make `hint::spin_loop` work consistently

fixes rust-lang#150050

Always use the same implementation when running miri (regardless of target, for consistency). This implementation yields the current thread to try find actual bugs.

r? RalfJung
…sDenton

Revert rust-lang#148937

rust-lang#148937:  Remove initialized-bytes tracking from `BorrowedBuf` and `BorrowedCursor`

This caused several performance regressions because of existing code which uses `Read::read` and therefore requires full buffer initialization. This is particularly a problem when the same buffer is re-used for multiple read calls since this means it needs to be fully re-initialized each time.

There is still some benefit to landing the API changes, but we will have to add private APIs so that the existing infrastructure can track and avoid redundant initialization.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) O-SGX Target: SGX O-windows Operating system: Windows 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. rollup A PR which is a rollup labels Dec 17, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Dec 17, 2025

📌 Commit 92bd07b 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 Dec 17, 2025
@bors
Copy link
Collaborator

bors commented Dec 17, 2025

⌛ Testing commit 92bd07b with merge f794a08...

@bors
Copy link
Collaborator

bors commented Dec 17, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing f794a08 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 17, 2025
@bors bors merged commit f794a08 into rust-lang:main Dec 17, 2025
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Dec 17, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149919 Correctly encode doc attribute metadata 6692ea870feec201bb5ac3ef52a1a5de7068d028 (link)
#150051 mir_build: Rename TestCase to TestableCase d34aefec97b4941c0300c2fc5feac705eff4874b (link)
#150088 miri: add miri_spin_loop to make hint::spin_loop work c… be223a7605cbf74f120eef5fb25f39d4eab3ba1b (link)
#150096 Revert #148937 790b6cd91ee58db0d8ca3390b41af37a453f25c8 (link)

previous master: 68f11a11b6

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

@github-actions
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 68f11a1 (parent) -> f794a08 (this PR)

Test differences

Show 333 test diffs

Stage 1

  • io::buffered::tests::bufreader_full_initialize: [missing] -> pass (J0)
  • io::tests::borrowed_cursor_advance_overflow: [missing] -> pass (J0)
  • io::borrowed_buf::cursor_set_init: [missing] -> pass (J2)
  • io::borrowed_buf::initialize_unfilled: [missing] -> pass (J2)
  • io::borrowed_buf::set_init: [missing] -> pass (J2)

Stage 2

  • io::borrowed_buf::cursor_set_init: [missing] -> pass (J1)
  • io::borrowed_buf::initialize_unfilled: [missing] -> pass (J1)
  • io::borrowed_buf::set_init: [missing] -> pass (J1)
  • io::buffered::tests::bufreader_full_initialize: [missing] -> pass (J1)
  • io::tests::borrowed_cursor_advance_overflow: [missing] -> pass (J1)

Additionally, 323 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 f794a08738958bbef01c3dcab34ec21d3da1e51a --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-linux: 8644.5s -> 6505.4s (-24.7%)
  2. dist-x86_64-illumos: 6405.0s -> 5868.9s (-8.4%)
  3. tidy: 150.6s -> 162.5s (+7.9%)
  4. x86_64-gnu-llvm-20-1: 4691.2s -> 4331.5s (-7.7%)
  5. aarch64-msvc-2: 6256.4s -> 5799.5s (-7.3%)
  6. dist-x86_64-llvm-mingw: 7377.0s -> 6855.7s (-7.1%)
  7. x86_64-gnu: 9039.3s -> 8444.2s (-6.6%)
  8. dist-powerpc-linux: 5128.2s -> 5460.0s (+6.5%)
  9. x86_64-mingw-1: 10490.5s -> 9819.2s (-6.4%)
  10. dist-powerpc64-linux: 5502.9s -> 5155.5s (-6.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
Collaborator

Finished benchmarking commit (f794a08): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

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

Max RSS (memory usage)

Results (primary 1.7%, secondary -0.2%)

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

mean range count
Regressions ❌
(primary)
1.7% [0.6%, 2.8%] 2
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.5% [-2.0%, -0.9%] 2
All ❌✅ (primary) 1.7% [0.6%, 2.8%] 2

Cycles

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

Binary size

Results (primary 0.1%, secondary 0.1%)

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

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.4%] 5
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.0%, 0.4%] 5

Bootstrap: 483.218s -> 481.694s (-0.32%)
Artifact size: 390.58 MiB -> 390.59 MiB (0.00%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) merged-by-bors This PR was explicitly merged by bors. O-SGX Target: SGX O-windows Operating system: Windows 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants