|
| 1 | +# 2023-08-08 Triage Log |
| 2 | + |
| 3 | +Overall a very positive week, primarily due to an [upgrade to LLVM |
| 4 | +17](https://github.com/rust-lang/rust/pull/114048) and some changes to [lint |
| 5 | +execution](https://github.com/rust-lang/rust/pull/113734). Memory usage is down |
| 6 | +[4-7%](https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&end=443c3161dd04f4c1b656a626f9079921bee9c326&absolute=false&stat=max-rss&kind=percentfromfirst) |
| 7 | +over the last week and wall times are down |
| 8 | +[3-5%](https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&end=443c3161dd04f4c1b656a626f9079921bee9c326&absolute=false&stat=wall-time&kind=percentfromfirst). |
| 9 | + |
| 10 | +Triage done by **@simulacrum**. |
| 11 | +Revision range: [828bdc2c26f5c95773c4ecf72870919f16417b66..443c3161dd04f4c1b656a626f9079921bee9c326](https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&end=443c3161dd04f4c1b656a626f9079921bee9c326&absolute=false&stat=instructions%3Au) |
| 12 | + |
| 13 | +**Summary**: |
| 14 | + |
| 15 | +| (instructions:u) | mean | range | count | |
| 16 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 17 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 18 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 19 | +| Improvements ✅ <br /> (primary) | -3.1% | [-7.1%, -1.2%] | 253 | |
| 20 | +| Improvements ✅ <br /> (secondary) | -4.1% | [-28.4%, -0.3%] | 233 | |
| 21 | +| All ❌✅ (primary) | -3.1% | [-7.1%, -1.2%] | 253 | |
| 22 | + |
| 23 | + |
| 24 | +2 Regressions, 7 Improvements, 2 Mixed; 2 of them in rollups |
| 25 | +64 artifact comparisons made in total |
| 26 | + |
| 27 | +#### Regressions |
| 28 | + |
| 29 | +Rollup of 9 pull requests [#114481](https://github.com/rust-lang/rust/pull/114481) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fe896efa974ea759b10b9754234ae61e9cab28b3&end=e4c14468460b22ac7a289a422fb7fee606e12a0b&stat=instructions:u) |
| 30 | + |
| 31 | +| (instructions:u) | mean | range | count | |
| 32 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 33 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.4%, 1.5%] | 80 | |
| 34 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.2%] | 25 | |
| 35 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 36 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 37 | +| All ❌✅ (primary) | 0.8% | [0.4%, 1.5%] | 80 | |
| 38 | + |
| 39 | +Unclear what is causing this regression. It's entirely limited to the |
| 40 | +incr-patched and incr-unchanged scenarios, and digging into one of the |
| 41 | +benchmarks (bitmaps-3.1.0 check incr-unchanged) seems to show a mix of noise |
| 42 | +and, in aggregate, significant improvements over the last several days. Not |
| 43 | +clear which PR in this rollup could have caused this change in behavior. |
| 44 | + |
| 45 | +See [these comments](https://github.com/rust-lang/rust/pull/114481#issuecomment-1666438972) for some more details. |
| 46 | + |
| 47 | +Re-enable atomic loads and stores for all RISC-V targets [#98333](https://github.com/rust-lang/rust/pull/98333) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e173a8e6634d787a1529ff6ec5dc63273425ca34&end=90f0b24ad3e7fc0dc0e419c9da30d74629cd5736&stat=instructions:u) |
| 48 | + |
| 49 | +| (instructions:u) | mean | range | count | |
| 50 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 51 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.4%, 1.3%] | 18 | |
| 52 | +| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 0.9%] | 12 | |
| 53 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 54 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 55 | +| All ❌✅ (primary) | 0.8% | [0.4%, 1.3%] | 18 | |
| 56 | + |
| 57 | +This PR has a very similar regression profile to the previous rollup in this list (#114481). |
| 58 | + |
| 59 | +#### Improvements |
| 60 | + |
| 61 | +Remove `constness` from `TraitPredicate` [#114202](https://github.com/rust-lang/rust/pull/114202) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7637653b9fdd2b2f2dc3b378891eb5cf6aea9f5d&end=20747af8940cf683970e76ec9a433305940c05f3&stat=instructions:u) |
| 62 | + |
| 63 | +| (instructions:u) | mean | range | count | |
| 64 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 65 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 66 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 67 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.9%, -0.4%] | 16 | |
| 68 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-1.2%, -0.3%] | 13 | |
| 69 | +| All ❌✅ (primary) | -0.7% | [-0.9%, -0.4%] | 16 | |
| 70 | + |
| 71 | +cg_llvm: stop identifying ADTs in LLVM IR [#114350](https://github.com/rust-lang/rust/pull/114350) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=098c1db7e55e7229a520a2ec8e460e1e300e109b&end=73dc6f03a2a8c0e8b8b25fb97d7f4805995ce0b9&stat=instructions:u) |
| 72 | + |
| 73 | +| (instructions:u) | mean | range | count | |
| 74 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 75 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 76 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 77 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.2%, -0.6%] | 5 | |
| 78 | +| Improvements ✅ <br /> (secondary) | -1.1% | [-1.5%, -0.6%] | 6 | |
| 79 | +| All ❌✅ (primary) | -0.8% | [-1.2%, -0.6%] | 5 | |
| 80 | + |
| 81 | +Convert builtin "global" late lints to run per module [#113734](https://github.com/rust-lang/rust/pull/113734) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fca59ab5f0e7df7d816bed77a32abc0045ebe80b&end=67626b8e89ff57269f1d67cb9bc037088c058b42&stat=instructions:u) |
| 82 | + |
| 83 | +| (instructions:u) | mean | range | count | |
| 84 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 85 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 86 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.4%, 0.8%] | 3 | |
| 87 | +| Improvements ✅ <br /> (primary) | -1.7% | [-3.4%, -0.2%] | 88 | |
| 88 | +| Improvements ✅ <br /> (secondary) | -4.2% | [-26.5%, -0.2%] | 85 | |
| 89 | +| All ❌✅ (primary) | -1.7% | [-3.4%, -0.2%] | 88 | |
| 90 | + |
| 91 | +parent_module_from_def_id does not need to be a query. [#114516](https://github.com/rust-lang/rust/pull/114516) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e59540968e0c6fc3c37d92a639b83fc8fcee5e81&end=5973bfbd38fcefb63090a588733931e933498dfd&stat=instructions:u) |
| 92 | + |
| 93 | +| (instructions:u) | mean | range | count | |
| 94 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 95 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 2 | |
| 96 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 97 | +| Improvements ✅ <br /> (primary) | -1.4% | [-2.0%, -1.1%] | 17 | |
| 98 | +| Improvements ✅ <br /> (secondary) | -1.2% | [-1.5%, -0.3%] | 11 | |
| 99 | +| All ❌✅ (primary) | -1.2% | [-2.0%, 0.4%] | 19 | |
| 100 | + |
| 101 | +Steal MIR for CTFE when possible. [#114502](https://github.com/rust-lang/rust/pull/114502) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=85fbb571497d13cfb828de9b0d3e78656b9203c1&end=f3623871cfa0763c95ebd6ceafaa6dc2e44ca68f&stat=instructions:u) |
| 102 | + |
| 103 | +| (instructions:u) | mean | range | count | |
| 104 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 105 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 106 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 107 | +| Improvements ✅ <br /> (primary) | -0.6% | [-0.6%, -0.6%] | 1 | |
| 108 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-2.6%, -0.5%] | 19 | |
| 109 | +| All ❌✅ (primary) | -0.6% | [-0.6%, -0.6%] | 1 | |
| 110 | + |
| 111 | +Update to LLVM 17 [#114048](https://github.com/rust-lang/rust/pull/114048) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=03a119b0b0e310d22d94399b24ed030056050f13&end=443c3161dd04f4c1b656a626f9079921bee9c326&stat=instructions:u) |
| 112 | + |
| 113 | +| (instructions:u) | mean | range | count | |
| 114 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 115 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 116 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 117 | +| Improvements ✅ <br /> (primary) | -2.2% | [-5.6%, -0.8%] | 173 | |
| 118 | +| Improvements ✅ <br /> (secondary) | -2.2% | [-12.9%, -0.5%] | 199 | |
| 119 | +| All ❌✅ (primary) | -2.2% | [-5.6%, -0.8%] | 173 | |
| 120 | + |
| 121 | +This represents a large win across multiple benchmarks. Unfortunately it also |
| 122 | +regresses artifact sizes for libLLVM.so by 50MB. Investigation into why is |
| 123 | +[ongoing](https://github.com/rust-lang/rust/pull/114048#issuecomment-1669252031). |
| 124 | + |
| 125 | +Do not run ConstProp on mir_for_ctfe. [#114459](https://github.com/rust-lang/rust/pull/114459) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=67626b8e89ff57269f1d67cb9bc037088c058b42&end=1cabb8ed2301faf193132e71ca5b10f82913e48a&stat=instructions:u) |
| 126 | + |
| 127 | +| (instructions:u) | mean | range | count | |
| 128 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 129 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 130 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 131 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.2%, -0.5%] | 8 | |
| 132 | +| Improvements ✅ <br /> (secondary) | -1.7% | [-3.0%, -1.1%] | 7 | |
| 133 | +| All ❌✅ (primary) | -0.7% | [-1.2%, 0.2%] | 9 | |
| 134 | + |
| 135 | +The one regression is actually within noise floor for the relevant benchmark. |
| 136 | + |
| 137 | +#### Mixed |
| 138 | + |
| 139 | +Optimize `Iterator` implementation for `&mut impl Iterator + Sized` [#111200](https://github.com/rust-lang/rust/pull/111200) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9565b68b741fd0466b3af075139e819e7d73ee38&end=eb088b8b9d98f1af1b0e61bbdcd8686e1b0db7b6&stat=instructions:u) |
| 140 | + |
| 141 | +| (instructions:u) | mean | range | count | |
| 142 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 143 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.5%] | 6 | |
| 144 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 145 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 146 | +| Improvements ✅ <br /> (secondary) | -0.7% | [-0.9%, -0.5%] | 2 | |
| 147 | +| All ❌✅ (primary) | 0.4% | [0.3%, 0.5%] | 6 | |
| 148 | + |
| 149 | +Rollup of 7 pull requests [#114604](https://github.com/rust-lang/rust/pull/114604) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=443c3161dd04f4c1b656a626f9079921bee9c326&end=8e7fd551311d424e4e63fa45906a2a928fce96a7&stat=instructions:u) |
| 150 | + |
| 151 | +| (instructions:u) | mean | range | count | |
| 152 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 153 | +| Regressions ❌ <br /> (primary) | 1.4% | [0.4%, 2.0%] | 3 | |
| 154 | +| Regressions ❌ <br /> (secondary) | 1.2% | [1.1%, 1.3%] | 6 | |
| 155 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.9%, -0.4%] | 2 | |
| 156 | +| Improvements ✅ <br /> (secondary) | -1.0% | [-1.5%, -0.5%] | 2 | |
| 157 | +| All ❌✅ (primary) | 0.5% | [-0.9%, 2.0%] | 5 | |
| 158 | + |
| 159 | +Investigation into cause is [ongoing](https://github.com/rust-lang/rust/pull/114604#issuecomment-1669350724). |
0 commit comments