2023-05-30 Triage Log

A good week overall, with a broad set of improvements to many primary benchmarks. The main single source of primary regressions is from rollup PR #111869; we are in the process of narrowing that down to see if there is a root cause.

Triage done by @pnkfelix. Revision range: cda5becc..1221e43b

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.5%]19
Regressions ❌
(secondary)
0.5%[0.2%, 2.7%]35
Improvements ✅
(primary)
-0.6%[-1.2%, -0.1%]84
Improvements ✅
(secondary)
-0.5%[-1.1%, -0.1%]15
All ❌✅ (primary)-0.4%[-1.2%, 0.5%]103

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

Regressions

[rustc_ty_utils] Treat drop_in_place's *mut argument like &mut when adding LLVM attributes #111807 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 0.7%]17
Regressions ❌
(secondary)
1.3%[0.2%, 2.9%]6
Improvements ✅
(primary)
-0.2%[-0.2%, -0.2%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[-0.2%, 0.7%]18
  • already triaged last week

Rollup of 6 pull requests #111869 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 0.6%]12
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.2%, 0.6%]12
  • The five primary regressions over 0.4% are to diesel full and incr-full scenarios.
  • It is not clear what caused these regressions; pnkfelix started requesting individual rust-timer runs, but has not yet identified any root cause.

Support #[global_allocator] without the allocator shim #86844 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.2%]1
Regressions ❌
(secondary)
0.5%[0.3%, 0.7%]10
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.2%[0.2%, 0.2%]1
  • The 0.2% hit to primary benchmark serde_derive check-incr_unchanged is easily justified by the feature addition here.
  • The more interesting question is 44 primary benchmarks saw a regression to their binary size. However, the only one of those of note, in my opinion, is ripgrep, which suffered a 0.43% increase to binary size on various opt scenarios.
  • marked as triaged.

Improvements

Rollup of 6 pull requests #111919 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.7%[-0.7%, -0.6%]2
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]2
All ❌✅ (primary)-0.7%[-0.7%, -0.6%]2
  • a small improvement to serde_derive check-{full, incr-full} that seems like its not noise, not completely.

fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy error #110906 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.8%[-0.8%, -0.7%]2
Improvements ✅
(secondary)
-0.5%[-0.6%, -0.3%]6
All ❌✅ (primary)-0.8%[-0.8%, -0.7%]2
  • lol helloworld check-{full, incr-unchanged} improved by [-0.80%, -0.74%].
  • based on the PR itself, we should consider this to be some confounding factor, not meaningful.

Rollup of 7 pull requests #111960 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.5%[-1.3%, -0.2%]65
Improvements ✅
(secondary)
-0.6%[-1.2%, -0.2%]18
All ❌✅ (primary)-0.5%[-1.3%, -0.2%]65
  • a lot of primary improvements here, mostly to incr-{unchanged, patched} scenarios
  • fired off rust-timer run on specific PR just to see if it was root cause of improvement.

Mixed

Rollup of 7 pull requests #111882 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.3%]5
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.7%, -0.2%]18
Improvements ✅
(secondary)
-0.3%[-0.5%, -0.2%]9
All ❌✅ (primary)-0.2%[-0.7%, 0.3%]23
  • regressions are to bitmaps {{check, debug}-full, {check, debug, opt}-incr-full}.
  • improvements clearly outweigh regressions here
  • marked as triaged

Preprocess and cache dominator tree #111673 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]3
Regressions ❌
(secondary)
0.3%[0.2%, 0.4%]7
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-1.2%[-1.2%, -1.2%]3
All ❌✅ (primary)0.3%[0.2%, 0.4%]3
  • primary benchmarks libc {check, debug}-full and bitmaps check-full regressed a little.
  • this pays a bit of upfront cost to avoid a O(n^2) pathology in other planned code.
  • marked as triaged.

rustc_privacy: Cleanups and perf improvements to EmbargoVisitor #111260 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.4%[0.3%, 0.6%]9
Improvements ✅
(primary)
-0.4%[-1.3%, -0.1%]67
Improvements ✅
(secondary)
-0.4%[-0.6%, -0.2%]15
All ❌✅ (primary)-0.4%[-1.3%, -0.1%]67
  • already marked as triaged

Untriaged Pull Requests