2023-10-26 Triage Log

A largely positive week with really only 1 true regression and 1 large improvement both by cjgillot proving that the compiler giveth and taketh away. The improvement, an improvement in the borrow checker, lead to a 0.7% improvement across ~80 benchmarks while the regression had the same magnitude but only impacted 18 benchmarks.

Triage done by @rylev. Revision range: b9832e7..698db85

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.2%, 3.4%]17
Regressions ❌
(secondary)
1.2%[0.9%, 1.7%]11
Improvements ✅
(primary)
-0.8%[-3.0%, -0.1%]85
Improvements ✅
(secondary)
-1.0%[-1.8%, -0.1%]31
All ❌✅ (primary)-0.6%[-3.0%, 3.4%]102

7 Regressions, 6 Improvements, 4 Mixed; 5 of them in rollups 85 artifact comparisons made in total

Regressions

Bump COINDUCTIVE_OVERLAP_IN_COHERENCE to deny + warn in deps #116493 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.7%, 0.8%]2
Regressions ❌
(secondary)
0.4%[0.3%, 0.6%]3
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.7%[0.7%, 0.8%]2
  • Noise

Rollup of 7 pull requests #116923 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.3%[0.2%, 0.4%]9
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0
  • While this very much does not look like noise, the regressions are small enough that I don't think this is really worth any investigation.

Rollup of 4 pull requests #116940 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.2%, 1.2%]18
Regressions ❌
(secondary)
1.0%[0.7%, 1.2%]9
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-1.8%[-1.8%, -1.8%]1
All ❌✅ (primary)0.7%[0.2%, 1.2%]18
  • From lqd “I think this is all in mir transforms, likely the additional pass name calls and string finds in turn -- and since is all static data, maybe should be cached, and stored in a better-suited data structure.”
  • #116896 is the culprit. Following up with the author, cjgillot.

Lint non_exhaustive_omitted_patterns by columns #116734 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.5%[1.5%, 1.6%]7
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0
  • Given that the impacted benchmark is the stress test for the code in question, I think the small regression is fine.

Suggest removing redundant arguments in format!() #115324 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
2.1%[0.3%, 3.9%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)2.1%[0.3%, 3.9%]2
  • The perf regression is likely noise.

Rollup of 5 pull requests #117087 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
4.1%[4.1%, 4.1%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)4.1%[4.1%, 4.1%]1
  • Noise

Improve android-ndk property interface #116998 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
3.9%[3.9%, 3.9%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)3.9%[3.9%, 3.9%]1
  • Noise

Improvements

Panic when the global allocator tries to register a TLS destructor #116402 (Comparison Link)

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

On Windows make read_dir error on the empty path #116606 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.8%[-2.8%, -2.8%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.8%[-2.8%, -2.8%]1

This is noise.

Separate move path tracking between borrowck and drop elaboration. #116300 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.1%, 0.2%]5
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]2
Improvements ✅
(primary)
-0.7%[-3.6%, -0.2%]77
Improvements ✅
(secondary)
-1.1%[-1.8%, -0.4%]30
All ❌✅ (primary)-0.7%[-3.6%, 0.2%]82

time: use clock_gettime on macos #116238 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-3.6%[-3.6%, -3.6%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-3.6%[-3.6%, -3.6%]1

This is noise.

Uplift ClauseKind and PredicateKind into rustc_type_ir #116993 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.5%[-0.8%, -0.2%]14
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.5%[-0.8%, -0.2%]14

Refactor type visitor walking #117076 (Comparison Link)

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

Mixed

Rollup of 5 pull requests #116885 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.5%, 0.5%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.3%[-0.5%, -0.2%]9
Improvements ✅
(secondary)
-0.6%[-0.9%, -0.3%]13
All ❌✅ (primary)-0.2%[-0.5%, 0.5%]10
  • Improvements outweigh regressions.

Update hashbrown to 0.14.2 #116956 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 0.5%]7
Regressions ❌
(secondary)
0.2%[0.2%, 0.3%]3
Improvements ✅
(primary)
-0.6%[-1.2%, -0.2%]5
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.0%[-1.2%, 0.5%]12
  • Mostly neutral - max-rss regression seems to have corrected itself in the meantime

report unused_import for empty reexports even it is pub #116033 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.5%]13
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-3.7%[-3.7%, -3.7%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.1%[-3.7%, 0.5%]14
  • Small regression - asked the author and reviewer if they feel like they had a quick idea how to address it.

Rollup of 7 pull requests #117180 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
3.7%[3.7%, 3.7%]1
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-1.3%[-1.3%, -1.3%]1
All ❌✅ (primary)3.7%[3.7%, 3.7%]1

The one primary 3.7% regression looks real. The tiny secondary one looks either noise or has basically returned to its prior value. The small improvement also seems to have sustained at the new levels.