chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions#9739
chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions#9739
Conversation
There was a problem hiding this comment.
ACVM Benchmarks
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
purely_sequential_opcodes |
267776 ns/iter (± 2278) |
265846 ns/iter (± 1387) |
1.01 |
perfectly_parallel_opcodes |
236858 ns/iter (± 4012) |
229695 ns/iter (± 3077) |
1.03 |
perfectly_parallel_batch_inversion_opcodes |
2783153 ns/iter (± 1897) |
2800817 ns/iter (± 1904) |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Execution Time
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
0.015 s |
0.016 s |
0.94 |
private-kernel-reset |
0.153 s |
0.152 s |
1.01 |
private-kernel-tail |
0.01 s |
0.01 s |
1 |
rollup-base-private |
0.262 s |
0.262 s |
1 |
rollup-base-public |
0.165 s |
0.161 s |
1.02 |
rollup-block-root |
12.7 s |
12.5 s |
1.02 |
rollup-merge |
0.002 s |
0.002 s |
1 |
rollup-root |
0.004 s |
0.004 s |
1 |
semaphore-depth-10 |
0.02 s |
0.02 s |
1 |
sha512-100-bytes |
0.097 s |
0.099 s |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Compilation Time
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
1.874 s |
1.802 s |
1.04 |
private-kernel-reset |
8.032 s |
8.252 s |
0.97 |
private-kernel-tail |
1.442 s |
1.32 s |
1.09 |
rollup-base-private |
17.44 s |
17.16 s |
1.02 |
rollup-base-public |
15.7 s |
16.58 s |
0.95 |
rollup-block-root-empty |
18.02 s |
17.32 s |
1.04 |
rollup-block-root-single-tx |
199 s |
199 s |
1 |
rollup-block-root |
197 s |
198 s |
0.99 |
rollup-merge |
1.362 s |
1.344 s |
1.01 |
rollup-root |
1.538 s |
1.49 s |
1.03 |
semaphore-depth-10 |
0.764 s |
0.775 s |
0.99 |
sha512-100-bytes |
1.728 s |
1.615 s |
1.07 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Opcode count
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
14792 opcodes |
14792 opcodes |
1 |
private-kernel-reset |
68868 opcodes |
68868 opcodes |
1 |
private-kernel-tail |
11177 opcodes |
11177 opcodes |
1 |
rollup-base-private |
221339 opcodes |
221339 opcodes |
1 |
rollup-base-public |
159930 opcodes |
159930 opcodes |
1 |
rollup-block-root-empty |
68108 opcodes |
68108 opcodes |
1 |
rollup-block-root-single-tx |
964515 opcodes |
964515 opcodes |
1 |
rollup-block-root |
965801 opcodes |
965801 opcodes |
1 |
rollup-merge |
1409 opcodes |
1409 opcodes |
1 |
rollup-root |
2631 opcodes |
2631 opcodes |
1 |
semaphore-depth-10 |
5700 opcodes |
5700 opcodes |
1 |
sha512-100-bytes |
13173 opcodes |
13173 opcodes |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Opcode count'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.10.
| Benchmark suite | Current: 3149043 | Previous: 5fe0c50 | Ratio |
|---|---|---|---|
sha512-100-bytes |
17405 opcodes |
13173 opcodes |
1.32 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
Artifact Size
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
709.4 KB |
709.4 KB |
1 |
private-kernel-reset |
2025 KB |
2025 KB |
1 |
private-kernel-tail |
531.6 KB |
531.6 KB |
1 |
rollup-base-private |
4349 KB |
4349 KB |
1 |
rollup-base-public |
3353.3 KB |
3353.3 KB |
1 |
rollup-block-root-empty |
3813.4 KB |
3813.4 KB |
1 |
rollup-block-root-single-tx |
30682.2 KB |
30682.2 KB |
1 |
rollup-block-root |
30720.3 KB |
30720.3 KB |
1 |
rollup-merge |
188 KB |
188 KB |
1 |
rollup-root |
390.6 KB |
390.6 KB |
1 |
semaphore-depth-10 |
631.9 KB |
631.9 KB |
1 |
sha512-100-bytes |
525.5 KB |
525.5 KB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Execution Memory
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
258.14 MB |
258.14 MB |
1 |
private-kernel-reset |
291.31 MB |
291.31 MB |
1 |
private-kernel-tail |
242.89 MB |
242.89 MB |
1 |
rollup-base-private |
506.01 MB |
506.01 MB |
1 |
rollup-base-public |
438.39 MB |
438.39 MB |
1 |
rollup-block-root |
1500 MB |
1500 MB |
1 |
rollup-merge |
330.47 MB |
330.47 MB |
1 |
rollup-root |
332.99 MB |
332.99 MB |
1 |
semaphore_depth_10 |
72.45 MB |
72.45 MB |
1 |
sha512_100_bytes |
58.23 MB |
58.23 MB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Execution Memory'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 3149043 | Previous: 5fe0c50 | Ratio |
|---|---|---|---|
rollup-base-private |
1350 MB |
503.7 MB |
2.68 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
Compilation Memory
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
private-kernel-inner |
284.52 MB |
284.53 MB |
1.00 |
private-kernel-reset |
593.52 MB |
593.52 MB |
1 |
private-kernel-tail |
259.07 MB |
259.07 MB |
1 |
rollup-base-private |
1360 MB |
1360 MB |
1 |
rollup-base-public |
1420 MB |
1420 MB |
1 |
rollup-block-root-empty |
998.79 MB |
998.79 MB |
1 |
rollup-block-root-single-tx |
9680 MB |
9680 MB |
1 |
rollup-block-root |
9690 MB |
9690 MB |
1 |
rollup-merge |
332.71 MB |
332.71 MB |
1 |
rollup-root |
343.57 MB |
343.44 MB |
1.00 |
semaphore_depth_10 |
106.96 MB |
106.96 MB |
1 |
sha512_100_bytes |
254.17 MB |
254.16 MB |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Test Suite Duration
Details
| Benchmark suite | Current: ce66760 | Previous: 61f3fb3 | Ratio |
|---|---|---|---|
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr |
101 s |
98 s |
1.03 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts |
135 s |
128 s |
1.05 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob |
199 s |
266 s |
0.75 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib |
216 s |
211 s |
1.02 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_reset-kernel-lib |
32 s |
33 s |
0.97 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_rollup-lib |
598 s |
712 s |
0.84 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types |
96 s |
95 s |
1.01 |
test_report_noir-lang_noir-bignum_ |
130 s |
131 s |
0.99 |
test_report_noir-lang_noir_bigcurve_ |
376 s |
320 s |
1.18 |
test_report_noir-lang_sha256_ |
16 s |
16 s |
1 |
test_report_noir-lang_sha512_ |
13 s |
12 s |
1.08 |
test_report_zkpassport_noir-ecdsa_ |
2 s |
2 s |
1 |
test_report_zkpassport_noir_rsa_ |
1 s |
1 s |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
⚠️ 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: 4dc8acf | Previous: 14659f3 | Ratio |
|---|---|---|---|
test_report_zkpassport_noir_rsa_ |
2 s |
0 s |
+∞ |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 4dc8acf | Previous: 14659f3 | Ratio |
|---|---|---|---|
semaphore-depth-10 |
0.023 s |
0.019 s |
1.21 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
Most meaningful benefit seen here. |
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: print ACIR AssertZero as an equation (noir-lang/noir#9970) chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000) fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995) fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999) chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989) chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996) chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992) chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906) fix: Disable early mem2reg (noir-lang/noir#9987) chore(ci): free up space on github runner (noir-lang/noir#9994) chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965) chore(ssa_executor): add compilation example (noir-lang/noir#9937) chore(acir): More arrays refactors (noir-lang/noir#9962) chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510) chore: remove_if_else docs and refactors (noir-lang/noir#9929) chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955) fix: correct max_bit_size when left-shifting (noir-lang/noir#9770) chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958) chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956) chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953) chore: add regression test for #9852 (noir-lang/noir#9960) chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957) feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867) chore: minor constant_folding refactors (noir-lang/noir#9954) chore!: several ACIR serialisation changes (noir-lang/noir#8134) chore(ci): only send slack notifications during the week (noir-lang/noir#9946) chore: assumes no load-store in array_set (noir-lang/noir#9940) chore(acir): Arrays module doc comments (noir-lang/noir#9947) fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941) fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888) feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928) chore: bump external pinned commits (noir-lang/noir#9938) chore: redo typo PR by viktorking7 (noir-lang/noir#9939) chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737) chore(ssa): Validate array operands (noir-lang/noir#9932) chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849) chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910) fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905) chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895) chore: bump external pinned commits (noir-lang/noir#9902) chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892) chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898) chore: implement Display for brillig (noir-lang/noir#9893) chore(acir_gen): Call module (noir-lang/noir#9896) feat: allow initializing dynamic arrays (noir-lang/noir#9899) fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887) fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882) fix: error on returning slice from main (noir-lang/noir#9636) fix(acir_gen): Fix entry point indices (noir-lang/noir#9881) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874) chore: validate SSA call arguments (noir-lang/noir#9876) fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885) chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884) chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821) fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883) chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878) chore(acir_gen): Remove Brillig execution with constant arguments (noir-lang/noir#9879) fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871) chore: bump external pinned commits (noir-lang/noir#9875) feat: LSP lightweight mode (noir-lang/noir#9869) chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839) chore: greenlight remove enable side effects (noir-lang/noir#9833) fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858) chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837) fix: check for signed division overflow (noir-lang/noir#9857) chore: Add tests from post-order PR (noir-lang/noir#9846) chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859) chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813) feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843) chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759) chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810) chore: use enum for instruction deduplication safety (noir-lang/noir#9824) feat(LSP): signature help for macro attributes (noir-lang/noir#9536) feat(LSP): folding ranges (noir-lang/noir#9854) chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855) chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789) chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850) chore: bump external pinned commits (noir-lang/noir#9848) chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation (noir-lang/noir#9844) chore: tests for map in stdlib (noir-lang/noir#9676) chore(ssa): Brillig entry point specialization post check (noir-lang/noir#9845) chore: delete some unused snapshots (noir-lang/noir#9841) feat(ssa): SSA CLI (noir-lang/noir#9826) chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836) chore(die): Remove RC tracker (noir-lang/noir#9809) feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835) chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829) chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834) chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825) chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551) chore: adding tests to vec (noir-lang/noir#9715) feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803) chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828) chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827) chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802) chore: add a regression test for #4663 (noir-lang/noir#9819) chore: bump linked bb version (noir-lang/noir#9237) chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811) chore: add a regression test for #6285 (noir-lang/noir#9817) feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786) chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812) chore(ci): fix release workflow permissions (noir-lang/noir#9822) fix: do not simplify constraints with induction variable (noir-lang/noir#9806) fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805) fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793) fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782) fix: proper error when dividing by minus 1 (noir-lang/noir#9762) chore: tests for field in stdlib (noir-lang/noir#9677) chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753) feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791) Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801) feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790) fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687) chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487) chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788) chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781) fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776) chore(die): Module doc comments (noir-lang/noir#9768) chore: encapsulate constant folding logic better (noir-lang/noir#9773) chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777) feat: remove useless jump when branching in brillig (noir-lang/noir#9778) chore: add `LoopContext::new` (noir-lang/noir#9720) feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772) chore(ci): add permissions to CI workflows (noir-lang/noir#9763) fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736) chore: add test for when pending snapshots are committed (noir-lang/noir#9757) chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755) chore: migrate away from fxhash to address advisory (noir-lang/noir#9752) fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756) fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702) chore: bump dependencies (noir-lang/noir#9751) fix: left bit shift u128 would overflow Field (noir-lang/noir#9723) Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)" chore: migrate away from fxhash to address advisory (noir-lang/noir#9750) chore: bump external pinned commits (noir-lang/noir#9748) chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739) chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738) feat: re-enable early mem2reg pass (noir-lang/noir#9744) fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712) chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718) chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740) chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651) fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724) chore: do not inline acir calls in brillig (noir-lang/noir#9412) chore: remove empty main from frontend tests (noir-lang/noir#9726) chore: add tests for slice (noir-lang/noir#9650) chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535) chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565) chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721) chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722) fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709) END_COMMIT_OVERRIDE Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: print ACIR AssertZero as an equation (noir-lang/noir#9970) chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000) fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995) fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999) chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989) chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996) chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992) chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906) fix: Disable early mem2reg (noir-lang/noir#9987) chore(ci): free up space on github runner (noir-lang/noir#9994) chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965) chore(ssa_executor): add compilation example (noir-lang/noir#9937) chore(acir): More arrays refactors (noir-lang/noir#9962) chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510) chore: remove_if_else docs and refactors (noir-lang/noir#9929) chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955) fix: correct max_bit_size when left-shifting (noir-lang/noir#9770) chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958) chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956) chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953) chore: add regression test for #9852 (noir-lang/noir#9960) chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957) feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867) chore: minor constant_folding refactors (noir-lang/noir#9954) chore!: several ACIR serialisation changes (noir-lang/noir#8134) chore(ci): only send slack notifications during the week (noir-lang/noir#9946) chore: assumes no load-store in array_set (noir-lang/noir#9940) chore(acir): Arrays module doc comments (noir-lang/noir#9947) fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941) fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888) feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928) chore: bump external pinned commits (noir-lang/noir#9938) chore: redo typo PR by viktorking7 (noir-lang/noir#9939) chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737) chore(ssa): Validate array operands (noir-lang/noir#9932) chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849) chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910) fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905) chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895) chore: bump external pinned commits (noir-lang/noir#9902) chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892) chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898) chore: implement Display for brillig (noir-lang/noir#9893) chore(acir_gen): Call module (noir-lang/noir#9896) feat: allow initializing dynamic arrays (noir-lang/noir#9899) fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887) fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882) fix: error on returning slice from main (noir-lang/noir#9636) fix(acir_gen): Fix entry point indices (noir-lang/noir#9881) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874) chore: validate SSA call arguments (noir-lang/noir#9876) fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885) chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884) chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821) fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883) chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878) chore(acir_gen): Remove Brillig execution with constant arguments (noir-lang/noir#9879) fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871) chore: bump external pinned commits (noir-lang/noir#9875) feat: LSP lightweight mode (noir-lang/noir#9869) chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839) chore: greenlight remove enable side effects (noir-lang/noir#9833) fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858) chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837) fix: check for signed division overflow (noir-lang/noir#9857) chore: Add tests from post-order PR (noir-lang/noir#9846) chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859) chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813) feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843) chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759) chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810) chore: use enum for instruction deduplication safety (noir-lang/noir#9824) feat(LSP): signature help for macro attributes (noir-lang/noir#9536) feat(LSP): folding ranges (noir-lang/noir#9854) chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855) chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789) chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850) chore: bump external pinned commits (noir-lang/noir#9848) chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation (noir-lang/noir#9844) chore: tests for map in stdlib (noir-lang/noir#9676) chore(ssa): Brillig entry point specialization post check (noir-lang/noir#9845) chore: delete some unused snapshots (noir-lang/noir#9841) feat(ssa): SSA CLI (noir-lang/noir#9826) chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836) chore(die): Remove RC tracker (noir-lang/noir#9809) feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835) chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829) chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834) chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825) chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551) chore: adding tests to vec (noir-lang/noir#9715) feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803) chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828) chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827) chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802) chore: add a regression test for #4663 (noir-lang/noir#9819) chore: bump linked bb version (noir-lang/noir#9237) chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811) chore: add a regression test for #6285 (noir-lang/noir#9817) feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786) chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812) chore(ci): fix release workflow permissions (noir-lang/noir#9822) fix: do not simplify constraints with induction variable (noir-lang/noir#9806) fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805) fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793) fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782) fix: proper error when dividing by minus 1 (noir-lang/noir#9762) chore: tests for field in stdlib (noir-lang/noir#9677) chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753) feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791) Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801) feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790) fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687) chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487) chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788) chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781) fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776) chore(die): Module doc comments (noir-lang/noir#9768) chore: encapsulate constant folding logic better (noir-lang/noir#9773) chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777) feat: remove useless jump when branching in brillig (noir-lang/noir#9778) chore: add `LoopContext::new` (noir-lang/noir#9720) feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772) chore(ci): add permissions to CI workflows (noir-lang/noir#9763) fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736) chore: add test for when pending snapshots are committed (noir-lang/noir#9757) chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755) chore: migrate away from fxhash to address advisory (noir-lang/noir#9752) fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756) fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702) chore: bump dependencies (noir-lang/noir#9751) fix: left bit shift u128 would overflow Field (noir-lang/noir#9723) Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)" chore: migrate away from fxhash to address advisory (noir-lang/noir#9750) chore: bump external pinned commits (noir-lang/noir#9748) chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739) chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738) feat: re-enable early mem2reg pass (noir-lang/noir#9744) fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712) chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718) chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740) chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651) fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724) chore: do not inline acir calls in brillig (noir-lang/noir#9412) chore: remove empty main from frontend tests (noir-lang/noir#9726) chore: add tests for slice (noir-lang/noir#9650) chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535) chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565) chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721) chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722) fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709) END_COMMIT_OVERRIDE
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: print ACIR AssertZero as an equation (noir-lang/noir#9970) chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000) fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995) fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999) chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989) chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996) chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992) chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906) fix: Disable early mem2reg (noir-lang/noir#9987) chore(ci): free up space on github runner (noir-lang/noir#9994) chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965) chore(ssa_executor): add compilation example (noir-lang/noir#9937) chore(acir): More arrays refactors (noir-lang/noir#9962) chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510) chore: remove_if_else docs and refactors (noir-lang/noir#9929) chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955) fix: correct max_bit_size when left-shifting (noir-lang/noir#9770) chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958) chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956) chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953) chore: add regression test for #9852 (noir-lang/noir#9960) chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957) feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867) chore: minor constant_folding refactors (noir-lang/noir#9954) chore!: several ACIR serialisation changes (noir-lang/noir#8134) chore(ci): only send slack notifications during the week (noir-lang/noir#9946) chore: assumes no load-store in array_set (noir-lang/noir#9940) chore(acir): Arrays module doc comments (noir-lang/noir#9947) fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941) fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888) feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928) chore: bump external pinned commits (noir-lang/noir#9938) chore: redo typo PR by viktorking7 (noir-lang/noir#9939) chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737) chore(ssa): Validate array operands (noir-lang/noir#9932) chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849) chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910) fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905) chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895) chore: bump external pinned commits (noir-lang/noir#9902) chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892) chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898) chore: implement Display for brillig (noir-lang/noir#9893) chore(acir_gen): Call module (noir-lang/noir#9896) feat: allow initializing dynamic arrays (noir-lang/noir#9899) fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887) fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882) fix: error on returning slice from main (noir-lang/noir#9636) fix(acir_gen): Fix entry point indices (noir-lang/noir#9881) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874) chore: validate SSA call arguments (noir-lang/noir#9876) fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885) chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884) chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821) fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883) chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878) chore(acir_gen): Remove Brillig execution with constant arguments (noir-lang/noir#9879) fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871) chore: bump external pinned commits (noir-lang/noir#9875) feat: LSP lightweight mode (noir-lang/noir#9869) chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839) chore: greenlight remove enable side effects (noir-lang/noir#9833) fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858) chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837) fix: check for signed division overflow (noir-lang/noir#9857) chore: Add tests from post-order PR (noir-lang/noir#9846) chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859) chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813) feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843) chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759) chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810) chore: use enum for instruction deduplication safety (noir-lang/noir#9824) feat(LSP): signature help for macro attributes (noir-lang/noir#9536) feat(LSP): folding ranges (noir-lang/noir#9854) chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855) chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789) chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850) chore: bump external pinned commits (noir-lang/noir#9848) chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation (noir-lang/noir#9844) chore: tests for map in stdlib (noir-lang/noir#9676) chore(ssa): Brillig entry point specialization post check (noir-lang/noir#9845) chore: delete some unused snapshots (noir-lang/noir#9841) feat(ssa): SSA CLI (noir-lang/noir#9826) chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836) chore(die): Remove RC tracker (noir-lang/noir#9809) feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835) chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829) chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834) chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825) chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551) chore: adding tests to vec (noir-lang/noir#9715) feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803) chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828) chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827) chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802) chore: add a regression test for #4663 (noir-lang/noir#9819) chore: bump linked bb version (noir-lang/noir#9237) chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811) chore: add a regression test for #6285 (noir-lang/noir#9817) feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786) chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812) chore(ci): fix release workflow permissions (noir-lang/noir#9822) fix: do not simplify constraints with induction variable (noir-lang/noir#9806) fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805) fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793) fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782) fix: proper error when dividing by minus 1 (noir-lang/noir#9762) chore: tests for field in stdlib (noir-lang/noir#9677) chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753) feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791) Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801) feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790) fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687) chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487) chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788) chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781) fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776) chore(die): Module doc comments (noir-lang/noir#9768) chore: encapsulate constant folding logic better (noir-lang/noir#9773) chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777) feat: remove useless jump when branching in brillig (noir-lang/noir#9778) chore: add `LoopContext::new` (noir-lang/noir#9720) feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772) chore(ci): add permissions to CI workflows (noir-lang/noir#9763) fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736) chore: add test for when pending snapshots are committed (noir-lang/noir#9757) chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755) chore: migrate away from fxhash to address advisory (noir-lang/noir#9752) fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756) fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702) chore: bump dependencies (noir-lang/noir#9751) fix: left bit shift u128 would overflow Field (noir-lang/noir#9723) Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)" chore: migrate away from fxhash to address advisory (noir-lang/noir#9750) chore: bump external pinned commits (noir-lang/noir#9748) chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739) chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738) feat: re-enable early mem2reg pass (noir-lang/noir#9744) fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712) chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718) chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740) chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651) fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724) chore: do not inline acir calls in brillig (noir-lang/noir#9412) chore: remove empty main from frontend tests (noir-lang/noir#9726) chore: add tests for slice (noir-lang/noir#9650) chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535) chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565) chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721) chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722) fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709) END_COMMIT_OVERRIDE
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: print ACIR AssertZero as an equation (noir-lang/noir#9970) chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000) fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995) fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999) chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989) chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996) chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992) chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906) fix: Disable early mem2reg (noir-lang/noir#9987) chore(ci): free up space on github runner (noir-lang/noir#9994) chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965) chore(ssa_executor): add compilation example (noir-lang/noir#9937) chore(acir): More arrays refactors (noir-lang/noir#9962) chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510) chore: remove_if_else docs and refactors (noir-lang/noir#9929) chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955) fix: correct max_bit_size when left-shifting (noir-lang/noir#9770) chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958) chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956) chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953) chore: add regression test for #9852 (noir-lang/noir#9960) chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957) feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867) chore: minor constant_folding refactors (noir-lang/noir#9954) chore!: several ACIR serialisation changes (noir-lang/noir#8134) chore(ci): only send slack notifications during the week (noir-lang/noir#9946) chore: assumes no load-store in array_set (noir-lang/noir#9940) chore(acir): Arrays module doc comments (noir-lang/noir#9947) fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941) fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888) feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928) chore: bump external pinned commits (noir-lang/noir#9938) chore: redo typo PR by viktorking7 (noir-lang/noir#9939) chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737) chore(ssa): Validate array operands (noir-lang/noir#9932) chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849) chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910) fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905) chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895) chore: bump external pinned commits (noir-lang/noir#9902) chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892) chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898) chore: implement Display for brillig (noir-lang/noir#9893) chore(acir_gen): Call module (noir-lang/noir#9896) feat: allow initializing dynamic arrays (noir-lang/noir#9899) fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887) fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882) fix: error on returning slice from main (noir-lang/noir#9636) fix(acir_gen): Fix entry point indices (noir-lang/noir#9881) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874) chore: validate SSA call arguments (noir-lang/noir#9876) fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885) chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884) chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821) fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883) chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878) chore(acir_gen): Remove Brillig execution with constant arguments (noir-lang/noir#9879) fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871) chore: bump external pinned commits (noir-lang/noir#9875) feat: LSP lightweight mode (noir-lang/noir#9869) chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839) chore: greenlight remove enable side effects (noir-lang/noir#9833) fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858) chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837) fix: check for signed division overflow (noir-lang/noir#9857) chore: Add tests from post-order PR (noir-lang/noir#9846) chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859) chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813) feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843) chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759) chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810) chore: use enum for instruction deduplication safety (noir-lang/noir#9824) feat(LSP): signature help for macro attributes (noir-lang/noir#9536) feat(LSP): folding ranges (noir-lang/noir#9854) chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855) chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789) chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850) chore: bump external pinned commits (noir-lang/noir#9848) chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation (noir-lang/noir#9844) chore: tests for map in stdlib (noir-lang/noir#9676) chore(ssa): Brillig entry point specialization post check (noir-lang/noir#9845) chore: delete some unused snapshots (noir-lang/noir#9841) feat(ssa): SSA CLI (noir-lang/noir#9826) chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836) chore(die): Remove RC tracker (noir-lang/noir#9809) feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835) chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829) chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834) chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825) chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551) chore: adding tests to vec (noir-lang/noir#9715) feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803) chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828) chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827) chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802) chore: add a regression test for #4663 (noir-lang/noir#9819) chore: bump linked bb version (noir-lang/noir#9237) chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811) chore: add a regression test for #6285 (noir-lang/noir#9817) feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786) chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812) chore(ci): fix release workflow permissions (noir-lang/noir#9822) fix: do not simplify constraints with induction variable (noir-lang/noir#9806) fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805) fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793) fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782) fix: proper error when dividing by minus 1 (noir-lang/noir#9762) chore: tests for field in stdlib (noir-lang/noir#9677) chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753) feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791) Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801) feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779) chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790) fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687) chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487) chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788) chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781) fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776) chore(die): Module doc comments (noir-lang/noir#9768) chore: encapsulate constant folding logic better (noir-lang/noir#9773) chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777) feat: remove useless jump when branching in brillig (noir-lang/noir#9778) chore: add `LoopContext::new` (noir-lang/noir#9720) feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772) chore(ci): add permissions to CI workflows (noir-lang/noir#9763) fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736) chore: add test for when pending snapshots are committed (noir-lang/noir#9757) chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755) chore: migrate away from fxhash to address advisory (noir-lang/noir#9752) fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756) fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702) chore: bump dependencies (noir-lang/noir#9751) fix: left bit shift u128 would overflow Field (noir-lang/noir#9723) Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)" chore: migrate away from fxhash to address advisory (noir-lang/noir#9750) chore: bump external pinned commits (noir-lang/noir#9748) chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739) chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738) feat: re-enable early mem2reg pass (noir-lang/noir#9744) fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712) chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718) chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740) chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651) fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724) chore: do not inline acir calls in brillig (noir-lang/noir#9412) chore: remove empty main from frontend tests (noir-lang/noir#9726) chore: add tests for slice (noir-lang/noir#9650) chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535) chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565) chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721) chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722) fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709) END_COMMIT_OVERRIDE
Description
Problem*
No issue just something I noticed while wokring on #9738. We have ACIR functions set to always be inlined unless they are an entry point. Thus, computing the weight of them is wasted computation.
Summary*
I decided to branch a draft off of #9738 as this is slightly separate from the goal of that PR. We can also see the benchmarks in isolation here. Even if it does not have a large effect on compilation times I think this would still be worthy of merging.
Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.