Skip to content

Commit 6d02c04

Browse files
Add triage-2021-01-20 (#827)
2 parents cb328b9 + aae7f09 commit 6d02c04

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

triage/2021-01-20.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
2+
2021-01-20 Triage Log
3+
4+
A busy week with more performance gains than regressions. These changes included one very large [perf gain](https://github.com/rust-lang/rust/issues/79670) and one very large [perf regression](https://github.com/rust-lang/rust/issues/78407) in stress test benchmarks that seem to only produce mild perf changes in real world use cases.
5+
6+
Triage done by **@rylev**.
7+
Revision range: [b6b461652a9bebfb4ddabcae896ee7237cf0962a..e05409a02c6e73a3dea6da98798468db2910ca59](https://perf.rust-lang.org/?start=b6b461652a9bebfb4ddabcae896ee7237cf0962a&end=e05409a02c6e73a3dea6da98798468db2910ca59&absolute=false&stat=instructions%3Au)
8+
9+
3 Regressions, 5 Improvements, 4 Mixed
10+
2 of them in rollups
11+
12+
#### Regressions
13+
14+
Use tcx.symbol_name when determining clashing extern declarations. [#80009](https://github.com/rust-lang/rust/issues/80009)
15+
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=704e47f78b4c8801a3c76f235a5a152e1b60b300&end=7a9b552cb1621c9c57898d147228aab32b65a7c3&stat=instructions:u) (up to 1.3% on `incr-full` builds of `externs-check`)
16+
- Fix for [overeager warning in clashing extern declarations](https://github.com/rust-lang/rust/issues/79581).
17+
- Unsure how much performance can be gained back but an allocation is occuring that isn't strictly necessary. Perhaps removing it will help.
18+
- PR author was pinged about the regression [here](https://github.com/rust-lang/rust/pull/80009#issuecomment-763526902)
19+
20+
Update cargo [#80974](https://github.com/rust-lang/rust/issues/80974)
21+
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=18ec4a9a74731ddc6a453ca29c0836f61dbcb8d4&end=e48eb37b9470a26748c916f7153569906f3c67bf&stat=instructions:u) (up to 5.2% on `incr-unchanged` builds of `token-stream-stress-opt`)
22+
- Purely an update of Cargo. Not sure why this is causing issues.
23+
24+
implement ptr::write without dedicated intrinsic [#80290](https://github.com/rust-lang/rust/issues/80290)
25+
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=63a83c5f55801b17b77adf690db397d17c706c48&end=492b83c6971c390af7a42932869502224ef55ef7&stat=instructions:u) (up to 1.2% on `full` builds of `regex-debug`)
26+
- Small regex-debug full builds regression specifically in the `LLVM_module_codegen_emit_obj` query. This largely affects debug builds due to this previously being an instrinsic but now requiring LLVM to optimize it to its previously efficient form.
27+
- An idea for gaining the performance back can be found [here](https://github.com/rust-lang/rust/pull/80290#issuecomment-763583590)
28+
29+
#### Improvements
30+
31+
Turn type inhabitedness into a query to fix `exhaustive_patterns` perf [#79670](https://github.com/rust-lang/rust/issues/79670)
32+
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=7a9b552cb1621c9c57898d147228aab32b65a7c3&end=058a71016553f267ae80b90276ef79956457d51a&stat=instructions:u) (up to -22.6% on `full` builds of `match-stress-exhaustive_patterns-check`)
33+
- Large wins in the match stress test. Up to 22% and nearly 86% in the `check_match` query.
34+
35+
Reintroduce hir::ExprKind::If [#79328](https://github.com/rust-lang/rust/issues/79328)
36+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=7bb163095d8c751787f1449f3f3c245077f484e3&end=d03fe84169d50a4b96cdef7b2f862217ab634055&stat=instructions:u) (up to -3.1% on `incr-full` builds of `clap-rs-check`)
37+
38+
Use probe-stack=inline-asm in LLVM 11+ [#77885](https://github.com/rust-lang/rust/issues/77885)
39+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=6c869d34ae2d87d21db9892d4dc088639bcbe041&end=635ccfe01c0be19d9fb0a99facbd9e06290f0ab1&stat=instructions:u) (up to -2.1% on `incr-unchanged` builds of `cargo-check`)
40+
41+
Try to avoid locals when cloning into Box/Rc/Arc [#80824](https://github.com/rust-lang/rust/issues/80824)
42+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=9f3998b4aa9d0eea3249fdd48b8b719185673d16&end=116d1a7056830ccf649f74f823de4333ed329392&stat=instructions:u) (up to -1.3% on `incr-patched: b9b3e592dd cherry picked` builds of `style-servo-debug`)
43+
44+
BTreeMap: convert search functions to methods [#81159](https://github.com/rust-lang/rust/issues/81159)
45+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=5e91c4ecc09312d8b63d250a432b0f3ef83f1df7&end=73f233b3ad68b54f854c0aea918fc496a35502cf&stat=instructions:u) (up to -1.6% on `full` builds of `ripgrep-opt`)
46+
47+
#### Mixed
48+
49+
Make CTFE able to check for UB... [#78407](https://github.com/rust-lang/rust/issues/78407)
50+
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=497c9a256b1c2961e91565ccc6e0dd3a87a031ed&end=704e47f78b4c8801a3c76f235a5a152e1b60b300&stat=instructions:u) (up to 191.2% on `full` builds of `ctfe-stress-4-check`)
51+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=497c9a256b1c2961e91565ccc6e0dd3a87a031ed&end=704e47f78b4c8801a3c76f235a5a152e1b60b300&stat=instructions:u) (up to -4.4% on `full` builds of `many-assoc-items-check`)
52+
- Unfortunately, the regressions outweigh the improvements considerably though the regressions are in the stress test for const eval which this change directly impacts, particularly the `eval_to_allocation_raw` query.
53+
- These regressions were determined necessary and seem to only dramatically impact stress benchmarks while sometimes leading to perf gains in real world use cases.
54+
55+
Rollup of 10 pull requests [#80960](https://github.com/rust-lang/rust/issues/80960)
56+
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=150d1fee04856ff158e34e8d687a7fe59e97ef33&end=fc93e4719c2ced744d75f0c281bb7ba29844bedd&stat=instructions:u) (up to 87.7% on `incr-patched: sparse set` builds of `regex-debug`)
57+
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=150d1fee04856ff158e34e8d687a7fe59e97ef33&end=fc93e4719c2ced744d75f0c281bb7ba29844bedd&stat=instructions:u) (up to -5.8% on `incr-patched: u8 3072` builds of `issue-46449-debug`)
58+
- Perf losses seem to be coming from LLVM codegen which leads me to believe that [#80796](https://github.com/rust-lang/rust/pull/80796) is possibly to blame. A perf test has been [kicked off](https://github.com/rust-lang/rust/pull/81207).
59+
60+
Rollup of 13 pull requests [#81113](https://github.com/rust-lang/rust/issues/81113)
61+
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=7d3818152d8ab5649d2e5cc6d7851ed7c03055fe&end=edeb631ad0cd6fdf31e2e31ec90e105d1768be28&stat=instructions:u) (up to -6.1% on `incr-unchanged` builds of `webrender-check`)
62+
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=7d3818152d8ab5649d2e5cc6d7851ed7c03055fe&end=edeb631ad0cd6fdf31e2e31ec90e105d1768be28&stat=instructions:u) (up to 5.8% on `incr-unchanged` builds of `deep-vector-check`)
63+
- Hard to tell which PR is responsible though it seems like the regressions are largely coming in the `expand_crate` query. Best guesss might be [#80031](https://github.com/rust-lang/rust/pull/80031).
64+
65+
Remove PredicateKind and instead only use Binder<PredicateAtom> [#80679](https://github.com/rust-lang/rust/issues/80679)
66+
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=1f0fc02cc8ab4e0d9dd3e06a6d46fcb72b2a026f&end=4253153db205251f72ea4493687a31e04a2a8ca0&stat=instructions:u) (up to 3.3% on `full` builds of `deeply-nested-async-check`)
67+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=1f0fc02cc8ab4e0d9dd3e06a6d46fcb72b2a026f&end=4253153db205251f72ea4493687a31e04a2a8ca0&stat=instructions:u) (up to -2.0% on `incr-full` builds of `deeply-nested-async-debug`)
68+
- Largely reverts the performance changes (both regressions and gains) from [#73503](https://github.com/rust-lang/rust/pull/73503).
69+
70+
#### Nags requiring follow up
71+
72+
* Still need a follow up to one of last weeks [perf regressions](https://github.com/rust-lang/rust/pull/80441).

0 commit comments

Comments
 (0)