-
Notifications
You must be signed in to change notification settings - Fork 632
perf: use xType field rather than conservatively recomputing it #9345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
!bench |
Mathlib CI status (docs):
|
Reference manual CI status:
|
Here are the benchmark results for commit 5f1633b. Benchmark Metric Change
=============================================================================
- Init.Data.List.Sublist re-elab -j4 branch-misses 1.3% (23.2 σ)
- hashmap.lean eraseInsert 10.1% (24.8 σ)
- hashmap.lean insertHit 12.8%
- hashmap.lean insertIfNewHit 9.4%
- hashmap.lean insertMissEmpty 13.4% (26.7 σ)
- hashmap.lean iterate 6.3%
- hashmap.lean task-clock 10.7% (63.4 σ)
- hashmap.lean wall-clock 10.7% (67.2 σ)
+ stdlib blocked (unaccounted) -1.4% (-29.3 σ)
+ stdlib congr simp thm -1.6% (-24.3 σ)
+ stdlib grind canon -1.2% (-85.0 σ)
- workspaceSymbols instructions 1.0% (499.1 σ) |
5f1633b
to
81a0418
Compare
!bench |
Here are the benchmark results for commit 81a0418. Benchmark Metric Change
====================================================================================
+ Init.Data.List.Sublist re-elab -j4 maxrss -1.2% (-411.0 σ)
+ bv_decide_rewriter.lean task-clock -3.2% (-88.3 σ)
+ bv_decide_rewriter.lean wall-clock -3.6% (-64.3 σ)
- channel.lean boundedn_mpsc 17.2% (28.2 σ)
- hashmap.lean eraseInsert 13.2% (21.8 σ)
- hashmap.lean insertHit 14.1% (30.9 σ)
- hashmap.lean insertIfNewHit 7.1%
- hashmap.lean insertMissEmpty 18.4% (28.8 σ)
- hashmap.lean insertMissEmptyWithCapacity 16.0% (27.9 σ)
- hashmap.lean iterate 1.8%
- hashmap.lean task-clock 12.2% (22.1 σ)
- hashmap.lean wall-clock 12.2% (22.0 σ)
+ stdlib dsimp -3.7% (-55.6 σ)
- workspaceSymbols instructions 1.0% (354.3 σ) |
I'm very confused about the |
81a0418
to
77a4c36
Compare
!bench |
Here are the benchmark results for commit 77a4c36. Benchmark Metric Change
==============================================================================
- Init.Data.List.Sublist re-elab -j4 wall-clock 1.1% (52.3 σ)
- hashmap.lean insertIfNewHit 7.4%
- hashmap.lean insertMissEmpty 10.7% (22.1 σ)
- hashmap.lean iterate 5.0%
- hashmap.lean task-clock 8.5% (24.6 σ)
- hashmap.lean wall-clock 8.5% (24.1 σ)
+ stdlib attribute application -1.1% (-39.6 σ)
- workspaceSymbols instructions 1.0% (1326.0 σ) |
77a4c36
to
c874073
Compare
!bench |
Here are the benchmark results for commit c874073. Benchmark Metric Change
=============================================================
+ hashmap.lean eraseInsert -11.9% (-30.6 σ)
+ hashmap.lean insertHit -14.5% (-27.1 σ)
- stdlib grind mark subsingleton 1.2% (27.7 σ)
- workspaceSymbols instructions 1.0% (538.8 σ) |
c874073
to
fac2434
Compare
Including #9563 for benchmarking to see if this weird |
!bench |
Here are the benchmark results for commit fac2434. Benchmark Metric Change
==============================================================================
+ bv_decide_rewriter.lean wall-clock -4.2% (-30.0 σ)
- channel.lean boundedn_mpsc 8.7% (431455047186873.3 σ)
- hashmap.lean branch-misses 6.3% (37.3 σ)
+ nat_repr branches -2.0% (-1168.6 σ)
- phashmap.lean insertMissEmptyShared 19.4% (98.1 σ)
- phashmap.lean task-clock 16.3% (26.5 σ)
- phashmap.lean wall-clock 16.3% (26.9 σ)
- stdlib type checking 1.7% (96.0 σ)
+ workspaceSymbols instructions -4.7% (-17910.9 σ) |
fac2434
to
fa71853
Compare
Looks like there is still a (smaller) regression on |
!bench |
Here are the benchmark results for commit fa71853. Benchmark Metric Change
===============================================
+ channel.lean boundedn_seq -7.3%
+ nat_repr branches -2.0% (-954.7 σ)
+ stdlib grind simp -2.1% (-22.9 σ) |
!bench |
Here are the benchmark results for commit fa73ed7. Benchmark Metric Change
============================================
+ channel.lean maxrss -1.8% (-25.5 σ)
+ hashmap.lean maxrss -2.0% (-39.4 σ)
+ lake startup maxrss -1.8% (-21.5 σ)
+ liasolver maxrss -2.0% (-32.8 σ)
+ nat_repr branches -2.0% (-393.4 σ)
+ nat_repr maxrss -1.8% (-27.6 σ)
+ parser maxrss -2.1% (-43.3 σ)
+ phashmap.lean maxrss -1.8% (-31.7 σ)
+ qsort maxrss -1.8% (-32.6 σ)
+ rbmap maxrss -2.0% (-31.5 σ)
+ rbmap_fbip maxrss -1.8% (-28.2 σ)
- stdlib dsimp 3.7% (23.8 σ)
+ treemap.lean maxrss -2.1% (-35.4 σ)
+ unionfind maxrss -2.0% (-31.5 σ) |
fa73ed7
to
63c7bdf
Compare
!bench |
Here are the benchmark results for commit 63c7bdf. Benchmark Metric Change
==================================================
- hashmap.lean branch-misses 6.4% (32.3 σ)
+ nat_repr branches -2.0% (-439.3 σ)
- phashmap.lean containsHit 1.2%
+ stdlib congr simp thm -2.5% (-34.4 σ) |
!bench |
Here are the benchmark results for commit bbab333. Benchmark Metric Change
=====================================================================
- hashmap.lean insertHit 12.5%
- hashmap.lean insertIfNewHit 18.1%
- hashmap.lean insertMissEmpty 15.9% (36.0 σ)
- hashmap.lean insertMissEmptyWithCapacity 11.7% (23.0 σ)
- hashmap.lean iterate 7.2%
- hashmap.lean task-clock 11.4% (29.8 σ)
- hashmap.lean wall-clock 11.3% (29.5 σ)
+ nat_repr branches -2.0% (-802.0 σ)
- phashmap.lean containsMiss 20.0%
- phashmap.lean eraseInsert 15.6% (26.6 σ)
- phashmap.lean insertMissEmptyShared 17.9% (52.3 σ)
- phashmap.lean task-clock 16.0% (27.7 σ)
- phashmap.lean wall-clock 16.0% (28.5 σ)
- riscv-ast.lean wall-clock 2.5% (26.5 σ)
+ simp_bubblesort_256 task-clock -5.2% (-25.2 σ)
+ simp_bubblesort_256 wall-clock -5.8% (-28.3 σ)
- stdlib grind ematch 4.3% (20.8 σ)
- stdlib let-to-have transformation 1.1% (44.2 σ)
- stdlib maxrss 4.0% (32.3 σ)
- stdlib type checking 2.0% (42.4 σ)
- unionfind task-clock 11.2% (161.0 σ)
- unionfind wall-clock 11.2% (134.9 σ) |
bbab333
to
e4f2926
Compare
!bench |
Here are the benchmark results for commit e4f2926. Benchmark Metric Change
=====================================================
+ hashmap.lean containsHit -6.0%
+ hashmap.lean containsMiss -6.8%
+ hashmap.lean insertMissEmpty -10.1%
- stdlib type checking 1.3% (25.7 σ)
- workspaceSymbols instructions 1.3% (488.5 σ) |
e4f2926
to
dee8ea1
Compare
!bench |
1 similar comment
!bench |
Here are the benchmark results for commit dee8ea1. Benchmark Metric Change
===========================================================
+ phashmap.lean insertMissEmpty -7.6%
- stdlib grind cutsat 6.2% (52.0 σ)
- stdlib instantiate metavars 1.3% (35.0 σ)
+ stdlib maxrss -1.6% (-24.7 σ)
- workspaceSymbols instructions 1.5% (2590.4 σ)
- workspaceSymbols wall-clock 3.3% (22.2 σ) |
dee8ea1
to
3b5aeff
Compare
!bench |
Here are the benchmark results for commit 3b5aeff. Benchmark Metric Change
===================================================
- channel.lean boundedn_seq 5.6%
- hashmap.lean iterate 2.1%
+ lake build clean maxrss -1.2% (-34.0 σ)
+ nat_repr branches -2.0% (-676.0 σ)
- workspaceSymbols instructions 1.6% (82.4 σ) |
!bench |
Here are the benchmark results for commit 4243ab8. Benchmark Metric Change
============================================================
+ nat_repr branches -2.0% (-836.2 σ)
- phashmap.lean containsHit 4.3%
- phashmap.lean containsMiss 9.1%
- phashmap.lean insertMissEmptyShared 19.3% (30.6 σ)
- phashmap.lean iterate 8.7%
- stdlib grind 1.5% (36.2 σ)
- workspaceSymbols instructions 1.6% (370.5 σ) |
!bench |
Here are the benchmark results for commit 97baebd. Benchmark Metric Change
================================================================
+ nat_repr branches -2.0% (-388.4 σ)
- phashmap.lean containsHit 4.3%
+ rbmap_library maxrss -5.4% (-34.2 σ)
+ stdlib grind typeclass inference -2.1% (-38.8 σ)
- workspaceSymbols instructions 1.7% (39.0 σ) |
97baebd
to
b26ef62
Compare
I looked at the whole IR diff that produces this minor regression (with this optimization applied to a single top-level decl), and It all looks beneficial with respect to our IR cost model (and the regression doesn't occur on my machine). I'm going to go ahead and land this (after double checking the results with the full change), because this keeps coming up again and again when looking at IR dumps. |
!bench |
Here are the benchmark results for commit b26ef62. Benchmark Metric Change
==========================================================
+ bv_decide_large_aig.lean task-clock -12.2% (-91.0 σ)
+ bv_decide_large_aig.lean wall-clock -12.0% (-29.3 σ)
- bv_decide_mod task-clock 2.8% (73.3 σ)
+ liasolver task-clock -9.0% (-34.4 σ)
+ liasolver wall-clock -9.0% (-32.3 σ)
+ phashmap.lean containsHit -2.0%
- workspaceSymbols instructions 1.6% (130.9 σ) |
No description provided.