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

Move ACIR optimisation pass out of Evaluator module #658

Closed
kevaundray opened this issue Jan 18, 2023 · 4 comments
Closed

Move ACIR optimisation pass out of Evaluator module #658

kevaundray opened this issue Jan 18, 2023 · 4 comments
Assignees
Labels

Comments

@kevaundray
Copy link
Contributor

This is a tracking issue for a TODO from the PR #647 and is also made to gather opinions.

The idea being that the Evaluator simply produces the ACIR, then the Driver or nargo calls acvm::compile to optimise the ACIR, instead of doing the optimisation inside of the Evaluator.

This allows us to separate the optimisation being done by ACVM from the Evaluator which is producing ACVM.

@kevaundray kevaundray mentioned this issue Jan 18, 2023
5 tasks
@guipublic
Copy link
Contributor

This allows us to separate the optimisation being done by ACVM from the Evaluator which is producing ACVM.

Why do you want to do this?
Note that the code is already separated as acvm and the evaluator live in different repositories

@TomAFrench
Copy link
Member

Why do you want to do this?

This is wanted so that we can generate backend-agnostic build artifacts which can be tailored to a particular backend rather than having to compile again from source. We need to return unoptimised ACIR to nargo in order to do this.

I took a quick look at separating this out. This is quite simple for the evaluator however we also bake in knowledge about the backend in the frontend when dealing with foreign functions

Related noir-lang/acvm#43

@kevaundray
Copy link
Contributor Author

@TomAFrench what is the status of this?

@TomAFrench
Copy link
Member

This is addressed now as the optimiser is called by nargo rather than the noir compiler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants