-
Notifications
You must be signed in to change notification settings - Fork 248
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
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit #7242
Conversation
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.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20
.
Benchmark suite | Current: f6bf769 | Previous: 15bbaa8 | Ratio |
---|---|---|---|
noir-lang_schnorr_ |
1 s |
0 s |
+∞ |
noir-lang_noir_check_shuffle_ |
1 s |
0 s |
+∞ |
noir-lang_mimc_ |
1 s |
0 s |
+∞ |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems much simpler than going off of brillig instructions
…ir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
…ir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
…ir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
…_make_arrays` (noir-lang/noir#7264) chore: early check type equality in try_unify (noir-lang/noir#7263) feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261) feat(experimental): Parse match expressions (noir-lang/noir#7243) feat(experimental): Implement zeroed for enums (noir-lang/noir#7252) fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) fix: Add missing `is_empty` check for enums (noir-lang/noir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
noir-lang/noir#7264) chore: early check type equality in try_unify (noir-lang/noir#7263) feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261) feat(experimental): Parse match expressions (noir-lang/noir#7243) feat(experimental): Implement zeroed for enums (noir-lang/noir#7252) fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) fix: Add missing `is_empty` check for enums (noir-lang/noir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.75.0</summary> ## [0.75.0](aztec-package-v0.74.0...aztec-package-v0.75.0) (2025-02-06) ### Miscellaneous * Playground name change ([#11720](#11720)) ([c5cbf65](c5cbf65)) </details> <details><summary>barretenberg.js: 0.75.0</summary> ## [0.75.0](barretenberg.js-v0.74.0...barretenberg.js-v0.75.0) (2025-02-06) ### Miscellaneous * Better bundling for bb.js, remove aztec.js bundling ([#11761](#11761)) ([8cc3f0a](8cc3f0a)) * Playground name change ([#11720](#11720)) ([c5cbf65](c5cbf65)) </details> <details><summary>aztec-packages: 0.75.0</summary> ## [0.75.0](aztec-packages-v0.74.0...aztec-packages-v0.75.0) (2025-02-06) ### ⚠ BREAKING CHANGES * introduce `WithHash<T>` + use it in `PublicImmutable` ([#8022](#8022)) * leonidas library ([#11596](#11596)) ### Features * Allow resolved types in constructors (noir-lang/noir#7223) ([b60a39d](b60a39d)) * Allow specifying multiple patterns in nargo test (noir-lang/noir#7186) ([b60a39d](b60a39d)) * Contracts deployed in txe should emit deployment nullifier automatically ([#11708](#11708)) ([20f5653](20f5653)) * **docs:** Applying structure feedback + adding nodes docs ([#10976](#10976)) ([2fd08ba](2fd08ba)) * **docs:** Inspiration / ideas page ([#11755](#11755)) ([0b012f1](0b012f1)) * **experimental:** Implement enum tag constants (noir-lang/noir#7183) ([b60a39d](b60a39d)) * **experimental:** Implement zeroed for enums (noir-lang/noir#7252) ([b60a39d](b60a39d)) * **experimental:** Parse match expressions (noir-lang/noir#7243) ([b60a39d](b60a39d)) * **experimental:** Support enums in comptime code (noir-lang/noir#7194) ([b60a39d](b60a39d)) * Gen public base prover.toml ([#11757](#11757)) ([1fa89da](1fa89da)) * Introduce `WithHash<T>` + use it in `PublicImmutable` ([#8022](#8022)) ([6c15604](6c15604)) * K-shifts ([#11663](#11663)) ([511abe5](511abe5)) * Leonidas library ([#11596](#11596)) ([e8cfed7](e8cfed7)) * **LSP:** Suggest enum variants without parameters (noir-lang/noir#7261) ([b60a39d](b60a39d)) * **optimization:** Add purity analysis to SSA (noir-lang/noir#7197) ([b60a39d](b60a39d)) * Report wrong proof length in the verifier contract ([#11728](#11728)) ([1a83cd2](1a83cd2)) * Simplify subtraction from self to return zero (noir-lang/noir#7189) ([b60a39d](b60a39d)) * Sync from aztec-packages (noir-lang/noir#7241) ([b60a39d](b60a39d)) ### Bug Fixes * Add missing `is_empty` check for enums (noir-lang/noir#7257) ([b60a39d](b60a39d)) * Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) ([b60a39d](b60a39d)) * **brillig:** Globals entry point reachability analysis (noir-lang/noir#7188) ([b60a39d](b60a39d)) * Contracts with no private / public functions should not fail to generate a contract artifact ([#11744](#11744)) ([672171c](672171c)) * Correct reversed callstacks (noir-lang/noir#7212) ([b60a39d](b60a39d)) * Deflake prover node epoch proof quote test ([#11773](#11773)) ([04e1061](04e1061)) * **docs:** Fix docs previews ([#11736](#11736)) ([255b3d8](255b3d8)) * Handle sequencer building block mid-synch ([#11735](#11735)) ([435a0af](435a0af)) * Prevent panic within `remove_possibly_mutated_cached_make_arrays` (noir-lang/noir#7264) ([b60a39d](b60a39d)) * **ssa:** Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) ([b60a39d](b60a39d)) * **ssa:** Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) ([b60a39d](b60a39d)) * **unrolling:** Fetch original bytecode size from the original function (noir-lang/noir#7253) ([b60a39d](b60a39d)) ### Miscellaneous * **avm:** Add names to lookup settings ([#11768](#11768)) ([fafe3ba](fafe3ba)) * **avm:** Full row cleanup ([#11767](#11767)) ([6145cd0](6145cd0)) * **avm:** Use lookup by clk for sha params ([#11762](#11762)) ([b003567](b003567)) * Better bundling for bb.js, remove aztec.js bundling ([#11761](#11761)) ([8cc3f0a](8cc3f0a)) * Build docs in the merge queue (noir-lang/noir#7218) ([b60a39d](b60a39d)) * Bump gates diff (noir-lang/noir#7245) ([b60a39d](b60a39d)) * Change log level for block proposal ([#11734](#11734)) ([29ee9aa](29ee9aa)) * **ci:** Add test for global vars entry points regression (noir-lang/noir#7209) ([b60a39d](b60a39d)) * Clarify to_radix docs examples (noir-lang/noir#7230) ([b60a39d](b60a39d)) * **docs:** Moving references to noir-starter to awesome-noir (noir-lang/noir#7203) ([b60a39d](b60a39d)) * Early check type equality in try_unify (noir-lang/noir#7263) ([b60a39d](b60a39d)) * Exclude dependency fetching time from benchmarks (noir-lang/noir#7210) ([b60a39d](b60a39d)) * Fix struct example (noir-lang/noir#7198) ([b60a39d](b60a39d)) * More scalability for our metrics ([#11732](#11732)) ([52bbf14](52bbf14)) * Playground name change ([#11720](#11720)) ([c5cbf65](c5cbf65)) * Re-enable p2p test ([#11706](#11706)) ([652c251](652c251)), closes [#10737](#10737) * Remove stale zk constants and methods ([#11715](#11715)) ([7a2870f](7a2870f)) * Replace relative paths to noir-protocol-circuits ([aabab34](aabab34)) * Replace relative paths to noir-protocol-circuits ([0720d18](0720d18)) * Request txs in prover-node after each block finishes ([#11749](#11749)) ([61e4eee](61e4eee)) * Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) ([b60a39d](b60a39d)) * Sandbox lower sequencer log level ([#11742](#11742)) ([7b30758](7b30758)), closes [#11677](#11677) * **spartan:** Making the spartan script add the coinbase address ([#11235](#11235)) ([b97ff0d](b97ff0d)) * **ssa:** Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) ([b60a39d](b60a39d)) * Start tracking time to run critical library tests (noir-lang/noir#7221) ([b60a39d](b60a39d)) * Update docs to use devcontainer feature (noir-lang/noir#7206) ([b60a39d](b60a39d)) * Use batch p2p reqresp for requesting txs in prover node ([#11741](#11741)) ([df9e4ec](df9e4ec)) </details> <details><summary>barretenberg: 0.75.0</summary> ## [0.75.0](barretenberg-v0.74.0...barretenberg-v0.75.0) (2025-02-06) ### Features * K-shifts ([#11663](#11663)) ([511abe5](511abe5)) * Report wrong proof length in the verifier contract ([#11728](#11728)) ([1a83cd2](1a83cd2)) ### Miscellaneous * **avm:** Add names to lookup settings ([#11768](#11768)) ([fafe3ba](fafe3ba)) * **avm:** Full row cleanup ([#11767](#11767)) ([6145cd0](6145cd0)) * **avm:** Use lookup by clk for sha params ([#11762](#11762)) ([b003567](b003567)) * Better bundling for bb.js, remove aztec.js bundling ([#11761](#11761)) ([8cc3f0a](8cc3f0a)) * Remove stale zk constants and methods ([#11715](#11715)) ([7a2870f](7a2870f)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.75.0</summary> ## [0.75.0](AztecProtocol/aztec-packages@aztec-package-v0.74.0...aztec-package-v0.75.0) (2025-02-06) ### Miscellaneous * Playground name change ([#11720](AztecProtocol/aztec-packages#11720)) ([c5cbf65](AztecProtocol/aztec-packages@c5cbf65)) </details> <details><summary>barretenberg.js: 0.75.0</summary> ## [0.75.0](AztecProtocol/aztec-packages@barretenberg.js-v0.74.0...barretenberg.js-v0.75.0) (2025-02-06) ### Miscellaneous * Better bundling for bb.js, remove aztec.js bundling ([#11761](AztecProtocol/aztec-packages#11761)) ([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a)) * Playground name change ([#11720](AztecProtocol/aztec-packages#11720)) ([c5cbf65](AztecProtocol/aztec-packages@c5cbf65)) </details> <details><summary>aztec-packages: 0.75.0</summary> ## [0.75.0](AztecProtocol/aztec-packages@aztec-packages-v0.74.0...aztec-packages-v0.75.0) (2025-02-06) ### ⚠ BREAKING CHANGES * introduce `WithHash<T>` + use it in `PublicImmutable` ([#8022](AztecProtocol/aztec-packages#8022)) * leonidas library ([#11596](AztecProtocol/aztec-packages#11596)) ### Features * Allow resolved types in constructors (noir-lang/noir#7223) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Allow specifying multiple patterns in nargo test (noir-lang/noir#7186) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Contracts deployed in txe should emit deployment nullifier automatically ([#11708](AztecProtocol/aztec-packages#11708)) ([20f5653](AztecProtocol/aztec-packages@20f5653)) * **docs:** Applying structure feedback + adding nodes docs ([#10976](AztecProtocol/aztec-packages#10976)) ([2fd08ba](AztecProtocol/aztec-packages@2fd08ba)) * **docs:** Inspiration / ideas page ([#11755](AztecProtocol/aztec-packages#11755)) ([0b012f1](AztecProtocol/aztec-packages@0b012f1)) * **experimental:** Implement enum tag constants (noir-lang/noir#7183) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **experimental:** Implement zeroed for enums (noir-lang/noir#7252) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **experimental:** Parse match expressions (noir-lang/noir#7243) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **experimental:** Support enums in comptime code (noir-lang/noir#7194) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Gen public base prover.toml ([#11757](AztecProtocol/aztec-packages#11757)) ([1fa89da](AztecProtocol/aztec-packages@1fa89da)) * Introduce `WithHash<T>` + use it in `PublicImmutable` ([#8022](AztecProtocol/aztec-packages#8022)) ([6c15604](AztecProtocol/aztec-packages@6c15604)) * K-shifts ([#11663](AztecProtocol/aztec-packages#11663)) ([511abe5](AztecProtocol/aztec-packages@511abe5)) * Leonidas library ([#11596](AztecProtocol/aztec-packages#11596)) ([e8cfed7](AztecProtocol/aztec-packages@e8cfed7)) * **LSP:** Suggest enum variants without parameters (noir-lang/noir#7261) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **optimization:** Add purity analysis to SSA (noir-lang/noir#7197) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Report wrong proof length in the verifier contract ([#11728](AztecProtocol/aztec-packages#11728)) ([1a83cd2](AztecProtocol/aztec-packages@1a83cd2)) * Simplify subtraction from self to return zero (noir-lang/noir#7189) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Sync from aztec-packages (noir-lang/noir#7241) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) ### Bug Fixes * Add missing `is_empty` check for enums (noir-lang/noir#7257) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **brillig:** Globals entry point reachability analysis (noir-lang/noir#7188) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Contracts with no private / public functions should not fail to generate a contract artifact ([#11744](AztecProtocol/aztec-packages#11744)) ([672171c](AztecProtocol/aztec-packages@672171c)) * Correct reversed callstacks (noir-lang/noir#7212) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Deflake prover node epoch proof quote test ([#11773](AztecProtocol/aztec-packages#11773)) ([04e1061](AztecProtocol/aztec-packages@04e1061)) * **docs:** Fix docs previews ([#11736](AztecProtocol/aztec-packages#11736)) ([255b3d8](AztecProtocol/aztec-packages@255b3d8)) * Handle sequencer building block mid-synch ([#11735](AztecProtocol/aztec-packages#11735)) ([435a0af](AztecProtocol/aztec-packages@435a0af)) * Prevent panic within `remove_possibly_mutated_cached_make_arrays` (noir-lang/noir#7264) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **ssa:** Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **ssa:** Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **unrolling:** Fetch original bytecode size from the original function (noir-lang/noir#7253) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) ### Miscellaneous * **avm:** Add names to lookup settings ([#11768](AztecProtocol/aztec-packages#11768)) ([fafe3ba](AztecProtocol/aztec-packages@fafe3ba)) * **avm:** Full row cleanup ([#11767](AztecProtocol/aztec-packages#11767)) ([6145cd0](AztecProtocol/aztec-packages@6145cd0)) * **avm:** Use lookup by clk for sha params ([#11762](AztecProtocol/aztec-packages#11762)) ([b003567](AztecProtocol/aztec-packages@b003567)) * Better bundling for bb.js, remove aztec.js bundling ([#11761](AztecProtocol/aztec-packages#11761)) ([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a)) * Build docs in the merge queue (noir-lang/noir#7218) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Bump gates diff (noir-lang/noir#7245) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Change log level for block proposal ([#11734](AztecProtocol/aztec-packages#11734)) ([29ee9aa](AztecProtocol/aztec-packages@29ee9aa)) * **ci:** Add test for global vars entry points regression (noir-lang/noir#7209) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Clarify to_radix docs examples (noir-lang/noir#7230) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * **docs:** Moving references to noir-starter to awesome-noir (noir-lang/noir#7203) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Early check type equality in try_unify (noir-lang/noir#7263) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Exclude dependency fetching time from benchmarks (noir-lang/noir#7210) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Fix struct example (noir-lang/noir#7198) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * More scalability for our metrics ([#11732](AztecProtocol/aztec-packages#11732)) ([52bbf14](AztecProtocol/aztec-packages@52bbf14)) * Playground name change ([#11720](AztecProtocol/aztec-packages#11720)) ([c5cbf65](AztecProtocol/aztec-packages@c5cbf65)) * Re-enable p2p test ([#11706](AztecProtocol/aztec-packages#11706)) ([652c251](AztecProtocol/aztec-packages@652c251)), closes [#10737](AztecProtocol/aztec-packages#10737) * Remove stale zk constants and methods ([#11715](AztecProtocol/aztec-packages#11715)) ([7a2870f](AztecProtocol/aztec-packages@7a2870f)) * Replace relative paths to noir-protocol-circuits ([aabab34](AztecProtocol/aztec-packages@aabab34)) * Replace relative paths to noir-protocol-circuits ([0720d18](AztecProtocol/aztec-packages@0720d18)) * Request txs in prover-node after each block finishes ([#11749](AztecProtocol/aztec-packages#11749)) ([61e4eee](AztecProtocol/aztec-packages@61e4eee)) * Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Sandbox lower sequencer log level ([#11742](AztecProtocol/aztec-packages#11742)) ([7b30758](AztecProtocol/aztec-packages@7b30758)), closes [#11677](AztecProtocol/aztec-packages#11677) * **spartan:** Making the spartan script add the coinbase address ([#11235](AztecProtocol/aztec-packages#11235)) ([b97ff0d](AztecProtocol/aztec-packages@b97ff0d)) * **ssa:** Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Start tracking time to run critical library tests (noir-lang/noir#7221) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Update docs to use devcontainer feature (noir-lang/noir#7206) ([b60a39d](AztecProtocol/aztec-packages@b60a39d)) * Use batch p2p reqresp for requesting txs in prover node ([#11741](AztecProtocol/aztec-packages#11741)) ([df9e4ec](AztecProtocol/aztec-packages@df9e4ec)) </details> <details><summary>barretenberg: 0.75.0</summary> ## [0.75.0](AztecProtocol/aztec-packages@barretenberg-v0.74.0...barretenberg-v0.75.0) (2025-02-06) ### Features * K-shifts ([#11663](AztecProtocol/aztec-packages#11663)) ([511abe5](AztecProtocol/aztec-packages@511abe5)) * Report wrong proof length in the verifier contract ([#11728](AztecProtocol/aztec-packages#11728)) ([1a83cd2](AztecProtocol/aztec-packages@1a83cd2)) ### Miscellaneous * **avm:** Add names to lookup settings ([#11768](AztecProtocol/aztec-packages#11768)) ([fafe3ba](AztecProtocol/aztec-packages@fafe3ba)) * **avm:** Full row cleanup ([#11767](AztecProtocol/aztec-packages#11767)) ([6145cd0](AztecProtocol/aztec-packages@6145cd0)) * **avm:** Use lookup by clk for sha params ([#11762](AztecProtocol/aztec-packages#11762)) ([b003567](AztecProtocol/aztec-packages@b003567)) * Better bundling for bb.js, remove aztec.js bundling ([#11761](AztecProtocol/aztec-packages#11761)) ([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a)) * Remove stale zk constants and methods ([#11715](AztecProtocol/aztec-packages#11715)) ([7a2870f](AztecProtocol/aztec-packages@7a2870f)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Description
Problem*
Pulls a change out of #7236 that was causing panics with less aggressive inliner settings. Comment for reference: #7236 (comment).
I labelled this PR a fix rather than a chore as it does prevent possible panics.
Summary*
After performing an unroll in the Brillig runtime we have a setting that lets us set an upper bound on the bytecode size increase percentage. However, we have certain intrinsics (e.g. DerivePedersenGenerators) that we expect to entirely compile-time and fully resolved by Brillig gen.
Another possible fix would be to set any method which calls
derive_generators
(such aspedersen_hash_with_separator
) as#[inline_always]
. However, we still do not have a guarantee that theseparator
has been resolved to a constant. Let's say we knowderive_generators
is called bypedersen_hash_with_separator
. Even ifpedersen_hash_with_separator
is always inlined into its parent we cannot guarantee that the input for the separator comes from the parent's function parameter. This issue will exist with any other intrinsics we expect to be fully resolved by compile-time.By using the number of SSA instructions we can also avoid the extra compilation to Brillig as well as having to expose extra Brillig gen logic to the SSA passes. This gives us a better separation of concerns.
Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.