Babysitter SSA/IR Design
Expert skill for designing intermediate representations and implementing SSA construction
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/programming-languages/skills/ssa-ir-design" ~/.claude/skills/a5c-ai-babysitter-ssa-ir-design && rm -rf "$T"
manifest:
library/specializations/programming-languages/skills/ssa-ir-design/SKILL.mdsource content
SSA/IR Design Skill
Overview
Expert skill for designing intermediate representations and implementing SSA (Static Single Assignment) construction.
Capabilities
- Design control flow graph (CFG) structures
- Implement dominance tree computation
- Implement SSA construction algorithms (Cytron et al.)
- Design phi function placement and pruning
- Implement SSA destruction for register allocation
- Design sea-of-nodes IR representations
- Implement basic block reordering
- Design IR verification passes
Target Processes
- ir-design.js
- code-generation-llvm.js
- jit-compiler-development.js
- semantic-analysis.js
Dependencies
Compiler optimization textbooks (Engineering a Compiler, Modern Compiler Implementation)
Usage Guidelines
- CFG Design: Start with a clear CFG representation with explicit entry/exit blocks
- Dominance: Implement dominance computation before SSA construction
- Phi Placement: Use dominance frontiers for minimal phi placement
- Verification: Build IR verification passes to catch malformed IR early
- Debugging: Include IR pretty-printing from the start for debugging
Output Schema
{ "type": "object", "properties": { "irStyle": { "type": "string", "enum": ["basic-blocks", "sea-of-nodes", "continuation-passing"] }, "ssaConstruction": { "type": "string", "enum": ["cytron", "braun", "sreedhar"] }, "passes": { "type": "array", "items": { "type": "string" } }, "generatedFiles": { "type": "array", "items": { "type": "string" } } } }