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

We had some infrastructure troubles this week which prevented some rollup PRs from generating their
"unrolled" builds, which made rollup regression investigation more complicated, although we were
able to locate and revert the largest rollup regressions in the end. [#154304](https://github.com/rust-lang/rust/pull/154304) brought some nice improvements by optimizing the query system.

Triage done by **@kobzol**.
Revision range: [6f22f613..cf7da0b7](https://perf.rust-lang.org/?start=6f22f61305478df09f9a4523743f85d9f558c3d7&end=cf7da0b7277cad05b79f91b60c290aa08a17a6f0&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 1.2%] | 4 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.5%] | 12 |
| Improvements ✅ <br /> (primary) | -0.8% | [-6.2%, -0.2%] | 58 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.9%, -0.1%] | 28 |
| All ❌✅ (primary) | -0.8% | [-6.2%, 1.2%] | 62 |

3 Regressions, 4 Improvements, 2 Mixed; 2 of them in rollups
35 artifact comparisons made in total

#### Regressions

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

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

- The unicode normalization blip was noise. The rest looks real, but the regressions are tiny and only on `doc` builds, and since we don't have unrolled builds here, I don't think it's worth it to go revert the individual PRs.
- Marked as triaged.

Rollup of 22 pull requests [#154384](https://github.com/rust-lang/rust/pull/154384) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=212ef7770dfad656782207fda799bdae28fc5b7b&end=80d0e4be6f15899649ba31669077c59a986f96cc&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.2% | [0.1%, 3.8%] | 53 |
| Regressions ❌ <br /> (secondary) | 0.9% | [0.2%, 6.2%] | 45 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 1.2% | [0.1%, 3.8%] | 53 |

- The regressions came from several pull requests.
- [#154200](https://github.com/rust-lang/rust/pull/154200) caused compilation time and binary size regressions.
It was reverted in [#154468](https://github.com/rust-lang/rust/pull/154468), and there is now an
open PR ([#154532](https://github.com/rust-lang/rust/pull/154532)) to reapply it with some modifications.
- [#154344](https://github.com/rust-lang/rust/pull/154344), an LLVM version update, caused the rest of the major compilation time regressions. The root cause commit was reverted in [#154511](https://github.com/rust-lang/rust/pull/154511).
- Marked as triaged.

constify `Step` trait and all of its `impl`ementations [#153821](https://github.com/rust-lang/rust/pull/153821) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=79531c53ded6316bd4973f60bc992954255b8b10&end=7e28c7438a7b0c79a09724ba799d32ed461beb72&stat=instructions:u)

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

- Some tiny regressions in debug and opt builds.
- Asked for a follow-up.
- Not marking as triaged yet.

#### Improvements

`DepNode` use improvements [#154076](https://github.com/rust-lang/rust/pull/154076) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6f22f61305478df09f9a4523743f85d9f558c3d7&end=212b0d480f337082bbe1132d2b62be20e7e61f8a&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.0%] | 12 |
| All ❌✅ (primary) | - | - | 0 |


Revert "Rollup merge of #154200 - resrever:enable-dwarf-call-sites, r=dingxiangfei2009" [#154468](https://github.com/rust-lang/rust/pull/154468) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0d4eb09831046687ccd28e8a570735e90f22004c&end=fb27476aaf1012f1f6ace6306f9b990e0d989c31&stat=instructions:u)

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


resolve: Never lookup glob names in modules from other crates [#154472](https://github.com/rust-lang/rust/pull/154472) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fb27476aaf1012f1f6ace6306f9b990e0d989c31&end=3f3c6f45dc68eb71d1e01ae716bad4da164dfbf1&stat=instructions:u)

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


[perf] Revert FastISel patch [#154511](https://github.com/rust-lang/rust/pull/154511) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=80ad55752e5ae6c2d1bc143b819eb8d1c00167d1&end=116458d0a5ae01cd517cabd2d1aee7f5457018ab&stat=instructions:u)

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


#### Mixed

rustc_expand: improve diagnostics for non-repeatable metavars [#154014](https://github.com/rust-lang/rust/pull/154014) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=80d0e4be6f15899649ba31669077c59a986f96cc&end=1174f784096deb8e4ba93f7e4b5ccb7bb4ba2c55&stat=instructions:u)

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

- Small regression on html5ever, it was deemed to be acceptable prior to merging.
- Marked as triaged.

Make typeck a tcx method which calls typeck_root query [#154304](https://github.com/rust-lang/rust/pull/154304) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cd14b73b4a41542d921f59e362a5b5005fa4f2ef&end=a25435bcf7cfc9b953d356eda3a51db8da9e3386&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 6 |
| Improvements ✅ <br /> (primary) | -1.1% | [-6.1%, -0.2%] | 41 |
| Improvements ✅ <br /> (secondary) | -0.7% | [-2.0%, -0.2%] | 11 |
| All ❌✅ (primary) | -1.0% | [-6.1%, 0.2%] | 44 |

- Many more improvements than regressions.
- Marked as triaged.

Loading