Skip to content

feat(ssa): Mark instructions after OOB array op as unreachable#9234

Merged
TomAFrench merged 7 commits intomv/array-get-side-effectsfrom
mv/instrs-after-bad-array-op-unreachable
Jul 21, 2025
Merged

feat(ssa): Mark instructions after OOB array op as unreachable#9234
TomAFrench merged 7 commits intomv/array-get-side-effectsfrom
mv/instrs-after-bad-array-op-unreachable

Conversation

@vezenovm
Copy link
Contributor

Description

Problem*

Builds off of #9232 to resolve #9217

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.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 17, 2025

Changes to circuit sizes

Generated at commit: b970a7708b68f1f0a808a15ce6757bf009afb633, compared to commit: f833e6c2663415a7c994aa0abc3b58032c30b604

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
conditional_1 -102 ✅ -3.55% -118 ✅ -1.35%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
conditional_1 2,772 (-102) -3.55% 8,625 (-118) -1.35%

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: bcf261b Previous: 3bec934 Ratio
sha512-100-bytes 0.105 s 0.055 s 1.91

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 'Opcode count'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.10.

Benchmark suite Current: bcf261b Previous: 3bec934 Ratio
private-kernel-reset 83598 opcodes 68865 opcodes 1.21

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: e08710c Previous: 80b04ec Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 210 s 173 s 1.21
test_report_zkpassport_noir_rsa_ 2 s 1 s 2

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

CC: @TomAFrench

Copy link
Member

Choose a reason for hiding this comment

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

This fails to compile still

@TomAFrench
Copy link
Member

Supercedes #9212

@TomAFrench
Copy link
Member

unconstrained fn main() -> pub bool {
    func_2([(true, "", "")])  != func_2([(true, "", "")])
}
unconstrained fn func_2(
    b: [(bool, str<0>, str<0>); 1],
) -> (str<0>, str<0>) {
    println(b);
    (b[0_u32].1, b[0_u32].2)
}

Regression test for the fuzzing issue. (needs low inliner aggressiveness).

@TomAFrench TomAFrench merged commit 29e551d into mv/array-get-side-effects Jul 21, 2025
61 of 64 checks passed
@TomAFrench TomAFrench deleted the mv/instrs-after-bad-array-op-unreachable branch July 21, 2025 16:38
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