|
| 1 | +# 2026-05-25 Triage Log |
| 2 | + |
| 3 | +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). |
| 4 | + |
| 5 | +Triage done by **@panstromek**. |
| 6 | +Revision range: [281c97c3..783eb8c8](https://perf.rust-lang.org/?start=281c97c3240a9abd984ca0c6a2cd7389115e80d5&end=783eb8c8682ddde0807c60ed8293670ef523794f&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 0.7%] | 5 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.1%] | 16 | |
| 14 | +| Improvements ✅ <br /> (primary) | -0.9% | [-6.6%, -0.1%] | 164 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-1.3%, -0.1%] | 51 | |
| 16 | +| All ❌✅ (primary) | -0.9% | [-6.6%, 0.7%] | 169 | |
| 17 | + |
| 18 | + |
| 19 | +2 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups |
| 20 | +34 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +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) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 29 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 33 | + |
| 34 | +`nalgebra` regressions are noise (return to default state after previous PR). |
| 35 | + |
| 36 | +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) |
| 37 | + |
| 38 | +| (instructions:u) | mean | range | count | |
| 39 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 40 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 11 | |
| 41 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.6%] | 12 | |
| 42 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 43 | +| Improvements ✅ <br /> (secondary) | -1.9% | [-1.9%, -1.9%] | 1 | |
| 44 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 11 | |
| 45 | + |
| 46 | +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. |
| 47 | + |
| 48 | +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. |
| 49 | + |
| 50 | +#### Improvements |
| 51 | + |
| 52 | +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) |
| 53 | + |
| 54 | +| (instructions:u) | mean | range | count | |
| 55 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 56 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 57 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (primary) | -0.9% | [-6.7%, -0.1%] | 144 | |
| 59 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-1.3%, -0.1%] | 31 | |
| 60 | +| All ❌✅ (primary) | -0.9% | [-6.7%, -0.1%] | 144 | |
| 61 | + |
| 62 | + |
| 63 | +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) |
| 64 | + |
| 65 | +| (instructions:u) | mean | range | count | |
| 66 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 67 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 68 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 69 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 1 | |
| 70 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 1 | |
| 71 | +| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 | |
| 72 | + |
| 73 | +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). |
| 74 | + |
| 75 | +#### Mixed |
| 76 | + |
| 77 | +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) |
| 78 | + |
| 79 | +| (instructions:u) | mean | range | count | |
| 80 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 81 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 82 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 | |
| 83 | +| Improvements ✅ <br /> (primary) | -1.4% | [-2.2%, -0.7%] | 4 | |
| 84 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 85 | +| All ❌✅ (primary) | -1.4% | [-2.2%, -0.7%] | 4 | |
| 86 | + |
| 87 | +`include-blob` regression is noise. |
| 88 | + |
| 89 | +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) |
| 90 | + |
| 91 | +| (instructions:u) | mean | range | count | |
| 92 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 93 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 94 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1 | |
| 95 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 96 | +| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 | |
| 97 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 98 | + |
| 99 | +Perf results are noise, this PR doesn't change anything in the compiler. It seems that `nalgebra` `opt` became bimodal. |
| 100 | + |
| 101 | +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) |
| 102 | + |
| 103 | +| (instructions:u) | mean | range | count | |
| 104 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 105 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 64 | |
| 106 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.4%] | 38 | |
| 107 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 9 | |
| 108 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 8 | |
| 109 | +| All ❌✅ (primary) | 0.2% | [-0.5%, 0.4%] | 73 | |
| 110 | + |
| 111 | +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. |
| 112 | + |
| 113 | +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) |
| 114 | + |
| 115 | +| (instructions:u) | mean | range | count | |
| 116 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 117 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.5%, 0.8%] | 3 | |
| 118 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.0%] | 9 | |
| 119 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 20 | |
| 120 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 5 | |
| 121 | +| All ❌✅ (primary) | -0.2% | [-0.5%, 0.8%] | 23 | |
| 122 | + |
| 123 | +Improvements mostly outweigh regressions. Results roughly match pre-merge results, so I assume the comments above still hold and this is considered fine. |
| 124 | + |
| 125 | +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) |
| 126 | + |
| 127 | +| (instructions:u) | mean | range | count | |
| 128 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 129 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.4%] | 2 | |
| 130 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 8 | |
| 131 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 66 | |
| 132 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 42 | |
| 133 | +| All ❌✅ (primary) | -0.3% | [-0.4%, 0.4%] | 68 | |
| 134 | + |
| 135 | +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." |
0 commit comments