Commit Graph

38 Commits

Author SHA1 Message Date
rain2133
87d38be255 [midend]更新遍静态ID定义方法,
注册遍模板函数重构(针对遍的不同构造方法),
修复phi指令更新引起的旧代码错误,
将CFG优化适配到现有终端框架中,
独立CFG优化方法使得其他优化遍能独立调用,
usedelete方法回调取消删除功能。
IRGenerator代码风格修改。
2025-07-23 17:19:11 +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
20cd16bf52 暂存2 2025-07-20 12:54:19 +08:00
rain2133
fdc946c1b5 [IR]重构常量定义,引入undefvalue定义,修改常量方法使用尽量适配旧版 2025-07-18 16:40:16 +08:00
rain2133
ede6465e8c [IR]:增加默认添加ret指令逻辑 2025-07-15 12:53:03 +08:00
Lixuanwang
44fb098aff Merge branch 'DCE' into backend 2025-06-25 16:04:42 +08:00
rain2133
4c9c25aadc 修复break,continue的IR生成 2025-06-25 14:15:54 +08:00
rain2133
4fabcc9952 mem2reg流程基本跑通,修复phi函数打印,需要删除调试print 2025-06-25 12:23:59 +08:00
rain2133
24913641f2 [backend] fix bugs of not 2025-06-25 02:24:45 +08:00
rain2133
9d8930f5df fix % repeat in IR print 2025-06-23 00:22:15 +08:00
rain2133
3da2f3ec80 修复函数类型判断,终端跑通所有测试代码。Printer格式需要修复 2025-06-22 18:40:33 +08:00
rain2133
d90330af3f add Utils::initExternalFunction 2025-06-22 14:14:02 +08:00
rain2133
4828c18f96 前端基本构建完毕,build前端部分无报错,argument类删除后端报错,llvmIR输出待完成 2025-06-22 00:25:43 +08:00
rain2133
0a04c816cf 更新IR,.g4修改 2025-06-21 18:06:29 +08:00
rain2133
3ed1c7fecd 更改前置声明,IR生成更新 2025-06-21 16:39:13 +08:00
rain2133
8109d44232 工具类方法部分实现,实现部分IR生成 2025-06-21 14:33:56 +08:00
rain2133
c54543bff3 更新目录结构,修改IR结构,部分修复IR生成 2025-06-20 22:46:04 +08:00
rain2133
1de8c0e7d7 引入了常量池优化,修改constvalue类并对IR生成修复,能够编译通过 2025-06-19 00:18:58 +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
lixuanwang
dc7202849c [lab3] add middle-end and backend with bugs to fix 2025-05-26 23:17:31 +08:00
ladev789
ec8deeeebf [lab2][night release]temporary stable version 0.1 2025-04-02 18:40:01 +08:00
ladev789
9f562aa0be [lab2]implemented while, break, continue 2025-04-01 17:50:17 +08:00
ladev789
9d619b11d7 [lab2]checkopint with "while, continue, break" not implemented 2025-03-31 20:46:04 +08:00
ladev789
dfa396b06f [lab2]now 01_add.ll generated by sysy can be compiled to executable by clang 2025-03-31 03:54:39 +08:00
Downright
f74d319399 pass test 11_add2 2025-03-26 11:44:34 +08:00
Downright
9bea0879e0 pass test1,but test2 segmentation fault 2025-03-26 11:39:22 +08:00
ladev789
8a743a0036 [lab2]add a TODO table 2025-03-24 21:18:40 +08:00
Downright
7f364abffb frame finished but bad_any_cast 2025-03-24 19:06:49 +08:00
ladev789
5567f82783 [lab2]修复了标签冗余错误,以及一些其他bug 2025-03-22 22:33:00 +08:00
Lixuanwang
ed44877164 [lab2]some bugs fixed 2025-03-19 20:59:50 +08:00
Downright
d4d7e6494b exp2 first commit 2025-03-19 19:06:14 +08:00
Lixuanwang
57ccf6f0e3 [lab2]bugs fixed,but more bugs rised up 2025-03-12 16:11:06 +08:00
Lixuanwang
3d60a94894 [lab2] testfile01 finished 2025-03-10 21:43:20 +08:00
Lixuanwang
b0b03ff55b [lab2] runnable 2025-03-10 16:50:18 +08:00
Downright
51ed88f761 fix format bug for elsestme and stmt def in .g4 2025-03-05 13:43:27 +08:00
Lixuanwang
cc523fd30b Initial commit from sysy-main 2025-02-27 23:14:53 +08:00