|
|
8094fd5705
|
[midend]减少tmp_cond的冲突
|
2025-08-19 09:45:42 +08:00 |
|
|
|
7547d34598
|
[midend-IVE]参考libdivide库,实现了魔数的正确求解,如果后续出错直接用API或者不要除法强度削弱了
|
2025-08-14 05:12:54 +08:00 |
|
|
|
cd27f5fda9
|
[midend]增加部分逻辑位移指令
|
2025-08-13 15:28:37 +08:00 |
|
|
|
60cb8d6e49
|
[midend]重命名Sra指令的kind标识
|
2025-08-13 14:55:46 +08:00 |
|
|
|
70f6a25ebc
|
[midend-LoopAnalysis]修复循环规范遍bug,修正部分打印格式,
|
2025-08-12 12:34:07 +08:00 |
|
|
|
8cb807c8b9
|
[midend-LoopAnalysis]修复phi指令缺失的getIncomingValues方法调用
|
2025-08-11 21:20:38 +08:00 |
|
|
|
1fab6a43f9
|
Merge branch 'midend' into midend-LoopAnalysis
|
2025-08-11 21:20:34 +08:00 |
|
|
|
c867bda9b4
|
[midend]解决部分变量重命名问题
|
2025-08-09 22:30:09 +08:00 |
|
|
|
6b9ad0566d
|
[midend-llvmirprint]修复进度(162/199),修复若干打印问题,修复若干ir生成逻辑问题
|
2025-08-09 21:28:44 +08:00 |
|
|
|
bd02f5f1eb
|
[midend-LoopAnalysis]为phi指令添加新的方法供外部遍历(目前不是顺序遍历)
|
2025-08-08 00:55:01 +08:00 |
|
|
|
ba21bb3203
|
[midend]修复内存泄漏和Heap-buffer-overflow问题(getexternalfunction中及其隐秘的错误),修复全局常量标量访问的错误
|
2025-08-07 02:53:36 +08:00 |
|
|
|
8aa5ba692f
|
[midend]初步修复内存泄漏问题(仍然剩余11处)
|
2025-08-07 01:34:00 +08:00 |
|
|
|
f083e38615
|
[midend-Loop]循环分析构建,增加很多统计方法和循环信息方法
|
2025-08-06 22:29:39 +08:00 |
|
|
|
a4406e0112
|
[midend]增加了指令重命名逻辑。
|
2025-08-06 01:31:23 +08:00 |
|
|
|
08fcda939b
|
[midend-llvmirprint]实现了大部分函数的print方法,TODO:需要完善func和module的print方法以及重命名的逻辑
|
2025-08-06 01:02:11 +08:00 |
|
|
|
f24cc7ec88
|
[midend]修复replaceAllUsesWith中由于setOperand 间接调用 removeUse 或 addUse导致的迭代器失效问题
|
2025-08-04 00:59:39 +08:00 |
|
|
|
446a6a6fcb
|
[midend]修复phi指令接口,优化遍适配
|
2025-08-03 22:18:00 +08:00 |
|
|
|
d8b004e5e5
|
[midend]修改use关系相关的函数,使其能自动的正确维护,修改了phi指令的各种接口
|
2025-08-03 22:16:40 +08:00 |
|
|
|
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 |
|
|
|
f312792fe9
|
[optimze]添加基础的除法指令优化,目前只对除以2的幂数生效
|
2025-08-03 13:46:42 +08:00 |
|
|
|
aef10b48e8
|
[midend]删除前驱后继移除时不存在的检查,phi增加llvm风格接口,重构CFGOpt特别是空块删除的逻辑(待验证)
|
2025-08-01 18:34:43 +08:00 |
|
|
|
c268191826
|
[midend-SCCP]修改BaiscBlock的析构逻辑,将CFG修改的职责交给优化遍,注释Mem2Reg的调试信息。
|
2025-08-01 01:44:33 +08:00 |
|
|
|
0f1fcc835d
|
[midend-SCCP]删除User的析构函数,usedelete增加逻辑通知inst所使用的value移除对应的use关系(一般在这之前会替换使用inst的uses为其他值),TODO:仍然存在bug需要调试
|
2025-07-31 22:32:04 +08:00 |
|
|
|
c5af4f1c49
|
[midend-SCCP]bug修复,增加不可达指令(理论来说后端不会出现这条指令,只是为了IR完整性添加),添加相关方法,phi指令方法修复;目前能够跑完所有优化,但是User的析构函数重定义导致全局析构不能正确完成,需要修复
|
2025-07-31 22:03:35 +08:00 |
|
|
|
ef09bc70d4
|
[midend]修改了removeinst方法,应对不同的使用情况,增加user析构函数使得user对象销毁顺带销毁其use关系销毁,重构usedelete方法封装指令删除和use关系删除
|
2025-07-31 21:10:20 +08:00 |
|
|
|
aed4577490
|
[midend]同上,删除了打印函数对维度信息的错误访问
|
2025-07-31 19:57:19 +08:00 |
|
|
|
f3f603a032
|
[midend]消除冗余维度信息记录,适配IR生成器,TODO:其他优化遍生成指令修改,或者后端的访问
|
2025-07-31 19:36:39 +08:00 |
|
|
|
35691ab7bc
|
[midend-SCCP]为跳转指令增加getSuccessors方法
|
2025-07-31 17:19:57 +08:00 |
|
|
|
520ebd96f0
|
[midend-SCCP]增加不可达指令,修改跳转指令参数(基本块args已弃用默认为{})
|
2025-07-31 16:59:22 +08:00 |
|
|
|
98511efd91
|
[midend]修改constdecl的逻辑区分局部常量和全局常量声明逻辑,提供方法访问全局变量,常量的维度信息,修改GlobalValue,ConstantVariable的继承父类(User->Value)维度信息保存在Type中。
|
2025-07-30 14:40:10 +08:00 |
|
|
|
31b6711d74
|
[midend]IR修改常量类getint和getfloat逻辑,如果类型和方法不一致那么应用强制转换返回转换后的值
|
2025-07-29 23:52:37 +08:00 |
|
|
|
09ae47924e
|
[midend]重构了src目录
|
2025-07-29 21:30:30 +08:00 |
|