A busy week in compiler performance, but fortunately improvements outweighed regressions. The biggest improvements came from @nnethercote's work on making the decoding of SourceFile::lines
lazy which significantly cuts the costs of decoding crate metadata. The biggest regressions came from the removal of json handling in rustc_serialize
which has been a multi-month effort to improve the maintainability of json (de-)serialization in the compiler.
Triage done by @rylev. Revision range: 0a43923a..bb55bd
Summary:
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 0.5% | 3.2% | 36 |
Regressions πΏ (secondary) | 0.3% | 0.9% | 15 |
Improvements π (primary) | -1.3% | -15.1% | 124 |
Improvements π (secondary) | -2.7% | -13.5% | 182 |
All πΏπ (primary) | -0.9% | -15.1% | 160 |
2 Regression, 6 Improvements, 5 Mixed; 4 of them in rollups 48 artifact comparisons made in total
rewrite error handling for unresolved inference vars #89862 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 0.2% | 0.3% | 7 |
Regressions πΏ (secondary) | 0.4% | 1.0% | 23 |
Improvements π (primary) | N/A | N/A | 0 |
Improvements π (secondary) | N/A | N/A | 0 |
All πΏπ (primary) | 0.2% | 0.3% | 7 |
ObligationForest::process_obligations
is getting called a lot more.Remove all json handling from rustc_serialize #85993 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 0.5% | 1.3% | 68 |
Regressions πΏ (secondary) | 0.9% | 3.5% | 40 |
Improvements π (primary) | -0.4% | -0.6% | 3 |
Improvements π (secondary) | -0.5% | -1.0% | 24 |
All πΏπ (primary) | 0.5% | 1.3% | 71 |
Make params be SmallVec as originally was #97670 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | -0.2% | -0.2% | 3 |
Improvements π (secondary) | N/A | N/A | 0 |
All πΏπ (primary) | -0.2% | -0.2% | 3 |
Add PID to LLVM PGO profile path #97137 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | -0.6% | -0.8% | 20 |
Improvements π (secondary) | -0.7% | -1.0% | 8 |
All πΏπ (primary) | -0.6% | -0.8% | 20 |
Rollup of 6 pull requests #97742 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | N/A | N/A | 0 |
Improvements π (secondary) | -1.9% | -2.6% | 12 |
All πΏπ (primary) | N/A | N/A | 0 |
interpret: better control over whether we read data with provenance #97684 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | -0.7% | -1.9% | 8 |
Improvements π (secondary) | -5.5% | -10.5% | 12 |
All πΏπ (primary) | -0.7% | -1.9% | 8 |
Remove migrate borrowck mode #95565 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | -0.5% | -1.9% | 47 |
Improvements π (secondary) | -0.5% | -1.4% | 21 |
All πΏπ (primary) | -0.5% | -1.9% | 47 |
Lazify SourceFile::lines
. #97575 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | 0.4% | 0.5% | 6 |
Improvements π (primary) | -1.8% | -15.3% | 52 |
Improvements π (secondary) | -2.9% | -13.8% | 124 |
All πΏπ (primary) | -1.8% | -15.3% | 52 |
Add #[inline]
to Vec
's Deref/DerefMut
#97553 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 0.5% | 0.8% | 6 |
Regressions πΏ (secondary) | 0.4% | 0.7% | 31 |
Improvements π (primary) | -1.2% | -1.7% | 10 |
Improvements π (secondary) | -1.1% | -1.9% | 10 |
All πΏπ (primary) | -0.5% | -1.7% | 16 |
Rollup of 6 pull requests #97644 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | 0.6% | 0.7% | 5 |
Improvements π (primary) | -0.2% | -0.3% | 2 |
Improvements π (secondary) | -0.3% | -0.5% | 11 |
All πΏπ (primary) | -0.2% | -0.3% | 2 |
Rollup of 5 pull requests #97654 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | N/A | N/A | 0 |
Regressions πΏ (secondary) | 0.6% | 0.6% | 1 |
Improvements π (primary) | N/A | N/A | 0 |
Improvements π (secondary) | -0.6% | -0.8% | 8 |
All πΏπ (primary) | N/A | N/A | 0 |
Rollup of 3 pull requests #97694 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 0.2% | 0.2% | 1 |
Regressions πΏ (secondary) | 0.3% | 0.5% | 5 |
Improvements π (primary) | -0.4% | -0.6% | 12 |
Improvements π (secondary) | -0.3% | -0.5% | 13 |
All πΏπ (primary) | -0.4% | -0.6% | 13 |
Inline bridge::Buffer
methods. #97604 (Comparison Link)
mean | max | count | |
---|---|---|---|
Regressions πΏ (primary) | 3.8% | 3.8% | 1 |
Regressions πΏ (secondary) | N/A | N/A | 0 |
Improvements π (primary) | -0.3% | -0.3% | 1 |
Improvements π (secondary) | -2.1% | -2.1% | 3 |
All πΏπ (primary) | 1.8% | 3.8% | 2 |