Skip to content

Latest commit

 

History

History
129 lines (97 loc) · 8.34 KB

2024-04-01.md

File metadata and controls

129 lines (97 loc) · 8.34 KB

2024-04-01 Triage Log

A pretty quiet week, with most changes (dropped from the report below) being due to continuing bimodality in the performance data. No particularly notable changes landed.

Triage done by @simulacrum. Revision range: 73476d49904751f8d90ce904e16dfbc278083d2c..3d5528c287860b918e178a34f04ff903325571b3

Summary:

(instructions:u) mean range count
Regressions ❌
(primary)
0.5% [0.2%, 1.1%] 15
Regressions ❌
(secondary)
0.5% [0.2%, 1.8%] 30
Improvements ✅
(primary)
-0.5% [-1.6%, -0.2%] 29
Improvements ✅
(secondary)
-0.7% [-1.5%, -0.2%] 11
All ❌✅ (primary) -0.2% [-1.6%, 1.1%] 44

1 Regressions, 2 Improvements, 5 Mixed; 0 of them in rollups 61 artifact comparisons made in total

Regressions

Use FxIndexMap instead FxHashMap to stabilize iteration order in EffectiveVisibilities #121851 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
0.3% [0.2%, 0.4%] 13
Regressions ❌
(secondary)
0.4% [0.3%, 0.4%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [0.2%, 0.4%] 13

Justified by avoiding bugs in incremental compilation. See comment for details.

Improvements

Avoid some unnecessary query invocations. #121387 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.0% [-1.7%, -0.3%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.0% [-1.7%, -0.3%] 2

Simplify proc macro bridge state #122939 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.3% [0.3%, 0.3%] 1
Improvements ✅
(primary)
-0.3% [-0.4%, -0.3%] 2
Improvements ✅
(secondary)
-1.2% [-1.9%, -0.4%] 6
All ❌✅ (primary) -0.3% [-0.4%, -0.3%] 2

Mixed

Less generic code for Vec allocations #122396 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
0.6% [0.3%, 0.8%] 2
Regressions ❌
(secondary)
0.3% [0.3%, 0.3%] 1
Improvements ✅
(primary)
-0.5% [-1.4%, -0.1%] 12
Improvements ✅
(secondary)
-4.4% [-4.4%, -4.4%] 1
All ❌✅ (primary) -0.3% [-1.4%, 0.8%] 14

Improvements mostly outweigh regressions, including the improvements in binary size.

Rollup of 8 pull requests #123147 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
1.0% [0.8%, 1.2%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.4% [-0.7%, -0.3%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [-0.7%, 1.2%] 5

Regressions appear to be potentially genuine, but also not particularly material, limited to just one benchmark.

Codegen const panic messages as function calls #122671 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
0.4% [0.3%, 0.4%] 2
Regressions ❌
(secondary)
0.3% [0.2%, 0.4%] 7
Improvements ✅
(primary)
-0.7% [-0.9%, -0.6%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.3% [-0.9%, 0.4%] 5

This is primarily a win in binary sizes, particularly for code built with overflow checks which add many more callsites that are made cheaper with this optimization.

Eliminate UbChecks for non-standard libraries #122975 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
0.9% [0.3%, 1.7%] 7
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.5% [-0.8%, -0.4%] 5
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.1%] 2
All ❌✅ (primary) 0.3% [-0.8%, 1.7%] 12

Mixed results look fairly real. This change affects codegen of downstream libraries (i.e., most of the perf suite) so it's expected to lead to mostly improvements. It's not clear precisely where the regressions are coming from (maybe LLVM is able to optimize more?). The largest regression seems to resolve itself in #122976 (see next mixed PR in this report) but it's not clear that there is any direct relationship between the two.

Remove len argument from RawVec::reserve_for_push #122976 (Comparison Link)

(instructions:u) mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.8% [2.8%, 2.8%] 1
Improvements ✅
(primary)
-1.7% [-1.7%, -1.7%] 1
Improvements ✅
(secondary)
-0.4% [-0.4%, -0.3%] 5
All ❌✅ (primary) -1.7% [-1.7%, -1.7%] 1

Appears to primarily resolve regressions introduced by #122975 (previous mixed PR in this report). Potentially just noise as such.