-
Notifications
You must be signed in to change notification settings - Fork 220
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(ssa): Hoist add and mul binary ops using known induction variables #6910
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Changes to Brillig bytecode sizes
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Changes to number of Brillig opcodes executed
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Compilation Sample
|
Execution Sample
|
Peak Memory Sample
|
jfecher
reviewed
Jan 2, 2025
jfecher
approved these changes
Jan 2, 2025
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.
👍
AztecBot
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jan 2, 2025
…tion variables (noir-lang/noir#6910) chore: fix warning (noir-lang/noir#6927) chore(ci): Memory reports for execution (noir-lang/noir#6907) chore: use ssa parser in flattening pass tests (noir-lang/noir#6868) feat(LSP): suggest trait methods from where clauses (noir-lang/noir#6915) feat: warn on trait method visibility (noir-lang/noir#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) chore: add rollup circuits to memory reports (noir-lang/noir#6897) chore: remove unused dependency (noir-lang/noir#6922) chore: add if/loop tip (separate from no-predicate #5657) (noir-lang/noir#6806) chore: move implementation of print foreign call into `nargo` (noir-lang/noir#6865) chore: document format strings (noir-lang/noir#6920)
TomAFrench
pushed a commit
that referenced
this pull request
Jan 2, 2025
AztecBot
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jan 3, 2025
…tion variables (noir-lang/noir#6910) chore: fix warning (noir-lang/noir#6927) chore(ci): Memory reports for execution (noir-lang/noir#6907) chore: use ssa parser in flattening pass tests (noir-lang/noir#6868) feat(LSP): suggest trait methods from where clauses (noir-lang/noir#6915) feat: warn on trait method visibility (noir-lang/noir#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) chore: add rollup circuits to memory reports (noir-lang/noir#6897) chore: remove unused dependency (noir-lang/noir#6922) chore: add if/loop tip (separate from no-predicate #5657) (noir-lang/noir#6806) chore: move implementation of print foreign call into `nargo` (noir-lang/noir#6865) chore: document format strings (noir-lang/noir#6920)
AztecBot
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jan 3, 2025
…es (noir-lang/noir#6910) chore: fix warning (noir-lang/noir#6927) chore(ci): Memory reports for execution (noir-lang/noir#6907) chore: use ssa parser in flattening pass tests (noir-lang/noir#6868) feat(LSP): suggest trait methods from where clauses (noir-lang/noir#6915) feat: warn on trait method visibility (noir-lang/noir#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) chore: add rollup circuits to memory reports (noir-lang/noir#6897) chore: remove unused dependency (noir-lang/noir#6922) chore: add if/loop tip (separate from no-predicate #5657) (noir-lang/noir#6806) chore: move implementation of print foreign call into `nargo` (noir-lang/noir#6865) chore: document format strings (noir-lang/noir#6920)
TomAFrench
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jan 3, 2025
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(ssa): Hoist add and mul binary ops using known induction variables (noir-lang/noir#6910) chore: fix warning (noir-lang/noir#6927) chore(ci): Memory reports for execution (noir-lang/noir#6907) chore: use ssa parser in flattening pass tests (noir-lang/noir#6868) feat(LSP): suggest trait methods from where clauses (noir-lang/noir#6915) feat: warn on trait method visibility (noir-lang/noir#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) chore: add rollup circuits to memory reports (noir-lang/noir#6897) chore: remove unused dependency (noir-lang/noir#6922) chore: add if/loop tip (separate from no-predicate #5657) (noir-lang/noir#6806) chore: move implementation of print foreign call into `nargo` (noir-lang/noir#6865) chore: document format strings (noir-lang/noir#6920) END_COMMIT_OVERRIDE --------- Co-authored-by: Tom French <[email protected]>
TomAFrench
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jan 3, 2025
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.69.0</summary> ## [0.69.0](aztec-package-v0.68.2...aztec-package-v0.69.0) (2025-01-03) ### Miscellaneous * Add version number when starting sandbox ([#10935](#10935)) ([c8dcd8f](c8dcd8f)) * Cl/ci3.2 ([#10919](#10919)) ([49dacc3](49dacc3)) </details> <details><summary>barretenberg.js: 0.69.0</summary> ## [0.69.0](barretenberg.js-v0.68.2...barretenberg.js-v0.69.0) (2025-01-03) ### Miscellaneous * Cl/ci3.2 ([#10919](#10919)) ([49dacc3](49dacc3)) </details> <details><summary>aztec-packages: 0.69.0</summary> ## [0.69.0](aztec-packages-v0.68.2...aztec-packages-v0.69.0) (2025-01-03) ### ⚠ BREAKING CHANGES * Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) ### Features * **docs:** Algolia -> typesense ([#9698](#9698)) ([e082063](e082063)) * Encapsulated UltraHonk Vanilla IVC ([#10900](#10900)) ([fd5f611](fd5f611)) * **LSP:** Suggest trait methods from where clauses (noir-lang/noir#6915) ([dc12c2b](dc12c2b)) * **ssa:** Hoist add and mul binary ops using known induction variables (noir-lang/noir#6910) ([dc12c2b](dc12c2b)) * Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) ([dc12c2b](dc12c2b)) * Use full IPA recursive verifier in root rollup ([#10962](#10962)) ([37095ce](37095ce)) * Warn on trait method visibility (noir-lang/noir#6923) ([dc12c2b](dc12c2b)) ### Bug Fixes * Bigint builtins are foreigns (noir-lang/noir#6892) ([2d3805a](2d3805a)) * **ci:** Acir bench ([#11021](#11021)) ([9eaa109](9eaa109)) * Consistent file_id across installation paths (noir-lang/noir#6912) ([2d3805a](2d3805a)) * Remove unnecessary cast in bit-shift (noir-lang/noir#6890) ([2d3805a](2d3805a)) * Revert "feat(docs): algolia -> typesense" also fix boxes-test ([#11016](#11016)) ([a1a4d76](a1a4d76)) * Small fixes for sepolia deployments ([#10915](#10915)) ([37d69bf](37d69bf)) * Update prompted foundry install command ([#10995](#10995)) ([cd59f2e](cd59f2e)) * Use explicit read transactions ([#10911](#10911)) ([2a8e01c](2a8e01c)) ### Miscellaneous * Add `Instruction::Noop` (noir-lang/noir#6899) ([2d3805a](2d3805a)) * Add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang/noir#6903) ([2d3805a](2d3805a)) * Add if/loop tip (separate from no-predicate [#5657](#5657)) (noir-lang/noir#6806) ([dc12c2b](dc12c2b)) * Add rollup circuits to memory reports (noir-lang/noir#6897) ([dc12c2b](dc12c2b)) * Add spypsy to nightly canary ([#10961](#10961)) ([4dca8f5](4dca8f5)) * Add version number when starting sandbox ([#10935](#10935)) ([c8dcd8f](c8dcd8f)) * Bump rc1 tps ([#11012](#11012)) ([52176f7](52176f7)) * **ci:** Memory reports for execution (noir-lang/noir#6907) ([dc12c2b](dc12c2b)) * Cl/ci3.2 ([#10919](#10919)) ([49dacc3](49dacc3)) * Clean up translator circuit builder function definitions ([#10944](#10944)) ([f6fef05](f6fef05)) * Disable broken honk test ([#11010](#11010)) ([8ad239a](8ad239a)) * Disable tt test ([#10999](#10999)) ([d9d64c3](d9d64c3)) * Document format strings (noir-lang/noir#6920) ([dc12c2b](dc12c2b)) * Fix flake in e2e-block-build ([#11002](#11002)) ([2a2932e](2a2932e)) * Fix mac build ([#10963](#10963)) ([158afc4](158afc4)) * Fix warning (noir-lang/noir#6927) ([dc12c2b](dc12c2b)) * Fix warnings in avm transpiler ([#11001](#11001)) ([07c5b7f](07c5b7f)) * Move implementation of print foreign call into `nargo` (noir-lang/noir#6865) ([dc12c2b](dc12c2b)) * Prover.tomls fix ([#11011](#11011)) ([565a67b](565a67b)) * Redo typo PR by Anon-im ([#11009](#11009)) ([2044c58](2044c58)) * Redo typo PR by Hack666r ([#10992](#10992)) ([018f11e](018f11e)) * Redo typo PR by MonkeyKing44 ([#10996](#10996)) ([faca458](faca458)) * Redo typo PR by panditdhamdhere ([#11026](#11026)) ([8a6de5b](8a6de5b)) * Redo typo PR by petryshkaCODE ([#10993](#10993)) ([0c6a4be](0c6a4be)) * Redo typo PR by VitalikBerashvili ([#10994](#10994)) ([da36da4](da36da4)) * Redo typo PR by whitetechna ([#10997](#10997)) ([89a2bd7](89a2bd7)) * Release Noir(1.0.0-beta.1) (noir-lang/noir#6622) ([2d3805a](2d3805a)) * Remove unused dependency (noir-lang/noir#6922) ([dc12c2b](dc12c2b)) * Replace relative paths to noir-protocol-circuits ([6b34449](6b34449)) * Replace relative paths to noir-protocol-circuits ([11f8a42](11f8a42)) * Use ssa parser in flattening pass tests (noir-lang/noir#6868) ([dc12c2b](dc12c2b)) ### Documentation * Remove links to (outdated) protocol specs ([#10831](#10831)) ([4874d95](4874d95)) </details> <details><summary>barretenberg: 0.69.0</summary> ## [0.69.0](barretenberg-v0.68.2...barretenberg-v0.69.0) (2025-01-03) ### Features * Encapsulated UltraHonk Vanilla IVC ([#10900](#10900)) ([fd5f611](fd5f611)) * Use full IPA recursive verifier in root rollup ([#10962](#10962)) ([37095ce](37095ce)) ### Bug Fixes * Bigint builtins are foreigns (noir-lang/noir#6892) ([2d3805a](2d3805a)) * **ci:** Acir bench ([#11021](#11021)) ([9eaa109](9eaa109)) * Consistent file_id across installation paths (noir-lang/noir#6912) ([2d3805a](2d3805a)) * Remove unnecessary cast in bit-shift (noir-lang/noir#6890) ([2d3805a](2d3805a)) ### Miscellaneous * Add `Instruction::Noop` (noir-lang/noir#6899) ([2d3805a](2d3805a)) * Add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang/noir#6903) ([2d3805a](2d3805a)) * Cl/ci3.2 ([#10919](#10919)) ([49dacc3](49dacc3)) * Clean up translator circuit builder function definitions ([#10944](#10944)) ([f6fef05](f6fef05)) * Disable broken honk test ([#11010](#11010)) ([8ad239a](8ad239a)) * Fix mac build ([#10963](#10963)) ([158afc4](158afc4)) * Redo typo PR by Anon-im ([#11009](#11009)) ([2044c58](2044c58)) * Redo typo PR by Hack666r ([#10992](#10992)) ([018f11e](018f11e)) * Redo typo PR by MonkeyKing44 ([#10996](#10996)) ([faca458](faca458)) * Redo typo PR by petryshkaCODE ([#10993](#10993)) ([0c6a4be](0c6a4be)) * Redo typo PR by VitalikBerashvili ([#10994](#10994)) ([da36da4](da36da4)) * Release Noir(1.0.0-beta.1) (noir-lang/noir#6622) ([2d3805a](2d3805a)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench
added a commit
to winderica/noir
that referenced
this pull request
Jan 3, 2025
* master: feat(ssa): Hoist add and mul binary ops using known induction variables (noir-lang#6910) chore: fix warning (noir-lang#6927) chore(ci): Memory reports for execution (noir-lang#6907) chore: use ssa parser in flattening pass tests (noir-lang#6868) feat(LSP): suggest trait methods from where clauses (noir-lang#6915) feat: warn on trait method visibility (noir-lang#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang#6849) chore: add rollup circuits to memory reports (noir-lang#6897) chore: remove unused dependency (noir-lang#6922)
TomAFrench
added a commit
that referenced
this pull request
Jan 3, 2025
* master: (47 commits) chore: delete a bunch of dead code from `noirc_evaluator` (#6939) feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (#6882) chore: Bump arkworks to version `0.5.0` (#6871) feat(ssa): Hoist add and mul binary ops using known induction variables (#6910) chore: fix warning (#6927) chore(ci): Memory reports for execution (#6907) chore: use ssa parser in flattening pass tests (#6868) feat(LSP): suggest trait methods from where clauses (#6915) feat: warn on trait method visibility (#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (#6849) chore: add rollup circuits to memory reports (#6897) chore: remove unused dependency (#6922) chore: add if/loop tip (separate from no-predicate #5657) (#6806) chore: move implementation of print foreign call into `nargo` (#6865) chore: document format strings (#6920) chore: add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (#6903) fix: consistent file_id across installation paths (#6912) fix: bigint builtins are foreigns (#6892) fix: remove unnecessary cast in bit-shift (#6890) chore: Release Noir(1.0.0-beta.1) (#6622) ...
AztecBot
added a commit
to AztecProtocol/barretenberg
that referenced
this pull request
Jan 4, 2025
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.69.0</summary> ## [0.69.0](AztecProtocol/aztec-packages@aztec-package-v0.68.2...aztec-package-v0.69.0) (2025-01-03) ### Miscellaneous * Add version number when starting sandbox ([#10935](AztecProtocol/aztec-packages#10935)) ([c8dcd8f](AztecProtocol/aztec-packages@c8dcd8f)) * Cl/ci3.2 ([#10919](AztecProtocol/aztec-packages#10919)) ([49dacc3](AztecProtocol/aztec-packages@49dacc3)) </details> <details><summary>barretenberg.js: 0.69.0</summary> ## [0.69.0](AztecProtocol/aztec-packages@barretenberg.js-v0.68.2...barretenberg.js-v0.69.0) (2025-01-03) ### Miscellaneous * Cl/ci3.2 ([#10919](AztecProtocol/aztec-packages#10919)) ([49dacc3](AztecProtocol/aztec-packages@49dacc3)) </details> <details><summary>aztec-packages: 0.69.0</summary> ## [0.69.0](AztecProtocol/aztec-packages@aztec-packages-v0.68.2...aztec-packages-v0.69.0) (2025-01-03) ### ⚠ BREAKING CHANGES * Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) ### Features * **docs:** Algolia -> typesense ([#9698](AztecProtocol/aztec-packages#9698)) ([e082063](AztecProtocol/aztec-packages@e082063)) * Encapsulated UltraHonk Vanilla IVC ([#10900](AztecProtocol/aztec-packages#10900)) ([fd5f611](AztecProtocol/aztec-packages@fd5f611)) * **LSP:** Suggest trait methods from where clauses (noir-lang/noir#6915) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * **ssa:** Hoist add and mul binary ops using known induction variables (noir-lang/noir#6910) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang/noir#6849) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Use full IPA recursive verifier in root rollup ([#10962](AztecProtocol/aztec-packages#10962)) ([37095ce](AztecProtocol/aztec-packages@37095ce)) * Warn on trait method visibility (noir-lang/noir#6923) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) ### Bug Fixes * Bigint builtins are foreigns (noir-lang/noir#6892) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * **ci:** Acir bench ([#11021](AztecProtocol/aztec-packages#11021)) ([9eaa109](AztecProtocol/aztec-packages@9eaa109)) * Consistent file_id across installation paths (noir-lang/noir#6912) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Remove unnecessary cast in bit-shift (noir-lang/noir#6890) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Revert "feat(docs): algolia -> typesense" also fix boxes-test ([#11016](AztecProtocol/aztec-packages#11016)) ([a1a4d76](AztecProtocol/aztec-packages@a1a4d76)) * Small fixes for sepolia deployments ([#10915](AztecProtocol/aztec-packages#10915)) ([37d69bf](AztecProtocol/aztec-packages@37d69bf)) * Update prompted foundry install command ([#10995](AztecProtocol/aztec-packages#10995)) ([cd59f2e](AztecProtocol/aztec-packages@cd59f2e)) * Use explicit read transactions ([#10911](AztecProtocol/aztec-packages#10911)) ([2a8e01c](AztecProtocol/aztec-packages@2a8e01c)) ### Miscellaneous * Add `Instruction::Noop` (noir-lang/noir#6899) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang/noir#6903) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Add if/loop tip (separate from no-predicate [#5657](AztecProtocol/aztec-packages#5657)) (noir-lang/noir#6806) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Add rollup circuits to memory reports (noir-lang/noir#6897) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Add spypsy to nightly canary ([#10961](AztecProtocol/aztec-packages#10961)) ([4dca8f5](AztecProtocol/aztec-packages@4dca8f5)) * Add version number when starting sandbox ([#10935](AztecProtocol/aztec-packages#10935)) ([c8dcd8f](AztecProtocol/aztec-packages@c8dcd8f)) * Bump rc1 tps ([#11012](AztecProtocol/aztec-packages#11012)) ([52176f7](AztecProtocol/aztec-packages@52176f7)) * **ci:** Memory reports for execution (noir-lang/noir#6907) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Cl/ci3.2 ([#10919](AztecProtocol/aztec-packages#10919)) ([49dacc3](AztecProtocol/aztec-packages@49dacc3)) * Clean up translator circuit builder function definitions ([#10944](AztecProtocol/aztec-packages#10944)) ([f6fef05](AztecProtocol/aztec-packages@f6fef05)) * Disable broken honk test ([#11010](AztecProtocol/aztec-packages#11010)) ([8ad239a](AztecProtocol/aztec-packages@8ad239a)) * Disable tt test ([#10999](AztecProtocol/aztec-packages#10999)) ([d9d64c3](AztecProtocol/aztec-packages@d9d64c3)) * Document format strings (noir-lang/noir#6920) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Fix flake in e2e-block-build ([#11002](AztecProtocol/aztec-packages#11002)) ([2a2932e](AztecProtocol/aztec-packages@2a2932e)) * Fix mac build ([#10963](AztecProtocol/aztec-packages#10963)) ([158afc4](AztecProtocol/aztec-packages@158afc4)) * Fix warning (noir-lang/noir#6927) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Fix warnings in avm transpiler ([#11001](AztecProtocol/aztec-packages#11001)) ([07c5b7f](AztecProtocol/aztec-packages@07c5b7f)) * Move implementation of print foreign call into `nargo` (noir-lang/noir#6865) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Prover.tomls fix ([#11011](AztecProtocol/aztec-packages#11011)) ([565a67b](AztecProtocol/aztec-packages@565a67b)) * Redo typo PR by Anon-im ([#11009](AztecProtocol/aztec-packages#11009)) ([2044c58](AztecProtocol/aztec-packages@2044c58)) * Redo typo PR by Hack666r ([#10992](AztecProtocol/aztec-packages#10992)) ([018f11e](AztecProtocol/aztec-packages@018f11e)) * Redo typo PR by MonkeyKing44 ([#10996](AztecProtocol/aztec-packages#10996)) ([faca458](AztecProtocol/aztec-packages@faca458)) * Redo typo PR by panditdhamdhere ([#11026](AztecProtocol/aztec-packages#11026)) ([8a6de5b](AztecProtocol/aztec-packages@8a6de5b)) * Redo typo PR by petryshkaCODE ([#10993](AztecProtocol/aztec-packages#10993)) ([0c6a4be](AztecProtocol/aztec-packages@0c6a4be)) * Redo typo PR by VitalikBerashvili ([#10994](AztecProtocol/aztec-packages#10994)) ([da36da4](AztecProtocol/aztec-packages@da36da4)) * Redo typo PR by whitetechna ([#10997](AztecProtocol/aztec-packages#10997)) ([89a2bd7](AztecProtocol/aztec-packages@89a2bd7)) * Release Noir(1.0.0-beta.1) (noir-lang/noir#6622) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Remove unused dependency (noir-lang/noir#6922) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) * Replace relative paths to noir-protocol-circuits ([6b34449](AztecProtocol/aztec-packages@6b34449)) * Replace relative paths to noir-protocol-circuits ([11f8a42](AztecProtocol/aztec-packages@11f8a42)) * Use ssa parser in flattening pass tests (noir-lang/noir#6868) ([dc12c2b](AztecProtocol/aztec-packages@dc12c2b)) ### Documentation * Remove links to (outdated) protocol specs ([#10831](AztecProtocol/aztec-packages#10831)) ([4874d95](AztecProtocol/aztec-packages@4874d95)) </details> <details><summary>barretenberg: 0.69.0</summary> ## [0.69.0](AztecProtocol/aztec-packages@barretenberg-v0.68.2...barretenberg-v0.69.0) (2025-01-03) ### Features * Encapsulated UltraHonk Vanilla IVC ([#10900](AztecProtocol/aztec-packages#10900)) ([fd5f611](AztecProtocol/aztec-packages@fd5f611)) * Use full IPA recursive verifier in root rollup ([#10962](AztecProtocol/aztec-packages#10962)) ([37095ce](AztecProtocol/aztec-packages@37095ce)) ### Bug Fixes * Bigint builtins are foreigns (noir-lang/noir#6892) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * **ci:** Acir bench ([#11021](AztecProtocol/aztec-packages#11021)) ([9eaa109](AztecProtocol/aztec-packages@9eaa109)) * Consistent file_id across installation paths (noir-lang/noir#6912) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Remove unnecessary cast in bit-shift (noir-lang/noir#6890) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) ### Miscellaneous * Add `Instruction::Noop` (noir-lang/noir#6899) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang/noir#6903) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) * Cl/ci3.2 ([#10919](AztecProtocol/aztec-packages#10919)) ([49dacc3](AztecProtocol/aztec-packages@49dacc3)) * Clean up translator circuit builder function definitions ([#10944](AztecProtocol/aztec-packages#10944)) ([f6fef05](AztecProtocol/aztec-packages@f6fef05)) * Disable broken honk test ([#11010](AztecProtocol/aztec-packages#11010)) ([8ad239a](AztecProtocol/aztec-packages@8ad239a)) * Fix mac build ([#10963](AztecProtocol/aztec-packages#10963)) ([158afc4](AztecProtocol/aztec-packages@158afc4)) * Redo typo PR by Anon-im ([#11009](AztecProtocol/aztec-packages#11009)) ([2044c58](AztecProtocol/aztec-packages@2044c58)) * Redo typo PR by Hack666r ([#10992](AztecProtocol/aztec-packages#10992)) ([018f11e](AztecProtocol/aztec-packages@018f11e)) * Redo typo PR by MonkeyKing44 ([#10996](AztecProtocol/aztec-packages#10996)) ([faca458](AztecProtocol/aztec-packages@faca458)) * Redo typo PR by petryshkaCODE ([#10993](AztecProtocol/aztec-packages#10993)) ([0c6a4be](AztecProtocol/aztec-packages@0c6a4be)) * Redo typo PR by VitalikBerashvili ([#10994](AztecProtocol/aztec-packages#10994)) ([da36da4](AztecProtocol/aztec-packages@da36da4)) * Release Noir(1.0.0-beta.1) (noir-lang/noir#6622) ([2d3805a](AztecProtocol/aztec-packages@2d3805a)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Problem*
Followup to #6848 whose largest regression was in brillig opcodes executed #6848 (comment).
Summary*
In #6848 we marked certain binary ops as not being able to be hoisted due to the overflow checks inside of ACIR gen and Brillig gen. However, if a binary operation has one variable that is from an outer loop's induction variable we can determine whether or not there would be an overflow. This re-uses logic introduced in #6639.
This PR currently just tries to hoist add and mul instructions as they are simpler. For example,
Sub
overflows depends on if the induction variable is on the lhs or the rhs (e.g. if it is the rhs we should check the induction variable's upper bound but if it is the lhs we should check the lower bound). These can be done in follow-ups if we are comfortable with this approach.Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.