|
| 1 | +# 2022-02-02 Triage Log |
| 2 | + |
| 3 | +This was a relatively quiet week with regressions and improvements relatively equally each other out. The big exception is with a somewhat large regression in rustdoc which was needed for a large and important architectural change. This could lead to users see somewhat slower doc build times with more memory used especially in projects with large crate dependency graphs. |
| 4 | + |
| 5 | +Triage done by **@rylev**. |
| 6 | +Revision range: [c54dfee65126a0ac385d55389a316e89095a0713..1ea4851715893ee3f365a8ef09d47165e9a7864f](https://perf.rust-lang.org/?start=c54dfee65126a0ac385d55389a316e89095a0713&end=1ea4851715893ee3f365a8ef09d47165e9a7864f&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups |
| 9 | +35 comparisons made in total |
| 10 | + |
| 11 | +#### Regressions |
| 12 | + |
| 13 | +rustdoc: Pre-calculate traits that are in scope for doc links [#88679](https://github.com/rust-lang/rust/issues/88679) |
| 14 | +- Average relevant regression: 5.4% |
| 15 | +- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d502eda250d0090f4990cc6880c88b95a92b4818&end=788b1fe5b79a8b74215022f9df49b0eae68a50b9&stat=instructions:u): 9.1% on `full` builds of `regression-31157 doc` |
| 16 | +- All the regressions are localized to rustdoc and are quite substantial but exacerbated by an architectural issue which needs to be solved. |
| 17 | +- The regressions are well known and extensively discussed in the PR with the [next steps](https://github.com/rust-lang/rust/pull/88679#issuecomment-1021810724) being tracked in an issue. |
| 18 | + |
| 19 | + |
| 20 | +Store def_id_to_hir_id as variant in hir_owner. [#93373](https://github.com/rust-lang/rust/issues/93373) |
| 21 | +- Average relevant regression: 1.2% |
| 22 | +- Average relevant improvement: -0.3% |
| 23 | +- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=86f5e177bca8121e1edc9864023a8ea61acf9034&end=24b8bb13bff98bb747cd403b86596af43aceee78&stat=instructions:u): 5.5% on `incr-unchanged` builds of `match-stress-enum check` |
| 24 | +- This is the first commit (originally bundled with [#93301](https://github.com/rust-lang/rust/issues/93301)) of a larger PR ([#89278](https://github.com/rust-lang/rust/pull/89278)) which saw larger PR regressions than the two sub PRs combined. |
| 25 | +- A more detailed justification for this can be [found here](https://github.com/rust-lang/rust/pull/93373#issuecomment-1027962065), but in general this allows for even more incremental compilation and is thus worth the small immediate compilation performance penalty. |
| 26 | + |
| 27 | + |
| 28 | +#### Improvements |
| 29 | + |
| 30 | +Fix the unsoundness in the `early_otherwise_branch` mir opt pass [#91840](https://github.com/rust-lang/rust/issues/91840) |
| 31 | +- Average relevant improvement: -1.1% |
| 32 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=788b1fe5b79a8b74215022f9df49b0eae68a50b9&end=a7f375789bab1a4e4a291c963081a8ca7d2b6bd7&stat=instructions:u): -6.9% on `full` builds of `deeply-nested-async check` |
| 33 | + |
| 34 | + |
| 35 | +Only traverse attrs once while checking for coherence override attributes [#93343](https://github.com/rust-lang/rust/issues/93343) |
| 36 | +- Average relevant improvement: -1.1% |
| 37 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=5ab502c6d308b0ccac8127c0464e432334755a60&end=312a7995e73e390646bc61920ffead7a640addc6&stat=instructions:u): -1.4% on `incr-full` builds of `stm32f4 check` |
| 38 | + |
| 39 | + |
| 40 | +Rollup of 10 pull requests [#93427](https://github.com/rust-lang/rust/issues/93427) |
| 41 | +- Average relevant improvement: -1.2% |
| 42 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=e0a55f4491a729bffc63b402ba903d90858c806b&end=6250d5a08cf0870d3655fa98b83718bc01ff6f45&stat=instructions:u): -1.9% on `full` builds of `ctfe-stress-4 doc` |
| 43 | + |
| 44 | + |
| 45 | +Disable drop range analysis [#93284](https://github.com/rust-lang/rust/issues/93284) |
| 46 | +- Average relevant improvement: -1.6% |
| 47 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=547f2ba06bc4aa93a375c54e1af3fd1216eeaf62&end=686663a49e57870c78a4cd047f23a44175fc67a4&stat=instructions:u): -2.0% on `full` builds of `await-call-tree check` |
| 48 | + |
| 49 | + |
| 50 | +#### Mixed |
| 51 | + |
| 52 | +Store hir_id_to_def_id in OwnerInfo. [#93301](https://github.com/rust-lang/rust/issues/93301) |
| 53 | +- Average relevant regression: 0.6% |
| 54 | +- Average relevant improvement: -0.5% |
| 55 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=a7f375789bab1a4e4a291c963081a8ca7d2b6bd7&end=6abb6385b2cb7249f67b9b3ce7522527767dd907&stat=instructions:u): -0.6% on `full` builds of `unused-warnings check` |
| 56 | +- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a7f375789bab1a4e4a291c963081a8ca7d2b6bd7&end=6abb6385b2cb7249f67b9b3ce7522527767dd907&stat=instructions:u): 2.2% on `incr-unchanged` builds of `match-stress-enum check` |
| 57 | +- This is the first commit (originally bundled with [#93373](https://github.com/rust-lang/rust/issues/93373)) of a larger PR ([#89278](https://github.com/rust-lang/rust/pull/89278)) which saw larger PR regressions than the two sub PRs combined. |
| 58 | + |
| 59 | + |
| 60 | +Create `core::fmt::ArgumentV1` with generics instead of fn pointer [#90891](https://github.com/rust-lang/rust/issues/90891) |
| 61 | +- Average relevant regression: 1.2% |
| 62 | +- Average relevant improvement: -1.2% |
| 63 | +- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=08df8b81d6e723c66fee579d57d61dc60bc21fc1&end=e58e7b10e13595b4df1b105bfb9ad03c8dee7832&stat=instructions:u): -6.7% on `full` builds of `tokio-webpush-simple opt` |
| 64 | +- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=08df8b81d6e723c66fee579d57d61dc60bc21fc1&end=e58e7b10e13595b4df1b105bfb9ad03c8dee7832&stat=instructions:u): 2.1% on `full` builds of `keccak check` |
| 65 | +- The improvements outweigh the regressions considerably and this was [considered](https://github.com/rust-lang/rust/pull/90891#issuecomment-970851616) a fine trade off. |
| 66 | + |
| 67 | + |
| 68 | +#### Probably changed |
| 69 | + |
| 70 | +The following is a list of comparisons which *probably* represent real performance changes, |
| 71 | +but we're not 100% sure. Please move things from this category into the categories |
| 72 | +above for changes you think *are* definitely relevant and file an issue for each so that |
| 73 | +we can consider how to change our heuristics. |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | +#### Untriaged Pull Requests |
| 78 | + |
| 79 | +- [#93466 Make dead code check a query.](https://github.com/rust-lang/rust/pull/93466) |
| 80 | +- [#93288 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/93288) |
| 81 | +- [#93138 Rollup of 17 pull requests](https://github.com/rust-lang/rust/pull/93138) |
| 82 | +- [#93095 Store a `Symbol` instead of an `Ident` in `AssocItem`](https://github.com/rust-lang/rust/pull/93095) |
| 83 | +- [#92896 Update some rustc dependencies to deduplicate them](https://github.com/rust-lang/rust/pull/92896) |
| 84 | +- [#92844 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/92844) |
| 85 | +- [#92816 Remove deprecated LLVM-style inline assembly](https://github.com/rust-lang/rust/pull/92816) |
| 86 | +- [#92805 partially revertish `lazily "compute" anon const default substs`](https://github.com/rust-lang/rust/pull/92805) |
| 87 | +- [#92534 Hash `Ident` spans in all HIR structures](https://github.com/rust-lang/rust/pull/92534) |
| 88 | +- [#92356 Add {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}{,Assign}<$t> to Saturat…](https://github.com/rust-lang/rust/pull/92356) |
| 89 | +- [#92277 rustc_metadata: Stop passing `CrateMetadataRef` by reference (step 1)](https://github.com/rust-lang/rust/pull/92277) |
| 90 | +- [#92252 Update pulldown-cmark version to 0.9](https://github.com/rust-lang/rust/pull/92252) |
| 91 | +- [#92229 Do not display `~const Drop` in rustdoc](https://github.com/rust-lang/rust/pull/92229) |
| 92 | +- [#92227 Rustdoc: use `is_doc_hidden` method on more places](https://github.com/rust-lang/rust/pull/92227) |
| 93 | +- [#92149 Fix bad caching of `~const Drop` bounds](https://github.com/rust-lang/rust/pull/92149) |
| 94 | +- [#92135 Add `#[inline]` modifier to `TypeId::of`](https://github.com/rust-lang/rust/pull/92135) |
| 95 | +- [#92110 Backport LLVM changes to disable deferred inlining](https://github.com/rust-lang/rust/pull/92110) |
| 96 | +- [#92106 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/92106) |
| 97 | +- [#92088 intra-doc: Use an enum to represent URL fragments](https://github.com/rust-lang/rust/pull/92088) |
| 98 | +- [#92064 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/92064) |
| 99 | +- [#92062 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/92062) |
| 100 | +- [#92041 Remove 'speculative evaluation' of predicates](https://github.com/rust-lang/rust/pull/92041) |
| 101 | +- [#92003 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/92003) |
| 102 | +- [#91996 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/91996) |
| 103 | +- [#91959 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/91959) |
| 104 | +- [#91924 Fully serialize AdtDef](https://github.com/rust-lang/rust/pull/91924) |
| 105 | +- [#91900 rustdoc: make `--passes` and `--no-defaults` have no effect](https://github.com/rust-lang/rust/pull/91900) |
| 106 | +- [#91844 Eliminate `ObligationCauseData`](https://github.com/rust-lang/rust/pull/91844) |
| 107 | +- [#91841 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/91841) |
0 commit comments