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
172 changes: 172 additions & 0 deletions triage/2026/2026-07-21.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
# 2026-07-21 Triage Log

The two most notable changes this week were [#159115](https://github.com/rust-lang/rust/pull/159115),
which resulted in pretty nice instruction count wins for full incremental builds on several benchmarks,
and [#159091](https://github.com/rust-lang/rust/pull/159091), which enabled PGO for rustdoc, which
makes it ~3-4% faster across the board.

There were two large rollups with tiny performance regressions, which made it difficult to find
the offending PRs.

Triage done by **@Kobzol**.
Revision range: [5503df87..d527bc9b](https://perf.rust-lang.org/?start=5503df87342a73d0c29126a7e08dc9c1255c46ad&end=d527bc9bfa297ca7fd7f5ae93781eeec42073170&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 40 |
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 4.6%] | 69 |
| Improvements ✅ <br /> (primary) | -2.0% | [-6.2%, -0.2%] | 136 |
| Improvements ✅ <br /> (secondary) | -2.6% | [-8.4%, -0.2%] | 119 |
| All ❌✅ (primary) | -1.4% | [-6.2%, 1.0%] | 176 |


2 Regressions, 3 Improvements, 6 Mixed; 4 of them in rollups
34 artifact comparisons made in total

#### Regressions

Rollup of 13 pull requests [#159246](https://github.com/rust-lang/rust/pull/159246) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=225e91c03da22cd4b9792b83c1cfc97967101614&end=daf2e5e18b3abc4311d9da3d96fd64138f43d508&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 3 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.5%] | 20 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.6%, -0.6%] | 1 |
| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 3 |

- The regressions are tiny, but across the board.
- Started several performance runs.
- Not marking as triaged yet.

Shrink `ast::Expr64` [#158720](https://github.com/rust-lang/rust/pull/158720) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=38a0576951fb5f7209c892b030f40ac166ae86b4&end=470556c8c1c21a736c90deea5c70d093ffa4e762&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.6%] | 3 |
| Regressions ❌ <br /> (secondary) | 0.6% | [0.3%, 1.3%] | 25 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 0.4% | [0.3%, 0.6%] | 3 |

- This change resulted in instruction count regressions, but cycle count and wall-time wins.
- Already marked as triaged.

#### Improvements

Rollup of 3 pull requests [#159367](https://github.com/rust-lang/rust/pull/159367) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ab4bbeb07dc7dc2d30e9f83d3e0326df981e0ee2&end=d62fb1c8a007f6967376a52da8315ae51b64a70c&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -1.9% | [-2.5%, -1.5%] | 13 |
| All ❌✅ (primary) | - | - | 0 |


Overhaul `CfgTrace`/`CfgAttrTrace` handling [#159266](https://github.com/rust-lang/rust/pull/159266) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4a9d5368df6450bbd2fc8dde4508c3e5d83bb19d&end=656ccbe796ff98def9b555c118e1620c5389e3b2&stat=instructions:u)

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


Get rid of `StructurallyRelateAliases` [#158731](https://github.com/rust-lang/rust/pull/158731) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=14ead7d3d509f50efe9afb84673e65885dfd4d07&end=9e71b3bc704eea68d39bd0f6a46703c7d22f5d3b&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -1.4% | [-4.7%, -0.2%] | 24 |
| All ❌✅ (primary) | - | - | 0 |


#### Mixed

Eagerly check for ambiguity in macro parsing [#158976](https://github.com/rust-lang/rust/pull/158976) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=da80ed0708a09dc096c184345d6eb42cbcd50a1e&end=2f5253f0087ee60faab7dbe7c9002163c605ac7e&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 10 |
| Improvements ✅ <br /> (primary) | -0.9% | [-2.3%, -0.3%] | 29 |
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.9%, -0.4%] | 5 |
| All ❌✅ (primary) | -0.9% | [-2.3%, -0.3%] | 29 |

- More wins than regressions.
- Already marked as triaged.

Rollup of 22 pull requests [#159293](https://github.com/rust-lang/rust/pull/159293) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2f5253f0087ee60faab7dbe7c9002163c605ac7e&end=38a0576951fb5f7209c892b030f40ac166ae86b4&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 0.8%] | 13 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.2%] | 2 |
| All ❌✅ (primary) | - | - | 0 |

- There seems to be a very tiny regression across the board, which is a bit larger (but still small) on some secondary benchmarks.
- The `wg-grammar` tiny regression was likely caused by [#158993](https://github.com/rust-lang/rust/pull/158993).
- Marked as triaged.

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

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.5%] | 7 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.5%] | 26 |
| Improvements ✅ <br /> (primary) | -0.8% | [-0.9%, -0.8%] | 4 |
| Improvements ✅ <br /> (secondary) | -2.9% | [-5.1%, -0.7%] | 2 |
| All ❌✅ (primary) | -0.1% | [-0.9%, 0.5%] | 11 |

- Small regression caused by standard library dependency upgrades in [#159345](https://github.com/rust-lang/rust/pull/159345).
- Already marked as triaged.

Move fast paths around to gain a bit of new-solver perf [#158249](https://github.com/rust-lang/rust/pull/158249) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d62fb1c8a007f6967376a52da8315ae51b64a70c&end=a6050b7ea848e25289bf097c606e0611c58ef4f3&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 1.2% | [0.2%, 2.2%] | 11 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -5.1% | [-8.4%, -1.5%] | 6 |
| All ❌✅ (primary) | - | - | 0 |

- Only affects the next trait solver. Some benchmarks regressed, but there are larger wins.
- Marked as triaged.

Use PGO for rustdoc [#159091](https://github.com/rust-lang/rust/pull/159091) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=421875f8d2bbb9a9a47db179092a3266b87106d4&end=b6839f4d0e2bd63b960bbff8619c6fdea27d81e5&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 4.5% | [4.5%, 4.5%] | 1 |
| Improvements ✅ <br /> (primary) | -4.1% | [-6.3%, -1.6%] | 20 |
| Improvements ✅ <br /> (secondary) | -5.1% | [-8.1%, -2.0%] | 23 |
| All ❌✅ (primary) | -4.1% | [-6.3%, -1.6%] | 20 |

- Many wins on `doc` benchmarks, expectedly, as this PR enabled PGO for rustdoc.
- Only one regression on a secondary benchmark.
- Marked as triaged.

perf: dep_graph: deduplicate task reads with an epoch-filtered index recorder [#159115](https://github.com/rust-lang/rust/pull/159115) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c904ba32e22c9d6fd31140b4283c5cc6c6b2fb5c&end=c7d7da3428c0e8b261e1ce1687e7228cf053cc62&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.1%, 0.5%] | 11 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.3%] | 4 |
| Improvements ✅ <br /> (primary) | -1.8% | [-6.4%, -0.3%] | 101 |
| Improvements ✅ <br /> (secondary) | -1.5% | [-4.9%, -0.1%] | 96 |
| All ❌✅ (primary) | -1.6% | [-6.4%, 0.5%] | 112 |

- A lot of big wins, and only a few tiny regressions.
- Marked as triaged.
Loading