What problem does it solve?
When a bug is found in the Noir SSA compiler pipeline, the triggering SSA file is often large and hard to diagnose. This Skill systematically shrinks that file to the smallest possible input that still reproduces the crash, making the root cause visible.
Core Features & Use Cases
- Pass pipeline minimization: Removes unnecessary SSA passes and bakes valid passes into the input to shrink both the pipeline and the file.
- Automated reduction scripts: Python scripts remove unused instructions and collapse conditional branches (jmpif to jmp) while verifying the crash still reproduces after every change.
- Crash validation harness: A shell script validates that the input parses, the detection pass alone succeeds, and the full pipeline crashes with the expected error pattern.
- Use Case: After bisecting identifies that the Unrolling pass corrupts SSA detected by Inlining Brillig Calls, run the reducers to shrink a 500-line SSA file down to a 20-line case revealing an unmapped value reference.
Quick Start
Minimize the SSA file input.ssa that crashes the noir-ssa pipeline with the Unrolling pass using the reduce-ssa-repro skill.