-
Notifications
You must be signed in to change notification settings - Fork 191
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!: Brillig with a stack and conditional inlining #8989
Conversation
Just taking out of draft to get some size metrics |
Changes to public function bytecode sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Will fix transpiler now |
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.
Looks good on the Noir/Brillig side of things. Some minor nits, but nothing blocking and they can all be addressed in follow-ups.
noir/noir-repo/compiler/noirc_evaluator/src/ssa/opt/inlining.rs
Outdated
Show resolved
Hide resolved
noir/noir-repo/compiler/noirc_evaluator/src/ssa/opt/inlining.rs
Outdated
Show resolved
Hide resolved
noir/noir-repo/compiler/noirc_evaluator/src/ssa/opt/inlining.rs
Outdated
Show resolved
Hide resolved
Is there an ETA on when the AVM team is going to be ready for this PR to be merged? I'm fine with it sitting for a while but I just want to make sure I've got the other serialisation change PRs ready to go at the same time. |
@jeanmon is just testing e2e the impl |
* master: (155 commits) fix(ci): don't report for now on kind-network-test (#9163) chore(ci): disable gossip_network.test.ts (#9165) chore: script for deploying the spartan network (#9167) feat!: Brillig with a stack and conditional inlining (#8989) fix: spartan account pre-funding (#9161) chore: reenable sync test (#9160) feat: Browser tests for UltraHonk (#9047) feat: make index in inbox global (#9110) feat: add sequencer address to metrics (#9145) feat: add validator address to logs (#9143) refactor(avm): type aliasing for VmPublicInputs (#8884) feat: drop epoch duration / block times (#9149) feat: stable deployments for spartan (#9147) fix: e2e-p2p attestation timeout (#9154) feat!: unrevert "feat: new per-enqueued-call gas limit" (#9140) feat: better tracing/metrics in validator and archiver (#9108) chore: revert deletion of the old bbup (#9146) chore(docs): rewriting bbup script, refactoring bb readme for clarity (#9073) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] ...
This PR removes the keccak256 opcode as we never emit this now, preferring keccakf1600. As we have #8989 making a breaking change to serialisation, this is a good time to do this to avoid an extra serialisation change.
Adds a stack to brillig by using relative addressing. Also adds conditional inlining based on a heuristic on function size and callsite size. This should succesfully deduplicate any large shared function in the program that is not monomorphized.