Commit Graph

  • aa7f2bb0f5 [midend]loop分析构建 rain2133 2025-08-02 17:42:43 +08:00
  • 004ef82488 [backend-IRC]修复了后端不适配中端全局变量定义的问题 backend-IRC Lixuanwang 2025-08-02 15:10:19 +08:00
  • 8f1d592d4e Merge branch 'midend' into backend-IRC Lixuanwang 2025-08-02 12:47:27 +08:00
  • 537533ee43 Merge branch 'midend' into backend-IRC Lixuanwang 2025-08-02 12:43:18 +08:00
  • bfe218be07 [midend]非全0初始化数组情况下,检查0初始值个数,超过阈值(目前为16)则生成menset减少大量store操作 rain2133 2025-08-02 02:33:25 +08:00
  • 384f7c548b [backend-IRC]添加了三级调试打印逻辑 Lixuanwang 2025-08-01 23:18:53 +08:00
  • 57fe17dc21 [backend-IRC]为虚拟寄存器与物理寄存器之间添加冲突 Lixuanwang 2025-08-01 21:20:04 +08:00
  • e48cddab9f [midend]修复多维数组维度信息的计算值(理论上计算结果一定是常量),TODO:修复类似问题 rain2133 2025-08-01 19:19:05 +08:00
  • aef10b48e8 [midend]删除前驱后继移除时不存在的检查,phi增加llvm风格接口,重构CFGOpt特别是空块删除的逻辑(待验证) rain2133 2025-08-01 18:34:43 +08:00
  • 373726b02f [backend-IRC]修复了极其隐蔽的寄存器分配问题 Lixuanwang 2025-08-01 17:29:18 +08:00
  • a0b69f20fb [midend]合并了SCCP和backend,修复了支配树的错误求解,修复了Mem2Reg的重命名alloca的栈管理 rain2133 2025-08-01 15:18:33 +08:00
  • 999f2c6615 Merge remote-tracking branch 'origin/backend' into midend rain2133 2025-08-01 14:06:20 +08:00
  • 1eedb55ca0 Merge branch 'midend-SCCP' into midend rain2133 2025-08-01 14:02:14 +08:00
  • 8fe9867f33 [backend-IRC]修复了keepalive伪指令处理缺失的问题 Lixuanwang 2025-08-01 12:15:03 +08:00
  • 166d0fc372 [backend-IRC]修复了栈传递参数逻辑 Lixuanwang 2025-08-01 05:21:37 +08:00
  • 873dbf64d0 [backend-IRC]基本构建了IRC Lixuanwang 2025-08-01 04:44:13 +08:00
  • f387aecc03 [backend-IRC]进一步构建寄存器分配逻辑 Lixuanwang 2025-08-01 02:47:40 +08:00
  • c268191826 [midend-SCCP]修改BaiscBlock的析构逻辑,将CFG修改的职责交给优化遍,注释Mem2Reg的调试信息。 midend-SCCP rain2133 2025-08-01 01:44:33 +08:00
  • 03e88eee70 [backend-IRC]初步构建新的寄存器分配器 Lixuanwang 2025-07-31 23:02:53 +08:00
  • 0f1fcc835d [midend-SCCP]删除User的析构函数,usedelete增加逻辑通知inst所使用的value移除对应的use关系(一般在这之前会替换使用inst的uses为其他值),TODO:仍然存在bug需要调试 rain2133 2025-07-31 22:32:04 +08:00
  • c5af4f1c49 [midend-SCCP]bug修复,增加不可达指令(理论来说后端不会出现这条指令,只是为了IR完整性添加),添加相关方法,phi指令方法修复;目前能够跑完所有优化,但是User的析构函数重定义导致全局析构不能正确完成,需要修复 rain2133 2025-07-31 22:03:35 +08:00
  • 9a53e1b917 [midend]适应上一次commit修改已有优化遍中相关指令删除的代码 rain2133 2025-07-31 21:10:59 +08:00
  • ef09bc70d4 [midend]修改了removeinst方法,应对不同的使用情况,增加user析构函数使得user对象销毁顺带销毁其use关系销毁,重构usedelete方法封装指令删除和use关系删除 rain2133 2025-07-31 21:10:20 +08:00
  • a5318a2c5c 为中端加入常量传播Pass constPropagation CGH0S7 2025-07-31 20:46:35 +08:00
  • aed4577490 [midend]同上,删除了打印函数对维度信息的错误访问 rain2133 2025-07-31 19:57:19 +08:00
  • 35b421b60b [midend]修改原因同上一次commit rain2133 2025-07-31 19:38:43 +08:00
  • f3f603a032 [midend]消除冗余维度信息记录,适配IR生成器,TODO:其他优化遍生成指令修改,或者后端的访问 rain2133 2025-07-31 19:36:39 +08:00
  • de0f8422e9 [midend-SCCP]没有编译报错但是Segmemtation falut rain2133 2025-07-31 17:29:34 +08:00
  • 35691ab7bc [midend-SCCP]为跳转指令增加getSuccessors方法 rain2133 2025-07-31 17:19:57 +08:00
  • 61768fa180 [midend-SCCP]头文件构架完毕,cpp文件部分报错暂时不commit rain2133 2025-07-31 17:00:02 +08:00
  • 520ebd96f0 [midend-SCCP]增加不可达指令,修改跳转指令参数(基本块args已弃用默认为{}) rain2133 2025-07-31 16:59:22 +08:00
  • 6868f638d7 [midend-SCCP]增加基本块对的哈希值计算方法,增加删除use关系和指令的函数 rain2133 2025-07-31 16:57:47 +08:00
  • e8699d6d25 [backend]更新脚本和库以支持性能测试用例 Lixuanwang 2025-07-31 16:42:41 +08:00
  • 0727d5a6d8 Merge commit 'fc7afdbb359e71e799ea50ac71ac21ce233aeaac' into backend Lixuanwang 2025-07-31 15:01:06 +08:00
  • fc7afdbb35 [midend]修复错误的RelExp类型转换 backend-float rain2133 2025-07-31 13:55:59 +08:00
  • bfe2b248cd Merge branch 'backend-float' into backend Lixuanwang 2025-07-31 12:16:11 +08:00
  • 6d60522ce2 Merge branch 'midend' into backend-float Lixuanwang 2025-07-31 12:14:38 +08:00
  • 807fb3f560 [backend]微优化与可读性维护不影响原逻辑和分数 CGH0S7 2025-07-31 11:23:17 +08:00
  • 82288464c3 [midend]修复常量变量的声明逻辑同变量声明,重构表达式生成逻辑(将中缀表达式转换为后缀表达式判断类型提升后再进行统一类型转换和计算)。运行脚本通过率[117/140]。 rain2133 2025-07-31 02:47:39 +08:00
  • 7e8b90ffd4 [midend]修改全局变量,全局常量类,提供维度访问方法,消除维度信息(记录在Type中),createItoFInst命名修复,增加打印全局常量。 rain2133 2025-07-31 02:45:40 +08:00
  • b3cf3cba29 [backend]修复了多参数传递的错误 Lixuanwang 2025-07-30 22:16:37 +08:00
  • 03b62b138f [backend]修复了一个栈管理问题 Lixuanwang 2025-07-30 20:40:56 +08:00
  • 8e94f89931 Merge branch 'midend' into backend Lixuanwang 2025-07-30 18:27:42 +08:00
  • b388dc4542 Merge branch 'backend-float' into backend Lixuanwang 2025-07-30 18:26:06 +08:00
  • 48b0aec6c3 [midend][backend]修复了全局常量数组的访问错误 Lixuanwang 2025-07-30 18:23:56 +08:00
  • 1fb5cd398d [backend]修复了多参数传递的问题 Lixuanwang 2025-07-30 17:58:39 +08:00
  • 206a0af424 [midend-SCCP]暂存1 rain2133 2025-07-30 16:33:56 +08:00
  • 877a0f5dc2 [backend-float]修复部分问题 Lixuanwang 2025-07-30 16:00:02 +08:00
  • a3c4d5a2b8 [Optimize]对PreRA指令调度进行优化 CGH0S7 2025-07-30 15:27:23 +08:00
  • 39c13c46ec Merge branch 'midend' into backend-float Lixuanwang 2025-07-30 15:10:38 +08:00
  • dd38bdc133 [backend]引入浮点数支持,但目前寄存器分配存在问题 Lixuanwang 2025-07-30 15:07:29 +08:00
  • 38bee5d5ac [midend]IRPrinter增加了打印全局常量的功能 rain2133 2025-07-30 14:46:28 +08:00
  • 98511efd91 [midend]修改constdecl的逻辑区分局部常量和全局常量声明逻辑,提供方法访问全局变量,常量的维度信息,修改GlobalValue,ConstantVariable的继承父类(User->Value)维度信息保存在Type中。 rain2133 2025-07-30 14:40:10 +08:00
  • 507096a0f6 Merge branch 'midend' of gitee.com:lixuanwang/mysysy into midend Lixuanwang 2025-07-30 11:31:46 +08:00
  • 7f2e501cea [backend]修复了指令选择不支持ConstantVariable操作数的bug Lixuanwang 2025-07-30 11:31:37 +08:00
  • 860ebcd447 [Optimize]对PostRA指令调度进行容器/算法/缓存优化 CGH0S7 2025-07-30 10:28:06 +08:00
  • 31b6711d74 [midend]IR修改常量类getint和getfloat逻辑,如果类型和方法不一致那么应用强制转换返回转换后的值 rain2133 2025-07-29 23:52:37 +08:00
  • 42dce9820b Merge branch 'midend' into backend Lixuanwang 2025-07-29 21:31:04 +08:00
  • 09ae47924e [midend]重构了src目录 Lixuanwang 2025-07-29 21:30:30 +08:00
  • f5922d0178 [midend]修改类型转换判断的逻辑 rain2133 2025-07-29 20:23:25 +08:00
  • 63906d0648 [midend]修复82样例生成IR的错误(未正确初始化全局数组常量和数组常量的Type计算) rain2133 2025-07-29 19:35:39 +08:00
  • 6ba05e0d8c [PreRA_Scheduler]添加寄存器分配前的指令调度优化 CGH0S7 2025-07-29 17:00:27 +08:00
  • e4fd16e36a Merge branch 'backend' into midend Lixuanwang 2025-07-29 16:37:11 +08:00
  • 32bdc17dc3 [backend]调整了后端pass的顺序 Lixuanwang 2025-07-29 16:15:01 +08:00
  • 8deb4ed076 [backend]添加了2个新的pass,用于解决大立即数加载问题 Lixuanwang 2025-07-29 15:48:37 +08:00
  • 37e99e37a3 Merge branch 'midend-mem2reg' into midend rain2133 2025-07-29 15:48:34 +08:00
  • 8e69992b29 [midend-mem2reg]增加说明 rain2133 2025-07-29 15:47:51 +08:00
  • 15fe69187a [midend-mem2reg]目前reg2mem仅将函数参数和phi指令及其对应指令进行reg2mem,旨在消除phi指令。 rain2133 2025-07-29 15:30:28 +08:00
  • fff19ca1ea [midend-mem2reg]Reg2Mem建立完成runit测试127/140,reg2mem基本思路:函数参数默认降级到内存,有结果的指令被降级的内存 rain2133 2025-07-29 14:34:16 +08:00
  • 4a329eeaf2 [midend]修复return指令exp为空的判断条件错误 rain2133 2025-07-29 12:16:46 +08:00
  • 3dc4b28c92 [midend-mem2reg]dom增加访问支配树子节点求解和访问方法,修复block打印,phi指令命名,TODO:reg2membug待修复 rain2133 2025-07-29 03:25:56 +08:00
  • 202e6d7cd8 [midend-mem2reg]增加遍打印方法,修复reg2mem构造函数错误 rain2133 2025-07-29 02:11:10 +08:00
  • 3e4cac089e [midend-reg2mem]增加reg2mem遍,应用未定义值,增加inst迭代器查找方法,通过编译且脚本运行通过率不变 rain2133 2025-07-29 02:01:48 +08:00
  • 76d7b14b2e [backend]更新了测试脚本,现在的测试更准确 Lixuanwang 2025-07-29 01:04:43 +08:00
  • ed8fc32a23 [deploy]部署版本3 deploy-20250729 Lixuanwang 2025-07-29 00:48:17 +08:00
  • 9ba08126fb Merge branch 'peephole' into backend Lixuanwang 2025-07-28 23:46:34 +08:00
  • 875100ec01 [backend]为单次运行脚本添加了clean参数 Lixuanwang 2025-07-28 23:41:36 +08:00
  • b0cecca081 Merge branch 'backend-rec' into backend Lixuanwang 2025-07-28 23:40:58 +08:00
  • 434bcea98e [PostRA_Scheduler]修复了超大测例卡死的bug peephole CGH0S7 2025-07-28 23:17:26 +08:00
  • da5c2bb41d [PostRA_Scheduler]完成寄存器分配后的指令调度优化 CGH0S7 2025-07-28 22:35:29 +08:00
  • fcc3806342 Merge branch 'backend-bss' into backend Lixuanwang 2025-07-28 17:31:47 +08:00
  • 792dc9c1f6 Merge branch 'backend-bss' into backend-rec backend-rec Lixuanwang 2025-07-28 17:31:23 +08:00
  • 429e477776 [backend]引入了对.bss和.data段的区分 backend-bss Lixuanwang 2025-07-28 17:29:18 +08:00
  • 535a935bf1 [midend-mem2reg]暂存文件,思路留存 rain2133 2025-07-28 14:57:15 +08:00
  • efe74cba6c [midend-mem2reg]mem2reg遍基本写完,编译不报错,待reg2mem写完统一测试 rain2133 2025-07-28 14:28:46 +08:00
  • 634a84f29c [peephole]Pass架构重构优化 CGH0S7 2025-07-27 11:03:26 +08:00
  • 2e8b564d8f [backend]修复了递归函数的调用问题,引入了新的bug? Lixuanwang 2025-07-27 01:07:08 +08:00
  • 2dd6a17fca [backend]saving1 Lixuanwang 2025-07-27 00:34:45 +08:00
  • 78dee0d72a [peephole]添加7项窥孔优化规则初步测试生效成功,有待进一步检查,TODO: 指令调度优化 CGH0S7 2025-07-26 21:44:14 +08:00
  • af318b6c0e [backend]尝试在寄存器分配逻辑中区分调用者保存、被调用者保存寄存器 Lixuanwang 2025-07-26 21:45:01 +08:00
  • 9bea4d5343 [backend]更新todo Lixuanwang 2025-07-26 19:04:31 +08:00
  • 540742be0c [backend]添加了一个Pass,将调用者、被调用者寄存器实现转移到其中 Lixuanwang 2025-07-26 18:38:04 +08:00
  • 8ae7478ef3 Merge branch 'midend' into backend Lixuanwang 2025-07-26 17:36:23 +08:00
  • a616ec085e [midend][backend]补全了符合RV64调用约定的寄存器着色规则 Lixuanwang 2025-07-26 17:35:08 +08:00
  • 828515bc2f [midend][backend]添加了DAG中的Argument类型,添加了Argument节点的处理逻辑 Lixuanwang 2025-07-26 16:55:32 +08:00
  • a231267fc5 [midend]修复函数参数alloca指令创建错误导致的段错误,修复irprint对argument的识别 rain2133 2025-07-26 13:02:24 +08:00
  • 4b181261ce [midend][backend]同步后端逻辑,修复编译错误 Lixuanwang 2025-07-26 12:53:21 +08:00
  • 3df9b3bb06 Merge remote-tracking branch 'origin/midend-mem2reg' into midend Lixuanwang 2025-07-26 12:41:43 +08:00
  • e57ac7709d [backend]开始区分调用者保存寄存器与被调用者保存寄存器 Lixuanwang 2025-07-26 12:39:17 +08:00
  • 2643eb1edd [midend-mem2reg]修改函数参数定义引入argument类,显示为参数创建alloca和store指令 rain2133 2025-07-26 12:30:03 +08:00