chore(misc): 按目录结构设计初始化工程骨架

This commit is contained in:
Lane0218
2025-12-27 14:37:52 +08:00
parent b30c963eb7
commit cf2e6e0b46
46 changed files with 195 additions and 0 deletions

4
src/ir/BasicBlock.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 基本块:
// - 保存指令序列
// - 维护或可计算前驱/后继关系,用于 CFG 分析与优化

4
src/ir/Context.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 上下文:
// - 管理类型与常量的创建/复用
// - 保存字符串常量、符号等公共资源(按需要扩展)

4
src/ir/Function.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR Function
// - 保存参数列表、基本块列表
// - 记录函数属性/元信息(按需要扩展)

4
src/ir/IRBuilder.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 构建工具:
// - 管理插入点(当前基本块/位置)
// - 提供创建各类指令的便捷接口,降低 IRGen 复杂度

4
src/ir/IRPrinter.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 文本输出:
// - 将 IR 打印为 .ll 风格的文本
// - 支撑调试与测试对比diff

4
src/ir/Instruction.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 指令体系:
// - 二元运算/比较、load/store、call、br/condbr、ret、phi、alloca 等
// - 指令操作数与结果类型管理,支持打印与优化

4
src/ir/Module.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR Module
// - 保存全局变量与函数列表
// - 维护与目标相关的模块级信息(如需要)与符号表

4
src/ir/Type.cpp Normal file
View File

@@ -0,0 +1,4 @@
// IR 类型系统:
// - i32/f32/void、指针、数组、函数类型等
// - 按 SysY 支持范围裁剪并逐步补齐

4
src/ir/Value.cpp Normal file
View File

@@ -0,0 +1,4 @@
// SSA 值体系抽象:
// - 常量、参数、指令结果等统一为 Value
// - 提供类型信息与使用/被使用关系(按需要实现)

View File

@@ -0,0 +1,4 @@
// 支配树分析:
// - 构建/查询 Dominator Tree 及相关关系
// - 为 mem2reg、CFG 优化与循环分析提供基础能力

View File

@@ -0,0 +1,4 @@
// 循环分析:
// - 识别循环结构与层级关系
// - 为后续优化(可选)提供循环信息

View File

@@ -0,0 +1,4 @@
// CFG 简化:
// - 删除不可达块、合并空块、简化分支等
// - 改善 IR 结构,便于后续优化与后端生成

View File

@@ -0,0 +1,4 @@
// IR 常量折叠:
// - 折叠可判定的常量表达式
// - 简化常量控制流分支(按实现范围裁剪)

4
src/ir/passes/DCE.cpp Normal file
View File

@@ -0,0 +1,4 @@
// 死代码删除DCE
// - 删除无用指令与无用基本块
// - 通常与 CFG 简化配合使用

View File

@@ -0,0 +1,4 @@
// Mem2RegSSA 构造):
// - 将局部变量的 alloca/load/store 提升为 SSA 形式
// - 插入 PHI 并重写使用,依赖支配树等分析

View File

@@ -0,0 +1,4 @@
// IR Pass 管理:
// - 按优化级别组织优化 pipeline
// - 统一运行 pass、统计与调试输出按需要扩展