Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions triage/2026/2026-05-25.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# 2026-05-25 Triage Log

This week was largely positive, with most of the improvements coming from algorithm change in visibility checking: [#156228](https://github.com/rust-lang/rust/pull/156228).

Triage done by **@panstromek**.
Revision range: [281c97c3..783eb8c8](https://perf.rust-lang.org/?start=281c97c3240a9abd984ca0c6a2cd7389115e80d5&end=783eb8c8682ddde0807c60ed8293670ef523794f&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 0.7%] | 5 |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.1%] | 16 |
| Improvements ✅ <br /> (primary) | -0.9% | [-6.6%, -0.1%] | 164 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.3%, -0.1%] | 51 |
| All ❌✅ (primary) | -0.9% | [-6.6%, 0.7%] | 169 |


2 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups
34 artifact comparisons made in total

#### Regressions

Stabilize `--remap-path-prefix` in rustdoc [#155307](https://github.com/rust-lang/rust/pull/155307) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e96c36b6f76833388c519561d145492d2c08db4e&end=4d276d7fdba2a24c73dbca3027461bb202e83436&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 |

`nalgebra` regressions are noise (return to default state after previous PR).

Rollup of 4 pull requests [#156881](https://github.com/rust-lang/rust/pull/156881) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1d59f669f9c699b982f112ebbc81e8b1eb550d68&end=609b8c5cefb3932bbaf4497cb7f9195ca8a1eab6&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 11 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.6%] | 12 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -1.9% | [-1.9%, -1.9%] | 1 |
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 11 |

Looks to be caused by https://github.com/rust-lang/rust/pull/156824. I couldn't confirm this directly because we miss the unrolled build, but looking at the other PRs, one is a pure test change, and perf runs on the other two came back with no relevant changes, so this is the only one remaning.

It doesn't seem like that big of a deal to me (mostly tiny benchmarks, `incr-unchanged/patched`), but seems unexpected. Some of them regress in queries that don't seem related (match checking). Left a comment there.

#### Improvements

Privacy: try use queue instead of fixed-point iteration [#156228](https://github.com/rust-lang/rust/pull/156228) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ca9203f29c609b344566d4eed9b5d9a3bf10290c&end=60592ad7c63cdb7cfe092f785bb224b655512926&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.9% | [-6.7%, -0.1%] | 144 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.3%, -0.1%] | 31 |
| All ❌✅ (primary) | -0.9% | [-6.7%, -0.1%] | 144 |


Update LLVM to 22.1.6 [#156757](https://github.com/rust-lang/rust/pull/156757) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=037b621e831cba9ebd4148f9de33eff361df23d3&end=e96c36b6f76833388c519561d145492d2c08db4e&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |

note: this result is spurious, we got inverse results in the next PR ([#155307](https://github.com/rust-lang/rust/pull/155307), first PR in the regressions list).

#### Mixed

Make bitset `would_modify_words` more vectorizer-friendly [#153640](https://github.com/rust-lang/rust/pull/153640) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1ea1171c1e537f295225be1c7b67dba46794e6ad&end=e50aa6fba4e63ab34c72bf9acfd2c307c1155d1a&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ <br /> (primary) | -1.4% | [-2.2%, -0.7%] | 4 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | -1.4% | [-2.2%, -0.7%] | 4 |

`include-blob` regression is noise.

Fix jump-to-def links broken by turbofish syntax [#156727](https://github.com/rust-lang/rust/pull/156727) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b9792692fbb675174d4d2082e7c37b2bc930e71&end=1f8e04d34ab0c1fd9574840aa6db670e41593bfb&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 |

Perf results are noise, this PR doesn't change anything in the compiler. It seems that `nalgebra` `opt` became bimodal.

Rollup of 2 pull requests [#156794](https://github.com/rust-lang/rust/pull/156794) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b954122bbe6c4a244c511a9a168c6d5438d8f58f&end=037b621e831cba9ebd4148f9de33eff361df23d3&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 64 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.4%] | 38 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 9 |
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 8 |
| All ❌✅ (primary) | 0.2% | [-0.5%, 0.4%] | 73 |

Caused by https://github.com/rust-lang/rust/pull/156242, already triaged by @JonathanBrouwer, addressed by @Saethlin in https://github.com/rust-lang/rust/pull/156849.

Implement fast path for `derive(PartialOrd)` when deriving `Ord` [#155598](https://github.com/rust-lang/rust/pull/155598) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=23a3312d92a1c4ba0373f1e25277be20ba8bb28c&end=dd8b2d6162c5616d7030238c29f892a431093cdd&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.5%, 0.8%] | 3 |
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.0%] | 9 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 20 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 5 |
| All ❌✅ (primary) | -0.2% | [-0.5%, 0.8%] | 23 |

Improvements mostly outweigh regressions. Results roughly match pre-merge results, so I assume the comments above still hold and this is considered fine.

Re-add call site inlining attributes [#156849](https://github.com/rust-lang/rust/pull/156849) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a06c1ca53a775af31bcbdaeed995c2f224b34d06&end=1d59f669f9c699b982f112ebbc81e8b1eb550d68&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.4%] | 2 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 8 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 66 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 42 |
| All ❌✅ (primary) | -0.3% | [-0.4%, 0.4%] | 68 |

Fixes the regression from https://github.com/rust-lang/rust/pull/156242, already triaged by @saethlin (author): "Perf impact is the inverse of the PR linked in the description, within typical jitter. The net effect of the two PRs is nothing."
Loading