Lixuanwang
|
01f16faa07
|
Merge branch 'backend' into deploy-20250820-3
|
2025-08-20 16:12:27 +08:00 |
|
lixuanwang
|
dcf3d29ecc
|
[deploy]O1
|
2025-08-20 15:59:22 +08:00 |
|
lixuanwang
|
f2b944837c
|
[deploy]3
|
2025-08-20 14:36:53 +08:00 |
|
Lixuanwang
|
4864a30787
|
[backend]修改了测试脚本,现在支持性能测试用例结果写入到文件
|
2025-08-20 10:49:36 +08:00 |
|
Lixuanwang
|
7db7dd0876
|
[backend]后端流水线引入-O1
|
2025-08-20 03:08:38 +08:00 |
|
Lixuanwang
|
5e4f1feba8
|
Merge branch 'backend-O1-1' into backend
|
2025-08-20 02:52:21 +08:00 |
|
Lixuanwang
|
8665285839
|
Merge commit '5cf411680ef35c51ba966fb3079a8082e032f812' into backend-O1-1
|
2025-08-20 02:50:30 +08:00 |
|
Lixuanwang
|
b014efe183
|
[backend-O1-1]在后端添加kAnd和kOr的支持
|
2025-08-20 02:46:15 +08:00 |
|
Lixuanwang
|
7648d9f01f
|
Merge branch 'midend' into backend-O1-1
|
2025-08-20 02:14:53 +08:00 |
|
Lixuanwang
|
9ff1ace10e
|
[backend-O1-1]调整寄存器预着色逻辑
|
2025-08-20 02:13:23 +08:00 |
|
Lixuanwang
|
dd2725796a
|
[backend-O1-1]修复了寄存器分配器在处理函数参数时不健壮的问题
|
2025-08-20 01:37:59 +08:00 |
|
|
|
5cf411680e
|
[backend-optpatch]对RISCv64ISel.cpp优化判断提供补丁过滤
|
2025-08-20 01:31:51 +08:00 |
|
|
|
33388496d5
|
[backend-O1]RISCv64ISel对-O1新增专门的处理逻辑
|
2025-08-19 22:42:30 +08:00 |
|
Lixuanwang
|
54edd65fcb
|
[deploy]取消了排序逻辑
|
2025-08-19 21:27:12 +08:00 |
|
Lixuanwang
|
3add3f1f7a
|
[deploy]更新了排序逻辑
|
2025-08-19 20:11:58 +08:00 |
|
Lixuanwang
|
54fec11184
|
Merge branch 'backend-O1' into deploy-20250819
|
2025-08-19 20:05:59 +08:00 |
|
Lixuanwang
|
ef68235446
|
[backend-O1]更新sylib
|
2025-08-19 20:04:58 +08:00 |
|
rain2133
|
363ead0ddd
|
[backend-O1]修复计时函数命名错误的问题
|
2025-08-19 20:01:33 +08:00 |
|
|
|
d465fb02a5
|
[midend-m2r]恢复原有mem2reg
|
2025-08-19 17:44:54 +08:00 |
|
Lixuanwang
|
71d08850df
|
[deploy]测试MEMSET修改是否生效
|
2025-08-19 17:44:05 +08:00 |
|
Lixuanwang
|
d0321b7a88
|
[backend]将内联MEMSET函数的步长改为4字节
|
2025-08-19 17:43:09 +08:00 |
|
Lixuanwang
|
7ada4c193f
|
[backend]将内联MEMSET函数的步长改为4字节
|
2025-08-19 17:42:45 +08:00 |
|
|
|
3c49183280
|
[midend-m2r]移除错误的LAG优化,performance通过
|
2025-08-19 17:32:01 +08:00 |
|
|
|
7af3827098
|
[midend-m2r]修改Mem2Reg.cpp
|
2025-08-19 16:37:52 +08:00 |
|
Lixuanwang
|
f9432a9531
|
[deploy]使用胡萝卜编译器进行测试
|
2025-08-19 16:14:40 +08:00 |
|
Lixuanwang
|
d72601d9db
|
取消跟踪performance测试用例
|
2025-08-19 15:08:31 +08:00 |
|
Lixuanwang
|
b13d81353a
|
取消跟踪performance测试用例
|
2025-08-19 15:08:00 +08:00 |
|
Lixuanwang
|
9c961be40a
|
[deploy]测试了03-sort的时间
|
2025-08-19 15:06:20 +08:00 |
|
Lixuanwang
|
773a99bef7
|
[deploy]部署版本20250819-2
|
2025-08-19 14:42:41 +08:00 |
|
Lixuanwang
|
26427e0986
|
Merge commit '926e765451c38541a88e6318a211cd8dacfaa402' into deploy-20250819
|
2025-08-19 14:20:49 +08:00 |
|
Lixuanwang
|
1ab937961f
|
[backend-O1]修复后端在-O1情况下存在的大量bug
|
2025-08-19 14:09:08 +08:00 |
|
rain2133
|
8094fd5705
|
[midend]减少tmp_cond的冲突
|
2025-08-19 09:45:42 +08:00 |
|
rain2133
|
ad5f35c1a0
|
[midend]暂时仅用了魔数优化除法的手段
|
2025-08-19 08:56:51 +08:00 |
|
rain2133
|
839791e862
|
Merge remote-tracking branch 'origin/midend-tco' into midend
|
2025-08-19 08:32:06 +08:00 |
|
rain2133
|
751d3df2ac
|
Merge branch 'midend-phielimination' into midend
|
2025-08-19 08:31:25 +08:00 |
|
Lixuanwang
|
06b4df79ee
|
[backend]暂时禁用中端强度削弱
|
2025-08-19 08:30:55 +08:00 |
|
Lixuanwang
|
1d59e9e256
|
修改脚本,增强输出截断逻辑
|
2025-08-19 08:30:05 +08:00 |
|
Lixuanwang
|
d79857feb9
|
修改脚本,增强输出截断逻辑
|
2025-08-19 08:29:43 +08:00 |
|
rain2133
|
db122cabbd
|
[midend-phielimination]消除只有一个incomingvalue的phi指令
|
2025-08-19 08:27:18 +08:00 |
|
|
|
75bcd0f883
|
[midend-tco]修复命名重复问题
|
2025-08-19 08:15:04 +08:00 |
|
Lixuanwang
|
17e5875c10
|
[deploy]禁用-O1以调试超时问题
|
2025-08-19 08:02:06 +08:00 |
|
rain2133
|
ce4d4b5f5b
|
[midend-phielimination]增加phi指令消除检查
|
2025-08-19 01:08:05 +08:00 |
|
Lixuanwang
|
91d4a39c9a
|
Merge branch 'midend-tco' into backend
|
2025-08-19 00:15:30 +08:00 |
|
Lixuanwang
|
f27af6544c
|
[deploy]部署版本0819
|
2025-08-19 00:14:18 +08:00 |
|
|
|
042b1a5d99
|
[midend-tco]修复命名重复问题
|
2025-08-19 00:13:32 +08:00 |
|
Lixuanwang
|
0fdcd0dd69
|
Merge branch 'midend-tco' into backend
|
2025-08-18 23:52:05 +08:00 |
|
Lixuanwang
|
d7bf4b061f
|
[backend]适配SLL、SRL指令
|
2025-08-18 23:49:40 +08:00 |
|
|
|
937833117e
|
[midend-tco]添加TCO尾递归优化
|
2025-08-18 23:46:00 +08:00 |
|
Lixuanwang
|
094b4c7c39
|
Merge branch 'midend' into backend
|
2025-08-18 22:52:02 +08:00 |
|
Lixuanwang
|
f4617b357e
|
Merge commit '07fd22def182a12999de6ae0c9447056fb9d7a40' into backend
|
2025-08-18 22:50:58 +08:00 |
|
Lixuanwang
|
babb576317
|
[backend]完善异步执行的超时切断机制
|
2025-08-18 22:50:14 +08:00 |
|
Lixuanwang
|
0720a622c1
|
[backend]完善后端流水线,本地仅剩h/39不通过
|
2025-08-18 22:14:21 +08:00 |
|
rain2133
|
ad74e435ba
|
[midend-GSR]修复错误的代数简化
|
2025-08-18 21:55:57 +08:00 |
|
Lixuanwang
|
acb0302a29
|
[backend]修复了简单图着色分配器在一些样例中的问题
|
2025-08-18 21:14:37 +08:00 |
|
rain2133
|
5c34cbc7b8
|
[midend-GSR]将魔数求解移动到utils的静态方法中。
|
2025-08-18 20:37:20 +08:00 |
|
rain2133
|
c9a0c700e1
|
[midend]增加全局强度削弱优化遍
|
2025-08-18 11:30:40 +08:00 |
|
Lixuanwang
|
b57a3f1953
|
[backend]正在修复h/39
|
2025-08-17 22:45:57 +08:00 |
|
rain2133
|
f317010d76
|
[midend-Loop-LICM][fix]检查load能否外提时其内存地址在循环中是否会被修改,需要判断函数调用对load内存地址的影响。
|
2025-08-17 17:42:19 +08:00 |
|
rain2133
|
8ca64610eb
|
[midend-GVN]重构GVN的值编号系统
|
2025-08-17 16:33:15 +08:00 |
|
rain2133
|
969a78a088
|
[midend-GVN]segmentation fault是GVN引入的已修复,LICM仍然有错误
|
2025-08-17 14:37:27 +08:00 |
|
Lixuanwang
|
d77aedaf8b
|
[backend]修复87
|
2025-08-17 09:01:49 +08:00 |
|
rain2133
|
8763c0a11a
|
[midend-LICM][fix]修改计算循环不变量依赖关系的排序错误,但是引入了很多Segmentation fault。
|
2025-08-17 01:35:03 +08:00 |
|
rain2133
|
d83dc7a2e7
|
[midend-LICM][fix]修复循环不变量的识别逻辑
|
2025-08-17 01:19:44 +08:00 |
|
rain2133
|
e32585fd25
|
[midend-GVN]修复GVN中部分逻辑问题,LICM有bug待修复
|
2025-08-17 00:14:47 +08:00 |
|
|
|
07fd22def1
|
[backend-fma]添加浮点乘加融合优化,提供开关简单控制是否启用
|
2025-08-17 00:07:04 +08:00 |
|
rain2133
|
c4eb1c3980
|
[midend-GVN&SideEffect]修复GVN的部分问题和副作用分析的缺陷
|
2025-08-16 18:52:29 +08:00 |
|
Lixuanwang
|
5ef01ada90
|
[backend]解决了栈地址计算对齐逻辑错误的问题
|
2025-08-16 18:31:45 +08:00 |
|
Lixuanwang
|
072cd3e9b5
|
[backend]回溯了旧版本的寄存器分配器
|
2025-08-16 17:08:11 +08:00 |
|
rain2133
|
d038884ffb
|
[midend-GVN] commit头文件
|
2025-08-16 15:43:51 +08:00 |
|
rain2133
|
467f2f6b24
|
[midend-GVN]初步构建GVN,能够优化部分CSE无法处理的子表达式但是有错误需要debug。
|
2025-08-16 15:38:41 +08:00 |
|
Lixuanwang
|
7be5d25372
|
[backend]更改了commit顺序
|
2025-08-16 00:11:21 +08:00 |
|
Lixuanwang
|
fdba73d5e1
|
Merge branch 'midend' into backend
|
2025-08-15 21:23:48 +08:00 |
|
Lixuanwang
|
8cabb1f195
|
Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend
|
2025-08-15 21:23:02 +08:00 |
|
rain2133
|
fa33bf5134
|
[midend-Loop-IVE]修复循环的死IV消除逻辑
|
2025-08-15 01:19:45 +08:00 |
|
rain2133
|
a3435e7c26
|
[midend-Loop-IVE]循环归纳变量消除逻辑重构,修改运行顺序
|
2025-08-14 17:27:53 +08:00 |
|
rain2133
|
7547d34598
|
[midend-IVE]参考libdivide库,实现了魔数的正确求解,如果后续出错直接用API或者不要除法强度削弱了
|
2025-08-14 05:12:54 +08:00 |
|
rain2133
|
06a368db39
|
[midend]修复创建新归纳变量的错误逻辑,避免生成悬空phi节点的现象
|
2025-08-13 20:00:43 +08:00 |
|
rain2133
|
48865fa805
|
[midend-IVE]增加无用归纳变量消除遍
|
2025-08-13 17:42:34 +08:00 |
|
rain2133
|
8b5123460b
|
[midend-Loop-InductionVarStrengthReduction]支持了对部分除法运算取模运算的归纳变量的强度削弱策略。(mulh+魔数,负数2的幂次除法符号修正,2的幂次取模运算and优化)。增加了了Printer对移位指令的打印支持
|
2025-08-13 17:41:41 +08:00 |
|
rain2133
|
cd27f5fda9
|
[midend]增加部分逻辑位移指令
|
2025-08-13 15:28:37 +08:00 |
|
rain2133
|
60cb8d6e49
|
[midend]重命名Sra指令的kind标识
|
2025-08-13 14:55:46 +08:00 |
|
rain2133
|
ea944f6ba0
|
[midend-Loop-InductionVarStrengthReduction]增加循环规约变量强度削弱优化
|
2025-08-13 01:13:01 +08:00 |
|
rain2133
|
0c8a156485
|
[midend-LoopCharacteristics]强化归纳变量的识别
|
2025-08-12 22:33:16 +08:00 |
|
rain2133
|
debda205cc
|
[testdata]将官方提供的RV错误样例输入替换成了ARM中正确的输入
|
2025-08-12 16:24:24 +08:00 |
|
rain2133
|
baef82677b
|
[midend-LICM]将能够外提的循环不变量进行Kanh拓扑排序保证外提后的计算顺序正确。
|
2025-08-12 16:18:00 +08:00 |
|
rain2133
|
f634273852
|
[midend-LICM]优化了特征分析中对循环不变量的识别,实现了LICM遍,格式化副作用分析代码
|
2025-08-12 15:53:57 +08:00 |
|
rain2133
|
70f6a25ebc
|
[midend-LoopAnalysis]修复循环规范遍bug,修正部分打印格式,
|
2025-08-12 12:34:07 +08:00 |
|
rain2133
|
8cb807c8b9
|
[midend-LoopAnalysis]修复phi指令缺失的getIncomingValues方法调用
|
2025-08-11 21:20:38 +08:00 |
|
rain2133
|
1fab6a43f9
|
Merge branch 'midend' into midend-LoopAnalysis
|
2025-08-11 21:20:34 +08:00 |
|
rain2133
|
1e3791a801
|
[midend-LoopNormalization]消除不必要的循环特征分析结果使用。优化phi指令处理逻辑
|
2025-08-11 20:51:55 +08:00 |
|
rain2133
|
a1cca3c95a
|
[midend-llvmirprint]修改i1类型不存在引入的临时寄存器保存比较结果重命名的逻辑,减少冲突的可能性
|
2025-08-11 19:10:11 +08:00 |
|
rain2133
|
1361156b0d
|
[midend-CFGOpt]修复上一次提交的漏洞
|
2025-08-11 18:46:07 +08:00 |
|
rain2133
|
46179e3866
|
[midend-CFGOpt]修复部分指令删除逻辑错误
|
2025-08-11 18:40:58 +08:00 |
|
rain2133
|
038552f58b
|
[midend-SCCP]修复了函数参数没有正确初始化为Bottom的问题,现在f/64样例可以-O1通过
|
2025-08-11 16:47:03 +08:00 |
|
rain2133
|
4d0e2d73ea
|
[midend-LATG]将调试信息改为DEBUG生效
|
2025-08-10 17:32:45 +08:00 |
|
rain2133
|
ad19a6715f
|
[midend]删除了错误的sra指令生成逻辑
|
2025-08-10 16:57:40 +08:00 |
|
rain2133
|
d1ba140657
|
[midend-llvnirprint]修改浮点为字面值打印,修复assign的类型推断
|
2025-08-10 16:12:09 +08:00 |
|
rain2133
|
2c5e4cead1
|
[midend-llvmirprint]修复部分打印逻辑,修复生成IR时的基本块错误的前后驱关系链接
|
2025-08-10 15:19:24 +08:00 |
|
rain2133
|
6b92020bc4
|
[midend-llvmirprint]修复全局数组打印格式问题
|
2025-08-09 22:41:32 +08:00 |
|
rain2133
|
c867bda9b4
|
[midend]解决部分变量重命名问题
|
2025-08-09 22:30:09 +08:00 |
|
rain2133
|
6b9ad0566d
|
[midend-llvmirprint]修复进度(162/199),修复若干打印问题,修复若干ir生成逻辑问题
|
2025-08-09 21:28:44 +08:00 |
|
rain2133
|
6a7355ed28
|
[midend-Loop]初步构建循环规范遍
|
2025-08-09 17:53:41 +08:00 |
|
rain2133
|
be9ac89584
|
[midend-LoopAnalysis]将前置分析结果指针保存到循环特征分析类中消除冗余的分析指针传递
|
2025-08-09 16:42:31 +08:00 |
|
rain2133
|
ac3358d7e3
|
[midend-LoopAnalysis]移除基本循环特征分析中的向量化并行化内容,增加循环向量化并行化特征分析遍,TODO:构建循环优化遍验证分析遍正确性
|
2025-08-09 13:53:00 +08:00 |
|
lixuanwang
|
a958435836
|
Merge commit '167c2ac2aece809765dd8ed2b869fc16f84005f2' into backend
|
2025-08-08 22:58:17 +08:00 |
|
rain2133
|
bd23f6154d
|
[midend-SideEffect]将副作用分析遍重构为Module级别,更新其他优化遍用法,注册到PassMananger中,修改CMakeLists。
|
2025-08-08 16:25:41 +08:00 |
|
rain2133
|
126c38a1d9
|
[midend-CallGraph]增加调用图分析遍
|
2025-08-08 16:24:13 +08:00 |
|
rain2133
|
c4c91412d1
|
[midend]修改一点逻辑和注释,删除无用文件
|
2025-08-08 15:31:35 +08:00 |
|
rain2133
|
f17e44f8d4
|
[midend-Alias]针对sysy语言设计了保守和激进的别名优化策略,设计了通过接口设置选项,后续需要验证。保留了一些激进策略接口置空待后续增加。
|
2025-08-08 15:08:49 +08:00 |
|
rain2133
|
a406e44df3
|
[midend-Alias]应用别名分析结果,sccp现在能简单传播数组元素了
|
2025-08-08 02:12:32 +08:00 |
|
rain2133
|
b1a46b7d58
|
[midend-LoopAnalysis]为项目添加别名分析遍,副作用分析遍,循环分析遍,循环特征分析遍
|
2025-08-08 00:56:50 +08:00 |
|
rain2133
|
bd02f5f1eb
|
[midend-LoopAnalysis]为phi指令添加新的方法供外部遍历(目前不是顺序遍历)
|
2025-08-08 00:55:01 +08:00 |
|
Lixuanwang
|
c507b98199
|
[midend-llvmprint]更新脚本,支持-eir执行IR测试
|
2025-08-07 23:45:26 +08:00 |
|
rain2133
|
ba21bb3203
|
[midend]修复内存泄漏和Heap-buffer-overflow问题(getexternalfunction中及其隐秘的错误),修复全局常量标量访问的错误
|
2025-08-07 02:53:36 +08:00 |
|
rain2133
|
8aa5ba692f
|
[midend]初步修复内存泄漏问题(仍然剩余11处)
|
2025-08-07 01:34:00 +08:00 |
|
ladev789
|
d732800149
|
[midend-llvmprint]更新脚本,禁用内存泄漏检查
|
2025-08-07 00:36:43 +08:00 |
|
rain2133
|
f083e38615
|
[midend-Loop]循环分析构建,增加很多统计方法和循环信息方法
|
2025-08-06 22:29:39 +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 |
|
rain2133
|
5d343f42a5
|
[midend-llvmirprint]检查并修复了初始值的打印逻辑
|
2025-08-06 02:02:05 +08:00 |
|
rain2133
|
a4406e0112
|
[midend]增加了指令重命名逻辑。
|
2025-08-06 01:31:23 +08:00 |
|
rain2133
|
08fcda939b
|
[midend-llvmirprint]实现了大部分函数的print方法,TODO:需要完善func和module的print方法以及重命名的逻辑
|
2025-08-06 01:02:11 +08:00 |
|
rain2133
|
33ca8ecf34
|
[document]修改编译器文档中端设计部分
|
2025-08-05 21:37:48 +08:00 |
|
|
|
d439ef7e8e
|
[document]初步添加编译器文档
|
2025-08-05 20:53:44 +08:00 |
|
Lixuanwang
|
926e765451
|
[deploy]测试2
|
2025-08-05 19:25:07 +08:00 |
|
Lixuanwang
|
c4d1e31273
|
[deploy]测试
|
2025-08-05 19:04:04 +08:00 |
|
Lixuanwang
|
de1f74c425
|
[deploy]部署版本5
|
2025-08-05 17:41:23 +08:00 |
|
Lixuanwang
|
3ba12bf320
|
[backend]本地全过
|
2025-08-05 17:38:49 +08:00 |
|
Lixuanwang
|
167c2ac2ae
|
[backend]完善了后端流水线
|
2025-08-05 16:10:04 +08:00 |
|
Lixuanwang
|
32684d8255
|
[backend]继续增强寄存器分配器健壮性
|
2025-08-05 13:50:55 +08:00 |
|
|
|
f2477c4af3
|
[backend]修复浮点数截断逻辑 h36通过
|
2025-08-05 02:44:23 +08:00 |
|
|
|
b1efd481b4
|
[midend]BinaryExpStack表达式弹出部分优化
|
2025-08-05 02:44:23 +08:00 |
|
Lixuanwang
|
676880ca05
|
[backend]消除了线性扫描分配器对参数寄存器的引用
|
2025-08-05 02:21:42 +08:00 |
|
Lixuanwang
|
df50eedaeb
|
[backend]将浮点逻辑改为与开发板一致
|
2025-08-05 01:08:42 +08:00 |
|
Lixuanwang
|
dcc075b39c
|
[backend]修复线性扫描逻辑
|
2025-08-05 01:06:07 +08:00 |
|
Lixuanwang
|
f7f1cf2b41
|
[backend]浮点逻辑与gcc保持一致
|
2025-08-04 21:54:24 +08:00 |
|
Lixuanwang
|
881c2a9723
|
[backend]强化了线性扫描逻辑
|
2025-08-04 19:28:15 +08:00 |
|
rain2133
|
5f63554ca3
|
[midend]修正合并基本块链会将entry块纳入考虑范围的问题。上次commit同时修改了alloca创建的逻辑保证了alloca的声明全部在entry块中
|
2025-08-04 18:56:57 +08:00 |
|
Lixuanwang
|
b5f14d9385
|
[backend]在后端主函数中添加了调试逻辑
|
2025-08-04 18:17:09 +08:00 |
|
Lixuanwang
|
72b06c67ca
|
[backend]为图着色引入保底修复
|
2025-08-04 18:13:09 +08:00 |
|
Lixuanwang
|
4db3cc3fb5
|
Merge branch 'midend' into backend
|
2025-08-04 16:48:30 +08:00 |
|
Lixuanwang
|
17f1bed310
|
Merge branch 'backend-lag' into backend
|
2025-08-04 16:43:43 +08:00 |
|
rain2133
|
b848ffca5a
|
[midend]在生成IR时引进了简单的CSE(二元一元loadgep的cse)
|
2025-08-04 16:38:12 +08:00 |
|
Lixuanwang
|
603506d142
|
Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend
|
2025-08-04 16:34:22 +08:00 |
|
Lixuanwang
|
0179c13cf4
|
[backend]添加了一些工具函数
|
2025-08-04 16:32:54 +08:00 |
|
|
|
7e5f6800b7
|
[backend]修复寄存器分配算法死循环bug,89通过
|
2025-08-04 16:04:35 +08:00 |
|
Lixuanwang
|
64ba25a77e
|
[backend]移除了冗余的keepalive伪指令
|
2025-08-04 14:11:27 +08:00 |
|
Lixuanwang
|
208d5528b5
|
Merge branch 'midend' into backend
|
2025-08-04 02:37:27 +08:00 |
|
Lixuanwang
|
a269366ac5
|
[backend]修复了较小全零全局数组未显示初始化导致未定义行为的问题
|
2025-08-04 02:31:18 +08:00 |
|
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 |
|
|
|
6550c8a25b
|
[backend-LAG]添加新的LargeArrayToGlobal中端Pass,以及栈保护逻辑
|
2025-08-04 01:01:29 +08:00 |
|
rain2133
|
f24cc7ec88
|
[midend]修复replaceAllUsesWith中由于setOperand 间接调用 removeUse 或 addUse导致的迭代器失效问题
|
2025-08-04 00:59:39 +08:00 |
|
Lixuanwang
|
c8a8bf9a37
|
[backend]修复了溢出位置错误的问题
|
2025-08-03 23:28:38 +08:00 |
|
rain2133
|
446a6a6fcb
|
[midend]修复phi指令接口,优化遍适配
|
2025-08-03 22:18:00 +08:00 |
|
rain2133
|
d8b004e5e5
|
[midend]修改use关系相关的函数,使其能自动的正确维护,修改了phi指令的各种接口
|
2025-08-03 22:16:40 +08:00 |
|
Lixuanwang
|
cd814de495
|
Merge commit 'e4ad23a1a594a9da6b96655d4256352d5f6d277d' into midend
|
2025-08-03 18:37:36 +08:00 |
|
Lixuanwang
|
e4ad23a1a5
|
[backend]修复了寄存器分配器在处理全物理寄存器操作数时的bug
|
2025-08-03 18:37:08 +08:00 |
|
Lixuanwang
|
58c8cd53f5
|
Merge branch 'midend' of gitee.com:lixuanwang/mysysy into midend
|
2025-08-03 17:26:38 +08:00 |
|
Lixuanwang
|
ec91a4e259
|
[backend]更新脚本,现在会拷贝.sy文件到tmp目录
|
2025-08-03 17:26:09 +08:00 |
|
rain2133
|
91f755959b
|
[midend]修改中端流水线
|
2025-08-03 17:25:05 +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 |
|
rain2133
|
ef9d7c4d03
|
[midend-LoopAnalysis]增加维护循环层级的逻辑,修改父子循环关系求解的逻辑。
|
2025-08-03 15:22:18 +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 |
|
rain2133
|
1c7c85dd2f
|
Merge commit 'f879a0f521e3033d3f928a5976ac095af6905942' into midend-LoopAnalysis
|
2025-08-03 14:30:32 +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 |
|
rain2133
|
aa7f2bb0f5
|
[midend]loop分析构建
|
2025-08-02 17:42:43 +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 |
|
Lixuanwang
|
e8699d6d25
|
[backend]更新脚本和库以支持性能测试用例
|
2025-07-31 16:42:41 +08:00 |
|
Lixuanwang
|
0727d5a6d8
|
Merge commit 'fc7afdbb359e71e799ea50ac71ac21ce233aeaac' into backend
|
2025-07-31 15:01:06 +08:00 |
|
rain2133
|
fc7afdbb35
|
[midend]修复错误的RelExp类型转换
|
2025-07-31 13:55:59 +08:00 |
|
Lixuanwang
|
bfe2b248cd
|
Merge branch 'backend-float' into backend
|
2025-07-31 12:16:11 +08:00 |
|
Lixuanwang
|
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 |
|
rain2133
|
82288464c3
|
[midend]修复常量变量的声明逻辑同变量声明,重构表达式生成逻辑(将中缀表达式转换为后缀表达式判断类型提升后再进行统一类型转换和计算)。运行脚本通过率[117/140]。
|
2025-07-31 02:47:39 +08:00 |
|
rain2133
|
7e8b90ffd4
|
[midend]修改全局变量,全局常量类,提供维度访问方法,消除维度信息(记录在Type中),createItoFInst命名修复,增加打印全局常量。
|
2025-07-31 02:45:40 +08:00 |
|
Lixuanwang
|
b3cf3cba29
|
[backend]修复了多参数传递的错误
|
2025-07-30 22:16:37 +08:00 |
|
Lixuanwang
|
03b62b138f
|
[backend]修复了一个栈管理问题
|
2025-07-30 20:40:56 +08:00 |
|
Lixuanwang
|
8e94f89931
|
Merge branch 'midend' into backend
|
2025-07-30 18:27:42 +08:00 |
|
Lixuanwang
|
b388dc4542
|
Merge branch 'backend-float' into backend
|
2025-07-30 18:26:06 +08:00 |
|
Lixuanwang
|
48b0aec6c3
|
[midend][backend]修复了全局常量数组的访问错误
|
2025-07-30 18:23:56 +08:00 |
|
Lixuanwang
|
1fb5cd398d
|
[backend]修复了多参数传递的问题
|
2025-07-30 17:58:39 +08:00 |
|
rain2133
|
206a0af424
|
[midend-SCCP]暂存1
|
2025-07-30 16:33:56 +08:00 |
|
Lixuanwang
|
877a0f5dc2
|
[backend-float]修复部分问题
|
2025-07-30 16:00:02 +08:00 |
|
|
|
a3c4d5a2b8
|
[Optimize]对PreRA指令调度进行优化
|
2025-07-30 15:27:23 +08:00 |
|
Lixuanwang
|
39c13c46ec
|
Merge branch 'midend' into backend-float
|
2025-07-30 15:10:38 +08:00 |
|
Lixuanwang
|
dd38bdc133
|
[backend]引入浮点数支持,但目前寄存器分配存在问题
|
2025-07-30 15:07:29 +08:00 |
|
rain2133
|
38bee5d5ac
|
[midend]IRPrinter增加了打印全局常量的功能
|
2025-07-30 14:46:28 +08:00 |
|
rain2133
|
98511efd91
|
[midend]修改constdecl的逻辑区分局部常量和全局常量声明逻辑,提供方法访问全局变量,常量的维度信息,修改GlobalValue,ConstantVariable的继承父类(User->Value)维度信息保存在Type中。
|
2025-07-30 14:40:10 +08:00 |
|
Lixuanwang
|
507096a0f6
|
Merge branch 'midend' of gitee.com:lixuanwang/mysysy into midend
|
2025-07-30 11:31:46 +08:00 |
|
Lixuanwang
|
7f2e501cea
|
[backend]修复了指令选择不支持ConstantVariable操作数的bug
|
2025-07-30 11:31:37 +08:00 |
|
|
|
860ebcd447
|
[Optimize]对PostRA指令调度进行容器/算法/缓存优化
|
2025-07-30 10:28:06 +08:00 |
|
rain2133
|
31b6711d74
|
[midend]IR修改常量类getint和getfloat逻辑,如果类型和方法不一致那么应用强制转换返回转换后的值
|
2025-07-29 23:52:37 +08:00 |
|
Lixuanwang
|
42dce9820b
|
Merge branch 'midend' into backend
|
2025-07-29 21:31:04 +08:00 |
|
Lixuanwang
|
09ae47924e
|
[midend]重构了src目录
|
2025-07-29 21:30:30 +08:00 |
|
rain2133
|
f5922d0178
|
[midend]修改类型转换判断的逻辑
|
2025-07-29 20:23:25 +08:00 |
|
rain2133
|
63906d0648
|
[midend]修复82样例生成IR的错误(未正确初始化全局数组常量和数组常量的Type计算)
|
2025-07-29 19:35:39 +08:00 |
|
|
|
6ba05e0d8c
|
[PreRA_Scheduler]添加寄存器分配前的指令调度优化
|
2025-07-29 17:00:27 +08:00 |
|
Lixuanwang
|
e4fd16e36a
|
Merge branch 'backend' into midend
|
2025-07-29 16:37:11 +08:00 |
|
Lixuanwang
|
32bdc17dc3
|
[backend]调整了后端pass的顺序
|
2025-07-29 16:15:01 +08:00 |
|
Lixuanwang
|
8deb4ed076
|
[backend]添加了2个新的pass,用于解决大立即数加载问题
|
2025-07-29 15:48:37 +08:00 |
|
rain2133
|
37e99e37a3
|
Merge branch 'midend-mem2reg' into midend
|
2025-07-29 15:48:34 +08:00 |
|
rain2133
|
8e69992b29
|
[midend-mem2reg]增加说明
|
2025-07-29 15:47:51 +08:00 |
|
rain2133
|
15fe69187a
|
[midend-mem2reg]目前reg2mem仅将函数参数和phi指令及其对应指令进行reg2mem,旨在消除phi指令。
|
2025-07-29 15:30:28 +08:00 |
|
rain2133
|
fff19ca1ea
|
[midend-mem2reg]Reg2Mem建立完成runit测试127/140,reg2mem基本思路:函数参数默认降级到内存,有结果的指令被降级的内存
|
2025-07-29 14:34:16 +08:00 |
|
rain2133
|
4a329eeaf2
|
[midend]修复return指令exp为空的判断条件错误
|
2025-07-29 12:16:46 +08:00 |
|
rain2133
|
3dc4b28c92
|
[midend-mem2reg]dom增加访问支配树子节点求解和访问方法,修复block打印,phi指令命名,TODO:reg2membug待修复
|
2025-07-29 03:25:56 +08:00 |
|
rain2133
|
202e6d7cd8
|
[midend-mem2reg]增加遍打印方法,修复reg2mem构造函数错误
|
2025-07-29 02:11:10 +08:00 |
|
rain2133
|
3e4cac089e
|
[midend-reg2mem]增加reg2mem遍,应用未定义值,增加inst迭代器查找方法,通过编译且脚本运行通过率不变
|
2025-07-29 02:01:48 +08:00 |
|
Lixuanwang
|
76d7b14b2e
|
[backend]更新了测试脚本,现在的测试更准确
|
2025-07-29 01:04:43 +08:00 |
|
Lixuanwang
|
9ba08126fb
|
Merge branch 'peephole' into backend
|
2025-07-28 23:46:34 +08:00 |
|
Lixuanwang
|
875100ec01
|
[backend]为单次运行脚本添加了clean参数
|
2025-07-28 23:41:36 +08:00 |
|
Lixuanwang
|
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 |
|
|
|
da5c2bb41d
|
[PostRA_Scheduler]完成寄存器分配后的指令调度优化
|
2025-07-28 22:35:29 +08:00 |
|
Lixuanwang
|
fcc3806342
|
Merge branch 'backend-bss' into backend
|
2025-07-28 17:31:47 +08:00 |
|
Lixuanwang
|
792dc9c1f6
|
Merge branch 'backend-bss' into backend-rec
|
2025-07-28 17:31:23 +08:00 |
|
Lixuanwang
|
429e477776
|
[backend]引入了对.bss和.data段的区分
|
2025-07-28 17:29:18 +08:00 |
|
rain2133
|
535a935bf1
|
[midend-mem2reg]暂存文件,思路留存
|
2025-07-28 14:57:15 +08:00 |
|
rain2133
|
efe74cba6c
|
[midend-mem2reg]mem2reg遍基本写完,编译不报错,待reg2mem写完统一测试
|
2025-07-28 14:28:46 +08:00 |
|
|
|
634a84f29c
|
[peephole]Pass架构重构优化
|
2025-07-27 11:03:26 +08:00 |
|
Lixuanwang
|
2e8b564d8f
|
[backend]修复了递归函数的调用问题,引入了新的bug?
|
2025-07-27 01:07:08 +08:00 |
|
Lixuanwang
|
2dd6a17fca
|
[backend]saving1
|
2025-07-27 00:34:45 +08:00 |
|
|
|
78dee0d72a
|
[peephole]添加7项窥孔优化规则初步测试生效成功,有待进一步检查,TODO: 指令调度优化
|
2025-07-26 21:48:14 +08:00 |
|
Lixuanwang
|
af318b6c0e
|
[backend]尝试在寄存器分配逻辑中区分调用者保存、被调用者保存寄存器
|
2025-07-26 21:45:01 +08:00 |
|
Lixuanwang
|
9bea4d5343
|
[backend]更新todo
|
2025-07-26 19:04:31 +08:00 |
|
Lixuanwang
|
540742be0c
|
[backend]添加了一个Pass,将调用者、被调用者寄存器实现转移到其中
|
2025-07-26 18:38:04 +08:00 |
|
Lixuanwang
|
8ae7478ef3
|
Merge branch 'midend' into backend
|
2025-07-26 17:36:23 +08:00 |
|
Lixuanwang
|
a616ec085e
|
[midend][backend]补全了符合RV64调用约定的寄存器着色规则
|
2025-07-26 17:35:08 +08:00 |
|
Lixuanwang
|
828515bc2f
|
[midend][backend]添加了DAG中的Argument类型,添加了Argument节点的处理逻辑
|
2025-07-26 16:55:32 +08:00 |
|
rain2133
|
a231267fc5
|
[midend]修复函数参数alloca指令创建错误导致的段错误,修复irprint对argument的识别
|
2025-07-26 13:02:24 +08:00 |
|
Lixuanwang
|
4b181261ce
|
[midend][backend]同步后端逻辑,修复编译错误
|
2025-07-26 12:53:21 +08:00 |
|
Lixuanwang
|
3df9b3bb06
|
Merge remote-tracking branch 'origin/midend-mem2reg' into midend
|
2025-07-26 12:41:43 +08:00 |
|
Lixuanwang
|
e57ac7709d
|
[backend]开始区分调用者保存寄存器与被调用者保存寄存器
|
2025-07-26 12:39:17 +08:00 |
|
rain2133
|
2643eb1edd
|
[midend-mem2reg]修改函数参数定义引入argument类,显示为参数创建alloca和store指令
|
2025-07-26 12:30:03 +08:00 |
|
Lixuanwang
|
5bfa6d72a2
|
Merge branch 'midend' into backend
|
2025-07-25 22:25:45 +08:00 |
|
Lixuanwang
|
14fb3dbe48
|
[midend][backend-GEP]解决了一个32/64位宽的错误问题
|
2025-07-25 22:23:26 +08:00 |
|
rain2133
|
04c5c6b44d
|
[midend-mem2reg]修复assignstmt对lvalue的错误解析(lvaue会被exp解释为值,而被assign解释为地址)
|
2025-07-25 20:00:41 +08:00 |
|
rain2133
|
e2c97fd171
|
[miden]DCE引入ctx避免重复运行遍导致的状态污染。修复天然活跃判断条件
|
2025-07-25 16:33:18 +08:00 |
|
rain2133
|
12f63a0bf5
|
[midend]解决标签重名问题
|
2025-07-25 12:35:35 +08:00 |
|
Lixuanwang
|
d50912ee4c
|
[midend]后端适配GEP
|
2025-07-25 12:00:47 +08:00 |
|
Lixuanwang
|
259d71cde5
|
Merge branch 'midend' of gitee.com:lixuanwang/mysysy into midend
|
2025-07-25 11:18:12 +08:00 |
|
rain2133
|
1e6f6ed711
|
[midend] GEP类型推断函数getIndexedType逻辑修复,增加数组type缓存池避免相同type ==操作返回假,修复实参形参类型转换判断逻辑,starttime stoptime提供支持(待后端测试)
|
2025-07-25 03:26:10 +08:00 |
|
rain2133
|
96c6b0ab6e
|
[midend]修复函数参数为数组指针的退化问题,能够正确区分局部变量和函数参数并生成正确的GEP指令
|
2025-07-25 01:53:49 +08:00 |
|
Lixuanwang
|
10a533b0cc
|
[backend]添加了库
|
2025-07-24 21:04:20 +08:00 |
|
Lixuanwang
|
5f8bf15d4d
|
[midend]添加了库
|
2025-07-24 21:02:28 +08:00 |
|
rain2133
|
18dc8dbfee
|
[midend]修改注释
|
2025-07-24 17:05:56 +08:00 |
|
rain2133
|
9c56bc1310
|
[midend]修改GEP指令定义,更靠近llvm ir设计,增加自动推断类型函数,修复generator中错误生成ir的逻辑
|
2025-07-24 17:02:29 +08:00 |
|
rain2133
|
c68b031c01
|
[midend]修复全局数组类型问题
|
2025-07-24 15:22:38 +08:00 |
|
rain2133
|
2556ab7315
|
[midend]修复getanalysisusagee缺失定义,修复数组初始化错误
|
2025-07-24 15:04:29 +08:00 |
|
rain2133
|
4b9d067c12
|
[midend]部分DCE遍实现(传播活跃代码),修改优化遍运行逻辑,TODO:完善优化遍的getAnalysisUsage,删除无用代码
|
2025-07-24 14:36:33 +08:00 |
|
Lixuanwang
|
f4d231b989
|
[midend]添加了后端中对GEP指令的支持
|
2025-07-24 00:39:11 +08:00 |
|
Lixuanwang
|
56b376914b
|
Merge branch 'backend' into midend
|
2025-07-23 19:30:19 +08:00 |
|
Lixuanwang
|
2157cf6aa6
|
[midend]修复了一个Pass相关的编译错误
|
2025-07-23 19:12:04 +08:00 |
|
Lixuanwang
|
0e492cd6d7
|
[backend]修复了函数序言的根本性错误
|
2025-07-23 18:43:40 +08:00 |
|
rain2133
|
87d38be255
|
[midend]更新遍静态ID定义方法,
注册遍模板函数重构(针对遍的不同构造方法),
修复phi指令更新引起的旧代码错误,
将CFG优化适配到现有终端框架中,
独立CFG优化方法使得其他优化遍能独立调用,
usedelete方法回调取消删除功能。
IRGenerator代码风格修改。
|
2025-07-23 17:19:11 +08:00 |
|
Lixuanwang
|
2040670f8c
|
[backend]添加了DAG图打印函数;为分支指令引入了延迟物化;添加了函数参数溢出到栈的处理逻辑
|
2025-07-22 22:50:25 +08:00 |
|
rain2133
|
3df3d7a097
|
[midend]通过编译,TODO:验证正确性
|
2025-07-22 22:38:47 +08:00 |
|
Lixuanwang
|
b20bda2f52
|
[backend]引入了栈上的20字节安全区
|
2025-07-22 21:36:22 +08:00 |
|
rain2133
|
f61b51b2fa
|
[midend]优化中端框架,移除无用旧代码,ignore格式文件
|
2025-07-22 21:25:07 +08:00 |
|
Lixuanwang
|
20a5c5cbfb
|
[backend]增加了一个在虚拟机内部单文件调试的脚本
|
2025-07-22 02:25:30 +08:00 |
|
Lixuanwang
|
cf88ca77cb
|
[backend]修复了一个全局数组地址的计算问题
|
2025-07-22 00:16:37 +08:00 |
|
Lixuanwang
|
fd6fe22020
|
[backend]增加了对全局数组的访存地址展开
|
2025-07-22 00:11:42 +08:00 |
|
Lixuanwang
|
e8fe710c26
|
[backend]更新了测试脚本,限制最大打印行数,避免糟蹋终端输出
|
2025-07-22 00:09:41 +08:00 |
|
Lixuanwang
|
9c87cb397b
|
[backend]解决了非零数组初始化不正确的问题
|
2025-07-22 00:07:54 +08:00 |
|
Lixuanwang
|
c45938d41d
|
Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend
|
2025-07-21 17:49:09 +08:00 |
|
Lixuanwang
|
3baccbc03a
|
[backend]解决了测试程序可能的挂起问题,引入了用于单个用例测试的新脚本
|
2025-07-21 17:49:06 +08:00 |
|
Lixuanwang
|
24d8e730f1
|
[backend]更新了测试脚本,减少测试进程卡死情况
|
2025-07-21 17:36:22 +08:00 |
|
Lixuanwang
|
bbfbf96b5e
|
[backend]解决了重构后数组初始化不正确的问题
|
2025-07-21 16:27:47 +08:00 |
|
rain2133
|
a72fc541fb
|
[midend]活跃变量分析,CFG优化遍重写。还未跑通,暂存
|
2025-07-21 15:20:46 +08:00 |
|
rain2133
|
550f4017be
|
[midend]重构中端,建立遍管理器,注册器等,初步构建支配树分析遍,增加基本块方法
|
2025-07-21 15:19:38 +08:00 |
|
Lixuanwang
|
f7e811b756
|
[backend]解决了标签打印问题
|
2025-07-21 14:44:48 +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
|
18e7cbd413
|
Merge branch 'backend' into SCCP
|
2025-07-20 13:00:15 +08:00 |
|
rain2133
|
20cd16bf52
|
暂存2
|
2025-07-20 12:54:19 +08:00 |
|
Lixuanwang
|
80dee78f04
|
[backend]引入后端pass管理器
|
2025-07-20 12:45:52 +08:00 |
|
Lixuanwang
|
d7fb017550
|
Merge branch 'backend-llir' into backend
|
2025-07-19 18:00:42 +08:00 |
|
Lixuanwang
|
c4b18a70db
|
[backend]准备合并backend-llir
|
2025-07-19 17:59:45 +08:00 |
|
Lixuanwang
|
9528335a04
|
[backend-llir]修复了许多重构的bug
|
2025-07-19 17:50:14 +08:00 |
|
rain2133
|
0d5748e9c5
|
[IR]修复初始化数组指令的逻辑,更新IR常量定义。
|
2025-07-19 16:18:05 +08:00 |
|
Lixuanwang
|
d4a6996d74
|
[backend]重构了后端
|
2025-07-19 16:06:35 +08:00 |
|
rain2133
|
36cfd2f64d
|
先将SCCP中重构IR的部分移植到backend
|
2025-07-19 15:00:04 +08:00 |
|
Lixuanwang
|
75e61bf274
|
[backend-llir]引入了LLIR定义
|
2025-07-19 14:29:57 +08:00 |
|
rain2133
|
8f1e477e73
|
暂存
|
2025-07-19 14:23:57 +08:00 |
|
Lixuanwang
|
c8308047df
|
[backend]引入了Memset指令在后端的展开
|
2025-07-19 13:52:09 +08:00 |
|
Lixuanwang
|
86d1de6696
|
[backend]向脚本添加了打印不通过测例的功能
|
2025-07-19 12:00:02 +08:00 |
|
Lixuanwang
|
69d27f058d
|
[backend]将testdata/下的测例替换为了赛方测试用例,更新了测试脚本
|
2025-07-19 01:44:37 +08:00 |
|
Lixuanwang
|
6335abe806
|
[backend]修复了引入常量重质化后全局常量加载指令的缺失问题
|
2025-07-19 00:46:46 +08:00 |
|
Lixuanwang
|
6ed5965b29
|
[backend]数组访存问题基本修复
|
2025-07-19 00:32:47 +08:00 |
|
Lixuanwang
|
0f26be3586
|
[backend]添加了对主函数中新引入的调试信息打印的控制,修改了测试脚本为云平台测试的参数,调整了73_int_io测例的输入文件的格式
|
2025-07-18 22:50:06 +08:00 |
|
Lixuanwang
|
d38ec13cbd
|
[backend]修复了函数调用参数为常数时,参数传递有误的bug
|
2025-07-18 21:54:24 +08:00 |
|
rain2133
|
10b011a1de
|
[fix]修复部分常量构建,[Pass]建立Pass基类和管理器,预重构优化遍结构
|
2025-07-18 21:28:36 +08:00 |
|
Lixuanwang
|
e8660120cc
|
[backend]删除了后端对数组访存的地址展开,因为已经在IR中实现
|
2025-07-18 20:48:59 +08:00 |
|
Lixuanwang
|
3657c08644
|
[backend]引入新的活跃性分析
|
2025-07-18 20:24:47 +08:00 |
|
Lixuanwang
|
1bcb5eba2a
|
[backend]去除了错误的寄存器分配机制
|
2025-07-18 18:50:21 +08:00 |
|
Lixuanwang
|
fc62446b40
|
Merge branch 'backend' of gitee.com:lixuanwang/mysysy into backend
|
2025-07-18 18:48:44 +08:00 |
|
Lixuanwang
|
fedb4b0a9f
|
[backend]修复了栈分配空间大小不考虑数组的错误
|
2025-07-18 18:48:38 +08:00 |
|
Lixuanwang
|
4bf4c98787
|
[backend]修复了栈分配空间大小不考虑数组的错误
|
2025-07-18 18:44:13 +08:00 |
|
rain2133
|
34b5a93aaf
|
[Mem2Reg]重构SSA提升
|
2025-07-18 18:17:45 +08:00 |
|
rain2133
|
a5d97185e1
|
[IR]修复IR报错,调整结构。
|
2025-07-18 18:17:22 +08:00 |
|
rain2133
|
fdc946c1b5
|
[IR]重构常量定义,引入undefvalue定义,修改常量方法使用尽量适配旧版
|
2025-07-18 16:40:16 +08:00 |
|
Lixuanwang
|
198c1974e3
|
[backend] 新pass ACE修改完毕
|
2025-07-18 13:04:02 +08:00 |
|
Lixuanwang
|
b90e4faa6a
|
[backend] 删除了部分错误代码
|
2025-07-18 01:37:29 +08:00 |
|
Lixuanwang
|
be8ca144d0
|
[backend]引入了新的pass,负责消除数组复杂地址访问
|
2025-07-18 00:10:10 +08:00 |
|
rain2133
|
725da2858d
|
[IR]指令构造器更新
|
2025-07-17 21:34:19 +08:00 |
|
rain2133
|
631ef80de2
|
[IR]phi指令重构,将block信息加入并提供新方法,后续需更改phi相关指令构建逻辑
|
2025-07-17 19:01:02 +08:00 |
|
rain2133
|
77fae4d662
|
[CFG]增加分支优化,为SCCP调用做铺垫,预备修改phi定义
|
2025-07-17 16:50:09 +08:00 |
|
rain2133
|
009f54863e
|
[CFG]CFG优化方法转换为静态方法,方便其他优化遍调用,TODO:简化条件分支
|
2025-07-17 15:54:37 +08:00 |
|
rain2133
|
f7e318e623
|
[SCCP]初步构建SCCP,.cpp仍不完善暂不commit
|
2025-07-16 22:01:37 +08:00 |
|
rain2133
|
00348c1931
|
修改CFG优化的文件名,修改phidel标签
|
2025-07-16 22:01:37 +08:00 |
|
rain2133
|
5a6cfbee1e
|
[SysYIROptUtils]增加通用优化工具类,修改相关代码
|
2025-07-16 22:01:37 +08:00 |
|