fix(ssa): Validate checked signed add/sub is followed by a truncate#8706
fix(ssa): Validate checked signed add/sub is followed by a truncate#8706
Conversation
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: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
rollup-merge |
0.004 s |
0.003 s |
1.33 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
ACVM Benchmarks
Details
| Benchmark suite | Current: cecb843 | Previous: 89783b6 | Ratio |
|---|---|---|---|
purely_sequential_opcodes |
255572 ns/iter (± 834) |
255579 ns/iter (± 358) |
1.00 |
perfectly_parallel_opcodes |
224488 ns/iter (± 7051) |
223669 ns/iter (± 1825) |
1.00 |
perfectly_parallel_batch_inversion_opcodes |
3565248 ns/iter (± 2555) |
3564281 ns/iter (± 2088) |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Execution Time
Details
| Benchmark suite | Current: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
private-kernel-inner |
0.029 s |
0.028 s |
1.04 |
private-kernel-reset |
0.166 s |
0.165 s |
1.01 |
private-kernel-tail |
0.012 s |
0.011 s |
1.09 |
rollup-base-private |
0.317 s |
0.314 s |
1.01 |
rollup-base-public |
0.195 s |
0.195 s |
1 |
rollup-block-root |
11.5 s |
11.3 s |
1.02 |
rollup-merge |
0.004 s |
0.003 s |
1.33 |
rollup-root |
0.009 s |
0.009 s |
1 |
semaphore-depth-10 |
0.02 s |
0.019 s |
1.05 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Artifact Size
Details
| Benchmark suite | Current: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
private-kernel-inner |
1133.3 KB |
1133.3 KB |
1 |
private-kernel-reset |
2156.7 KB |
2156.7 KB |
1 |
private-kernel-tail |
589 KB |
589 KB |
1 |
rollup-base-private |
5129.7 KB |
5129.7 KB |
1 |
rollup-base-public |
4071.2 KB |
4071.2 KB |
1 |
rollup-block-root-empty |
257 KB |
257 KB |
1 |
rollup-block-root-single-tx |
25708.1 KB |
25708.1 KB |
1 |
rollup-block-root |
25715.1 KB |
25715.1 KB |
1 |
rollup-merge |
183.7 KB |
183.7 KB |
1 |
rollup-root |
418.6 KB |
418.6 KB |
1 |
semaphore-depth-10 |
636.3 KB |
636.3 KB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Compilation Time
Details
| Benchmark suite | Current: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
private-kernel-inner |
2.508 s |
2.472 s |
1.01 |
private-kernel-reset |
7.092 s |
6.796 s |
1.04 |
private-kernel-tail |
1.176 s |
1.112 s |
1.06 |
rollup-base-private |
16.64 s |
16.26 s |
1.02 |
rollup-base-public |
13.86 s |
13.66 s |
1.01 |
rollup-block-root-empty |
1.476 s |
1.35 s |
1.09 |
rollup-block-root-single-tx |
124 s |
122 s |
1.02 |
rollup-block-root |
126 s |
129 s |
0.98 |
rollup-merge |
1.184 s |
1.176 s |
1.01 |
rollup-root |
1.65 s |
1.664 s |
0.99 |
semaphore-depth-10 |
0.845 s |
0.828 s |
1.02 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Execution Memory
Details
| Benchmark suite | Current: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
private-kernel-inner |
246.19 MB |
246.19 MB |
1 |
private-kernel-reset |
270.04 MB |
270.04 MB |
1 |
private-kernel-tail |
221.33 MB |
221.33 MB |
1 |
rollup-base-private |
580.06 MB |
580.06 MB |
1 |
rollup-base-public |
576.38 MB |
576.38 MB |
1 |
rollup-block-root |
1460 MB |
1460 MB |
1 |
rollup-merge |
401.73 MB |
401.73 MB |
1 |
rollup-root |
407.3 MB |
407.3 MB |
1 |
semaphore_depth_10 |
92.96 MB |
92.96 MB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Compilation Memory
Details
| Benchmark suite | Current: 17bb3bd | Previous: 89783b6 | Ratio |
|---|---|---|---|
private-kernel-inner |
337.15 MB |
337.09 MB |
1.00 |
private-kernel-reset |
577.7 MB |
577.7 MB |
1 |
private-kernel-tail |
236.98 MB |
236.97 MB |
1.00 |
rollup-base-private |
1470 MB |
1470 MB |
1 |
rollup-base-public |
1630 MB |
1630 MB |
1 |
rollup-block-root-empty |
431.72 MB |
431.7 MB |
1.00 |
rollup-block-root-single-tx |
7240 MB |
7240 MB |
1 |
rollup-block-root |
7250 MB |
7250 MB |
1 |
rollup-merge |
415.91 MB |
415.91 MB |
1 |
rollup-root |
470.22 MB |
470.2 MB |
1.00 |
semaphore_depth_10 |
128.39 MB |
128.39 MB |
1 |
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: cecb843 | Previous: 89783b6 | Ratio |
|---|---|---|---|
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr |
65 s |
67 s |
0.97 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts |
99 s |
98 s |
1.01 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob |
43 s |
43 s |
1 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib |
199 s |
208 s |
0.96 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_rollup-lib |
192 s |
184 s |
1.04 |
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types |
70 s |
71 s |
0.99 |
test_report_noir-lang_noir-bignum_ |
382 s |
383 s |
1.00 |
test_report_noir-lang_noir_bigcurve_ |
269 s |
257 s |
1.05 |
test_report_noir-lang_sha512_ |
32 s |
31 s |
1.03 |
test_report_zkpassport_noir_rsa_ |
3 s |
2 s |
1.50 |
This comment was automatically generated by workflow using github-action-benchmark.
TomAFrench
left a comment
There was a problem hiding this comment.
There's already a assert_valid method on Function, I think we'd want to merge these two.
I have moved this into |
… mv/validate-signed-add-sub
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: cecb843 | Previous: 89783b6 | Ratio |
|---|---|---|---|
test_report_zkpassport_noir_rsa_ |
3 s |
2 s |
1.50 |
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(fmt): correctly format mixed secondary attributes and doc comments (noir-lang/noir#8735) fix!: require types for trait impl associated constants (noir-lang/noir#8734) fix!: Prevent returning references from if expressions (noir-lang/noir#8731) fix: cast signed to u1 follow-up (noir-lang/noir#8730) fix: cast signed to u1 (noir-lang/noir#8720) fix: do not mutate arrays later copied inside other arrays (noir-lang/noir#8701) chore: box `AsTraitPath` and `TypePath` in `ExpressionKind` (noir-lang/noir#8716) fix: general solution for accessing associated constants (noir-lang/noir#8417) fix(ssa): Validate checked signed add/sub is followed by a truncate (noir-lang/noir#8706) chore: add pre- and post-check on `array_set` optimization pass (noir-lang/noir#8714) fix: merge expr bindings with instantiations bindings during monomorphization (noir-lang/noir#8713) fix: better way to do LSP file overrides (noir-lang/noir#8702) fix(fmt): correct indentation when formatting long struct patterns (noir-lang/noir#8711) fix(fuzz): Prevent breaking/continuing out from let blocks in the AST fuzzer (noir-lang/noir#8708) chore: remove override for zero length inputs (noir-lang/noir#8709) feat: Replace converging jmpif with empty block destinations with a single jmp (noir-lang/noir#8613) feat(cli): Add `nargo interpret` command (noir-lang/noir#8700) chore: more 1-tuple printing fixes (noir-lang/noir#8699) chore(fuzz): Fuzz the SSA parser (noir-lang/noir#8647) fix: (SSA parser) translate blocks in logical order rather than syntax order (noir-lang/noir#8668) fix(SSA): show and parse range_check's assert_message (noir-lang/noir#8652) chore: Show the step number in the SSA message (noir-lang/noir#8698) chore(docs): Add pointers to tests (noir-lang/noir#8695) chore(fuzz): Capture comptime print output (noir-lang/noir#8635) fix: nargo expand reexports correctly implemented (noir-lang/noir#8693) feat(cli): Show multiple SSA passes (noir-lang/noir#8692) chore(test): Add regression test for defunctionalize (noir-lang/noir#8691) chore: add an assertion when parsing SSA that all functions are well-formed (noir-lang/noir#8671) feat!: prevent compiling blake3 hashes which barretenberg cannot prove (noir-lang/noir#8690) fix(ssa): Remove the array cache from the function inserter (noir-lang/noir#8607) chore: bump external pinned commits (noir-lang/noir#8684) chore: reenable fuzzing tests in CI (noir-lang/noir#8688) fix: Handle `&mut function` in defunctionalize (noir-lang/noir#8665) fix(defunctionalize): Higher order functions (HOF) dynamic dispatch and HOFs in arrays (noir-lang/noir#8672) chore(ci): avoid running fuzzer tests in the merge queue (noir-lang/noir#8664) fix: Make casts in `comptime` consistent with runtime casts (noir-lang/noir#8669) fix: relax connectedness requirement on purity analysis pass (noir-lang/noir#8667) fix: always use `u32` for indexing arrays in SSA (noir-lang/noir#8633) chore: explicitly pull from `next` branch in aztec-packages (noir-lang/noir#8660) chore(fuzz): Build the dictionary from the SSA (noir-lang/noir#8591) chore(docs): Remove old versioned docs (noir-lang/noir#8061) chore: bump external pinned commits (noir-lang/noir#8634) fix(SSA): don't use string literal if byte is "form feed" ('\f') (noir-lang/noir#8653) chore(defunctionalize): Add regression test for missing lambda variants panic (noir-lang/noir#8642) chore(ci): Do not run ast_fuzzer orig vs. morph in ci (noir-lang/noir#8646) fix: disable underflow fix for fields (noir-lang/noir#8631) fix: revert "fix: error on unused generic in trait impl (noir-lang/noir#8395)" (noir-lang/noir#8636) fix(ssa interpreter): Default to zero when we have an overflowing shl (noir-lang/noir#8638) fix: ensure that purity analysis pass explores all functions (noir-lang/noir#8452) feat: acir_formal_proofs (noir-lang/noir#8140) fix: error on unused generic in trait impl (noir-lang/noir#8395) fix(expand): use re-exports for non-visibile items (noir-lang/noir#8374) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: Ary Borenszweig <asterite@gmail.com>
Description
Problem*
Resolves #8089
Summary*
I added a post-SSA gen validation method that validates all functions in the SSA. For now the only thing we are validating for is the case listed in the linked issue being resolved.
Additional Context
In general we should consolidate our validation logic into one validation pass. I have captured this into an issue here #8705.
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.