Lixuanwang
|
9ba08126fb
|
Merge branch 'peephole' into backend
|
2025-07-28 23:46:34 +08:00 |
|
Lixuanwang
|
b0cecca081
|
Merge branch 'backend-rec' into backend
|
2025-07-28 23:40:58 +08:00 |
|
|
|
634a84f29c
|
[peephole]Pass架构重构优化
|
2025-07-27 11:03:26 +08:00 |
|
Lixuanwang
|
2e8b564d8f
|
[backend]修复了递归函数的调用问题,引入了新的bug?
|
2025-07-27 01:07:08 +08:00 |
|
Lixuanwang
|
af318b6c0e
|
[backend]尝试在寄存器分配逻辑中区分调用者保存、被调用者保存寄存器
|
2025-07-26 21:45:01 +08:00 |
|
Lixuanwang
|
540742be0c
|
[backend]添加了一个Pass,将调用者、被调用者寄存器实现转移到其中
|
2025-07-26 18:38:04 +08:00 |
|
Lixuanwang
|
8ae7478ef3
|
Merge branch 'midend' into backend
|
2025-07-26 17:36:23 +08:00 |
|
Lixuanwang
|
a616ec085e
|
[midend][backend]补全了符合RV64调用约定的寄存器着色规则
|
2025-07-26 17:35:08 +08:00 |
|
Lixuanwang
|
3df9b3bb06
|
Merge remote-tracking branch 'origin/midend-mem2reg' into midend
|
2025-07-26 12:41:43 +08:00 |
|
Lixuanwang
|
e57ac7709d
|
[backend]开始区分调用者保存寄存器与被调用者保存寄存器
|
2025-07-26 12:39:17 +08:00 |
|
rain2133
|
2643eb1edd
|
[midend-mem2reg]修改函数参数定义引入argument类,显示为参数创建alloca和store指令
|
2025-07-26 12:30:03 +08:00 |
|
Lixuanwang
|
14fb3dbe48
|
[midend][backend-GEP]解决了一个32/64位宽的错误问题
|
2025-07-25 22:23:26 +08:00 |
|
rain2133
|
04c5c6b44d
|
[midend-mem2reg]修复assignstmt对lvalue的错误解析(lvaue会被exp解释为值,而被assign解释为地址)
|
2025-07-25 20:00:41 +08:00 |
|
rain2133
|
e2c97fd171
|
[miden]DCE引入ctx避免重复运行遍导致的状态污染。修复天然活跃判断条件
|
2025-07-25 16:33:18 +08:00 |
|
rain2133
|
12f63a0bf5
|
[midend]解决标签重名问题
|
2025-07-25 12:35:35 +08:00 |
|
Lixuanwang
|
d50912ee4c
|
[midend]后端适配GEP
|
2025-07-25 12:00:47 +08:00 |
|
rain2133
|
1e6f6ed711
|
[midend] GEP类型推断函数getIndexedType逻辑修复,增加数组type缓存池避免相同type ==操作返回假,修复实参形参类型转换判断逻辑,starttime stoptime提供支持(待后端测试)
|
2025-07-25 03:26:10 +08:00 |
|
rain2133
|
96c6b0ab6e
|
[midend]修复函数参数为数组指针的退化问题,能够正确区分局部变量和函数参数并生成正确的GEP指令
|
2025-07-25 01:53:49 +08:00 |
|
rain2133
|
9c56bc1310
|
[midend]修改GEP指令定义,更靠近llvm ir设计,增加自动推断类型函数,修复generator中错误生成ir的逻辑
|
2025-07-24 17:02:29 +08:00 |
|
rain2133
|
2556ab7315
|
[midend]修复getanalysisusagee缺失定义,修复数组初始化错误
|
2025-07-24 15:04:29 +08:00 |
|
rain2133
|
4b9d067c12
|
[midend]部分DCE遍实现(传播活跃代码),修改优化遍运行逻辑,TODO:完善优化遍的getAnalysisUsage,删除无用代码
|
2025-07-24 14:36:33 +08:00 |
|
Lixuanwang
|
f4d231b989
|
[midend]添加了后端中对GEP指令的支持
|
2025-07-24 00:39:11 +08:00 |
|
Lixuanwang
|
56b376914b
|
Merge branch 'backend' into midend
|
2025-07-23 19:30:19 +08:00 |
|
rain2133
|
87d38be255
|
[midend]更新遍静态ID定义方法,
注册遍模板函数重构(针对遍的不同构造方法),
修复phi指令更新引起的旧代码错误,
将CFG优化适配到现有终端框架中,
独立CFG优化方法使得其他优化遍能独立调用,
usedelete方法回调取消删除功能。
IRGenerator代码风格修改。
|
2025-07-23 17:19:11 +08:00 |
|
Lixuanwang
|
2040670f8c
|
[backend]添加了DAG图打印函数;为分支指令引入了延迟物化;添加了函数参数溢出到栈的处理逻辑
|
2025-07-22 22:50:25 +08:00 |
|
rain2133
|
3df3d7a097
|
[midend]通过编译,TODO:验证正确性
|
2025-07-22 22:38:47 +08:00 |
|
rain2133
|
f61b51b2fa
|
[midend]优化中端框架,移除无用旧代码,ignore格式文件
|
2025-07-22 21:25:07 +08:00 |
|
Lixuanwang
|
bbfbf96b5e
|
[backend]解决了重构后数组初始化不正确的问题
|
2025-07-21 16:27:47 +08:00 |
|
rain2133
|
a72fc541fb
|
[midend]活跃变量分析,CFG优化遍重写。还未跑通,暂存
|
2025-07-21 15:20:46 +08:00 |
|
rain2133
|
550f4017be
|
[midend]重构中端,建立遍管理器,注册器等,初步构建支配树分析遍,增加基本块方法
|
2025-07-21 15:19:38 +08:00 |
|
rain2133
|
88604c1f94
|
[IR]消除Falltrhough现象
[IR]优化生成Ret指令逻辑
[README]添加TODO表
|
2025-07-20 18:23:48 +08:00 |
|
rain2133
|
de696b2b53
|
[IR]重构数组地址相关指令
增加GEP指令以及相关方法
新增数组Array Type
删除无用指令(GetSubArray,LA)
删除冗余类定义(Lval)
修复中间代码生成逻辑
测试通过所以test目录下的文件
TODO:后端展开数组计算地址仅需要针对GEP指令展开
|
2025-07-20 15:33:58 +08:00 |
|
rain2133
|
18e7cbd413
|
Merge branch 'backend' into SCCP
|
2025-07-20 13:00:15 +08:00 |
|
Lixuanwang
|
80dee78f04
|
[backend]引入后端pass管理器
|
2025-07-20 12:45:52 +08:00 |
|
Lixuanwang
|
d7fb017550
|
Merge branch 'backend-llir' into backend
|
2025-07-19 18:00:42 +08:00 |
|
Lixuanwang
|
9528335a04
|
[backend-llir]修复了许多重构的bug
|
2025-07-19 17:50:14 +08:00 |
|
Lixuanwang
|
d4a6996d74
|
[backend]重构了后端
|
2025-07-19 16:06:35 +08:00 |
|
rain2133
|
36cfd2f64d
|
先将SCCP中重构IR的部分移植到backend
|
2025-07-19 15:00:04 +08:00 |
|
Lixuanwang
|
75e61bf274
|
[backend-llir]引入了LLIR定义
|
2025-07-19 14:29:57 +08:00 |
|
rain2133
|
8f1e477e73
|
暂存
|
2025-07-19 14:23:57 +08:00 |
|
Lixuanwang
|
c8308047df
|
[backend]引入了Memset指令在后端的展开
|
2025-07-19 13:52:09 +08:00 |
|
rain2133
|
10b011a1de
|
[fix]修复部分常量构建,[Pass]建立Pass基类和管理器,预重构优化遍结构
|
2025-07-18 21:28:36 +08:00 |
|
Lixuanwang
|
3657c08644
|
[backend]引入新的活跃性分析
|
2025-07-18 20:24:47 +08:00 |
|
rain2133
|
34b5a93aaf
|
[Mem2Reg]重构SSA提升
|
2025-07-18 18:17:45 +08:00 |
|
rain2133
|
a5d97185e1
|
[IR]修复IR报错,调整结构。
|
2025-07-18 18:17:22 +08:00 |
|
rain2133
|
fdc946c1b5
|
[IR]重构常量定义,引入undefvalue定义,修改常量方法使用尽量适配旧版
|
2025-07-18 16:40:16 +08:00 |
|
Lixuanwang
|
be8ca144d0
|
[backend]引入了新的pass,负责消除数组复杂地址访问
|
2025-07-18 00:10:10 +08:00 |
|
rain2133
|
725da2858d
|
[IR]指令构造器更新
|
2025-07-17 21:34:19 +08:00 |
|
rain2133
|
631ef80de2
|
[IR]phi指令重构,将block信息加入并提供新方法,后续需更改phi相关指令构建逻辑
|
2025-07-17 19:01:02 +08:00 |
|
rain2133
|
77fae4d662
|
[CFG]增加分支优化,为SCCP调用做铺垫,预备修改phi定义
|
2025-07-17 16:50:09 +08:00 |
|