2023-09-26 Triage Log

A very quiet week with the only large change in performance being improvements brought on by @saethlin's work on cleaning up the FileEncoder used in various places like rustc_metadata and rustc_serialize.

Triage done by @rylev. Revision range: af78bae..27b4eb9

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.3%, 1.1%]15
Regressions ❌
(secondary)
2.0%[0.2%, 7.1%]32
Improvements ✅
(primary)
-0.7%[-1.3%, -0.3%]70
Improvements ✅
(secondary)
-0.9%[-3.5%, -0.2%]31
All ❌✅ (primary)-0.4%[-1.3%, 1.1%]85

2 Regressions, 3 Improvements, 4 Mixed; 0 of them in rollups 73 artifact comparisons made in total

Regressions

Fix ui-fulldeps --stage=1 with -Zignore-directory-in-diagnostics-source-blocks #116009 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.4%, 0.5%]3
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.4%, 0.5%]3
  • This only modified tests so this is noise

rustdoc: correctly render the return type of cross-crate async fns #116084 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.8%]9
Regressions ❌
(secondary)
0.7%[0.3%, 0.9%]17
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.3%, 0.8%]9

Improvements

Pretty-print argument-position impl trait to name it. #113955 (Comparison Link)

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

compiletest: load supported sanitizers from target spec #115695 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.3%[-0.3%, -0.3%]1
Improvements ✅
(secondary)
-0.6%[-0.8%, -0.5%]6
All ❌✅ (primary)-0.3%[-0.3%, -0.3%]1

Do not create a DerefLen place for Box<[T]>. #115794 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.7%[-0.7%, -0.6%]4
Improvements ✅
(secondary)
-0.5%[-0.6%, -0.5%]3
All ❌✅ (primary)-0.7%[-0.7%, -0.6%]4

Mixed

Simplify/Optimize FileEncoder #115542 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.0%[0.7%, 1.3%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.6%[-1.2%, -0.2%]95
Improvements ✅
(secondary)
-0.6%[-1.2%, -0.3%]28
All ❌✅ (primary)-0.6%[-1.2%, 1.3%]97
  • looks like a small regression snuck back in. The regressions seem real, but perhaps it's not worth it given the much larger amount of improvements.

Enable effects for libcore #114776 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.3%, 0.4%]4
Regressions ❌
(secondary)
0.6%[0.3%, 0.8%]3
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.4%[-0.5%, -0.3%]4
All ❌✅ (primary)0.3%[0.3%, 0.4%]4
  • Per Oli: The perf run shows a few extra executions of queries and metadata encoding, which seems unavoidable to me. We may get the perf back when ripping out the const checker's logic that is only needed until we enable effects by default for doing const fn callability checks

Enable -Zdrop-tracking-mir by default #107421 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.4%, 0.5%]2
Regressions ❌
(secondary)
4.5%[0.3%, 6.5%]9
Improvements ✅
(primary)
-0.4%[-0.4%, -0.4%]1
Improvements ✅
(secondary)
-2.5%[-3.3%, -1.9%]5
All ❌✅ (primary)0.2%[-0.4%, 0.5%]3
  • it seems the regressions to await-call-tree are real, but it's unclear what the underlying cause is.

Add the cfg_match! macro #115416 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.5%, 0.7%]4
Regressions ❌
(secondary)
0.5%[0.5%, 0.6%]2
Improvements ✅
(primary)
-1.3%[-1.3%, -1.3%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.2%[-1.3%, 0.7%]5
  • This is noise