name: 寄存器分配 description: 寄存器分配算法专家技能,包括图着色、线性扫描和溢出代码生成 category: 代码生成 allowed-tools:
- 读取
- 写入
- 编辑
- 全局搜索
- 文本搜索
- Bash
寄存器分配技能
概述
寄存器分配算法专家技能,包括图着色、线性扫描和溢出代码生成。
能力
- 实现图着色寄存器分配
- 实现线性扫描寄存器分配
- 生成开销最小的溢出代码
- 处理调用约定寄存器约束
- 实现寄存器合并
- 处理预着色节点和固定寄存器
- 实现活跃区间分割
- 设计寄存器压力分析
目标流程
- jit-compiler-development.js
- code-generation-llvm.js
- bytecode-vm-implementation.js
依赖项
无(算法技能)
使用指南
- 算法选择:JIT使用线性扫描(快速),AOT使用图着色(最优)
- 活跃区间:在分配前计算准确的活跃区间
- 溢出成本:使用启发式方法最小化溢出成本(循环深度、使用频率)
- 调用约定:正确处理调用者/被调用者保存的寄存器
- 合并:实现积极合并以减少移动操作
输出模式
{
"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" }
}
}
}