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

Overall, the week was fairly neutral, with no meaningful shift on most benchmarks on any of our statistics.

Triage done by **@simulacrum**.
Revision range: [8b6558a0..7dc2c162](https://perf.rust-lang.org/?start=8b6558a02b2774acfb25cf15e199467c37ba7490&end=7dc2c162b9c197aaa76a6f9e7534569537830a01&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.9% | [0.1%, 3.7%] | 45 |
| Regressions ❌ <br /> (secondary) | 0.9% | [0.0%, 8.0%] | 74 |
| Improvements ✅ <br /> (primary) | -0.4% | [-1.4%, -0.2%] | 34 |
| Improvements ✅ <br /> (secondary) | -4.0% | [-30.6%, -0.2%] | 57 |
| All ❌✅ (primary) | 0.3% | [-1.4%, 3.7%] | 79 |


2 Regressions, 1 Improvement, 7 Mixed; 5 of them in rollups
34 artifact comparisons made in total

#### Regressions

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

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

Root cause is Update doc_cfg hide/show syntax
[#157871](https://github.com/rust-lang/rust/pull/157871). Probably worth some
follow-up since it affects lots of doc benchmarks, and at least a glance it
seems plausible this might have a simple fix (syntax changes don't feel like
they should be meaningfully more expensive, especially in code that doesn't use
this feature like `helloworld`).

resolve: Explicit Set for detecting resolution cycles [#158035](https://github.com/rust-lang/rust/pull/158035) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7dc2c162b9c197aaa76a6f9e7534569537830a01&end=096694416a41840709140eb0fd0ca193d1a3e6ba&stat=instructions:u)

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

This primarily (outside incremental) affects unused-warnings, which is a stress
test for this code. It's expected that this change would be a slight
regression, but per the PR description, this unblocks parallelization of this
code, which is an important benefit.

#### Improvements

Rework lint pass running [#158239](https://github.com/rust-lang/rust/pull/158239) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=73100eefe2afb831c4964f579c95beeb27b86e28&end=973ad0d0ab149bde2e96422833c1265c7a5be217&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.9%, -0.1%] | 16 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.0%, -0.2%] | 30 |
| All ❌✅ (primary) | -0.3% | [-0.9%, -0.1%] | 16 |

#### Mixed

GVN: Don't assume nested shared references are read-only. [#157346](https://github.com/rust-lang/rust/pull/157346) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d29dae8d17abb191a24f57eb00f68ebc1b168314&end=91fe22da8084a1c9e993d78d4a56f22ab8396236&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.1%, 0.5%] | 9 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.4%] | 11 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.1%, -0.2%] | 5 |
| All ❌✅ (primary) | 0.0% | [-0.4%, 0.5%] | 19 |

Soundness fix, regressions are minor.

Rollup of 35 pull requests [#158342](https://github.com/rust-lang/rust/pull/158342) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8e25b4121d5ea29bef166b86173fb043782ffbff&end=73100eefe2afb831c4964f579c95beeb27b86e28&stat=instructions:u)

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

* Improvements are fully from proc_macro simplification [#157271](https://github.com/rust-lang/rust/pull/157271)
* Regressions are from:
* delegation: add support for infers in generics [#157960](https://github.com/rust-lang/rust/pull/157960)
* fixed in delegation: store child segment flag in PathSegment [#158556](https://github.com/rust-lang/rust/pull/158556)
* Possibly some other PRs; note that there is also some regressions in ctfe-stress that I suspect are noise.

Add rigid alias marker [#156742](https://github.com/rust-lang/rust/pull/156742) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=973ad0d0ab149bde2e96422833c1265c7a5be217&end=fa36a479e492137fdf473a891206da127f132910&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.0% | [0.3%, 2.1%] | 22 |
| Regressions ❌ <br /> (secondary) | 1.2% | [0.3%, 3.6%] | 13 |
| Improvements ✅ <br /> (primary) | -0.1% | [-0.1%, -0.1%] | 3 |
| Improvements ✅ <br /> (secondary) | -6.0% | [-30.9%, -0.1%] | 31 |
| All ❌✅ (primary) | 0.8% | [-0.1%, 2.1%] | 25 |

> necessary refactor for the new trait solver and I would just eat the 1.4% diesel regression.

(see more here: https://github.com/rust-lang/rust/pull/156742#issuecomment-4807181842)

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

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

Non-instruction count wins from reverting a change to how we build LLVM which
broke PGO. Minor regressions/wins otherwise that are *maybe* within noise
threshold, not worth digging deeper.

Rollup of 15 pull requests [#158455](https://github.com/rust-lang/rust/pull/158455) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ce9954c0cfc4bf26b82aef16e6fd8b020c237992&end=16761606d606b6ec4d0c88fc9251670742ad9fd2&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 2 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.2%] | 6 |
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 8 |
| All ❌✅ (primary) | 0.0% | [-0.2%, 0.1%] | 3 |

* Add arg splat experiment initial tuple impl [#153697](https://github.com/rust-lang/rust/pull/153697) explains the regressions.
* New feature, some poking at optimizing perf was attempted and this was
best-possible so far. Previous work on this feature improved perf so this
series is still a benefit overall in some sense.
* Improvements from:
* Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children [#158360](https://github.com/rust-lang/rust/pull/158360)
* perf: Make stable_crate_ids reads lock-free after crate loading [#158185](https://github.com/rust-lang/rust/pull/158185)

Rollup of 15 pull requests [#158508](https://github.com/rust-lang/rust/pull/158508) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8b95a26baf5820929d86a844317160905e7b325b&end=fd07dbfc91b7b6b3fa76d957e130c51e654131ee&stat=instructions:u)

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

> The change is the same as [#157996](https://github.com/rust-lang/rust/pull/157996),
> which was explicitly listed as perf. The overall improvement was deemed to be worth it.

Move `std::io::Error` into `core` [#155625](https://github.com/rust-lang/rust/pull/155625) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=df6ee909ef35c75aa58aa45af6ac071a9b8285c2&end=7fb284d9037fa54f6a9b24261c82b394472cbfd7&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.0% | [0.5%, 2.6%] | 9 |
| Regressions ❌ <br /> (secondary) | 1.4% | [0.2%, 7.7%] | 23 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -4.7% | [-6.0%, -3.2%] | 6 |
| All ❌✅ (primary) | 1.0% | [0.5%, 2.6%] | 9 |

Expected mixed results since this change shuffles a lot of code around between
crates/impl blocks and as a result likely tweaking how much things are
inlinable. Most of the results are probably fallout from that rather than rustc
performance changes in a direct sense. I don't think we need to dig deeper here.
Loading