-
Notifications
You must be signed in to change notification settings - Fork 204
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
feat(acir_gen): Use predicates with MemoryOps #2400
Conversation
…hen generating acir
Waiting to review this until the other PR on mv/mem-op-predicate is merged |
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 is currently using a patched ACVM and should not be merged until we've included the changes in a release.
What is the status of this PR? |
This PR was originally created to avoid the execution error in ACVM with mem ops and predicates. This should be superseded by #2493. As per #2493 (comment) we should be able to then remove the inclusion of a predicate on the MemoryOp ACIR opcode as well. |
Superseded by #2553 |
Description
Problem*
Resolves #2133
Summary*
The ACVM was missing a predicate as part of MemoryOps, thus we were pushing MemoryOps in ACIR gen without their predicate. This caused memory operations under dynamic predicates to be executed no matter what. This is a bug as we can error out with an index out of bounds for valid execution. The linked issue has a full example of this and I have expanded the
dynamic_index_failure
test:Patches:
Backend branch: noir-lang/acvm-backend-barretenberg#247
ACVM: noir-lang/acvm#503
Documentation
This PR requires documentation updates when merged.
Additional Context
PR Checklist*
cargo fmt
on default settings.