[Synth] [FunctionalReduction] Add conflict limit option, and add to circt-synth#10073
Merged
[Synth] [FunctionalReduction] Add conflict limit option, and add to circt-synth#10073
Conversation
FunctionalReduction depends on an incremental SAT backend, so keep it\nout of the default circt-synth optimization pipeline unless the user\npasses --enable-functional-reduction.\n\nExpose a shared SAT-solver availability query, use it to guard pipeline\nconstruction, and add an integration test that covers both the default\ndisabled behavior and the opt-in Z3-backed path.
2bb5d78 to
fbdeeb3
Compare
fbdeeb3 to
141ff2a
Compare
fabianschuiki
approved these changes
Apr 1, 2026
Contributor
fabianschuiki
left a comment
There was a problem hiding this comment.
Really nice! LGTM 🥳
Comment on lines
+136
to
+137
| if (!options.disableFunctionalReduction && hasIncrementalSATSolverBackend()) | ||
| pm.addPass(createFunctionalReduction()); |
joaovam
pushed a commit
to joaovam/circt
that referenced
this pull request
Apr 10, 2026
…irct-synth (llvm#10073) Make FunctionalReduction opt-in in circt-synth and add conflict-limit support for the CaDiCaL backend. This change keeps FunctionalReduction out of the default synth optimization pipeline unless explicitly enabled, since it depends on an incremental SAT backend. It also adds a per-solve conflict limit to the shared SAT solver interface, wires that through the CaDiCaL implementation, and exposes the limit on the synth-functional-reduction pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Make FunctionalReduction opt-in in circt-synth and add conflict-limit support for the CaDiCaL backend.
This change keeps FunctionalReduction out of the default synth optimization pipeline unless explicitly enabled, since it depends on an incremental SAT backend. It also adds a per-solve conflict limit to the shared SAT solver interface, wires that through the CaDiCaL implementation, and exposes the limit on the synth-functional-reduction pass.