bisect-ssa-pass
Installation
SKILL.md
Noir SSA Bisection Debugging
Use this skill when debugging SSA optimization bugs - situations where an SSA pass fails to preserve program semantics. This workflow bisects SSA passes to identify which one introduces the behavioral change.
Common scenarios:
- Fuzzer failures: The
pass_vs_prevfuzzer found a program that produces different results after some SSA pass - Test failures: An existing test started failing after changes to an SSA pass
- Manual discovery: A program produces incorrect results and you suspect an optimization bug
Helper scripts are in the scripts/ directory of this skill.
Prerequisites
You need a Noir project with a Prover.toml containing inputs that trigger the suspected issue. The program should produce incorrect results or exhibit unexpected behavior when executed.
1. Compiling and Splitting SSA Passes
Compile with --show-ssa to output SSA after each optimization pass: