# 2022-10-18 Triage Log

Overall a fairly busy week, with many improvements and regressions, though the
net result ends up being a small regression. Pretty busy week in terms of
regressions in rollups as well, which unfortunately mostly were not followed up
on prior to the report being put together, despite the relative ease of running
perf against individual PRs now.

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

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | 1.7% | [0.2%, 6.3%] | 46    |
| Regressions ❌ <br /> (secondary) | 1.6% | [0.3%, 5.4%] | 46    |
| Improvements ✅ <br /> (primary) | -0.6% | [-2.3%, -0.2%] | 45    |
| Improvements ✅ <br /> (secondary) | -2.0% | [-9.2%, -0.2%] | 32    |
| All ❌✅ (primary) | 0.6% | [-2.3%, 6.3%] | 91    |

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

#### Regressions

Populate effective visibilities in 'rustc_resolve' [#102026](https://github.com/rust-lang/rust/pull/102026) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bf286a82e236e065c67909657e3a35d1511d1864&end=b8b5caee04116c7383eb1c6470fcf15c437a60d4&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | 1.1% | [0.2%, 5.6%] | 65    |
| Regressions ❌ <br /> (secondary) | 0.9% | [0.2%, 3.7%] | 32    |
| Improvements ✅ <br /> (primary) | -    | -     | 0     |
| Improvements ✅ <br /> (secondary) | -    | -     | 0     |
| All ❌✅ (primary) | 1.1% | [0.2%, 5.6%] | 65    |

The compiler is doing more work after this PR, but haven't yet narrowed in on a
fix or exact cause for the regression. @petrochenkov expects that we probably
ought to be able to reduce the impact.

Rollup of 7 pull requests [#102915](https://github.com/rust-lang/rust/pull/102915) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1e926f06528ecb2503f026e2fd53cb735d487b10&end=bb93450ec4af83c20e9ba6c8e575aca55423001a&stat=instructions:u)

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

The improvements here are in diesel, which is noise; the regressions look
plausibly real. Queued an additional perf run for further investigation.

#### Improvements

Rollup of 11 pull requests [#102926](https://github.com/rust-lang/rust/pull/102926) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cde693cf962f0f606e33eb21242f6bcd2d8d8b7a&end=db0597f5619d5ed93feca28e61226d3581cc7867&stat=instructions:u)

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

This may not be as much of an improvement as it looks; the diesel-related
changes are all spurious (we are seeing an uptick in noise there).

Remove `TokenStreamBuilder` [#102692](https://github.com/rust-lang/rust/pull/102692) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7e8d64e792543fedb8574ac0a27522dbab66aa52&end=2b91cbe2d4ce90d30520674876e9d700cf7a561b&stat=instructions:u)

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

remove type traversal for mir constants [#102355](https://github.com/rust-lang/rust/pull/102355) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=abd77441010d74430be5c34a2e62002e578fa165&end=a9d1cafa878ecc04a4aa7aaa7df0414a29a2bd0b&stat=instructions:u)

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

Rollup of 7 pull requests [#103026](https://github.com/rust-lang/rust/pull/103026) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=60bd3f96779dbe6bd206dae09395e9af7d580552&end=edabf59ca4646b3fc1a961c26431215001043f6a&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | 0.9% | [0.7%, 1.1%] | 6     |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1     |
| Improvements ✅ <br /> (primary) | -    | -     | 0     |
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.5%, -0.3%] | 7     |
| All ❌✅ (primary) | 0.9% | [0.7%, 1.1%] | 6     |

Regressions are essentially all in diesel, which are spurious.

#### Mixed


Rollup of 7 pull requests [#102975](https://github.com/rust-lang/rust/pull/102975) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=538f118da1409759ba198acc0ff62070bc6d2dce&end=c0983a9aac889d16722a12602ac678051e62c3fb&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 1.0%] | 19    |
| Regressions ❌ <br /> (secondary) | 1.3% | [0.2%, 3.8%] | 41    |
| Improvements ✅ <br /> (primary) | -0.9% | [-1.7%, -0.4%] | 14    |
| Improvements ✅ <br /> (secondary) | -    | -     | 0     |
| All ❌✅ (primary) | -0.0% | [-1.7%, 1.0%] | 33    |


Check hidden types in dead code [#102700](https://github.com/rust-lang/rust/pull/102700) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6b3ede3f7bc502eba7bbd202b4b9312d812adcd7&end=60bd3f96779dbe6bd206dae09395e9af7d580552&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | -    | -     | 0     |
| Regressions ❌ <br /> (secondary) | 1.2% | [1.0%, 1.3%] | 4     |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 13    |
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.7%, -0.5%] | 4     |
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 13    |


Get rid of `rustc_query_description!` [#102895](https://github.com/rust-lang/rust/pull/102895) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c93ef33700e4e4f84fd85690df71b14c1d2b0aa3&end=b8c35ca26b191bb9a9ac669a4b3f4d3d52d97fb1&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.5%] | 9     |
| Regressions ❌ <br /> (secondary) | 0.6% | [0.3%, 0.8%] | 5     |
| Improvements ✅ <br /> (primary) | -    | -     | 0     |
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.2%, -0.2%] | 6     |
| All ❌✅ (primary) | 0.3% | [0.2%, 0.5%] | 9     |


Make `overlapping_impls` not generic [#102931](https://github.com/rust-lang/rust/pull/102931) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ddc7fd983736bef0e610e02f5ef08955ecd562bb&end=75dbd5b8c3e3e3e7673caa890422e654d39b815e&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------:|:----:|:-----:|:-----:|
| Regressions ❌ <br /> (primary) | -    | -     | 0     |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.5%, 0.5%] | 2     |
| Improvements ✅ <br /> (primary) | -1.6% | [-2.3%, -1.1%] | 7     |
| Improvements ✅ <br /> (secondary) | -    | -     | 0     |
| All ❌✅ (primary) | -1.6% | [-2.3%, -1.1%] | 7     |
