Commit Graph

331 Commits

Author SHA1 Message Date
Lixuanwang
1b9a7a4827 [backend]修复了函数序言处理错误且与尾声栈不匹配的bug 2025-08-04 01:57:34 +08:00
b2c2f3289d [backend]修改了编译器后端 RISCv64ISel.cpp,在 kFtoI 的处理逻辑中,用一段指令序列模拟了正确的“向零取整”行为。95 h35 h37 h38通过。 2025-08-04 01:35:26 +08:00
0ecd47f0ac 修复IR打印器中浮点比较指令的类型错误,确保生成正确的LLVM IR代码 2025-08-04 01:35:26 +08:00
Lixuanwang
c8a8bf9a37 [backend]修复了溢出位置错误的问题 2025-08-03 23:28:38 +08:00
Lixuanwang
e4ad23a1a5 [backend]修复了寄存器分配器在处理全物理寄存器操作数时的bug 2025-08-03 18:37:08 +08:00
Lixuanwang
ec91a4e259 [backend]更新脚本,现在会拷贝.sy文件到tmp目录 2025-08-03 17:26:09 +08:00
Lixuanwang
92c89f7616 [midend]修正了脚本错误 2025-08-03 17:12:39 +08:00
Lixuanwang
66047dc6a3 Merge branch 'buildcfg' into midend 2025-08-03 16:40:48 +08:00
rain2133
22cf18a1d6 [midend-BuildCFG]修复逻辑 2025-08-03 16:14:31 +08:00
Lixuanwang
19a433c94f [midend]为脚本添加了-O1参数,支持测试性能 2025-08-03 15:41:29 +08:00
Lixuanwang
45dfbc8d59 Merge branch 'backend' into midend 2025-08-03 15:25:51 +08:00
Lixuanwang
f8e423f579 合并backend、backend-IRC到midend 2025-08-03 15:18:52 +08:00
Lixuanwang
5b43f208ac Merge branch 'backend-divopt' into midend 2025-08-03 14:53:22 +08:00
Lixuanwang
845f969c2e [backend-IRC]修复了现场管理与溢出处理的栈偏移量错误问题 2025-08-03 14:42:19 +08:00
9c5d9ea78c [optimize]删除多余测试文件 2025-08-03 14:38:27 +08:00
0ce742a86e [optimize]添加更为通用的除法强度削减Pass, 不受除数限制替换div指令,不影响当前分数 2025-08-03 14:37:33 +08:00
f312792fe9 [optimze]添加基础的除法指令优化,目前只对除以2的幂数生效 2025-08-03 13:46:42 +08:00
rain2133
32ea24df56 [midend]修复entryBB和funcBodyEntry的初始化,Dom计算引进逆后续遍历和LT算法,Pass先默认关掉CFGOpt 2025-08-03 00:51:49 +08:00
歪比歪比
a1cf60c420 [midend-BuildCFG]新增BuildCFG优化通道,实现控制流图的构建与分析 2025-08-02 22:48:21 +08:00
Lixuanwang
f879a0f521 [midend]修复了后端不适配中端全局变量定义的问题 2025-08-02 22:06:37 +08:00
Lixuanwang
004ef82488 [backend-IRC]修复了后端不适配中端全局变量定义的问题 2025-08-02 15:10:19 +08:00
Lixuanwang
8f1d592d4e Merge branch 'midend' into backend-IRC 2025-08-02 12:47:27 +08:00
Lixuanwang
537533ee43 Merge branch 'midend' into backend-IRC 2025-08-02 12:43:18 +08:00
rain2133
bfe218be07 [midend]非全0初始化数组情况下,检查0初始值个数,超过阈值(目前为16)则生成menset减少大量store操作 2025-08-02 02:33:25 +08:00
Lixuanwang
384f7c548b [backend-IRC]添加了三级调试打印逻辑 2025-08-01 23:18:53 +08:00
Lixuanwang
57fe17dc21 [backend-IRC]为虚拟寄存器与物理寄存器之间添加冲突 2025-08-01 21:20:04 +08:00
rain2133
e48cddab9f [midend]修复多维数组维度信息的计算值(理论上计算结果一定是常量),TODO:修复类似问题 2025-08-01 19:19:05 +08:00
rain2133
aef10b48e8 [midend]删除前驱后继移除时不存在的检查,phi增加llvm风格接口,重构CFGOpt特别是空块删除的逻辑(待验证) 2025-08-01 18:34:43 +08:00
Lixuanwang
373726b02f [backend-IRC]修复了极其隐蔽的寄存器分配问题 2025-08-01 17:29:18 +08:00
rain2133
a0b69f20fb [midend]合并了SCCP和backend,修复了支配树的错误求解,修复了Mem2Reg的重命名alloca的栈管理 2025-08-01 15:18:33 +08:00
rain2133
999f2c6615 Merge remote-tracking branch 'origin/backend' into midend 2025-08-01 14:06:20 +08:00
rain2133
1eedb55ca0 Merge branch 'midend-SCCP' into midend 2025-08-01 14:02:14 +08:00
Lixuanwang
8fe9867f33 [backend-IRC]修复了keepalive伪指令处理缺失的问题 2025-08-01 12:15:03 +08:00
Lixuanwang
166d0fc372 [backend-IRC]修复了栈传递参数逻辑 2025-08-01 05:21:37 +08:00
Lixuanwang
873dbf64d0 [backend-IRC]基本构建了IRC 2025-08-01 04:44:13 +08:00
Lixuanwang
f387aecc03 [backend-IRC]进一步构建寄存器分配逻辑 2025-08-01 02:47:40 +08:00
rain2133
c268191826 [midend-SCCP]修改BaiscBlock的析构逻辑,将CFG修改的职责交给优化遍,注释Mem2Reg的调试信息。 2025-08-01 01:44:33 +08:00
Lixuanwang
03e88eee70 [backend-IRC]初步构建新的寄存器分配器 2025-07-31 23:02:53 +08:00
rain2133
0f1fcc835d [midend-SCCP]删除User的析构函数,usedelete增加逻辑通知inst所使用的value移除对应的use关系(一般在这之前会替换使用inst的uses为其他值),TODO:仍然存在bug需要调试 2025-07-31 22:32:04 +08:00
rain2133
c5af4f1c49 [midend-SCCP]bug修复,增加不可达指令(理论来说后端不会出现这条指令,只是为了IR完整性添加),添加相关方法,phi指令方法修复;目前能够跑完所有优化,但是User的析构函数重定义导致全局析构不能正确完成,需要修复 2025-07-31 22:03:35 +08:00
rain2133
9a53e1b917 [midend]适应上一次commit修改已有优化遍中相关指令删除的代码 2025-07-31 21:10:59 +08:00
rain2133
ef09bc70d4 [midend]修改了removeinst方法,应对不同的使用情况,增加user析构函数使得user对象销毁顺带销毁其use关系销毁,重构usedelete方法封装指令删除和use关系删除 2025-07-31 21:10:20 +08:00
rain2133
aed4577490 [midend]同上,删除了打印函数对维度信息的错误访问 2025-07-31 19:57:19 +08:00
rain2133
35b421b60b [midend]修改原因同上一次commit 2025-07-31 19:38:43 +08:00
rain2133
f3f603a032 [midend]消除冗余维度信息记录,适配IR生成器,TODO:其他优化遍生成指令修改,或者后端的访问 2025-07-31 19:36:39 +08:00
rain2133
de0f8422e9 [midend-SCCP]没有编译报错但是Segmemtation falut 2025-07-31 17:29:34 +08:00
rain2133
35691ab7bc [midend-SCCP]为跳转指令增加getSuccessors方法 2025-07-31 17:19:57 +08:00
rain2133
61768fa180 [midend-SCCP]头文件构架完毕,cpp文件部分报错暂时不commit 2025-07-31 17:00:02 +08:00
rain2133
520ebd96f0 [midend-SCCP]增加不可达指令,修改跳转指令参数(基本块args已弃用默认为{}) 2025-07-31 16:59:22 +08:00
rain2133
6868f638d7 [midend-SCCP]增加基本块对的哈希值计算方法,增加删除use关系和指令的函数 2025-07-31 16:57:47 +08:00