fix: increment reference counts when deduplicating calls which return arrays#8757
fix: increment reference counts when deduplicating calls which return arrays#8757TomAFrench merged 24 commits intomasterfrom
Conversation
There was a problem hiding this comment.
⚠️ 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: 8cab58f | Previous: a56d36a | Ratio |
|---|---|---|---|
rollup-block-root-empty |
23.68 s |
18.6 s |
1.27 |
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: 8cab58f | Previous: a56d36a | Ratio |
|---|---|---|---|
rollup-merge |
0.004 s |
0.003 s |
1.33 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
|
@aakoshh I'm getting a flake on |
|
Captured in #8975 |
Changes to Brillig bytecode sizes
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Changes to number of Brillig opcodes executed
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
guipublic
left a comment
There was a problem hiding this comment.
LGTM
Some names could be re-worked as suggested.
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: 8cab58f | Previous: 3838c69 | Ratio |
|---|---|---|---|
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob |
187 s |
141 s |
1.33 |
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: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> 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 fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> 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 fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> 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 fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> 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 fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> 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 fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Description
Problem*
Resolves
Summary*
We would previously deduplicate pure function calls by just replacing the result ids with those of the other function call. This is fine most of the time but when we have a function which returns an array this is roughly equivalent to a
make_arrayinstruction so we should have all the same checks.This PR updates the constant folding pass to treat these two instructions equivalently.
Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.