Skip to content

perf: add a bitblasting cache for bv_decide's boolean substructure #7707

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

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

hargoniX
Copy link
Contributor

@hargoniX hargoniX commented Mar 28, 2025

This PR adds a bitblasting cache for the boolean substructure of problems that bv_decide works on in addition to the one used for bvexpr.

Unfortunately this is currently causing a regression on QF_BV/sage/app1/bench_1967.smt2 so probably shouldn't merge yet.

@hargoniX hargoniX added the changelog-language Language features, tactics, and metaprograms label Mar 28, 2025
@hargoniX hargoniX force-pushed the hbv/bv_decide_substructure_cache branch from a637fc6 to 6016b84 Compare April 21, 2025 09:05
@hargoniX hargoniX changed the title perf: add a bitblasting cache for bv_decide's substructure on top of the bvexpr one perf: add a bitblasting cache for bv_decide's boolean substructure Apr 21, 2025
@github-actions github-actions bot temporarily deployed to lean-lang.org/lean4/doc April 21, 2025 10:24 Inactive
@github-actions github-actions bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Apr 21, 2025
@leanprover-community-bot
Copy link
Collaborator

Mathlib CI status (docs):

  • ❗ Mathlib CI can not be attempted yet, as the nightly-testing-2025-04-21 tag does not exist there yet. We will retry when you push more commits. If you rebase your branch onto nightly-with-mathlib, Mathlib CI should run now. You can force Mathlib CI using the force-mathlib-ci label. (2025-04-21 10:33:06)

@hargoniX hargoniX marked this pull request as ready for review April 21, 2025 10:45
@hargoniX
Copy link
Contributor Author

!bench

@github-actions github-actions bot temporarily deployed to lean-lang.org/lean4/doc April 21, 2025 11:13 Inactive
@leanprover-bot
Copy link
Collaborator

Here are the benchmark results for commit 54d3872.
There were significant changes against commit 02f7a1d:

  Benchmark                         Metric                  Change
  ==========================================================================
+ Init.Data.BitVec.Lemmas re-elab   branch-misses            -1.9% (-24.6 σ)
+ big_do                            task-clock               -4.4% (-13.7 σ)
+ big_do                            wall-clock               -4.5% (-45.7 σ)
- bv_decide_mul                     maxrss                    1.5%  (30.7 σ)
- channel.lean                      bounded0_spsc            14.7%  (30.4 σ)
+ deriv                             task-clock               -1.7% (-12.8 σ)
+ deriv                             wall-clock               -1.7% (-12.6 σ)
+ ilean roundtrip                   parse                    -7.5% (-11.2 σ)
+ lake build clean                  task-clock               -1.9% (-15.2 σ)
+ lake config tree                  task-clock               -4.3% (-11.9 σ)
+ lake config tree                  wall-clock               -4.1% (-11.0 σ)
+ liasolver                         task-clock               -8.2% (-33.8 σ)
+ liasolver                         wall-clock               -8.2% (-33.8 σ)
+ stdlib                            blocked                  -2.8% (-12.3 σ)
+ stdlib                            blocked (unaccounted)    -3.1% (-44.4 σ)
- stdlib                            instructions              1.1% (166.2 σ)
- stdlib                            maxrss                    3.7%  (21.1 σ)
+ stdlib                            task-clock               -2.1% (-11.8 σ)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-language Language features, tactics, and metaprograms toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants