Skip to content

[Synth] [FunctionalReduction] Add conflict limit option, and add to circt-synth#10073

Merged
uenoku merged 2 commits intollvm:mainfrom
uenoku:dev/hidetou/fraig
Apr 1, 2026
Merged

[Synth] [FunctionalReduction] Add conflict limit option, and add to circt-synth#10073
uenoku merged 2 commits intollvm:mainfrom
uenoku:dev/hidetou/fraig

Conversation

@uenoku
Copy link
Copy Markdown
Member

@uenoku uenoku commented Mar 28, 2026

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.

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.
@uenoku uenoku force-pushed the dev/hidetou/fraig branch from 2bb5d78 to fbdeeb3 Compare March 28, 2026 21:47
@uenoku uenoku force-pushed the dev/hidetou/fraig branch from fbdeeb3 to 141ff2a Compare March 28, 2026 21:53
@uenoku uenoku requested a review from fabianschuiki April 1, 2026 21:44
Copy link
Copy Markdown
Contributor

@fabianschuiki fabianschuiki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice! LGTM 🥳

Comment on lines +136 to +137
if (!options.disableFunctionalReduction && hasIncrementalSATSolverBackend())
pm.addPass(createFunctionalReduction());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool 😎

@uenoku uenoku merged commit a80806d into llvm:main Apr 1, 2026
11 of 12 checks passed
@uenoku uenoku deleted the dev/hidetou/fraig branch April 1, 2026 23:02
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants