docs(doc): 同步 IR/MIR 目录结构与命名说明

This commit is contained in:
Lane0218
2025-12-26 13:07:43 +08:00
parent 8fe3a22aac
commit 8c2c060691

View File

@@ -70,7 +70,7 @@
│ │ ├── Value.cpp │ │ ├── Value.cpp
│ │ ├── Instruction.cpp │ │ ├── Instruction.cpp
│ │ ├── IRBuilder.cpp │ │ ├── IRBuilder.cpp
│ │ ├── Printer.cpp │ │ ├── IRPrinter.cpp
│ │ ├── analysis/ │ │ ├── analysis/
│ │ │ ├── DominatorTree.cpp │ │ │ ├── DominatorTree.cpp
│ │ │ └── LoopInfo.cpp │ │ │ └── LoopInfo.cpp
@@ -81,17 +81,17 @@
│ │ ├── DCE.cpp │ │ ├── DCE.cpp
│ │ └── CFGSimplify.cpp │ │ └── CFGSimplify.cpp
│ ├── mir/ │ ├── mir/
│ │ ├── MachineContext.cpp │ │ ├── MIRContext.cpp
│ │ ├── MachineFunction.cpp │ │ ├── MIRFunction.cpp
│ │ ├── MachineBasicBlock.cpp │ │ ├── MIRBasicBlock.cpp
│ │ ├── MachineInstr.cpp │ │ ├── MIRInstr.cpp
│ │ ├── Register.cpp │ │ ├── Register.cpp
│ │ ├── Lowering.cpp │ │ ├── Lowering.cpp
│ │ ├── RegAlloc.cpp
│ │ ├── FrameLowering.cpp │ │ ├── FrameLowering.cpp
│ │ ├── AsmPrinter.cpp │ │ ├── AsmPrinter.cpp
│ │ └── passes/ │ │ └── passes/
│ │ ├── PassManager.cpp │ │ ├── PassManager.cpp
│ │ ├── RegAlloc.cpp
│ │ └── Peephole.cpp │ │ └── Peephole.cpp
│ └── utils/ │ └── utils/
│ ├── Log.cpp │ ├── Log.cpp
@@ -199,7 +199,7 @@
- 指令体系二元运算、比较、load/store、call、br/condbr、ret、phi、alloca 等(按需求逐步补齐)。 - 指令体系二元运算、比较、load/store、call、br/condbr、ret、phi、alloca 等(按需求逐步补齐)。
- `src/ir/IRBuilder.cpp` - `src/ir/IRBuilder.cpp`
- IR 构建工具:集中管理插入点与指令创建,降低 IRGen 复杂度。 - IR 构建工具:集中管理插入点与指令创建,降低 IRGen 复杂度。
- `src/ir/Printer.cpp` - `src/ir/IRPrinter.cpp`
- IR 文本输出:打印为 `.ll` 风格文本,支撑调试与测试对比。 - IR 文本输出:打印为 `.ll` 风格文本,支撑调试与测试对比。
- `src/ir/analysis/DominatorTree.cpp` - `src/ir/analysis/DominatorTree.cpp`
- 支配树分析:为 `mem2reg`、部分 CFG 优化与循环分析提供基础能力。 - 支配树分析:为 `mem2reg`、部分 CFG 优化与循环分析提供基础能力。
@@ -218,27 +218,27 @@
#### 3.2.8 `src/mir/`Machine IR #### 3.2.8 `src/mir/`Machine IR
- `src/mir/MachineContext.cpp` - `src/mir/MIRContext.cpp`
- MIR 上下文:保存目标约束、指令集信息等(寄存器类定义合并在 `Register.cpp` 中) - MIR 上下文:保存目标约束、指令集信息等。
- `src/mir/MachineFunction.cpp` - `src/mir/MIRFunction.cpp`
- 机器函数:包含机器基本块、栈帧信息、虚拟/物理寄存器管理等。 - 机器函数:包含机器基本块、栈帧信息、虚拟/物理寄存器管理等。
- `src/mir/MachineBasicBlock.cpp` - `src/mir/MIRBasicBlock.cpp`
- 机器基本块:机器指令列表与 CFG 信息。 - 机器基本块:机器指令列表与 CFG 信息。
- `src/mir/MachineInstr.cpp` - `src/mir/MIRInstr.cpp`
- 机器指令opcode + operands寄存器/立即数/栈槽/符号/标签等)。 - 机器指令opcode + operands寄存器/立即数/栈槽/符号/标签等)。
- `src/mir/Register.cpp` - `src/mir/Register.cpp`
- 寄存器表示:区分虚拟寄存器与物理寄存器,提供编号/属性等。 - 寄存器表示:区分虚拟寄存器与物理寄存器,提供编号/属性等。
- 寄存器类RegClassGPR/FPR 等分类与可分配集合描述(供 RA 使用)。 - 寄存器类RegClassGPR/FPR 等分类与可分配集合描述(供 RA 使用)。
- `src/mir/Lowering.cpp` - `src/mir/Lowering.cpp`
- IR → MIR从平台无关 IR 生成 AArch64 指令的 MIR在此完成指令选择初始使用虚拟寄存器。 - IR → MIR从平台无关 IR 生成 AArch64 指令的 MIR在此完成指令选择初始使用虚拟寄存器。
- `src/mir/RegAlloc.cpp`
- 寄存器分配主入口:将虚拟寄存器分配到物理寄存器,并驱动 spill/reload 等后续处理。
- `src/mir/FrameLowering.cpp` - `src/mir/FrameLowering.cpp`
- 栈帧布局与序言尾声:根据寄存器分配阶段记录的栈槽需求计算栈大小与对齐,插入 prologue/epilogue保存/恢复 callee-saved 等。 - 栈帧布局与序言尾声:根据寄存器分配阶段记录的栈槽需求计算栈大小与对齐,插入 prologue/epilogue保存/恢复 callee-saved 等。
- `src/mir/AsmPrinter.cpp` - `src/mir/AsmPrinter.cpp`
- 汇编打印:将最终机器指令 MIR 打印为 ARMv8-A 汇编 `.s` - 汇编打印:将最终机器指令 MIR 打印为 ARMv8-A 汇编 `.s`
- `src/mir/passes/PassManager.cpp` - `src/mir/passes/PassManager.cpp`
- MIR pass 管理:组织后端 pass 的运行顺序PreRA/PostRA/PEI 等阶段)。 - MIR pass 管理:组织后端 pass 的运行顺序PreRA/PostRA/PEI 等阶段)。
- `src/mir/passes/RegAlloc.cpp`
- 寄存器分配将虚拟寄存器分配到物理寄存器spill/reload 在此阶段完成。
- `src/mir/passes/Peephole.cpp` - `src/mir/passes/Peephole.cpp`
- 窥孔优化:删除冗余 move、合并常见指令模式提升最终汇编质量。 - 窥孔优化:删除冗余 move、合并常见指令模式提升最终汇编质量。