Commit Graph

285 Commits

Author SHA1 Message Date
8fe9867f33 [backend-IRC]修复了keepalive伪指令处理缺失的问题 2025-08-01 12:15:03 +08:00
166d0fc372 [backend-IRC]修复了栈传递参数逻辑 2025-08-01 05:21:37 +08:00
873dbf64d0 [backend-IRC]基本构建了IRC 2025-08-01 04:44:13 +08:00
f387aecc03 [backend-IRC]进一步构建寄存器分配逻辑 2025-08-01 02:47:40 +08:00
03e88eee70 [backend-IRC]初步构建新的寄存器分配器 2025-07-31 23:02:53 +08:00
e8699d6d25 [backend]更新脚本和库以支持性能测试用例 2025-07-31 16:42:41 +08:00
0727d5a6d8 Merge commit 'fc7afdbb359e71e799ea50ac71ac21ce233aeaac' into backend 2025-07-31 15:01:06 +08:00
fc7afdbb35 [midend]修复错误的RelExp类型转换 2025-07-31 13:55:59 +08:00
bfe2b248cd Merge branch 'backend-float' into backend 2025-07-31 12:16:11 +08:00
6d60522ce2 Merge branch 'midend' into backend-float 2025-07-31 12:14:38 +08:00
807fb3f560 [backend]微优化与可读性维护不影响原逻辑和分数 2025-07-31 11:23:17 +08:00
82288464c3 [midend]修复常量变量的声明逻辑同变量声明,重构表达式生成逻辑(将中缀表达式转换为后缀表达式判断类型提升后再进行统一类型转换和计算)。运行脚本通过率[117/140]。 2025-07-31 02:47:39 +08:00
7e8b90ffd4 [midend]修改全局变量,全局常量类,提供维度访问方法,消除维度信息(记录在Type中),createItoFInst命名修复,增加打印全局常量。 2025-07-31 02:45:40 +08:00
b3cf3cba29 [backend]修复了多参数传递的错误 2025-07-30 22:16:37 +08:00
03b62b138f [backend]修复了一个栈管理问题 2025-07-30 20:40:56 +08:00
8e94f89931 Merge branch 'midend' into backend 2025-07-30 18:27:42 +08:00
b388dc4542 Merge branch 'backend-float' into backend 2025-07-30 18:26:06 +08:00
48b0aec6c3 [midend][backend]修复了全局常量数组的访问错误 2025-07-30 18:23:56 +08:00
1fb5cd398d [backend]修复了多参数传递的问题 2025-07-30 17:58:39 +08:00
877a0f5dc2 [backend-float]修复部分问题 2025-07-30 16:00:02 +08:00
a3c4d5a2b8 [Optimize]对PreRA指令调度进行优化 2025-07-30 15:27:23 +08:00
39c13c46ec Merge branch 'midend' into backend-float 2025-07-30 15:10:38 +08:00
dd38bdc133 [backend]引入浮点数支持,但目前寄存器分配存在问题 2025-07-30 15:07:29 +08:00
38bee5d5ac [midend]IRPrinter增加了打印全局常量的功能 2025-07-30 14:46:28 +08:00
98511efd91 [midend]修改constdecl的逻辑区分局部常量和全局常量声明逻辑,提供方法访问全局变量,常量的维度信息,修改GlobalValue,ConstantVariable的继承父类(User->Value)维度信息保存在Type中。 2025-07-30 14:40:10 +08:00
507096a0f6 Merge branch 'midend' of gitee.com:lixuanwang/mysysy into midend 2025-07-30 11:31:46 +08:00
7f2e501cea [backend]修复了指令选择不支持ConstantVariable操作数的bug 2025-07-30 11:31:37 +08:00
860ebcd447 [Optimize]对PostRA指令调度进行容器/算法/缓存优化 2025-07-30 10:28:06 +08:00
31b6711d74 [midend]IR修改常量类getint和getfloat逻辑,如果类型和方法不一致那么应用强制转换返回转换后的值 2025-07-29 23:52:37 +08:00
42dce9820b Merge branch 'midend' into backend 2025-07-29 21:31:04 +08:00
09ae47924e [midend]重构了src目录 2025-07-29 21:30:30 +08:00
f5922d0178 [midend]修改类型转换判断的逻辑 2025-07-29 20:23:25 +08:00
63906d0648 [midend]修复82样例生成IR的错误(未正确初始化全局数组常量和数组常量的Type计算) 2025-07-29 19:35:39 +08:00
6ba05e0d8c [PreRA_Scheduler]添加寄存器分配前的指令调度优化 2025-07-29 17:00:27 +08:00
e4fd16e36a Merge branch 'backend' into midend 2025-07-29 16:37:11 +08:00
32bdc17dc3 [backend]调整了后端pass的顺序 2025-07-29 16:15:01 +08:00
8deb4ed076 [backend]添加了2个新的pass,用于解决大立即数加载问题 2025-07-29 15:48:37 +08:00
37e99e37a3 Merge branch 'midend-mem2reg' into midend 2025-07-29 15:48:34 +08:00
8e69992b29 [midend-mem2reg]增加说明 2025-07-29 15:47:51 +08:00
15fe69187a [midend-mem2reg]目前reg2mem仅将函数参数和phi指令及其对应指令进行reg2mem,旨在消除phi指令。 2025-07-29 15:30:28 +08:00
fff19ca1ea [midend-mem2reg]Reg2Mem建立完成runit测试127/140,reg2mem基本思路:函数参数默认降级到内存,有结果的指令被降级的内存 2025-07-29 14:34:16 +08:00
4a329eeaf2 [midend]修复return指令exp为空的判断条件错误 2025-07-29 12:16:46 +08:00
3dc4b28c92 [midend-mem2reg]dom增加访问支配树子节点求解和访问方法,修复block打印,phi指令命名,TODO:reg2membug待修复 2025-07-29 03:25:56 +08:00
202e6d7cd8 [midend-mem2reg]增加遍打印方法,修复reg2mem构造函数错误 2025-07-29 02:11:10 +08:00
3e4cac089e [midend-reg2mem]增加reg2mem遍,应用未定义值,增加inst迭代器查找方法,通过编译且脚本运行通过率不变 2025-07-29 02:01:48 +08:00
76d7b14b2e [backend]更新了测试脚本,现在的测试更准确 2025-07-29 01:04:43 +08:00
9ba08126fb Merge branch 'peephole' into backend 2025-07-28 23:46:34 +08:00
875100ec01 [backend]为单次运行脚本添加了clean参数 2025-07-28 23:41:36 +08:00
b0cecca081 Merge branch 'backend-rec' into backend 2025-07-28 23:40:58 +08:00
434bcea98e [PostRA_Scheduler]修复了超大测例卡死的bug 2025-07-28 23:17:26 +08:00