# 2023-09-26 Triage Log

A very quiet week with the only large change in performance being improvements brought on by @saethlin's work on cleaning up the `FileEncoder` used in various places like `rustc_metadata` and `rustc_serialize`.

Triage done by **@rylev**.
Revision range: [af78bae..27b4eb9](https://perf.rust-lang.org/?start=af78bae565e85b9c5698ee909af0652674eca6d4&end=27b4eb96d13106332d511be2ea6d0c008a57aa6e&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.6%  | [0.3%, 1.1%]   | 15    |
| Regressions ❌ <br /> (secondary)  | 2.0%  | [0.2%, 7.1%]   | 32    |
| Improvements ✅ <br /> (primary)   | -0.7% | [-1.3%, -0.3%] | 70    |
| Improvements ✅ <br /> (secondary) | -0.9% | [-3.5%, -0.2%] | 31    |
| All ❌✅ (primary)                 | -0.4% | [-1.3%, 1.1%]  | 85    |


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

#### Regressions

Fix `ui-fulldeps --stage=1` with `-Zignore-directory-in-diagnostics-source-blocks` [#116009](https://github.com/rust-lang/rust/pull/116009) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4fda889bf8735755573b27e6116ce025f3ded5f9&end=0a689c1be85d635bf61ffb7922ef9ce02587a3b1&stat=instructions:u)

| (instructions:u)                   | mean | range        | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.4% | [0.4%, 0.5%] | 3     |
| Regressions ❌ <br /> (secondary)  | -    | -            | 0     |
| Improvements ✅ <br /> (primary)   | -    | -            | 0     |
| Improvements ✅ <br /> (secondary) | -    | -            | 0     |
| All ❌✅ (primary)                 | 0.4% | [0.4%, 0.5%] | 3     |
- This only modified tests so this is noise


rustdoc: correctly render the return type of cross-crate async fns [#116084](https://github.com/rust-lang/rust/pull/116084) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6f13ea0d1a0687073d36b5b1f7dd0e41e67665fb&end=0288f2e1955b154262e0669ec5f7bb9a4c6cf5aa&stat=instructions:u)

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


#### Improvements

Pretty-print argument-position impl trait to name it. [#113955](https://github.com/rust-lang/rust/pull/113955) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ac5ac4754a4a837f7138a1fa5ab01475b63fc9fe&end=bdb0fa3ee5ffb4cc1a1b53cbe8344a2b83b1ae2a&stat=instructions:u)

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


compiletest: load supported sanitizers from target spec [#115695](https://github.com/rust-lang/rust/pull/115695) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e4133ba9b1a150ef624f5d189913a37405f4414c&end=55b5c7bfde6247db5e4d2e3efe353e13849bb233&stat=instructions:u)

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


Do not create a DerefLen place for `Box<[T]>`. [#115794](https://github.com/rust-lang/rust/pull/115794) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8a6bae28247fbaa3257856e00d084ac8c90712f3&end=551c7183f8ae46c4b4fd0237acbdc937670bf74a&stat=instructions:u)

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


#### Mixed

Simplify/Optimize FileEncoder [#115542](https://github.com/rust-lang/rust/pull/115542) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad36b5a622b0d6d6f0f3260049b2245ee1f27a07&end=3223b0b5e8dadda3f76c3fd1a8d6c5addc09599e&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 1.0%  | [0.7%, 1.3%]   | 2     |
| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |
| Improvements ✅ <br /> (primary)   | -0.6% | [-1.2%, -0.2%] | 95    |
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.2%, -0.3%] | 28    |
| All ❌✅ (primary)                 | -0.6% | [-1.2%, 1.3%]  | 97    |
- looks like a small regression snuck back in. The regressions seem real, but perhaps it's not worth it given the much larger amount of improvements.


Enable effects for libcore [#114776](https://github.com/rust-lang/rust/pull/114776) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=aace2dfa37f4589b0071530d2ed7b352f6196704&end=8759de0a4935e677fdce99a849addea2d5318da9&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.3%  | [0.3%, 0.4%]   | 4     |
| Regressions ❌ <br /> (secondary)  | 0.6%  | [0.3%, 0.8%]   | 3     |
| Improvements ✅ <br /> (primary)   | -     | -              | 0     |
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.3%] | 4     |
| All ❌✅ (primary)                 | 0.3%  | [0.3%, 0.4%]   | 4     |
- Per Oli: The perf run shows a few extra executions of queries and metadata encoding, which seems unavoidable to me. We may get the perf back when ripping out the const checker's logic that is only needed until we enable effects by default for doing const fn callability checks


Enable -Zdrop-tracking-mir by default [#107421](https://github.com/rust-lang/rust/pull/107421) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=19c65022fc1ad9cc3d3dcf50a0bdf50e4ab572ab&end=13e6f24b9adda67852fb86538541adaa68aff6e8&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.4%  | [0.4%, 0.5%]   | 2     |
| Regressions ❌ <br /> (secondary)  | 4.5%  | [0.3%, 6.5%]   | 9     |
| Improvements ✅ <br /> (primary)   | -0.4% | [-0.4%, -0.4%] | 1     |
| Improvements ✅ <br /> (secondary) | -2.5% | [-3.3%, -1.9%] | 5     |
| All ❌✅ (primary)                 | 0.2%  | [-0.4%, 0.5%]  | 3     |
- it seems the regressions to await-call-tree are real, but it's unclear what the underlying cause is.


Add the `cfg_match!` macro [#115416](https://github.com/rust-lang/rust/pull/115416) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=42ca6e4e5760a548a6fa858482de6d237f6fb3b8&end=8a6bae28247fbaa3257856e00d084ac8c90712f3&stat=instructions:u)

| (instructions:u)                   | mean  | range          | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary)    | 0.6%  | [0.5%, 0.7%]   | 4     |
| Regressions ❌ <br /> (secondary)  | 0.5%  | [0.5%, 0.6%]   | 2     |
| Improvements ✅ <br /> (primary)   | -1.3% | [-1.3%, -1.3%] | 1     |
| Improvements ✅ <br /> (secondary) | -     | -              | 0     |
| All ❌✅ (primary)                 | 0.2%  | [-1.3%, 0.7%]  | 5     |
- This is noise

