|
| 1 | +2020-09-21 Triage Log |
| 2 | + |
| 3 | +This was the first week of semi-automated perf triage, and thank goodness: |
| 4 | +There was a lot going on. Most regressions are either quite small or already |
| 5 | +have a fix published. |
| 6 | + |
| 7 | +[#72412](https://github.com/rust-lang/rust/issues/72412) is probably the most |
| 8 | +interesting case. It fixes a pathological problem involving nested closures by |
| 9 | +adding cycle detection to what seems to be a relatively hot part of the code. |
| 10 | +As a result, most users will see a slight [compile-time |
| 11 | +regression](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=task-clock) |
| 12 | +for their crates. |
| 13 | + |
| 14 | +Triage done by **@ecstaticmorse**. |
| 15 | +Revision range: [dbb73f8f79ab176a897d5a95e696adb71b957cbe..b01326ab033e41986d4a5c8b96ce4f40f3b38e30](https://perf.rust-lang.org/?start=dbb73f8f79ab176a897d5a95e696adb71b957cbe&end=b01326ab033e41986d4a5c8b96ce4f40f3b38e30&absolute=false&stat=instructions%3Au) |
| 16 | + |
| 17 | +2 Regressions, 5 Improvements, 4 Mixed, |
| 18 | +1 of them in rollups |
| 19 | + |
| 20 | +#### Regressions |
| 21 | + |
| 22 | +[#76575](https://github.com/rust-lang/rust/issues/76575) compare generic constants using `AbstractConst`s |
| 23 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=fdc3405c20122fd0f077f5a77addabc873f20e4c&end=9f8ac718f44e280edb1a7b3266f2c26106ec11a0&stat=instructions:u) |
| 24 | + (up to 2.4% on `full` builds of `inflate-check`) |
| 25 | + |
| 26 | +[#74040](https://github.com/rust-lang/rust/issues/74040) fix unification of const variables |
| 27 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=956e06c6c85e918524b67503c4d65c7baf539585&end=e0bf356f9e5f6a8cca1eb656e900ffba79340fa1&stat=instructions:u) |
| 28 | + (up to 3.3% on `incr-full` builds of `coercions-debug`) |
| 29 | + |
| 30 | +#### Improvements |
| 31 | + |
| 32 | +[#76656](https://github.com/rust-lang/rust/issues/76656) Don't query stability data when `staged_api` is off |
| 33 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=f9a322a6fdd1e12fbe30441feaa4402e23efe303&end=1eb00abf35b9bb59825edf81d05c2fa2f17cefca&stat=instructions:u) |
| 34 | + (up to -1.5% on `incr-unchanged` builds of `many-assoc-items-check`) |
| 35 | + |
| 36 | +[#76311](https://github.com/rust-lang/rust/issues/76311) Split `core::slice` to smaller mods |
| 37 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=90b1f5ae59291dd69d72fad41a22277df19dc953&end=4c1966f97e192d6282be935baa163fb58f9b8b27&stat=instructions:u) |
| 38 | + (up to -1.9% on `full` builds of `html5ever-opt`) |
| 39 | +- Very odd, since this just split up a file. |
| 40 | + |
| 41 | +[#76880](https://github.com/rust-lang/rust/issues/76880) Update cc crate to 1.0.60 to understand aarch64-apple-darwin with clang |
| 42 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=8e9d5db8392c44a2e94008168fa3506ecddaa357&end=b3aae050cd7e0c9a9eb6085bd49b02f67dc1396f&stat=instructions:u) |
| 43 | +(up to -1.0% on `incr-patched: Compiler new` builds of `regex-opt`) |
| 44 | + |
| 45 | +[#76975](https://github.com/rust-lang/rust/issues/76975) Rollup of 15 pull requests |
| 46 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=b873fa6d42cf305131d2583d03b84686e5e40f2e&end=81e02708f1f4760244756548981277d5199baa9a&stat=instructions:u) |
| 47 | +on exactly `encoding-check` (-2.0% on `incr-full` builds) |
| 48 | + |
| 49 | +[#76680](https://github.com/rust-lang/rust/issues/76680) Make `ensure_sufficient_stack()` non-generic, using cargo-llvm-lines |
| 50 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=4eff9b0b29a8898c839d46f3c66526710afed68a&end=b01326ab033e41986d4a5c8b96ce4f40f3b38e30&stat=instructions:u) |
| 51 | +(up to -3.2% on `incr-full` builds of `coercions-debug`) |
| 52 | + |
| 53 | +#### Mixed |
| 54 | + |
| 55 | +[#76244](https://github.com/rust-lang/rust/issues/76244) Removing the `def_id` field from hot `ParamEnv` to make it smaller |
| 56 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=instructions:u) |
| 57 | + (up to 3.3% on `full` builds of `unicode_normalization-check`) |
| 58 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=instructions:u) |
| 59 | + (up to -1.8% on `full` builds of `ctfe-stress-4-check`) |
| 60 | +- A fix has been published as [#76913](https://github.com/rust-lang/rust/pull/76913). |
| 61 | + |
| 62 | +[#72412](https://github.com/rust-lang/rust/issues/72412) Issue 72408 nested closures exponential |
| 63 | +- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=instructions:u) |
| 64 | + (up to -99.9% on `incr-unchanged` builds of `deeply-nested-closures-opt`) |
| 65 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=instructions:u) |
| 66 | + (up to 1.5% on `full` builds of `coercions-check`) |
| 67 | +- Fixes a pathological case, but slows down normal builds slightly. |
| 68 | +- Might be worth investigating to see if we can do better, although the author seems to have done a pretty thorough job. |
| 69 | + |
| 70 | +[#74949](https://github.com/rust-lang/rust/issues/74949) Validate constants during `const_eval_raw` |
| 71 | +- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=10b3595ba6a4c658c9dea105488fc562c815e434&end=5e449b9adff463455743291b0c1f76feec092992&stat=instructions:u) |
| 72 | + (up to 515.8% on `incr-unchanged` builds of `ctfe-stress-4-check`) |
| 73 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=10b3595ba6a4c658c9dea105488fc562c815e434&end=5e449b9adff463455743291b0c1f76feec092992&stat=instructions:u) |
| 74 | + (up to -2.7% on `incr-patched: add static arr item` builds of `coercions-check`) |
| 75 | +- A fix has been published as [#77006](https://github.com/rust-lang/rust/pull/77006). |
| 76 | + |
| 77 | +[#75119](https://github.com/rust-lang/rust/issues/75119) New MIR optimization pass to reduce branches on match of tuples of enums |
| 78 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=81e02708f1f4760244756548981277d5199baa9a&end=2e0edc0f28c5647141bedba02e7a222d3a5dc9c3&stat=instructions:u) |
| 79 | + (up to -1.6% on `full` builds of `style-servo-opt`) |
| 80 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=81e02708f1f4760244756548981277d5199baa9a&end=2e0edc0f28c5647141bedba02e7a222d3a5dc9c3&stat=instructions:u) |
| 81 | + (up to 1.3% on `full` builds of `wf-projection-stress-65510-check`) |
| 82 | +- Seems to have been a regression overall. If there's no improvment in the generated code, we should disable this. |
| 83 | + |
| 84 | +#### Nags requiring follow up |
| 85 | + |
| 86 | +- [#75119](https://github.com/rust-lang/rust/issues/75119) |
| 87 | +- [#76575](https://github.com/rust-lang/rust/issues/76575) |
| 88 | + |
0 commit comments