# 2025-04-14 Triage Log

Relatively small changes this week, nothing terribly impactful (positive or negative).

Triage done by **@simulacrum**.
Revision range: [e643f59f..15f58c46](https://perf.rust-lang.org/?start=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&end=15f58c46da79399961a09db0c650a2f90f442e6b&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.7%  | [0.1%, 2.1%]   | 39    |
| Regressions ❌ <br /> (secondary)  | 0.8%  | [0.2%, 3.2%]   | 23    |
| Improvements ✅ <br /> (primary)   | -0.6% | [-0.9%, -0.3%] | 7     |
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.5%, -0.1%] | 40    |
| All ❌✅ (primary)                 | 0.5%  | [-0.9%, 2.1%]  | 46    |

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

#### Regressions

Rollup of 10 pull requests [#139766](https://github.com/rust-lang/rust/pull/139766) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6e830462330a9e34d8176e86d4580dd0820c6fd5&end=15f58c46da79399961a09db0c650a2f90f442e6b&stat=instructions:u)

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

Real regression, though limited only to doc builds. Investigating root cause in PR.

#### Improvements

speed up `String::push` and `String::insert` [#124810](https://github.com/rust-lang/rust/pull/124810) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=48f89e7659678f91a68c0c2d868180a0036ab32d&end=934880f586f6ac1f952c7090e2a943fcd7775e7b&stat=instructions:u)

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


Rollup of 13 pull requests [#139622](https://github.com/rust-lang/rust/pull/139622) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7d7de5bf3c3cbf9c2c5bbc5cbfb9197a8a427d35&end=69b3959afec9b5468d5de15133b199553f6e55d2&stat=instructions:u)

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


Polymorphize `array::IntoIter`'s iterator impl [#139430](https://github.com/rust-lang/rust/pull/139430) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d2b3dd7c173de58881ead8109f7970b9cd926e2a&end=1bc56185ee257ed829a0aea7abdc3b03c5fed887&stat=instructions:u)

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


#### Mixed

Allow GVN to produce places and not just locals. [#139327](https://github.com/rust-lang/rust/pull/139327) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97c966bb40756903f8aa13995629128d157f6056&end=f06e5c1e35bc5bc6131c6f8a0eb782097e3f28c3&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.7%  | [0.7%, 0.7%]   | 1     |
| Regressions ❌ <br /> (secondary)  | 0.7%  | [0.7%, 0.7%]   | 1     |
| Improvements ✅ <br /> (primary)   | -0.6% | [-0.6%, -0.6%] | 1     |
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.9%, -0.2%] | 10    |
| All ❌✅ (primary)                 | 0.0%  | [-0.6%, 0.7%]  | 2     |

Regressions look plausibly real, but are limited (~2 scenarios) and outweighed
by benefits. No further investigation warranted.

Ensure `swap_nonoverlapping` is really always untyped [#137412](https://github.com/rust-lang/rust/pull/137412) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2205455d444f5f9da3a52e50f43c0306480218fb&end=0fe8f3454dbe9dda52a254991347e96bec579a6f&stat=instructions:u)

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

Correctness improvement. Regressions look real, though limited to just a few
scenarios, and correctness is more important. No further investigation warranted.

Remove `Nonterminal` and `TokenKind::Interpolated` [#124141](https://github.com/rust-lang/rust/pull/124141) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=15f58c46da79399961a09db0c650a2f90f442e6b&end=f836ae4e663b6e8938096b8559e094d18361be55&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 1.0%  | [0.3%, 2.1%]   | 11    |
| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |
| Improvements ✅ <br /> (primary)   | -0.5% | [-1.4%, -0.2%] | 48    |
| Improvements ✅ <br /> (secondary) | -1.0% | [-2.4%, -0.3%] | 36    |
| All ❌✅ (primary)                 | -0.2% | [-1.4%, 2.1%]  | 59    |

Overall improvements outweigh limited regressions. Marking as triaged.
