register-allocation

Solid

Expert skill for register allocation algorithms including graph coloring, linear scan, and spill code generation

AI & Automation 814 stars 53 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
97
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
75
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Register Allocation Skill ## Overview Expert skill for register allocation algorithms including graph coloring, linear scan, and spill code generation. ## Capabilities - Implement graph coloring register allocation - Implement linear scan register allocation - Generate spill code with minimal overhead - Handle calling convention register constraints - Implement register coalescing - Handle pre-colored nodes and fixed registers - Implement live range splitting - Design register pressure analysis ## Target Processes - jit-compiler-development.js - code-generation-llvm.js - bytecode-vm-implementation.js ## Dependencies None (algorithmic skill) ## Usage Guidelines 1. **Algorithm Selection**: Use linear scan for JIT (fast), graph coloring for AOT (optimal) 2. **Live Ranges**: Compute accurate live ranges before allocation 3. **Spill Costs**: Use heuristics to minimize spill costs (loop depth, usage frequency) 4. **Calling Conventions**: Handle caller/callee-saved registers correctly 5. **Coalescing**: Implement aggressive coalescing to reduce moves ## Output Schema ```json { "type": "object", "properties": { "algorithm": { "type": "string", "enum": ["graph-coloring", "linear-scan", "second-chance-binpacking"] }, "spillStrategy": { "type": "string" }, "registerClasses": { "type": "array", "items": { "type": "string" } }, "generatedFiles": { "type": "array", "items": { "type": "string" } } } } ```

Details

Author
a5c-ai
Repository
a5c-ai/babysitter
Created
4 months ago
Last Updated
today
Language
JavaScript
License
MIT

Related Skills