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

feat(performance): Use unchecked ops based upon known induction variables #7344

Merged
merged 10 commits into from
Feb 12, 2025

Conversation

vezenovm
Copy link
Contributor

@vezenovm vezenovm commented Feb 10, 2025

Description

Problem*

Resolves #7343

Summary*

In a similar theme to #6910 we can check whether a given binary op will overflow when we have a constant and a known upper loop bound. In this PR, we now check every binary add/mul for whether it can be converted to an unchecked operation.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

Copy link
Contributor

github-actions bot commented Feb 10, 2025

Changes to Brillig bytecode sizes

Generated at commit: 2f34b98a357856331025b6d5751f09c8b0f1c6c6, compared to commit: 1c5ae807117f0b3461e2ae3780c6e3e05b0c1c78

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
sha256_brillig_performance_regression_inliner_max -48 ✅ -2.88%
sha256_var_padding_regression_inliner_max -144 ✅ -2.89%
sha256_inliner_max -68 ✅ -2.91%
6_inliner_max -34 ✅ -2.94%
ram_blowup_regression_inliner_zero -31 ✅ -3.25%
ram_blowup_regression_inliner_max -31 ✅ -3.29%
keccak256_inliner_min -56 ✅ -3.35%
array_dynamic_blackbox_input_inliner_max -34 ✅ -4.02%

Full diff report 👇
Program Brillig opcodes (+/-) %
poseidon_bn254_hash_inliner_min 5,044 (-4) -0.08%
poseidon_bn254_hash_width_3_inliner_min 5,044 (-4) -0.08%
u128_inliner_max 2,693 (-3) -0.11%
u128_inliner_min 2,282 (-3) -0.13%
u128_inliner_zero 1,977 (-3) -0.15%
regression_5252_inliner_max 4,442 (-14) -0.31%
poseidonsponge_x5_254_inliner_max 4,102 (-14) -0.34%
poseidon_bn254_hash_inliner_max 5,255 (-18) -0.34%
poseidon_bn254_hash_width_3_inliner_max 5,255 (-18) -0.34%
poseidon_bn254_hash_inliner_zero 4,684 (-18) -0.38%
poseidon_bn254_hash_width_3_inliner_zero 4,684 (-18) -0.38%
sha256_regression_inliner_min 5,273 (-45) -0.85%
sha256_regression_inliner_zero 4,835 (-45) -0.92%
sha2_byte_inliner_min 2,978 (-28) -0.93%
sha256_inliner_min 1,385 (-17) -1.21%
sha2_byte_inliner_zero 2,194 (-28) -1.26%
sha2_byte_inliner_max 2,094 (-28) -1.32%
sha256_var_size_regression_inliner_min 1,241 (-17) -1.35%
sha256_inliner_zero 1,232 (-17) -1.36%
ecdsa_secp256k1_inliner_min 1,206 (-17) -1.39%
conditional_1_inliner_min 1,407 (-20) -1.40%
array_dynamic_nested_blackbox_input_inliner_min 1,193 (-17) -1.40%
conditional_regression_short_circuit_inliner_min 1,104 (-17) -1.52%
sha256_var_size_regression_inliner_zero 1,085 (-17) -1.54%
regression_4449_inliner_min 1,059 (-17) -1.58%
sha256_var_padding_regression_inliner_min 3,192 (-52) -1.60%
6_inliner_min 1,003 (-17) -1.67%
sha256_var_witness_const_regression_inliner_min 977 (-17) -1.71%
conditional_1_inliner_max 1,126 (-20) -1.75%
sha256_var_padding_regression_inliner_zero 2,916 (-52) -1.75%
conditional_1_inliner_zero 1,106 (-20) -1.78%
conditional_regression_short_circuit_inliner_zero 908 (-17) -1.84%
ecdsa_secp256k1_inliner_zero 901 (-17) -1.85%
array_dynamic_blackbox_input_inliner_min 1,261 (-24) -1.87%
regression_inliner_min 1,101 (-21) -1.87%
array_dynamic_nested_blackbox_input_inliner_zero 878 (-17) -1.90%
ecdsa_secp256k1_inliner_max 874 (-17) -1.91%
sha256_regression_inliner_max 6,631 (-130) -1.92%
array_dynamic_nested_blackbox_input_inliner_max 851 (-17) -1.96%
sha256_var_size_regression_inliner_max 1,690 (-34) -1.97%
6_inliner_zero 826 (-17) -2.02%
brillig_cow_regression_inliner_min 2,331 (-48) -2.02%
sha256_var_witness_const_regression_inliner_zero 794 (-17) -2.10%
regression_inliner_zero 948 (-21) -2.17%
regression_4449_inliner_zero 757 (-17) -2.20%
regression_inliner_max 911 (-21) -2.25%
brillig_cow_regression_inliner_zero 2,075 (-48) -2.26%
brillig_cow_regression_inliner_max 2,040 (-48) -2.30%
regression_4449_inliner_max 720 (-17) -2.31%
array_dynamic_blackbox_input_inliner_zero 1,008 (-24) -2.33%
sha256_brillig_performance_regression_inliner_min 1,811 (-48) -2.58%
sha256_var_witness_const_regression_inliner_max 1,240 (-34) -2.67%
ram_blowup_regression_inliner_min 1,117 (-31) -2.70%
conditional_regression_short_circuit_inliner_max 1,194 (-34) -2.77%
keccak256_inliner_max 2,049 (-59) -2.80%
sha256_brillig_performance_regression_inliner_zero 1,659 (-48) -2.81%
keccak256_inliner_zero 1,919 (-56) -2.84%
sha256_brillig_performance_regression_inliner_max 1,619 (-48) -2.88%
sha256_var_padding_regression_inliner_max 4,840 (-144) -2.89%
sha256_inliner_max 2,265 (-68) -2.91%
6_inliner_max 1,121 (-34) -2.94%
ram_blowup_regression_inliner_zero 924 (-31) -3.25%
ram_blowup_regression_inliner_max 911 (-31) -3.29%
keccak256_inliner_min 1,617 (-56) -3.35%
array_dynamic_blackbox_input_inliner_max 812 (-34) -4.02%

Copy link
Contributor

github-actions bot commented Feb 10, 2025

Changes to number of Brillig opcodes executed

Generated at commit: 2f34b98a357856331025b6d5751f09c8b0f1c6c6, compared to commit: 1c5ae807117f0b3461e2ae3780c6e3e05b0c1c78

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
sha256_inliner_max -244 ✅ -1.78%
array_dynamic_blackbox_input_inliner_max -326 ✅ -1.86%
regression_4449_inliner_zero -4,270 ✅ -1.87%
sha256_var_witness_const_regression_inliner_max -122 ✅ -1.89%
regression_4449_inliner_max -4,270 ✅ -2.11%
sha256_brillig_performance_regression_inliner_min -594 ✅ -2.21%
sha256_brillig_performance_regression_inliner_zero -594 ✅ -2.24%
sha256_brillig_performance_regression_inliner_max -594 ✅ -2.70%

Full diff report 👇
Program Brillig opcodes (+/-) %
poseidon_bn254_hash_inliner_min 185,961 (-12) -0.01%
poseidon_bn254_hash_width_3_inliner_min 185,961 (-12) -0.01%
poseidonsponge_x5_254_inliner_max 171,488 (-38) -0.02%
regression_5252_inliner_max 854,031 (-190) -0.02%
poseidon_bn254_hash_inliner_zero 182,439 (-46) -0.03%
poseidon_bn254_hash_width_3_inliner_zero 182,439 (-46) -0.03%
poseidon_bn254_hash_inliner_max 151,693 (-46) -0.03%
poseidon_bn254_hash_width_3_inliner_max 151,693 (-46) -0.03%
u128_inliner_min 48,497 (-16) -0.03%
u128_inliner_zero 40,957 (-16) -0.04%
u128_inliner_max 24,267 (-16) -0.07%
sha2_byte_inliner_min 89,317 (-154) -0.17%
sha2_byte_inliner_zero 72,215 (-154) -0.21%
sha256_var_padding_regression_inliner_min 231,622 (-524) -0.23%
sha256_var_padding_regression_inliner_zero 230,123 (-524) -0.23%
ram_blowup_regression_inliner_min 817,337 (-2,362) -0.29%
ram_blowup_regression_inliner_zero 813,079 (-2,362) -0.29%
brillig_cow_regression_inliner_min 542,949 (-1,674) -0.31%
brillig_cow_regression_inliner_zero 539,352 (-1,674) -0.31%
sha256_var_padding_regression_inliner_max 196,324 (-624) -0.32%
sha256_regression_inliner_min 157,194 (-522) -0.33%
sha256_regression_inliner_zero 155,152 (-522) -0.34%
ram_blowup_regression_inliner_max 681,824 (-2,362) -0.35%
sha2_byte_inliner_max 43,953 (-154) -0.35%
brillig_cow_regression_inliner_max 453,719 (-1,674) -0.37%
regression_inliner_min 3,051 (-12) -0.39%
regression_inliner_zero 2,708 (-12) -0.44%
regression_inliner_max 2,662 (-12) -0.45%
sha256_regression_inliner_max 111,608 (-522) -0.47%
sha256_var_size_regression_inliner_min 22,066 (-122) -0.55%
sha256_var_size_regression_inliner_zero 21,311 (-122) -0.57%
array_dynamic_blackbox_input_inliner_min 22,264 (-134) -0.60%
array_dynamic_blackbox_input_inliner_zero 21,177 (-134) -0.63%
ecdsa_secp256k1_inliner_min 8,149 (-61) -0.74%
sha256_var_size_regression_inliner_max 15,604 (-122) -0.78%
ecdsa_secp256k1_inliner_zero 7,570 (-61) -0.80%
ecdsa_secp256k1_inliner_max 6,378 (-61) -0.95%
conditional_1_inliner_min 5,938 (-61) -1.02%
conditional_1_inliner_zero 5,469 (-61) -1.10%
conditional_1_inliner_max 5,043 (-61) -1.20%
conditional_regression_short_circuit_inliner_min 4,919 (-61) -1.22%
array_dynamic_nested_blackbox_input_inliner_min 4,905 (-61) -1.23%
6_inliner_min 4,813 (-61) -1.25%
conditional_regression_short_circuit_inliner_zero 4,480 (-61) -1.34%
array_dynamic_nested_blackbox_input_inliner_zero 4,451 (-61) -1.35%
6_inliner_zero 4,400 (-61) -1.37%
array_dynamic_nested_blackbox_input_inliner_max 4,199 (-61) -1.43%
sha256_inliner_min 12,183 (-183) -1.48%
keccak256_inliner_min 31,625 (-480) -1.50%
keccak256_inliner_zero 31,244 (-480) -1.51%
sha256_var_witness_const_regression_inliner_min 7,672 (-122) -1.57%
keccak256_inliner_max 30,184 (-480) -1.57%
regression_4449_inliner_min 265,333 (-4,270) -1.58%
sha256_inliner_zero 11,247 (-183) -1.60%
conditional_regression_short_circuit_inliner_max 6,893 (-122) -1.74%
sha256_var_witness_const_regression_inliner_zero 6,879 (-122) -1.74%
6_inliner_max 6,815 (-122) -1.76%
sha256_inliner_max 13,438 (-244) -1.78%
array_dynamic_blackbox_input_inliner_max 17,203 (-326) -1.86%
regression_4449_inliner_zero 224,107 (-4,270) -1.87%
sha256_var_witness_const_regression_inliner_max 6,327 (-122) -1.89%
regression_4449_inliner_max 198,065 (-4,270) -2.11%
sha256_brillig_performance_regression_inliner_min 26,306 (-594) -2.21%
sha256_brillig_performance_regression_inliner_zero 25,925 (-594) -2.24%
sha256_brillig_performance_regression_inliner_max 21,433 (-594) -2.70%

@vezenovm vezenovm marked this pull request as ready for review February 12, 2025 01:04
@vezenovm vezenovm requested a review from a team February 12, 2025 01:06
Copy link
Collaborator

@asterite asterite left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

@vezenovm vezenovm requested a review from TomAFrench February 12, 2025 15:09
Copy link
Member

@TomAFrench TomAFrench left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

vezenovm and others added 2 commits February 12, 2025 10:26
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
@vezenovm vezenovm enabled auto-merge February 12, 2025 15:28
@vezenovm vezenovm disabled auto-merge February 12, 2025 15:37
@vezenovm vezenovm enabled auto-merge February 12, 2025 15:59
@vezenovm vezenovm added this pull request to the merge queue Feb 12, 2025
Merged via the queue into master with commit 10b377f Feb 12, 2025
103 checks passed
@vezenovm vezenovm deleted the mv/use-loop-induction-var-for-unchecked-ops branch February 12, 2025 16:19
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 13, 2025
…#7358)

feat(performance): Check sub operations against induction variables (noir-lang/noir#7356)
chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357)
feat(cli): Add `--target-dir` option (noir-lang/noir#7350)
fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190)
feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344)
chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351)
fix: incorrect secondary file in LSP errors (noir-lang/noir#7347)
chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341)
fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345)
chore: remove some unused types and functions in the AST (noir-lang/noir#7339)
chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337)
chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342)
chore: redo typo PR by osrm (noir-lang/noir#7238)
chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914)
fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327)
fix: perform SSA constraints check on final SSA (noir-lang/noir#7334)
chore: remove misleading output from `nargo check` (noir-lang/noir#7329)
chore: fix warnings (noir-lang/noir#7330)
chore: normalize path displayed by `nargo new` (noir-lang/noir#7328)
chore: split acirgen into multiple modules (noir-lang/noir#7310)
chore: remove unnecessary constants (noir-lang/noir#7326)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 13, 2025
feat(performance): Check sub operations against induction variables (noir-lang/noir#7356)
chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357)
feat(cli): Add `--target-dir` option (noir-lang/noir#7350)
fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190)
feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344)
chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351)
fix: incorrect secondary file in LSP errors (noir-lang/noir#7347)
chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341)
fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345)
chore: remove some unused types and functions in the AST (noir-lang/noir#7339)
chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337)
chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342)
chore: redo typo PR by osrm (noir-lang/noir#7238)
chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914)
fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327)
fix: perform SSA constraints check on final SSA (noir-lang/noir#7334)
chore: remove misleading output from `nargo check` (noir-lang/noir#7329)
chore: fix warnings (noir-lang/noir#7330)
chore: normalize path displayed by `nargo new` (noir-lang/noir#7328)
chore: split acirgen into multiple modules (noir-lang/noir#7310)
chore: remove unnecessary constants (noir-lang/noir#7326)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 13, 2025
feat: `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358)
feat(performance): Check sub operations against induction variables (noir-lang/noir#7356)
chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357)
feat(cli): Add `--target-dir` option (noir-lang/noir#7350)
fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190)
feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344)
chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351)
fix: incorrect secondary file in LSP errors (noir-lang/noir#7347)
chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341)
fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345)
chore: remove some unused types and functions in the AST (noir-lang/noir#7339)
chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337)
chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342)
chore: redo typo PR by osrm (noir-lang/noir#7238)
chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914)
fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327)
fix: perform SSA constraints check on final SSA (noir-lang/noir#7334)
chore: remove misleading output from `nargo check` (noir-lang/noir#7329)
chore: fix warnings (noir-lang/noir#7330)
chore: normalize path displayed by `nargo new` (noir-lang/noir#7328)
chore: split acirgen into multiple modules (noir-lang/noir#7310)
chore: remove unnecessary constants (noir-lang/noir#7326)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 13, 2025
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: deprecate keccak256 (noir-lang/noir#7361)
feat: `FunctionDefinition::as_typed_expr`
(noir-lang/noir#7358)
feat(performance): Check sub operations against induction variables
(noir-lang/noir#7356)
chore: avoid doing all brillig integer arithmetic on u128s
(noir-lang/noir#7357)
feat(cli): Add `--target-dir` option
(noir-lang/noir#7350)
fix(ssa): Make the lookback feature opt-in
(noir-lang/noir#7190)
feat(performance): Use unchecked ops based upon known induction
variables (noir-lang/noir#7344)
chore: mark sha256 as deprecated from the stdlib
(noir-lang/noir#7351)
fix: incorrect secondary file in LSP errors
(noir-lang/noir#7347)
chore: Basic test for MSM in Noir to catch performance improvements and
regressions (noir-lang/noir#7341)
fix(cli): Only lock the packages selected in the workspace
(noir-lang/noir#7345)
chore: remove some unused types and functions in the AST
(noir-lang/noir#7339)
chore: remove foreign calls array from Brillig VM constructor
(noir-lang/noir#7337)
chore(ci): Add Vecs and vecs to cspell
(noir-lang/noir#7342)
chore: redo typo PR by osrm
(noir-lang/noir#7238)
chore: Release Noir(1.0.0-beta.2)
(noir-lang/noir#6914)
fix: lock git dependencies folder when resolving workspace
(noir-lang/noir#7327)
fix: perform SSA constraints check on final SSA
(noir-lang/noir#7334)
chore: remove misleading output from `nargo check`
(noir-lang/noir#7329)
chore: fix warnings (noir-lang/noir#7330)
chore: normalize path displayed by `nargo new`
(noir-lang/noir#7328)
chore: split acirgen into multiple modules
(noir-lang/noir#7310)
chore: remove unnecessary constants
(noir-lang/noir#7326)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Tom French <tom@tomfren.ch>
sklppy88 pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 13, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.76.4</summary>

##
[0.76.4](aztec-package-v0.76.3...aztec-package-v0.76.4)
(2025-02-13)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.76.4</summary>

##
[0.76.4](barretenberg.js-v0.76.3...barretenberg.js-v0.76.4)
(2025-02-13)


### Miscellaneous

* Unify webpack dev server versions
([#11965](#11965))
([921d2cd](921d2cd))
</details>

<details><summary>aztec-packages: 0.76.4</summary>

##
[0.76.4](aztec-packages-v0.76.3...aztec-packages-v0.76.4)
(2025-02-13)


### Features

* `FunctionDefinition::as_typed_expr`
(noir-lang/noir#7358)
([5efdd57](5efdd57))
* Aes decryption oracle
([#11907](#11907))
([c4ce913](c4ce913))
* **avm:** Constrained ec_add
([#11525](#11525))
([f8fe602](f8fe602))
* **avm:** Interaction testing
([#11947](#11947))
([fc647eb](fc647eb))
* **avm:** Relation microbenchmarks
([#11974](#11974))
([95b581d](95b581d))
* **cli:** Add `--target-dir` option
(noir-lang/noir#7350)
([5efdd57](5efdd57))
* Indexed protocol contracts tree
([#11897](#11897))
([96e84d4](96e84d4))
* **performance:** Check sub operations against induction variables
(noir-lang/noir#7356)
([5efdd57](5efdd57))
* **performance:** Use unchecked ops based upon known induction
variables (noir-lang/noir#7344)
([5efdd57](5efdd57))
* Small blob fixes/improvements
([#11686](#11686))
([4eab9fc](4eab9fc))
* Update fee model
([#11953](#11953))
([2798d58](2798d58))
* Use brillig optimized sha256
([#11696](#11696))
([438c905](438c905))


### Bug Fixes

* Ci fixes
([#11973](#11973))
([6386f4e](6386f4e))
* **cli:** Only lock the packages selected in the workspace
(noir-lang/noir#7345)
([5efdd57](5efdd57))
* Deterministic generation of vkeys in ts
([#11951](#11951))
([7901cac](7901cac))
* Incorrect secondary file in LSP errors
(noir-lang/noir#7347)
([5efdd57](5efdd57))
* Lock git dependencies folder when resolving workspace
(noir-lang/noir#7327)
([5efdd57](5efdd57))
* Perform SSA constraints check on final SSA
(noir-lang/noir#7334)
([5efdd57](5efdd57))
* Remove deprecated artifacts
([#11979](#11979))
([4f0dce7](4f0dce7))
* Remove serial queue in broker facade
([#11956](#11956))
([3485b52](3485b52))
* **ssa:** Make the lookback feature opt-in
(noir-lang/noir#7190)
([5efdd57](5efdd57))


### Miscellaneous

* **avm:** Tracegen interactions assertion
([#11972](#11972))
([b865ccc](b865ccc))
* Avoid doing all brillig integer arithmetic on u128s
(noir-lang/noir#7357)
([5efdd57](5efdd57))
* Basic test for MSM in Noir to catch performance improvements and
regressions (noir-lang/noir#7341)
([5efdd57](5efdd57))
* Bump devnet boot node resources
([#11958](#11958))
([bbcdefc](bbcdefc))
* **ci:** Add Vecs and vecs to cspell
(noir-lang/noir#7342)
([5efdd57](5efdd57))
* Deprecate keccak256 (noir-lang/noir#7361)
([5efdd57](5efdd57))
* Fix warnings (noir-lang/noir#7330)
([5efdd57](5efdd57))
* Mark sha256 as deprecated from the stdlib
(noir-lang/noir#7351)
([5efdd57](5efdd57))
* Moving storage slot out of `NoteHeader`
([#11904](#11904))
([8c4bb1c](8c4bb1c))
* Normalize path displayed by `nargo new`
(noir-lang/noir#7328)
([5efdd57](5efdd57))
* Redo typo PR by osrm (noir-lang/noir#7238)
([5efdd57](5efdd57))
* Release Noir(1.0.0-beta.2)
(noir-lang/noir#6914)
([5efdd57](5efdd57))
* Remove foreign calls array from Brillig VM constructor
(noir-lang/noir#7337)
([5efdd57](5efdd57))
* Remove misleading output from `nargo check`
(noir-lang/noir#7329)
([5efdd57](5efdd57))
* Remove some unused types and functions in the AST
(noir-lang/noir#7339)
([5efdd57](5efdd57))
* Remove unnecessary constants
(noir-lang/noir#7326)
([5efdd57](5efdd57))
* Revive browser test before killing it
([#11964](#11964))
([cb47cc0](cb47cc0))
* Split acirgen into multiple modules
(noir-lang/noir#7310)
([5efdd57](5efdd57))
* Unify webpack dev server versions
([#11965](#11965))
([921d2cd](921d2cd))
</details>

<details><summary>barretenberg: 0.76.4</summary>

##
[0.76.4](barretenberg-v0.76.3...barretenberg-v0.76.4)
(2025-02-13)


### Features

* Aes decryption oracle
([#11907](#11907))
([c4ce913](c4ce913))
* **avm:** Constrained ec_add
([#11525](#11525))
([f8fe602](f8fe602))
* **avm:** Interaction testing
([#11947](#11947))
([fc647eb](fc647eb))
* **avm:** Relation microbenchmarks
([#11974](#11974))
([95b581d](95b581d))


### Miscellaneous

* **avm:** Tracegen interactions assertion
([#11972](#11972))
([b865ccc](b865ccc))
* Unify webpack dev server versions
([#11965](#11965))
([921d2cd](921d2cd))
</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 Feb 14, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.76.4</summary>

##
[0.76.4](AztecProtocol/aztec-packages@aztec-package-v0.76.3...aztec-package-v0.76.4)
(2025-02-13)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.76.4</summary>

##
[0.76.4](AztecProtocol/aztec-packages@barretenberg.js-v0.76.3...barretenberg.js-v0.76.4)
(2025-02-13)


### Miscellaneous

* Unify webpack dev server versions
([#11965](AztecProtocol/aztec-packages#11965))
([921d2cd](AztecProtocol/aztec-packages@921d2cd))
</details>

<details><summary>aztec-packages: 0.76.4</summary>

##
[0.76.4](AztecProtocol/aztec-packages@aztec-packages-v0.76.3...aztec-packages-v0.76.4)
(2025-02-13)


### Features

* `FunctionDefinition::as_typed_expr`
(noir-lang/noir#7358)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Aes decryption oracle
([#11907](AztecProtocol/aztec-packages#11907))
([c4ce913](AztecProtocol/aztec-packages@c4ce913))
* **avm:** Constrained ec_add
([#11525](AztecProtocol/aztec-packages#11525))
([f8fe602](AztecProtocol/aztec-packages@f8fe602))
* **avm:** Interaction testing
([#11947](AztecProtocol/aztec-packages#11947))
([fc647eb](AztecProtocol/aztec-packages@fc647eb))
* **avm:** Relation microbenchmarks
([#11974](AztecProtocol/aztec-packages#11974))
([95b581d](AztecProtocol/aztec-packages@95b581d))
* **cli:** Add `--target-dir` option
(noir-lang/noir#7350)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Indexed protocol contracts tree
([#11897](AztecProtocol/aztec-packages#11897))
([96e84d4](AztecProtocol/aztec-packages@96e84d4))
* **performance:** Check sub operations against induction variables
(noir-lang/noir#7356)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* **performance:** Use unchecked ops based upon known induction
variables (noir-lang/noir#7344)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Small blob fixes/improvements
([#11686](AztecProtocol/aztec-packages#11686))
([4eab9fc](AztecProtocol/aztec-packages@4eab9fc))
* Update fee model
([#11953](AztecProtocol/aztec-packages#11953))
([2798d58](AztecProtocol/aztec-packages@2798d58))
* Use brillig optimized sha256
([#11696](AztecProtocol/aztec-packages#11696))
([438c905](AztecProtocol/aztec-packages@438c905))


### Bug Fixes

* Ci fixes
([#11973](AztecProtocol/aztec-packages#11973))
([6386f4e](AztecProtocol/aztec-packages@6386f4e))
* **cli:** Only lock the packages selected in the workspace
(noir-lang/noir#7345)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Deterministic generation of vkeys in ts
([#11951](AztecProtocol/aztec-packages#11951))
([7901cac](AztecProtocol/aztec-packages@7901cac))
* Incorrect secondary file in LSP errors
(noir-lang/noir#7347)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Lock git dependencies folder when resolving workspace
(noir-lang/noir#7327)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Perform SSA constraints check on final SSA
(noir-lang/noir#7334)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Remove deprecated artifacts
([#11979](AztecProtocol/aztec-packages#11979))
([4f0dce7](AztecProtocol/aztec-packages@4f0dce7))
* Remove serial queue in broker facade
([#11956](AztecProtocol/aztec-packages#11956))
([3485b52](AztecProtocol/aztec-packages@3485b52))
* **ssa:** Make the lookback feature opt-in
(noir-lang/noir#7190)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))


### Miscellaneous

* **avm:** Tracegen interactions assertion
([#11972](AztecProtocol/aztec-packages#11972))
([b865ccc](AztecProtocol/aztec-packages@b865ccc))
* Avoid doing all brillig integer arithmetic on u128s
(noir-lang/noir#7357)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Basic test for MSM in Noir to catch performance improvements and
regressions (noir-lang/noir#7341)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Bump devnet boot node resources
([#11958](AztecProtocol/aztec-packages#11958))
([bbcdefc](AztecProtocol/aztec-packages@bbcdefc))
* **ci:** Add Vecs and vecs to cspell
(noir-lang/noir#7342)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Deprecate keccak256 (noir-lang/noir#7361)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Fix warnings (noir-lang/noir#7330)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Mark sha256 as deprecated from the stdlib
(noir-lang/noir#7351)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Moving storage slot out of `NoteHeader`
([#11904](AztecProtocol/aztec-packages#11904))
([8c4bb1c](AztecProtocol/aztec-packages@8c4bb1c))
* Normalize path displayed by `nargo new`
(noir-lang/noir#7328)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Redo typo PR by osrm (noir-lang/noir#7238)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Release Noir(1.0.0-beta.2)
(noir-lang/noir#6914)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Remove foreign calls array from Brillig VM constructor
(noir-lang/noir#7337)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Remove misleading output from `nargo check`
(noir-lang/noir#7329)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Remove some unused types and functions in the AST
(noir-lang/noir#7339)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Remove unnecessary constants
(noir-lang/noir#7326)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Revive browser test before killing it
([#11964](AztecProtocol/aztec-packages#11964))
([cb47cc0](AztecProtocol/aztec-packages@cb47cc0))
* Split acirgen into multiple modules
(noir-lang/noir#7310)
([5efdd57](AztecProtocol/aztec-packages@5efdd57))
* Unify webpack dev server versions
([#11965](AztecProtocol/aztec-packages#11965))
([921d2cd](AztecProtocol/aztec-packages@921d2cd))
</details>

<details><summary>barretenberg: 0.76.4</summary>

##
[0.76.4](AztecProtocol/aztec-packages@barretenberg-v0.76.3...barretenberg-v0.76.4)
(2025-02-13)


### Features

* Aes decryption oracle
([#11907](AztecProtocol/aztec-packages#11907))
([c4ce913](AztecProtocol/aztec-packages@c4ce913))
* **avm:** Constrained ec_add
([#11525](AztecProtocol/aztec-packages#11525))
([f8fe602](AztecProtocol/aztec-packages@f8fe602))
* **avm:** Interaction testing
([#11947](AztecProtocol/aztec-packages#11947))
([fc647eb](AztecProtocol/aztec-packages@fc647eb))
* **avm:** Relation microbenchmarks
([#11974](AztecProtocol/aztec-packages#11974))
([95b581d](AztecProtocol/aztec-packages@95b581d))


### Miscellaneous

* **avm:** Tracegen interactions assertion
([#11972](AztecProtocol/aztec-packages#11972))
([b865ccc](AztecProtocol/aztec-packages@b865ccc))
* Unify webpack dev server versions
([#11965](AztecProtocol/aztec-packages#11965))
([921d2cd](AztecProtocol/aztec-packages@921d2cd))
</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 Feb 14, 2025
* master: (42 commits)
  fix: give "correct" error when trying to use AsTraitPath (#7360)
  chore: avoid u128s in brillig memory (#7363)
  chore: update docs about integer overflows (#7370)
  fix!: Only decrement the counter of an array if its address has not changed (#7297)
  fix: let LSP read `noirfmt.toml` for formatting files (#7355)
  chore: deprecate keccak256 (#7361)
  feat: `FunctionDefinition::as_typed_expr` (#7358)
  feat(performance): Check sub operations against induction variables (#7356)
  chore: avoid doing all brillig integer arithmetic on u128s (#7357)
  feat(cli): Add `--target-dir` option (#7350)
  fix(ssa): Make the lookback feature opt-in (#7190)
  feat(performance): Use unchecked ops based upon known induction variables (#7344)
  chore: mark sha256 as deprecated from the stdlib (#7351)
  fix: incorrect secondary file in LSP errors (#7347)
  chore: Basic test for MSM in Noir to catch performance improvements and regressions (#7341)
  fix(cli): Only lock the packages selected in the workspace (#7345)
  chore: remove some unused types and functions in the AST (#7339)
  chore: remove foreign calls array from Brillig VM constructor (#7337)
  chore(ci): Add Vecs and vecs to cspell (#7342)
  chore: redo typo PR by osrm (#7238)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Optimization: Check whether binary ops can be unchecked based upon the induction variable
3 participants