Lixuanwang
|
7648d9f01f
|
Merge branch 'midend' into backend-O1-1
|
2025-08-20 02:14:53 +08:00 |
|
|
|
3c49183280
|
[midend-m2r]移除错误的LAG优化,performance通过
|
2025-08-19 17:32:01 +08:00 |
|
rain2133
|
839791e862
|
Merge remote-tracking branch 'origin/midend-tco' into midend
|
2025-08-19 08:32:06 +08:00 |
|
rain2133
|
db122cabbd
|
[midend-phielimination]消除只有一个incomingvalue的phi指令
|
2025-08-19 08:27:18 +08:00 |
|
rain2133
|
ce4d4b5f5b
|
[midend-phielimination]增加phi指令消除检查
|
2025-08-19 01:08:05 +08:00 |
|
|
|
937833117e
|
[midend-tco]添加TCO尾递归优化
|
2025-08-18 23:46:00 +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 |
|
rain2133
|
8ca64610eb
|
[midend-GVN]重构GVN的值编号系统
|
2025-08-17 16:33:15 +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
|
d038884ffb
|
[midend-GVN] commit头文件
|
2025-08-16 15:43:51 +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
|
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
|
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
|
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
|
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
|
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 |
|
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
|
d8b004e5e5
|
[midend]修改use关系相关的函数,使其能自动的正确维护,修改了phi指令的各种接口
|
2025-08-03 22:16:40 +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
|
a0b69f20fb
|
[midend]合并了SCCP和backend,修复了支配树的错误求解,修复了Mem2Reg的重命名alloca的栈管理
|
2025-08-01 15:18:33 +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
|
ef09bc70d4
|
[midend]修改了removeinst方法,应对不同的使用情况,增加user析构函数使得user对象销毁顺带销毁其use关系销毁,重构usedelete方法封装指令删除和use关系删除
|
2025-07-31 21:10:20 +08:00 |
|
rain2133
|
61768fa180
|
[midend-SCCP]头文件构架完毕,cpp文件部分报错暂时不commit
|
2025-07-31 17:00:02 +08:00 |
|
rain2133
|
6868f638d7
|
[midend-SCCP]增加基本块对的哈希值计算方法,增加删除use关系和指令的函数
|
2025-07-31 16:57:47 +08:00 |
|
rain2133
|
206a0af424
|
[midend-SCCP]暂存1
|
2025-07-30 16:33:56 +08:00 |
|
Lixuanwang
|
09ae47924e
|
[midend]重构了src目录
|
2025-07-29 21:30:30 +08:00 |
|