Skip to content
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

Apply backend agnostic ACIR optimization passes separately to backend-specific passes #2866

Closed
TomAFrench opened this issue Sep 27, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@TomAFrench
Copy link
Member

Problem

In noir-lang/acvm#88, we made the distinction between optimizers (which are generic between backends) and transformers (which use knowledge about the desired proving backend to make the ACIR compatible with it.

Despite this we currently have a single monolithic compile function inside the ACVM which applies both optimizations and transformations.

Happy Case

We should expose optimize and transform (this could be named better) functions to separate these two functions. We could then make use of optimize as a final pass within the Noir compiler so that our outputted ACIR represents the most optimized generic ACIR possible.

This means that our backend step is purely a matter of making the ACIR compatible with the backend rather than a mix of two concepts.

Alternatives Considered

No response

Additional Context

No response

Would you like to submit a PR for this Issue?

No

Support Needs

No response

@TomAFrench TomAFrench added the enhancement New feature or request label Sep 27, 2023
@kevaundray
Copy link
Contributor

Can this be closed?

@TomAFrench
Copy link
Member Author

Yep this was closed by #2979

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

2 participants