Skip to content

feat: remove unnecessary mutation of blackbox functions during flattening#10182

Merged
guipublic merged 15 commits intomasterfrom
tf/remove-unnecessary-predicates
Nov 10, 2025
Merged

feat: remove unnecessary mutation of blackbox functions during flattening#10182
guipublic merged 15 commits intomasterfrom
tf/remove-unnecessary-predicates

Conversation

@TomAFrench
Copy link
Member

…ning

Description

Problem*

Resolves

Summary*

Additional Context

Documentation*

Check one:

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

PR Checklist*

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

@TomAFrench TomAFrench changed the title feat: remove unnecessary mutation of blackbox functions during flatte… feat: remove unnecessary mutation of blackbox functions during flattening Oct 14, 2025
Copy link
Contributor

@github-actions github-actions bot left a 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 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 9222536 Previous: e37c754 Ratio
rollup-block-root-single-tx 0.003 s 0.002 s 1.50

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

Copy link
Contributor

@github-actions github-actions bot left a 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: 9222536 Previous: e37c754 Ratio
test_report_zkpassport_noir_rsa_ 2 s 1 s 2

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

@TomAFrench
Copy link
Member Author

@guipublic as you showed interest in scrum.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

Changes to circuit sizes

Generated at commit: 7183be4140337e000bc0e3a5f19d81338605ace2, compared to commit: 36ecc83ad50a16988debe0216dd9b56ae179043a

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
regression_7744 -3 ✅ -37.50% -5 ✅ -4.42%
regression_5045 -3 ✅ -27.27% -75 ✅ -5.84%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
ecdsa_secp256r1_3x 486 (-1) -0.21% 206,341 (-49) -0.02%
ecdsa_secp256r1 162 (-1) -0.61% 71,279 (-17) -0.02%
bench_ecdsa_secp256k1 162 (-1) -0.61% 41,700 (-17) -0.04%
ecdsa_secp256k1 162 (-1) -0.61% 41,700 (-17) -0.04%
ecdsa_secp256r1_invalid_pub_key_in_inactive_branch 163 (-64) -28.19% 71,296 (-64) -0.09%
ecdsa_secp256k1_invalid_pub_key_in_inactive_branch 163 (-64) -28.19% 41,717 (-64) -0.15%
embedded_curve_ops 12 (-1) -7.69% 5,352 (-18) -0.34%
regression_7744 5 (-3) -37.50% 108 (-5) -4.42%
regression_5045 8 (-3) -27.27% 1,210 (-75) -5.84%

@TomAFrench
Copy link
Member Author

Looks like 245600f needs a new test as CI was passing before?

@guipublic guipublic marked this pull request as ready for review November 6, 2025 17:27
Copy link
Contributor

@github-actions github-actions bot left a 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 'Compilation Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 6516b40 Previous: d8b7cda Ratio
sha512-100-bytes 2.208 s 1.658 s 1.33

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

@guipublic guipublic marked this pull request as draft November 7, 2025 10:20
@guipublic
Copy link
Contributor

This PR requires AztecProtocol/aztec-packages#18253 to be merged.

@guipublic guipublic marked this pull request as ready for review November 7, 2025 14:58
@guipublic guipublic requested a review from a team November 10, 2025 12:34
Copy link
Contributor

@guipublic guipublic left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@github-actions github-actions bot left a 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 'ACVM Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 9222536 Previous: e37c754 Ratio
perfectly_parallel_batch_inversion_opcodes 2784006 ns/iter (± 21615) 2261356 ns/iter (± 1811) 1.23

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

@guipublic guipublic added this pull request to the merge queue Nov 10, 2025
Merged via the queue into master with commit 050f978 Nov 10, 2025
132 checks passed
@guipublic guipublic deleted the tf/remove-unnecessary-predicates branch November 10, 2025 22:47
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 11, 2025
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
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 11, 2025
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
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 11, 2025
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants