-
Notifications
You must be signed in to change notification settings - Fork 230
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
chore: Perform Circuit
optimization in nargo
#1394
Conversation
8c4d8bb
to
29e8b9e
Compare
29e8b9e
to
e1debf7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR breaks #1333
@phated Relevant to LSP conversation. |
Merged something to fix all of the merge conflicts. I'm getting test failures which correspond to unoptimized ACIR trying to be passed to bberg somewhere which we need to address. |
Circuit
optimization in nargo
This PR pulls the ACIR optimization up from This is desirable for a number of reasons, including:
|
moving towards compilation then optimization being separate so we can eventually compile without a backend
Description
Problem*
This PR removes all knowledge of which backend is being used from the driver + evaluator. Generic ACIR is then returned and is optimized in
nargo
.The changes to the backend interface have thrown up an annoyance in that we need to optimize the circuit before we preprocess the circuit rather than allowing the backend to handle this itself. The current situation downloads a CRS based on the size of the unoptimized circuit rather than the one the backend will actually be using.Related to #1102
Summary*
This PR sets out to
Example
Before:
After:
Documentation
This PR requires documentation updates when merged.
Additional Context
PR Checklist*
cargo fmt
on default settings.