名称: SSA/IR设计 描述: 设计中间表示和实现SSA构建的专家技能 类别: 编译器中间端 允许工具:
- 读取
- 写入
- 编辑
- 全局搜索
- 文本搜索
- Bash
SSA/IR设计技能
概述
设计中间表示和实现SSA(静态单赋值)构建的专家技能。
能力
- 设计控制流图(CFG)结构
- 实现支配树计算
- 实现SSA构建算法(Cytron等)
- 设计phi函数放置和剪枝
- 实现寄存器分配的SSA销毁
- 设计节点海IR表示
- 实现基本块重排序
- 设计IR验证过程
目标流程
- ir-design.js
- code-generation-llvm.js
- jit-compiler-development.js
- semantic-analysis.js
依赖
编译器优化教科书(《编译器工程》、《现代编译器实现》)
使用指南
- CFG设计: 从具有明确入口/出口块清晰的CFG表示开始
- 支配性: 在SSA构建之前实现支配性计算
- Phi放置: 使用支配边界进行最小phi放置
- 验证: 构建IR验证过程以尽早捕获格式错误的IR
- 调试: 从一开始就包含IR美化打印以进行调试
输出模式
{
"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" }
}
}
}