-
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: add remove_enable_side_effects
SSA pass
#4224
Merged
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 circuit sizes
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
TomAFrench
force-pushed
the
tf/side-effects-pass
branch
from
February 1, 2024 13:46
cd09de2
to
2462c6e
Compare
TomAFrench
force-pushed
the
tf/side-effects-pass
branch
from
February 7, 2024 17:16
7f0189c
to
63d70c5
Compare
TomAFrench
force-pushed
the
tf/side-effects-pass
branch
from
April 3, 2024 22:08
2cbebb3
to
4eb0288
Compare
TomAFrench
commented
Apr 3, 2024
jfecher
reviewed
Apr 5, 2024
compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs
Outdated
Show resolved
Hide resolved
jfecher
approved these changes
Apr 5, 2024
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.
LGTM
TomAFrench
commented
Apr 5, 2024
compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs
Outdated
Show resolved
Hide resolved
AztecBot
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Apr 8, 2024
…oir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
TomAFrench
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Apr 9, 2024
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(nargo): Multiple circuits info for binary programs (noir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <[email protected]> Co-authored-by: Tom French <[email protected]> Co-authored-by: vezenovm <[email protected]>
AztecBot
added a commit
that referenced
this pull request
Apr 9, 2024
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(nargo): Multiple circuits info for binary programs (#4719) chore: update condition for clearing warning comment on release PRs (#4739) chore(ci): fix cutting new versions of the docs (#4737) chore(ci): replace `yarn build:js:only` script (#4735) chore: update JS publish workflow to upload build artifacts correctly. (#4734) feat: add `remove_enable_side_effects` SSA pass (#4224) chore: update from vulnerable version of h2 (#4714) chore(ci): stop updating version list before cutting new docs version (#4726) chore: remove `FunctionInput::dummy` (#4723) chore: remove docker CI flow (#4724) fix: unknown slice lengths coming from as_slice (#4725) chore: remove unused env vars from `Cross.toml` (#4717) feat: improve nargo check cli with --override flag and feedback for existing files (#4575) feat: Allow slices to brillig entry points (#4713) chore: simplify how `acvm_backend.wasm` is embedded (#4703) fix(acvm): Mark outputs of Opcode::Call solvable (#4708) fix: Field comparisons (#4704) feat(acvm_js): Execute program (#4694) chore: simplify how blns is loaded into tests (#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (#4700) chore: remove conditional compilation around `acvm_js` package (#4702) feat(docs): Documenting noir codegen (#4454) chore: check for references to private functions during path resolution (#4622) chore: fix clippy errors (#4684) fix: Last use analysis & make it an SSA pass (#4686) feat: improve SSA type-awareness in EQ and MUL instructions (#4691) feat: improve optimisations on range constraints (#4690) chore: remove last traces of nix (#4679) chore: Use is_entry_point helper on RuntimeType (#4678) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <[email protected]> Co-authored-by: Tom French <[email protected]> Co-authored-by: vezenovm <[email protected]>
rahul-kothari
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Apr 10, 2024
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.34.0</summary> ## [0.34.0](aztec-package-v0.33.0...aztec-package-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) </details> <details><summary>barretenberg.js: 0.34.0</summary> ## [0.34.0](barretenberg.js-v0.33.0...barretenberg.js-v0.34.0) (2024-04-10) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.34.0</summary> ## [0.34.0](aztec-cli-v0.33.0...aztec-cli-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) </details> <details><summary>aztec-packages: 0.34.0</summary> ## [0.34.0](aztec-packages-v0.33.0...aztec-packages-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](#5617)) ### Features * **acvm_js:** Execute program (noir-lang/noir#4694) ([ff28080](ff28080)) * Add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) ([ff28080](ff28080)) * Allow slices to brillig entry points (noir-lang/noir#4713) ([ff28080](ff28080)) * **avm:** Basic AVM-ACVM interoperability ([#5595](#5595)) ([d872445](d872445)) * **avm:** Make authwit work with avm ([#5594](#5594)) ([b02d1e1](b02d1e1)) * **docs:** Documenting noir codegen (noir-lang/noir#4454) ([ff28080](ff28080)) * Generalize protogalaxy to multiple instances ([#5510](#5510)) ([f038b70](f038b70)) * Improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) ([ff28080](ff28080)) * Improve optimisations on range constraints (noir-lang/noir#4690) ([ff28080](ff28080)) * Improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) ([ff28080](ff28080)) * **nargo:** Multiple circuits info for binary programs (noir-lang/noir#4719) ([ff28080](ff28080)) * Stdlib databus ([#5598](#5598)) ([633a711](633a711)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) ([ff28080](ff28080)) * Do not retry RPC requests on 4xx errors ([#5634](#5634)) ([5af2b95](5af2b95)) * Field comparisons (noir-lang/noir#4704) ([ff28080](ff28080)) * Last use analysis & make it an SSA pass (noir-lang/noir#4686) ([ff28080](ff28080)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) ([ff28080](ff28080)) * Unknown slice lengths coming from as_slice (noir-lang/noir#4725) ([ff28080](ff28080)) * Use empty artifact in test ([#5640](#5640)) ([1d18a5e](1d18a5e)) ### Miscellaneous * Check for references to private functions during path resolution (noir-lang/noir#4622) ([ff28080](ff28080)) * **ci:** Fix cutting new versions of the docs (noir-lang/noir#4737) ([ff28080](ff28080)) * **ci:** Replace `yarn build:js:only` script (noir-lang/noir#4735) ([ff28080](ff28080)) * **ci:** Stop updating version list before cutting new docs version (noir-lang/noir#4726) ([ff28080](ff28080)) * Disable earthly cloud ([#5639](#5639)) ([47e9c25](47e9c25)) * Fix clippy errors (noir-lang/noir#4684) ([ff28080](ff28080)) * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) * Remove `FunctionInput::dummy` (noir-lang/noir#4723) ([ff28080](ff28080)) * Remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) ([ff28080](ff28080)) * Remove docker CI flow (noir-lang/noir#4724) ([ff28080](ff28080)) * Remove fixed-length keccak256 ([#5617](#5617)) ([40480b3](40480b3)) * Remove last traces of nix (noir-lang/noir#4679) ([ff28080](ff28080)) * Remove unused env vars from `Cross.toml` (noir-lang/noir#4717) ([ff28080](ff28080)) * Replace relative paths to noir-protocol-circuits ([bc214c5](bc214c5)) * Simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) ([ff28080](ff28080)) * Simplify how blns is loaded into tests (noir-lang/noir#4705) ([ff28080](ff28080)) * Update condition for clearing warning comment on release PRs (noir-lang/noir#4739) ([ff28080](ff28080)) * Update from vulnerable version of h2 (noir-lang/noir#4714) ([ff28080](ff28080)) * Update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) ([ff28080](ff28080)) * Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) ([ff28080](ff28080)) </details> <details><summary>barretenberg: 0.34.0</summary> ## [0.34.0](barretenberg-v0.33.0...barretenberg-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](#5617)) ### Features * Generalize protogalaxy to multiple instances ([#5510](#5510)) ([f038b70](f038b70)) * Stdlib databus ([#5598](#5598)) ([633a711](633a711)) ### Miscellaneous * Remove fixed-length keccak256 ([#5617](#5617)) ([40480b3](40480b3)) </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
that referenced
this pull request
Apr 10, 2024
* master: (144 commits) fix: correct ICE panic messages in brillig `convert_black_box_call` (#4761) chore(docs): Fix link in the Data Types page (#4527) chore(doc): Fix broken docs links (#4606) chore: Remove the old Value struct from the oracle docs (#4738) feat(nargo): Multiple circuits info for binary programs (#4719) chore: update condition for clearing warning comment on release PRs (#4739) chore(ci): fix cutting new versions of the docs (#4737) chore(ci): replace `yarn build:js:only` script (#4735) chore: update JS publish workflow to upload build artifacts correctly. (#4734) feat: add `remove_enable_side_effects` SSA pass (#4224) chore: update from vulnerable version of h2 (#4714) chore(ci): stop updating version list before cutting new docs version (#4726) chore: remove `FunctionInput::dummy` (#4723) chore: remove docker CI flow (#4724) fix: unknown slice lengths coming from as_slice (#4725) chore: remove unused env vars from `Cross.toml` (#4717) feat: improve nargo check cli with --override flag and feedback for existing files (#4575) feat: Allow slices to brillig entry points (#4713) chore: simplify how `acvm_backend.wasm` is embedded (#4703) fix(acvm): Mark outputs of Opcode::Call solvable (#4708) ...
github-merge-queue bot
pushed a commit
that referenced
this pull request
Apr 10, 2024
🤖 I have created a release *beep* *boop* --- <details><summary>0.27.0</summary> ## [0.27.0](v0.26.0...v0.27.0) (2024-04-10) ### ⚠ BREAKING CHANGES * Brillig typed memory (AztecProtocol/aztec-packages#5395) ### Features * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) ([a0f7474](a0f7474)) * **acvm_js:** Execute program ([#4694](#4694)) ([386f6d0](386f6d0)) * **acvm:** Execute multiple circuits (AztecProtocol/aztec-packages#5380) ([a0f7474](a0f7474)) * Add `remove_enable_side_effects` SSA pass ([#4224](#4224)) ([94952db](94952db)) * Allow slices to brillig entry points ([#4713](#4713)) ([62423d5](62423d5)) * Brillig typed memory (AztecProtocol/aztec-packages#5395) ([0bc18c4](0bc18c4)) * **docs:** Documenting noir codegen ([#4454](#4454)) ([24f6d85](24f6d85)) * Improve nargo check cli with --override flag and feedback for existing files ([#4575](#4575)) ([5e7fbd4](5e7fbd4)) * Improve optimisations on range constraints ([#4690](#4690)) ([96b8110](96b8110)) * Improve SSA type-awareness in EQ and MUL instructions ([#4691](#4691)) ([669f1a0](669f1a0)) * **nargo:** Multiple circuits info for binary programs ([#4719](#4719)) ([50d2735](50d2735)) ### Bug Fixes * "Types in a binary operation should match, but found T and T" ([#4648](#4648)) ([30c9f31](30c9f31)) * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](#4708)) ([8fea405](8fea405)) * Correct ICE panic messages in brillig `convert_black_box_call` ([#4761](#4761)) ([f3eee6c](f3eee6c)) * Error when a type variable is unbound during monomorphization instead of defaulting to Field ([#4674](#4674)) ([03cdba4](03cdba4)) * Field comparisons ([#4704](#4704)) ([079cb2a](079cb2a)) * Impl search no longer selects an impl if multiple are applicable ([#4662](#4662)) ([0150600](0150600)) * Last use analysis & make it an SSA pass ([#4686](#4686)) ([0d3d5fd](0d3d5fd)) * Slice coercions ([#4640](#4640)) ([c0bae17](c0bae17)) * **ssa:** Accurate constant type for slice dummy data in flattening ([#4661](#4661)) ([b87654e](b87654e)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information ([#4700](#4700)) ([b55a580](b55a580)) * **ssa:** Fix slice intrinsic handling in the capacity tracker ([#4643](#4643)) ([1b50ce1](1b50ce1)) * Unknown slice lengths coming from as_slice ([#4725](#4725)) ([f21129e](f21129e)) * Update commit for noir-gates-diff ([#4773](#4773)) ([a9766c5](a9766c5)) </details> <details><summary>0.43.0</summary> ## [0.43.0](v0.42.0...v0.43.0) (2024-04-10) ### ⚠ BREAKING CHANGES * Brillig typed memory (AztecProtocol/aztec-packages#5395) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) * automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) * Acir call opcode (AztecProtocol/aztec-packages#4773) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) * Internal as a macro (AztecProtocol/aztec-packages#4898) * move noir out of yarn-project (AztecProtocol/aztec-packages#4479) * note type ids (AztecProtocol/aztec-packages#4500) * rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) * Add expression width into acir (AztecProtocol/aztec-packages#4014) * init storage macro (AztecProtocol/aztec-packages#4200) * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) * Sync commits from `aztec-packages` ([#4144](#4144)) * Breaking changes from aztec-packages ([#3955](#3955)) * Rename Arithmetic opcode to AssertZero ([#3840](#3840)) * Remove unused methods on ACIR opcodes ([#3841](#3841)) ### Features * Acir call opcode (AztecProtocol/aztec-packages#4773) ([c3c9e19](c3c9e19)) * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) ([a0f7474](a0f7474)) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) ([13eb71b](13eb71b)) * **acvm_js:** Execute program ([#4694](#4694)) ([386f6d0](386f6d0)) * **acvm:** Execute multiple circuits (AztecProtocol/aztec-packages#5380) ([a0f7474](a0f7474)) * Add bit size to const opcode (AztecProtocol/aztec-packages#4385) ([158c8ce](158c8ce)) * Add CMOV instruction to brillig and brillig gen (AztecProtocol/aztec-packages#5308) ([13eb71b](13eb71b)) * Add expression width into acir (AztecProtocol/aztec-packages#4014) ([158c8ce](158c8ce)) * Add instrumentation for tracking variables in debugging ([#4122](#4122)) ([c58d691](c58d691)) * Add poseidon2 opcode implementation for acvm/brillig, and Noir ([#4398](#4398)) ([10e8292](10e8292)) * Add support for overriding expression width ([#4117](#4117)) ([c8026d5](c8026d5)) * Added cast opcode and cast calldata (AztecProtocol/aztec-packages#4423) ([78ef013](78ef013)) * Allow brillig to read arrays directly from memory (AztecProtocol/aztec-packages#4460) ([158c8ce](158c8ce)) * Allow nested arrays and vectors in Brillig foreign calls (AztecProtocol/aztec-packages#4478) ([158c8ce](158c8ce)) * Allow variables and stack trace inspection in the debugger ([#4184](#4184)) ([bf263fc](bf263fc)) * Automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) ([13eb71b](13eb71b)) * **avm:** Back in avm context with macro - refactor context (AztecProtocol/aztec-packages#4438) ([158c8ce](158c8ce)) * **avm:** Brillig CONST of size > u128 (AztecProtocol/aztec-packages#5217) ([c3c9e19](c3c9e19)) * **aztec-nr:** Initial work for aztec public vm macro (AztecProtocol/aztec-packages#4400) ([158c8ce](158c8ce)) * Backpropagate constants in ACIR during optimization ([#3926](#3926)) ([aad0da0](aad0da0)) * Breaking changes from aztec-packages ([#3955](#3955)) ([5be049e](5be049e)) * Brillig IR refactor (AztecProtocol/aztec-packages#5233) ([c3c9e19](c3c9e19)) * Brillig typed memory (AztecProtocol/aztec-packages#5395) ([0bc18c4](0bc18c4)) * Check initializer msg.sender matches deployer from address preimage (AztecProtocol/aztec-packages#5222) ([c3c9e19](c3c9e19)) * Evaluation of dynamic assert messages ([#4101](#4101)) ([c284e01](c284e01)) * Init storage macro (AztecProtocol/aztec-packages#4200) ([158c8ce](158c8ce)) * Initial Earthly CI (AztecProtocol/aztec-packages#5069) ([c3c9e19](c3c9e19)) * Internal as a macro (AztecProtocol/aztec-packages#4898) ([5f57ebb](5f57ebb)) * New brillig field operations and refactor of binary operations (AztecProtocol/aztec-packages#5208) ([c3c9e19](c3c9e19)) * Note type ids (AztecProtocol/aztec-packages#4500) ([78ef013](78ef013)) * Remove range constraints from witnesses which are constrained to be constants ([#3928](#3928)) ([afe9c7a](afe9c7a)) * Remove replacement of boolean range opcodes with `AssertZero` opcodes ([#4107](#4107)) ([dac0e87](dac0e87)) * Signed integer division and modulus in brillig gen (AztecProtocol/aztec-packages#5279) ([c3c9e19](c3c9e19)) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) ([c3c9e19](c3c9e19)) * Sync `aztec-packages` ([#4011](#4011)) ([fee2452](fee2452)) * Sync commits from `aztec-packages` ([#4068](#4068)) ([7a8f3a3](7a8f3a3)) * Sync commits from `aztec-packages` ([#4144](#4144)) ([0205d3b](0205d3b)) * Sync from aztec-packages ([#4483](#4483)) ([fe8f277](fe8f277)) * Sync from noir (AztecProtocol/aztec-packages#5234) ([c3c9e19](c3c9e19)) * Sync from noir (AztecProtocol/aztec-packages#5286) ([c3c9e19](c3c9e19)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](#4708)) ([8fea405](8fea405)) * Noir test incorrect reporting (AztecProtocol/aztec-packages#4925) ([5f57ebb](5f57ebb)) * Remove panic from `init_log_level` in `acvm_js` ([#4195](#4195)) ([2e26530](2e26530)) * Return error rather instead of panicking on invalid circuit ([#3976](#3976)) ([67201bf](67201bf)) ### Miscellaneous Chores * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) ([158c8ce](158c8ce)) * Move noir out of yarn-project (AztecProtocol/aztec-packages#4479) ([78ef013](78ef013)) * Remove unused methods on ACIR opcodes ([#3841](#3841)) ([9e5d0e8](9e5d0e8)) * Rename Arithmetic opcode to AssertZero ([#3840](#3840)) ([836f171](836f171)) * Rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) ([158c8ce](158c8ce)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
AztecBot
added a commit
to AztecProtocol/barretenberg
that referenced
this pull request
Apr 11, 2024
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-package-v0.33.0...aztec-package-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) </details> <details><summary>barretenberg.js: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@barretenberg.js-v0.33.0...barretenberg.js-v0.34.0) (2024-04-10) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-cli-v0.33.0...aztec-cli-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) </details> <details><summary>aztec-packages: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-packages-v0.33.0...aztec-packages-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ### Features * **acvm_js:** Execute program (noir-lang/noir#4694) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Allow slices to brillig entry points (noir-lang/noir#4713) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **avm:** Basic AVM-ACVM interoperability ([#5595](AztecProtocol/aztec-packages#5595)) ([d872445](AztecProtocol/aztec-packages@d872445)) * **avm:** Make authwit work with avm ([#5594](AztecProtocol/aztec-packages#5594)) ([b02d1e1](AztecProtocol/aztec-packages@b02d1e1)) * **docs:** Documenting noir codegen (noir-lang/noir#4454) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Generalize protogalaxy to multiple instances ([#5510](AztecProtocol/aztec-packages#5510)) ([f038b70](AztecProtocol/aztec-packages@f038b70)) * Improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Improve optimisations on range constraints (noir-lang/noir#4690) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **nargo:** Multiple circuits info for binary programs (noir-lang/noir#4719) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Stdlib databus ([#5598](AztecProtocol/aztec-packages#5598)) ([633a711](AztecProtocol/aztec-packages@633a711)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Do not retry RPC requests on 4xx errors ([#5634](AztecProtocol/aztec-packages#5634)) ([5af2b95](AztecProtocol/aztec-packages@5af2b95)) * Field comparisons (noir-lang/noir#4704) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Last use analysis & make it an SSA pass (noir-lang/noir#4686) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Unknown slice lengths coming from as_slice (noir-lang/noir#4725) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Use empty artifact in test ([#5640](AztecProtocol/aztec-packages#5640)) ([1d18a5e](AztecProtocol/aztec-packages@1d18a5e)) ### Miscellaneous * Check for references to private functions during path resolution (noir-lang/noir#4622) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Fix cutting new versions of the docs (noir-lang/noir#4737) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Replace `yarn build:js:only` script (noir-lang/noir#4735) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Stop updating version list before cutting new docs version (noir-lang/noir#4726) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Disable earthly cloud ([#5639](AztecProtocol/aztec-packages#5639)) ([47e9c25](AztecProtocol/aztec-packages@47e9c25)) * Fix clippy errors (noir-lang/noir#4684) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) * Remove `FunctionInput::dummy` (noir-lang/noir#4723) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove docker CI flow (noir-lang/noir#4724) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ([40480b3](AztecProtocol/aztec-packages@40480b3)) * Remove last traces of nix (noir-lang/noir#4679) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove unused env vars from `Cross.toml` (noir-lang/noir#4717) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Replace relative paths to noir-protocol-circuits ([bc214c5](AztecProtocol/aztec-packages@bc214c5)) * Simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Simplify how blns is loaded into tests (noir-lang/noir#4705) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update condition for clearing warning comment on release PRs (noir-lang/noir#4739) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update from vulnerable version of h2 (noir-lang/noir#4714) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) ([ff28080](AztecProtocol/aztec-packages@ff28080)) </details> <details><summary>barretenberg: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@barretenberg-v0.33.0...barretenberg-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ### Features * Generalize protogalaxy to multiple instances ([#5510](AztecProtocol/aztec-packages#5510)) ([f038b70](AztecProtocol/aztec-packages@f038b70)) * Stdlib databus ([#5598](AztecProtocol/aztec-packages#5598)) ([633a711](AztecProtocol/aztec-packages@633a711)) ### Miscellaneous * Remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ([40480b3](AztecProtocol/aztec-packages@40480b3)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
AztecBot
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Apr 11, 2024
chore: Release Noir(0.27.0) (noir-lang/noir#4632) fix: Update commit for noir-gates-diff (noir-lang/noir#4773) fix: correct ICE panic messages in brillig `convert_black_box_call` (noir-lang/noir#4761) chore(docs): Fix link in the Data Types page (noir-lang/noir#4527) chore(doc): Fix broken docs links (noir-lang/noir#4606) chore: Remove the old Value struct from the oracle docs (noir-lang/noir#4738) feat(nargo): Multiple circuits info for binary programs (noir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
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*
Resolves
Summary*
The
EnableSideEffects
instruction can hamper dead instruction elimination in the case where it's not covering any instructions which have side effects (and so are affected by theEnableSideEffects
instruction). In this case we cannot perform any DIE on instructions used to calculate the predicate as the compiler sees their results as being used.This PR adds a new SSA pass which delays inserting
EnableSideEffects
instructions until the next instruction which would be affected by them. This means that if we hit anotherEnableSideEffects
instruction first then we can omit the previous one, unlocking more DIE opportunities.Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.