Skip to content
Open
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
144 changes: 144 additions & 0 deletions triage/2026/2026-04-27.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# 2026-04-27 Triage Log

Relatively few perf-affecting changes this week. Perf report is more positive
than users should see due to the `-Zincremental-verify-ich` related
improvements in [#155473](https://github.com/rust-lang/rust/pull/155473).

Triage done by **@simulacrum**.
Revision range: [9ab01ae5..ca9a134e](https://perf.rust-lang.org/?start=9ab01ae53c416f89fe256b79588a76dcbcdc9290&end=ca9a134e0985765ded9cfdde4030a5df4db7e2bd&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.8% | [0.4%, 2.0%] | 17 |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.0%, 1.7%] | 10 |
| Improvements ✅ <br /> (primary) | -0.8% | [-2.8%, -0.2%] | 137 |
| Improvements ✅ <br /> (secondary) | -1.0% | [-5.3%, -0.0%] | 176 |
| All ❌✅ (primary) | -0.6% | [-2.8%, 2.0%] | 154 |

1 Regression, 5 Improvements, 3 Mixed; 3 of them in rollups
32 artifact comparisons made in total

#### Regressions

privacy: Assert that compared visibilities are (usually) ordered [#155257](https://github.com/rust-lang/rust/pull/155257) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fb76025f2fe6a1c8ce03fe0931f941c8077a2c34&end=9838411cb723b60dc62b1625751075c4d933b992&stat=instructions:u)

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

This regressed in typenum and libc, both of which have many imports/items
declared. Based on PR discussion, it sounds like this is an intentional
regression with a goal of identifying potential bugs in the wild where
visibilities don't match expectations.
<https://github.com/rust-lang/rust/pull/155608> is a potential improvement
mitigating the impact.

#### Improvements

Replace `ShardedHashMap` method `insert` with debug-checked `insert_unique` [#155550](https://github.com/rust-lang/rust/pull/155550) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=913e4bea83424658d76712fee9c52452a3a9ef0e&end=30837cb66de032fbc8072c8ecbf76c39c5b14478&stat=instructions:u)

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


Streamline `CrateMetadataRef` construction in `provide_one!`. [#155628](https://github.com/rust-lang/rust/pull/155628) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=827651f2200cefab42dac4c2ae7f80a7149340de&end=2eaa5de4a3a911f52adbee7dda0bc84b06115576&stat=instructions:u)

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


Permit `{This}` in diagnostic attribute format literals [#155662](https://github.com/rust-lang/rust/pull/155662) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7c61a357e3c91b8a3c02dc63b7744d942d572a9a&end=80729d7ce0ec05aef7a33d9892484cfd5cf34675&stat=instructions:u)

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


Prefer `-1` for `None` [#155473](https://github.com/rust-lang/rust/pull/155473) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c7fe5e9d1eb0ef8cc033961956d60f8e2e91e741&end=d4f78565699b229227c9e9ca8164efa3d5d7213e&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.9%] | 5 |
| Improvements ✅ <br /> (primary) | -0.3% | [-2.7%, -0.1%] | 67 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.8%, -0.1%] | 52 |
| All ❌✅ (primary) | -0.3% | [-2.7%, -0.1%] | 67 |

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

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.0%, 0.1%] | 2 |
| Improvements ✅ <br /> (primary) | -0.8% | [-3.7%, -0.2%] | 110 |
| Improvements ✅ <br /> (secondary) | -1.2% | [-5.5%, -0.0%] | 83 |
| All ❌✅ (primary) | -0.8% | [-3.7%, -0.2%] | 110 |

The few regressions in include-blob look to be potentially noise. Marked as
triaged. The majority or all of the improvements are mostly not going to affect
users, they're specific to `-Zincremental-verify-ich` which is not on by
default (but is on in the perf collector). See
[comment](https://github.com/rust-lang/rust/pull/155655#issuecomment-4301028365).

#### Mixed

Rollup of 6 pull requests [#155596](https://github.com/rust-lang/rust/pull/155596) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=93637f398f4d0d40badc6bf1ed3f241499d06f88&end=365515367b4a20a315ec65a466991441b9dfba66&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.0% | [0.3%, 2.1%] | 14 |
| Regressions ❌ <br /> (secondary) | 0.6% | [0.6%, 0.7%] | 7 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 3 |
| All ❌✅ (primary) | 1.0% | [0.3%, 2.1%] | 14 |

Ran perf runs on PRs inside the rollup and identified root cause as "Fix
#[expect(dead_code)] liveness propagation"
[#154377](https://github.com/rust-lang/rust/pull/154377#issuecomment-4330991142).
Marked the regression as triaged since that is a correctness fix and I suspect
the regression is isolated in instruction count rather than wall clock changes.

`AliasTerm` refactor [#155392](https://github.com/rust-lang/rust/pull/155392) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f9988fefd3add01f414f52b414308e7872622fee&end=1bfcb284f7a2199ad322daa463e29e708d5bc635&stat=instructions:u)

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

[Asked](https://github.com/rust-lang/rust/pull/155392#issuecomment-4331105877)
whether we think the tradeoff is worth it on the PR.

Rollup of 7 pull requests [#155687](https://github.com/rust-lang/rust/pull/155687) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2eaa5de4a3a911f52adbee7dda0bc84b06115576&end=36ba2c7712052d731a7082d0eba5ed3d9d56c133&stat=instructions:u)

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

Unclear what the root cause is. Kicked off a build on #155469.
Loading