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 |
|
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 |
|
rain2133
|
c4eb1c3980
|
[midend-GVN&SideEffect]修复GVN的部分问题和副作用分析的缺陷
|
2025-08-16 18:52:29 +08:00 |
|
rain2133
|
467f2f6b24
|
[midend-GVN]初步构建GVN,能够优化部分CSE无法处理的子表达式但是有错误需要debug。
|
2025-08-16 15:38:41 +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
|
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
|
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
|
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
|
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
|
f083e38615
|
[midend-Loop]循环分析构建,增加很多统计方法和循环信息方法
|
2025-08-06 22:29:39 +08:00 |
|
rain2133
|
5f63554ca3
|
[midend]修正合并基本块链会将entry块纳入考虑范围的问题。上次commit同时修改了alloca创建的逻辑保证了alloca的声明全部在entry块中
|
2025-08-04 18:56:57 +08:00 |
|
Lixuanwang
|
17f1bed310
|
Merge branch 'backend-lag' into backend
|
2025-08-04 16:43:43 +08:00 |
|
|
|
6550c8a25b
|
[backend-LAG]添加新的LargeArrayToGlobal中端Pass,以及栈保护逻辑
|
2025-08-04 01:01:29 +08:00 |
|
rain2133
|
446a6a6fcb
|
[midend]修复phi指令接口,优化遍适配
|
2025-08-03 22:18:00 +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 |
|
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 |
|
rain2133
|
aef10b48e8
|
[midend]删除前驱后继移除时不存在的检查,phi增加llvm风格接口,重构CFGOpt特别是空块删除的逻辑(待验证)
|
2025-08-01 18:34:43 +08:00 |
|
rain2133
|
a0b69f20fb
|
[midend]合并了SCCP和backend,修复了支配树的错误求解,修复了Mem2Reg的重命名alloca的栈管理
|
2025-08-01 15:18:33 +08:00 |
|
rain2133
|
c268191826
|
[midend-SCCP]修改BaiscBlock的析构逻辑,将CFG修改的职责交给优化遍,注释Mem2Reg的调试信息。
|
2025-08-01 01:44:33 +08:00 |
|