fix(brillig_gen): Switch to iterative variable liveness#10460
fix(brillig_gen): Switch to iterative variable liveness#10460
Conversation
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
…ness.rs Co-authored-by: Ary Borenszweig <asterite@gmail.com>
…mv/iterative-var-liveness
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
…mv/iterative-var-liveness
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
compiler/noirc_evaluator/src/brillig/brillig_gen/variable_liveness.rs
Outdated
Show resolved
Hide resolved
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: f3ac3aa | Previous: 2ff4d11 | Ratio |
|---|---|---|---|
rollup-block-root-single-tx |
0.003 s |
0.002 s |
1.50 |
sha512-100-bytes |
0.081 s |
0.066 s |
1.23 |
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 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: f3ac3aa | Previous: 2ff4d11 | Ratio |
|---|---|---|---|
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob |
572 s |
409 s |
1.40 |
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 Memory'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: d60cccf | Previous: 2ff4d11 | Ratio |
|---|---|---|---|
private-kernel-reset |
436.47 MB |
290.79 MB |
1.50 |
rollup-checkpoint-root-single-block |
11250 MB |
1760 MB |
6.39 |
rollup-checkpoint-root |
11250 MB |
1760 MB |
6.39 |
rollup-tx-base-private |
989.15 MB |
521.11 MB |
1.90 |
rollup-tx-base-public |
3030 MB |
467.58 MB |
6.48 |
sha512_100_bytes |
185.62 MB |
72.08 MB |
2.58 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix(brillig_gen): Switch to iterative variable liveness (noir-lang/noir#10460) feat: remove unnecessary mutation of blackbox functions during flattening (noir-lang/noir#10182) chore: revert "fix: revert "feat(ACIR): reuse element_type_sizes blocks with… (noir-lang/noir#10461) chore: green light for acir (native_types) audit (noir-lang/noir#10381) chore: lock Cargo.lock in cargo-binstall (noir-lang/noir#10459) fix(acir-gen): Use the side effect variable in `slice_pop_back` (noir-lang/noir#10455) fix: correct location for out of bounds match case integer (noir-lang/noir#10454) fix: Defunctionalize foreign functions in pre-SSA pass over mAST (noir-lang/noir#10160) fix: use unit for fmtstr without variables (noir-lang/noir#10456) chore(docs): Update tinyjs app tutorial for versioned docs (noir-lang/noir#10453) fix(frontend): Resolve to correct type on fmtstr interpolation error (noir-lang/noir#10450) fix: avoid producing duplicate private error messages (noir-lang/noir#10449) chore(docs): update dependencies and installation instructions in NoirJS tutorial and examples (noir-lang/noir#10400) fix(compiler): Improve error message for impl on primitive types (noir-lang/noir#10430) (noir-lang/noir#10442) chore: get trait as non-mut (noir-lang/noir#10447) chore(frontend): Tuple dereference chain unit test and minor method reorg (noir-lang/noir#10410) fix(doc): analyze sub-modules imports before self (noir-lang/noir#10390) chore: green light for blackbox_solver audit (noir-lang/noir#10372) chore: use `get_last_condition` in `link_condition` (noir-lang/noir#10424) chore: bump external pinned commits (noir-lang/noir#10443) feat: primitive types doc comments (noir-lang/noir#10432) chore(frontend): Trait impl Self path unit tests (noir-lang/noir#10437) 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 fix(brillig_gen): Switch to iterative variable liveness (noir-lang/noir#10460) feat: remove unnecessary mutation of blackbox functions during flattening (noir-lang/noir#10182) chore: revert "fix: revert "feat(ACIR): reuse element_type_sizes blocks with… (noir-lang/noir#10461) chore: green light for acir (native_types) audit (noir-lang/noir#10381) chore: lock Cargo.lock in cargo-binstall (noir-lang/noir#10459) fix(acir-gen): Use the side effect variable in `slice_pop_back` (noir-lang/noir#10455) fix: correct location for out of bounds match case integer (noir-lang/noir#10454) fix: Defunctionalize foreign functions in pre-SSA pass over mAST (noir-lang/noir#10160) fix: use unit for fmtstr without variables (noir-lang/noir#10456) chore(docs): Update tinyjs app tutorial for versioned docs (noir-lang/noir#10453) fix(frontend): Resolve to correct type on fmtstr interpolation error (noir-lang/noir#10450) fix: avoid producing duplicate private error messages (noir-lang/noir#10449) chore(docs): update dependencies and installation instructions in NoirJS tutorial and examples (noir-lang/noir#10400) fix(compiler): Improve error message for impl on primitive types (noir-lang/noir#10430) (noir-lang/noir#10442) chore: get trait as non-mut (noir-lang/noir#10447) chore(frontend): Tuple dereference chain unit test and minor method reorg (noir-lang/noir#10410) fix(doc): analyze sub-modules imports before self (noir-lang/noir#10390) chore: green light for blackbox_solver audit (noir-lang/noir#10372) chore: use `get_last_condition` in `link_condition` (noir-lang/noir#10424) chore: bump external pinned commits (noir-lang/noir#10443) feat: primitive types doc comments (noir-lang/noir#10432) chore(frontend): Trait impl Self path unit tests (noir-lang/noir#10437) 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 fix(brillig_gen): Switch to iterative variable liveness (noir-lang/noir#10460) feat: remove unnecessary mutation of blackbox functions during flattening (noir-lang/noir#10182) chore: revert "fix: revert "feat(ACIR): reuse element_type_sizes blocks with… (noir-lang/noir#10461) chore: green light for acir (native_types) audit (noir-lang/noir#10381) chore: lock Cargo.lock in cargo-binstall (noir-lang/noir#10459) fix(acir-gen): Use the side effect variable in `slice_pop_back` (noir-lang/noir#10455) fix: correct location for out of bounds match case integer (noir-lang/noir#10454) fix: Defunctionalize foreign functions in pre-SSA pass over mAST (noir-lang/noir#10160) fix: use unit for fmtstr without variables (noir-lang/noir#10456) chore(docs): Update tinyjs app tutorial for versioned docs (noir-lang/noir#10453) fix(frontend): Resolve to correct type on fmtstr interpolation error (noir-lang/noir#10450) fix: avoid producing duplicate private error messages (noir-lang/noir#10449) chore(docs): update dependencies and installation instructions in NoirJS tutorial and examples (noir-lang/noir#10400) fix(compiler): Improve error message for impl on primitive types (noir-lang/noir#10430) (noir-lang/noir#10442) chore: get trait as non-mut (noir-lang/noir#10447) chore(frontend): Tuple dereference chain unit test and minor method reorg (noir-lang/noir#10410) fix(doc): analyze sub-modules imports before self (noir-lang/noir#10390) chore: green light for blackbox_solver audit (noir-lang/noir#10372) chore: use `get_last_condition` in `link_condition` (noir-lang/noir#10424) chore: bump external pinned commits (noir-lang/noir#10443) feat: primitive types doc comments (noir-lang/noir#10432) chore(frontend): Trait impl Self path unit tests (noir-lang/noir#10437) END_COMMIT_OVERRIDE
Description
Problem
Looking to resolve stack overflow flake in blob lib
Summary
I asked Claude to switch our recursive algo to an iterative one. The algorithm looks to be correct upon review, our existing tests are passing, and the stack overflow no longer occurs.
Additional Context
User Documentation
Check one:
PR Checklist
cargo fmton default settings.