diff --git a/triage/2026/2026-05-25.md b/triage/2026/2026-05-25.md new file mode 100644 index 000000000..900a644c9 --- /dev/null +++ b/triage/2026/2026-05-25.md @@ -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 ❌
(primary) | 0.4% | [0.1%, 0.7%] | 5 | +| Regressions ❌
(secondary) | 0.5% | [0.1%, 1.1%] | 16 | +| Improvements ✅
(primary) | -0.9% | [-6.6%, -0.1%] | 164 | +| Improvements ✅
(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 ❌
(primary) | 0.7% | [0.7%, 0.7%] | 1 | +| Regressions ❌
(secondary) | 0.4% | [0.4%, 0.4%] | 1 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(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 ❌
(primary) | 0.3% | [0.2%, 0.4%] | 11 | +| Regressions ❌
(secondary) | 0.2% | [0.0%, 0.6%] | 12 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.9% | [-6.7%, -0.1%] | 144 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.7% | [-0.7%, -0.7%] | 1 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.1% | [0.1%, 0.1%] | 1 | +| Improvements ✅
(primary) | -1.4% | [-2.2%, -0.7%] | 4 | +| Improvements ✅
(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 ❌
(primary) | 0.7% | [0.7%, 0.7%] | 1 | +| Regressions ❌
(secondary) | 0.4% | [0.4%, 0.4%] | 1 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(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 ❌
(primary) | 0.3% | [0.2%, 0.4%] | 64 | +| Regressions ❌
(secondary) | 0.3% | [0.1%, 0.4%] | 38 | +| Improvements ✅
(primary) | -0.3% | [-0.5%, -0.2%] | 9 | +| Improvements ✅
(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 ❌
(primary) | 0.7% | [0.5%, 0.8%] | 3 | +| Regressions ❌
(secondary) | 0.7% | [0.2%, 1.0%] | 9 | +| Improvements ✅
(primary) | -0.3% | [-0.5%, -0.2%] | 20 | +| Improvements ✅
(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 ❌
(primary) | 0.3% | [0.3%, 0.4%] | 2 | +| Regressions ❌
(secondary) | 0.2% | [0.2%, 0.2%] | 8 | +| Improvements ✅
(primary) | -0.3% | [-0.4%, -0.2%] | 66 | +| Improvements ✅
(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."