2022-12-06 Triage Log

A mixed bag of a week. 2 of the 3 regressions are connected to changes to the query system that underlies incremental compilation. The third regression is still being investigated. For all three, the impact on cycle counts that are within our noise tolerance levels There were several small-ish improvements, though PR #104963 is worth calling out: a well-factored change to how we lower the AST into HIR that had a broad positive impact. One final note: the summary-opt max-rss seems to gone up by 1.5% over the past month (perf), via a gradual climb; just something to keep our eyes on going forward.

Triage done by @pnkfelix. Revision range: 8a09420a..9db224fc

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.2%, 1.5%]52
Regressions ❌
(secondary)
1.2%[0.2%, 5.6%]80
Improvements ✅
(primary)
-0.8%[-1.7%, -0.2%]34
Improvements ✅
(secondary)
-2.2%[-4.8%, -0.2%]29
All ❌✅ (primary)0.0%[-1.7%, 1.5%]86

3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 50 artifact comparisons made in total

Regressions

Allow to feed a value in another query's cache #104940 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]44
Regressions ❌
(secondary)
0.3%[0.2%, 0.4%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.3%[0.2%, 0.4%]44
  • Many primary benchmarks regressed, but the regression is contained solely to incremental builds, and the magnitude is also well-contained.
  • oli-obk investigated and determined that the bulk of the regression is time spent in try_mark_previous_green and incremental_verify_ich calls.
  • The impact on cycle-counts (rather than instruction counts) was well within noise tolerance levels.
  • Therefore, marked as triaged.

Reduce macro usage for lints #104863 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.2%, 1.4%]116
Regressions ❌
(secondary)
0.9%[0.1%, 2.3%]83
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.5%[0.2%, 1.4%]116

feed resolver_for_lowering instead of storing it in a field #105220 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.3%]2
Regressions ❌
(secondary)
0.5%[0.1%, 0.8%]15
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.3%[-0.3%, -0.3%]1
All ❌✅ (primary)0.2%[0.2%, 0.3%]2

Improvements

Also cache the stable hash of interned Predicates #94487 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.6%, -0.2%]12
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.4%[-0.6%, -0.2%]12

Some initial normalization method changes #104905 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.9%[-1.0%, -0.8%]2
Improvements ✅
(secondary)
-2.2%[-2.8%, -0.3%]7
All ❌✅ (primary)-0.9%[-1.0%, -0.8%]2

Attribute cleanups #104861 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.2%[-0.2%, -0.1%]3
Improvements ✅
(secondary)
-0.7%[-0.9%, -0.5%]6
All ❌✅ (primary)-0.2%[-0.2%, -0.1%]3

rustc_ast_lowering: Stop lowering imports into multiple items #104963 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.6%[0.6%, 0.6%]1
Improvements ✅
(primary)
-0.5%[-1.2%, -0.3%]54
Improvements ✅
(secondary)
-4.2%[-5.4%, -2.0%]13
All ❌✅ (primary)-0.5%[-1.2%, -0.3%]54
  • Wow, I would not have expected this to have this significant of an impact.
  • bravo petrochenkov

Ensure query backtraces work for DefIds created after ast lowering #105133 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.2%[-0.3%, -0.2%]5
Improvements ✅
(secondary)
-0.2%[-0.3%, -0.2%]2
All ❌✅ (primary)-0.2%[-0.3%, -0.2%]5

Rewrite LLVM's archive writer in Rust #97485 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.6%, -0.2%]12
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.4%[-0.6%, -0.2%]12

Cheaper dump_mir take two #105121 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.9%[0.9%, 0.9%]1
Improvements ✅
(primary)
-1.1%[-1.9%, -0.6%]17
Improvements ✅
(secondary)
-1.4%[-1.9%, -0.6%]9
All ❌✅ (primary)-1.1%[-1.9%, -0.6%]17

Mixed

Rollup of 9 pull requests #105017 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.9%[0.9%, 1.0%]2
Regressions ❌
(secondary)
3.7%[2.2%, 5.6%]12
Improvements ✅
(primary)
-0.6%[-0.8%, -0.4%]7
Improvements ✅
(secondary)
-1.1%[-1.3%, -0.9%]4
All ❌✅ (primary)-0.3%[-0.8%, 1.0%]9

Rollup of 14 pull requests #105070 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.4%, 0.9%]7
Regressions ❌
(secondary)
0.3%[0.2%, 0.4%]7
Improvements ✅
(primary)
-0.9%[-1.0%, -0.8%]2
Improvements ✅
(secondary)
-2.1%[-2.7%, -1.4%]8
All ❌✅ (primary)0.3%[-1.0%, 0.9%]9

Rollup of 5 pull requests #105080 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.9%[0.8%, 1.0%]2
Regressions ❌
(secondary)
2.4%[2.1%, 2.8%]6
Improvements ✅
(primary)
-0.7%[-0.9%, -0.5%]7
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.3%[-0.9%, 1.0%]9

° lqd already marked as triaged

Disable top down MIR inlining #105119 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 1.0%]12
Regressions ❌
(secondary)
1.0%[0.2%, 2.1%]15
Improvements ✅
(primary)
-0.4%[-1.0%, -0.2%]8
Improvements ✅
(secondary)
-0.7%[-1.0%, -0.1%]18
All ❌✅ (primary)0.1%[-1.0%, 1.0%]20

Untriaged Pull Requests