Commit Graph

46 Commits

Author SHA1 Message Date
Lixuanwang
1ab937961f [backend-O1]修复后端在-O1情况下存在的大量bug 2025-08-19 14:09:08 +08:00
rain2133
ea944f6ba0 [midend-Loop-InductionVarStrengthReduction]增加循环规约变量强度削弱优化 2025-08-13 01:13:01 +08:00
Lixuanwang
c507b98199 [midend-llvmprint]更新脚本,支持-eir执行IR测试 2025-08-07 23:45:26 +08:00
rain2133
8aa5ba692f [midend]初步修复内存泄漏问题(仍然剩余11处) 2025-08-07 01:34:00 +08:00
rain2133
37f2a01783 [midend-llvmirprint]修复了gep指令对不含维度信息的数组指针的处理逻辑,修复若干打印bug,在-s ir/ird -o <llvmir.ll file>的参数下最终会打印ir到file中,优化过程中的打印逻辑待更改。 2025-08-06 15:28:54 +08:00
Lixuanwang
f8e423f579 合并backend、backend-IRC到midend 2025-08-03 15:18:52 +08:00
Lixuanwang
09ae47924e [midend]重构了src目录 2025-07-29 21:30:30 +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
rain2133
f61b51b2fa [midend]优化中端框架,移除无用旧代码,ignore格式文件 2025-07-22 21:25:07 +08:00
Lixuanwang
bbfbf96b5e [backend]解决了重构后数组初始化不正确的问题 2025-07-21 16:27:47 +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
c4b18a70db [backend]准备合并backend-llir 2025-07-19 17:59:45 +08:00
rain2133
0d5748e9c5 [IR]修复初始化数组指令的逻辑,更新IR常量定义。 2025-07-19 16:18:05 +08:00
Lixuanwang
0f26be3586 [backend]添加了对主函数中新引入的调试信息打印的控制,修改了测试脚本为云平台测试的参数,调整了73_int_io测例的输入文件的格式 2025-07-18 22:50:06 +08:00
Lixuanwang
be8ca144d0 [backend]引入了新的pass,负责消除数组复杂地址访问 2025-07-18 00:10:10 +08:00
rain2133
00348c1931 修改CFG优化的文件名,修改phidel标签 2025-07-16 22:01:37 +08:00
Lixuanwang
20acdc910d 修复了引入的部分bug 2025-07-16 17:40:07 +08:00
LixuanWang
8c80b732f3 [deploy]修正了本地不能通过编译的bug,大幅修改了主函数,使之支持云平台测试参数 2025-07-16 11:18:43 +08:00
Lixuanwang
a509dabbf0 [backend]解决了数组访存地址计算问题,加入了参数控制的中端、后端调试选项 2025-07-15 11:32:53 +08:00
Lixuanwang
44fb098aff Merge branch 'DCE' into backend 2025-06-25 16:04:42 +08:00
rain2133
0d23475aa1 [死代码删除]:保证扩展性、模块化构建死代码删除,包括消除无用store,alloca,load,globalval,mem2reg引入的无用alloca以及reg2mem导致的store-load-store冗余存储 2025-06-25 15:33:25 +08:00
Lixuanwang
c8587a6d0b [backend] introduced riscv64 2025-06-25 14:37:46 +08:00
rain2133
050113d31d 增加Reg2Mem,但是会生成死存储指令,需要死代码删除支持识别死存储指令 2025-06-25 13:17:16 +08:00
rain2133
bd0b624e87 debugging 2025-06-25 02:22:16 +08:00
Lixuanwang
20cc08708a [backend] introduced debug option 2025-06-24 02:56:17 +08:00
Lixuanwang
942cb32976 [backend] fixed bugs 2025-06-24 00:42:14 +08:00
Lixuanwang
ac7569d890 Merge branch 'IROptPre' into backend 2025-06-24 00:40:36 +08:00
rain2133
10b43fc90d 修复若干bug 2025-06-23 17:04:45 +08:00
ladev789
10e1476ba1 [backend] test01 passed 2025-06-22 20:05:34 +08:00
rain2133
496e2abfb6 构建IR打印器,llvm风格,跑通大部分样例(9/10),待修复 2025-06-22 17:59:19 +08:00
lixuanwang
4711fb603b fixed bugs brought out by merging 2025-06-22 14:39:38 +08:00
lixuanwang
dda8bbe444 Merge branch 'array_add' 2025-06-22 14:24:00 +08:00
rain2133
d90330af3f add Utils::initExternalFunction 2025-06-22 14:14:02 +08:00
ladev789
25a8c72a9b [backend] it works 1.0 2025-06-22 14:06:14 +08:00
rain2133
4828c18f96 前端基本构建完毕,build前端部分无报错,argument类删除后端报错,llvmIR输出待完成 2025-06-22 00:25:43 +08:00
lixuanwang
232ed6d023 [backend] introduced rv32 backend 2025-06-21 17:26:50 +08:00
rain2133
ba5f2a0620 删除格式化功能 2025-06-21 15:40:00 +08:00
Lixuanwang
df209f976e fixed bugs brought out by merging 2025-05-30 02:13:17 +08:00
Lixuanwang
969c83125d Merge branch 'lab2-IRGen' 2025-05-30 02:06:43 +08:00
ladev789
1c799bd04f merging 2025-05-29 19:25:46 +08:00
lixuanwang
bb73ce3b5a merging branch lab2-IRGen into master 2025-05-28 23:49:02 +08:00
Lixuanwang
b0b03ff55b [lab2] runnable 2025-03-10 16:50:18 +08:00
rain2133
6f51e76804 Commit for experimental 1 2025-03-04 10:03:07 +08:00
Lixuanwang
cc523fd30b Initial commit from sysy-main 2025-02-27 23:14:53 +08:00