Commit Graph

199 Commits

Author SHA1 Message Date
4b9d067c12 [midend]部分DCE遍实现(传播活跃代码),修改优化遍运行逻辑,TODO:完善优化遍的getAnalysisUsage,删除无用代码 2025-07-24 14:36:33 +08:00
f4d231b989 [midend]添加了后端中对GEP指令的支持 2025-07-24 00:39:11 +08:00
56b376914b Merge branch 'backend' into midend 2025-07-23 19:30:19 +08:00
2157cf6aa6 [midend]修复了一个Pass相关的编译错误 2025-07-23 19:12:04 +08:00
0e492cd6d7 [backend]修复了函数序言的根本性错误 2025-07-23 18:43:40 +08:00
87d38be255 [midend]更新遍静态ID定义方法,
注册遍模板函数重构(针对遍的不同构造方法),
修复phi指令更新引起的旧代码错误,
将CFG优化适配到现有终端框架中,
独立CFG优化方法使得其他优化遍能独立调用,
usedelete方法回调取消删除功能。
IRGenerator代码风格修改。
2025-07-23 17:19:11 +08:00
2040670f8c [backend]添加了DAG图打印函数;为分支指令引入了延迟物化;添加了函数参数溢出到栈的处理逻辑 2025-07-22 22:50:25 +08:00
3df3d7a097 [midend]通过编译,TODO:验证正确性 2025-07-22 22:38:47 +08:00
b20bda2f52 [backend]引入了栈上的20字节安全区 2025-07-22 21:36:22 +08:00
f61b51b2fa [midend]优化中端框架,移除无用旧代码,ignore格式文件 2025-07-22 21:25:07 +08:00
20a5c5cbfb [backend]增加了一个在虚拟机内部单文件调试的脚本 2025-07-22 02:25:30 +08:00
cf88ca77cb [backend]修复了一个全局数组地址的计算问题 2025-07-22 00:16:37 +08:00
fd6fe22020 [backend]增加了对全局数组的访存地址展开 2025-07-22 00:11:42 +08:00
e8fe710c26 [backend]更新了测试脚本,限制最大打印行数,避免糟蹋终端输出 2025-07-22 00:09:41 +08:00
9c87cb397b [backend]解决了非零数组初始化不正确的问题 2025-07-22 00:07:54 +08:00
c45938d41d Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend 2025-07-21 17:49:09 +08:00
3baccbc03a [backend]解决了测试程序可能的挂起问题,引入了用于单个用例测试的新脚本 2025-07-21 17:49:06 +08:00
24d8e730f1 [backend]更新了测试脚本,减少测试进程卡死情况 2025-07-21 17:36:22 +08:00
bbfbf96b5e [backend]解决了重构后数组初始化不正确的问题 2025-07-21 16:27:47 +08:00
a72fc541fb [midend]活跃变量分析,CFG优化遍重写。还未跑通,暂存 2025-07-21 15:20:46 +08:00
550f4017be [midend]重构中端,建立遍管理器,注册器等,初步构建支配树分析遍,增加基本块方法 2025-07-21 15:19:38 +08:00
f7e811b756 [backend]解决了标签打印问题 2025-07-21 14:44:48 +08:00
88604c1f94 [IR]消除Falltrhough现象
[IR]优化生成Ret指令逻辑
[README]添加TODO表
2025-07-20 18:23:48 +08:00
de696b2b53 [IR]重构数组地址相关指令
增加GEP指令以及相关方法
新增数组Array Type
删除无用指令(GetSubArray,LA)
删除冗余类定义(Lval)
修复中间代码生成逻辑
测试通过所以test目录下的文件
TODO:后端展开数组计算地址仅需要针对GEP指令展开
2025-07-20 15:33:58 +08:00
18e7cbd413 Merge branch 'backend' into SCCP 2025-07-20 13:00:15 +08:00
20cd16bf52 暂存2 2025-07-20 12:54:19 +08:00
80dee78f04 [backend]引入后端pass管理器 2025-07-20 12:45:52 +08:00
d7fb017550 Merge branch 'backend-llir' into backend 2025-07-19 18:00:42 +08:00
c4b18a70db [backend]准备合并backend-llir 2025-07-19 17:59:45 +08:00
9528335a04 [backend-llir]修复了许多重构的bug 2025-07-19 17:50:14 +08:00
0d5748e9c5 [IR]修复初始化数组指令的逻辑,更新IR常量定义。 2025-07-19 16:18:05 +08:00
d4a6996d74 [backend]重构了后端 2025-07-19 16:06:35 +08:00
36cfd2f64d 先将SCCP中重构IR的部分移植到backend 2025-07-19 15:00:04 +08:00
75e61bf274 [backend-llir]引入了LLIR定义 2025-07-19 14:29:57 +08:00
8f1e477e73 暂存 2025-07-19 14:23:57 +08:00
c8308047df [backend]引入了Memset指令在后端的展开 2025-07-19 13:52:09 +08:00
86d1de6696 [backend]向脚本添加了打印不通过测例的功能 2025-07-19 12:00:02 +08:00
69d27f058d [backend]将testdata/下的测例替换为了赛方测试用例,更新了测试脚本 2025-07-19 01:44:37 +08:00
6335abe806 [backend]修复了引入常量重质化后全局常量加载指令的缺失问题 2025-07-19 00:46:46 +08:00
6ed5965b29 [backend]数组访存问题基本修复 2025-07-19 00:32:47 +08:00
0f26be3586 [backend]添加了对主函数中新引入的调试信息打印的控制,修改了测试脚本为云平台测试的参数,调整了73_int_io测例的输入文件的格式 2025-07-18 22:50:06 +08:00
d38ec13cbd [backend]修复了函数调用参数为常数时,参数传递有误的bug 2025-07-18 21:54:24 +08:00
10b011a1de [fix]修复部分常量构建,[Pass]建立Pass基类和管理器,预重构优化遍结构 2025-07-18 21:28:36 +08:00
e8660120cc [backend]删除了后端对数组访存的地址展开,因为已经在IR中实现 2025-07-18 20:48:59 +08:00
3657c08644 [backend]引入新的活跃性分析 2025-07-18 20:24:47 +08:00
1bcb5eba2a [backend]去除了错误的寄存器分配机制 2025-07-18 18:50:21 +08:00
fc62446b40 Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend 2025-07-18 18:48:44 +08:00
fedb4b0a9f [backend]修复了栈分配空间大小不考虑数组的错误 2025-07-18 18:48:38 +08:00
4bf4c98787 [backend]修复了栈分配空间大小不考虑数组的错误 2025-07-18 18:44:13 +08:00
34b5a93aaf [Mem2Reg]重构SSA提升 2025-07-18 18:17:45 +08:00