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 |
|
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
|
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 |
|
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
|
5f63554ca3
|
[midend]修正合并基本块链会将entry块纳入考虑范围的问题。上次commit同时修改了alloca创建的逻辑保证了alloca的声明全部在entry块中
|
2025-08-04 18:56:57 +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
|
208d5528b5
|
Merge branch 'midend' into backend
|
2025-08-04 02:37:27 +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 |
|
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 |
|
rain2133
|
91f755959b
|
[midend]修改中端流水线
|
2025-08-03 17:25:05 +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 |
|
rain2133
|
ef9d7c4d03
|
[midend-LoopAnalysis]增加维护循环层级的逻辑,修改父子循环关系求解的逻辑。
|
2025-08-03 15:22:18 +08:00 |
|
Lixuanwang
|
5b43f208ac
|
Merge branch 'backend-divopt' into midend
|
2025-08-03 14:53:22 +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 |
|
rain2133
|
aa7f2bb0f5
|
[midend]loop分析构建
|
2025-08-02 17:42:43 +08:00 |
|