Skip to content

triage report for 2021-09-07. #995

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 8, 2021
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
65 changes: 65 additions & 0 deletions triage/2021-09-07.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# 2021-09-07 Triage Log

A busy week, with lots of mixed changes, though in the end only a few were deemed significant enough to report here.

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

3 Regressions, 1 Improvements, 3 Mixed; 0 of them in rollups
57 comparisons made in total

#### Regressions

Shrink Session a bit [#88530](https://github.com/rust-lang/rust/issues/88530)
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=64929313f53181636e4dd37e25836973205477e4&end=fcce644119cf4e8e36001368e514bb5ed67cb855&stat=instructions:u) (up to 2.6% on `full` builds of `deeply-nested-async`)

Concrete regions can show up in mir borrowck if the originated from there [#88533](https://github.com/rust-lang/rust/issues/88533)
- Very small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=29ef6cf1637aa8317f8911f93f14e18d404c1b0e&end=a3956106d12cebec91be0637759e29ab6908b4cd&stat=instructions:u) (up to 1.0% on `incr-patched: add static arr item` builds of `coercions`)
- This is a small regression to `coercions` and that may be noise. However, there are many others that are over 0.4% regression to instruction counts. The combination of those two factors led pnkfelix to think that we may want to take a second look at the effects of this PR.

Introduce `let...else` [#87688](https://github.com/rust-lang/rust/issues/87688)
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=a3956106d12cebec91be0637759e29ab6908b4cd&end=c2a408840ad18f74280805535f0b7193528ff3df&stat=instructions:u) (up to -0.3% on `incr-unchanged` builds of `deeply-nested-closures`)
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a3956106d12cebec91be0637759e29ab6908b4cd&end=c2a408840ad18f74280805535f0b7193528ff3df&stat=instructions:u) (up to 0.4% on `full` builds of `issue-46449`)
- Small regression (approximately 1%) in instruction counts on several of the *-doc tests, found via human eye.

#### Improvements

Move global analyses from lowering to resolution [#88597](https://github.com/rust-lang/rust/issues/88597)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=c5799b2a73bd03d1d7b4a432fa0a0cb93e7288db&end=577a76f0031f727735410b99a5cc5f0b61b92eef&stat=instructions:u) (up to -1.6% on `incr-unchanged` builds of `keccak`)


#### Mixed

Preserve most sub-obligations in the projection cache [#85868](https://github.com/rust-lang/rust/issues/85868)
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=b834c4c1bad7521af47f38f44a4048be0a1fe2ee&end=371f3cd3fe523d0b398ed1db1620667c53ba7d02&stat=instructions:u) (up to -6.9% on `incr-unchanged` builds of `deeply-nested`)
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=b834c4c1bad7521af47f38f44a4048be0a1fe2ee&end=371f3cd3fe523d0b398ed1db1620667c53ba7d02&stat=instructions:u) (up to 9.4% on `full` builds of `deeply-nested`)


BTreeMap/BTreeSet::from_iter: use bulk building to improve the performance [#88448](https://github.com/rust-lang/rust/issues/88448)
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=11bbb5231349a0a144d86d5c0c21061a06d1969d&end=ffaf857045f4f4d8bb563e0a5077f9b065f42916&stat=instructions:u) (up to -3.0% on `full` builds of `inflate`)
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=11bbb5231349a0a144d86d5c0c21061a06d1969d&end=ffaf857045f4f4d8bb563e0a5077f9b065f42916&stat=instructions:u) (up to 4.5% on `incr-patched: println` builds of `clap-rs`)

Avoid invoking the hir_crate query to traverse the HIR [#88435](https://github.com/rust-lang/rust/issues/88435)
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=e30b68353fe22b00f40d021e7914eeb78473b3c1&end=7849e3e9dda60e8ec826ee245c6b180e73911b37&stat=instructions:u) (up to -1.2% on `incr-patched: add static arr item` builds of `coercions`)
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=e30b68353fe22b00f40d021e7914eeb78473b3c1&end=7849e3e9dda60e8ec826ee245c6b180e73911b37&stat=instructions:u) (up to 0.5% on `incr-unchanged` builds of `helloworld`)
- pnkfelix included this one as notable largely because the expected perf changes from [the actual PR](https://github.com/rust-lang/rust/pull/88435#issuecomment-907700333) largely showed slight improvements across the board, while after it landed on nightly, it is best categorized as "Mixed"

#### Untriaged Pull Requests

- [#88597 Move global analyses from lowering to resolution](https://github.com/rust-lang/rust/pull/88597)
- [#88552 Stop allocating vtable entries for non-object-safe methods](https://github.com/rust-lang/rust/pull/88552)
- [#88312 Treat types in unnormalized function signatures as well-formed](https://github.com/rust-lang/rust/pull/88312)
- [#87815 encode `generics_of` for fields and ty params](https://github.com/rust-lang/rust/pull/87815)
- [#87781 Remove box syntax from compiler and tools](https://github.com/rust-lang/rust/pull/87781)
- [#87640 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/87640)
- [#87587 Various refactorings of the TAIT infrastructure](https://github.com/rust-lang/rust/pull/87587)
- [#87570 Upgrade to LLVM 13](https://github.com/rust-lang/rust/pull/87570)
- [#87244 Better diagnostics with mismatched types due to implicit static lifetime](https://github.com/rust-lang/rust/pull/87244)
- [#86898 Add fast path for Path::cmp that skips over long shared prefixes](https://github.com/rust-lang/rust/pull/86898)
- [#86777 Include terminators in instance size estimate](https://github.com/rust-lang/rust/pull/86777)
- [#86698 Move OnDiskCache to rustc_query_impl.](https://github.com/rust-lang/rust/pull/86698)
- [#86588 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/86588)
- [#86034 Change entry point to 🛡️ against 💥 💥-payloads](https://github.com/rust-lang/rust/pull/86034)
- [#85556 Warn about unreachable code following an expression with an uninhabited type](https://github.com/rust-lang/rust/pull/85556)
- [#84560 Inline Iterator as IntoIterator.](https://github.com/rust-lang/rust/pull/84560)
- [#83302 Get piece unchecked in `write`](https://github.com/rust-lang/rust/pull/83302)