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

Lots of changes this week with results dominated by the 1-5% improvements from
[#142941](https://github.com/rust-lang/rust/pull/142941) across lots of primary
benchmarks in the suite.

Triage done by **@simulacrum**.
Revision range: [42245d34..ad3b7257](https://perf.rust-lang.org/?start=42245d34d22ade32b3f276dcf74deb826841594c&end=ad3b7257615c28aaf8212a189ec032b8af75de51&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 2.9% | [0.2%, 21.6%] | 16 |
| Regressions ❌ <br /> (secondary) | 1.5% | [0.1%, 13.5%] | 38 |
| Improvements ✅ <br /> (primary) | -0.9% | [-4.5%, -0.1%] | 99 |
| Improvements ✅ <br /> (secondary) | -6.2% | [-67.9%, -0.1%] | 100 |
| All ❌✅ (primary) | -0.4% | [-4.5%, 21.6%] | 115 |

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

#### Regressions

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

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

Regressions in ctfe and match stress tests, trying to find the PR that
introduced them in case there's obvious tweaks, but not particularly
noteworthy given the limited impact.

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

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

Regressions are in the `coercions` stress test, not clear which of the rolled
up PRs caused it. Started one candidate perf run.

Rollup of 11 pull requests [#143173](https://github.com/rust-lang/rust/pull/143173) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=dddd7ab96229ea5f2ca96afcb5984a9831393a13&end=5ca574e85b67cec0a6fc3fddfe398cbe676c9c69&stat=instructions:u)

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

Likely due to [#142641](https://github.com/rust-lang/rust/pull/142641) which
added extra work to proc-macro crates, which are the benchmarks affected here.

#### Improvements

Encode hir attributes cross-crate properly [#142777](https://github.com/rust-lang/rust/pull/142777) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d14d202262d13df896b0c624b0cec6e4bfde631a&end=0fa4ec6cde46fa17ab07acb5531cfe0dc1349ffa&stat=instructions:u)

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


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

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


Fast path for WF goals in new solver [#142223](https://github.com/rust-lang/rust/pull/142223) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e61dd437f33b5a640e67dc3628397689c664c17f&end=df32e15c56f582eb2bdde07711af6271f2ae660b&stat=instructions:u)

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


Collapse Analysis|Borrowck|PostBorrowckAnalysis when there are no opaques [#142802](https://github.com/rust-lang/rust/pull/142802) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ed2d759783dc9de134bbb3f01085b1e6dbf539f3&end=35f6036521777bdc0dcea1f980be4c192962a168&stat=instructions:u)

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


Shallowly bail from `coerce_unsized` more [#142941](https://github.com/rust-lang/rust/pull/142941) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=35f6036521777bdc0dcea1f980be4c192962a168&end=f19142044f270760ce0ebc03b2c3a44217d8703d&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.8% | [0.8%, 0.8%] | 1 |
| Improvements ✅ <br /> (primary) | -0.8% | [-4.6%, -0.2%] | 84 |
| Improvements ✅ <br /> (secondary) | -5.6% | [-21.6%, -0.1%] | 71 |
| All ❌✅ (primary) | -0.8% | [-4.6%, -0.2%] | 84 |


#### Mixed

update to literal-escaper 0.0.4 for better API without `unreachable` and faster string parsing [#140999](https://github.com/rust-lang/rust/pull/140999) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3de5b08ef6b260277dd4c77f7472fe6904bd6002&end=2c2bb995af398383e3b93b859302bdc447ca7a7c&stat=instructions:u)

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

Regressions limited to stm32f4, some mild improvements, doesn't seem worth
further investigation.

Stop collecting unmentioned constants [#142893](https://github.com/rust-lang/rust/pull/142893) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d51b6f97122671c5de27cfc08cded235357e0d97&end=13c46fd0b089360922a557d8e18a63a2c41dfbeb&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:------:|:----------------:|:-----:|
| Regressions ❌ <br /> (primary) | 19.2% | [17.2%, 21.2%] | 2 |
| Regressions ❌ <br /> (secondary) | 9.1% | [6.0%, 13.4%] | 5 |
| Improvements ✅ <br /> (primary) | -1.6% | [-2.3%, -0.8%] | 8 |
| Improvements ✅ <br /> (secondary) | -67.8% | [-67.9%, -67.8%] | 2 |
| All ❌✅ (primary) | 2.6% | [-2.3%, 21.2%] | 10 |

Regressed benchmarks are incremental scenarios which have changed codegen units
-- overall, this is an improvement in the typical case.

Don't fold in Instantiate when there's nothing to fold [#142317](https://github.com/rust-lang/rust/pull/142317) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b63223c152212832ce37a109e26cc5f84c577532&end=7ba34c704529e7fcab80130c3fe40efe415d61b5&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 9 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.1%] | 3 |
| Improvements ✅ <br /> (secondary) | -2.6% | [-2.9%, -2.4%] | 6 |
| All ❌✅ (primary) | 0.1% | [-0.3%, 0.3%] | 12 |

Some mixed results from this but improvements were deemed as outweighing the
regressions ([comment](https://github.com/rust-lang/rust/pull/142317#issuecomment-2964689882)).

Only compute recursive callees once. [#142625](https://github.com/rust-lang/rust/pull/142625) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7ba34c704529e7fcab80130c3fe40efe415d61b5&end=11ad40bb839ca16f74784b4ab72596ad85587298&stat=instructions:u)

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

Per the PR description makes some intentional tradeoffs between two variants of
implementation and is overall an improvement or neutral.

Stop backends from needing to support nullary intrinsics [#142839](https://github.com/rust-lang/rust/pull/142839) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f19142044f270760ce0ebc03b2c3a44217d8703d&end=ad3b7257615c28aaf8212a189ec032b8af75de51&stat=instructions:u)

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

Some slight changes, no particularly significant changes.
Loading