Commit Graph

87 Commits

Author SHA1 Message Date
0d23475aa1 [死代码删除]:保证扩展性、模块化构建死代码删除,包括消除无用store,alloca,load,globalval,mem2reg引入的无用alloca以及reg2mem导致的store-load-store冗余存储 2025-06-25 15:33:25 +08:00
b12732f10d 修复分析器逻辑,保证优化遍共享一个分析器(主要是在mem2reg) 2025-06-25 15:30:28 +08:00
1e06c5a446 debugging 2025-06-25 14:00:27 +08:00
050113d31d 增加Reg2Mem,但是会生成死存储指令,需要死代码删除支持识别死存储指令 2025-06-25 13:17:16 +08:00
3dc7c274cf 修复支配树生成算法 2025-06-25 12:42:28 +08:00
e6c4e91956 fix % repeat 2025-06-25 12:27:02 +08:00
4fabcc9952 mem2reg流程基本跑通,修复phi函数打印,需要删除调试print 2025-06-25 12:23:59 +08:00
bd0b624e87 debugging 2025-06-25 02:22:16 +08:00
ac7644f450 添加数据流分析类,实现前向后向分析的模板动作,实现活跃变量分析,基本借鉴学长代码,后续可优化实现 2025-06-24 23:45:43 +08:00
3dbb394bc2 初步构建分析器,增加控制流分析,实现支配节点计算,支配树构建,支配边界计算,为后续Mem2reg做准备 2025-06-24 22:39:20 +08:00
d50f76a770 修复IR函数参数输出,变量命名 2025-06-24 16:39:42 +08:00
73dd8eba22 删除IR中关于分析的属性,准备建立分析器 2025-06-24 10:18:29 +08:00
10b43fc90d 修复若干bug 2025-06-23 17:04:45 +08:00
3d233ff199 基本完成CFG优化(IR修复) 2025-06-23 16:25:52 +08:00
568e9af626 IRoptpre 初步构建 2025-06-23 13:17:15 +08:00
63fc92dcbd 数组命名修复 2025-06-23 11:35:44 +08:00
29f75e60a5 Merge remote-tracking branch 'origin/IRPrinter' into IRPrinter 2025-06-23 00:24:19 +08:00
9d8930f5df fix % repeat in IR print 2025-06-23 00:22:15 +08:00
3da2f3ec80 修复函数类型判断,终端跑通所有测试代码。Printer格式需要修复 2025-06-22 18:40:33 +08:00
496e2abfb6 构建IR打印器,llvm风格,跑通大部分样例(9/10),待修复 2025-06-22 17:59:19 +08:00
4711fb603b fixed bugs brought out by merging 2025-06-22 14:39:38 +08:00
dda8bbe444 Merge branch 'array_add' 2025-06-22 14:24:00 +08:00
d90330af3f add Utils::initExternalFunction 2025-06-22 14:14:02 +08:00
25a8c72a9b [backend] it works 1.0 2025-06-22 14:06:14 +08:00
4828c18f96 前端基本构建完毕,build前端部分无报错,argument类删除后端报错,llvmIR输出待完成 2025-06-22 00:25:43 +08:00
73b382773a 暂存旧符号表结构定义,TODO.md中添加相关说明 2025-06-21 18:07:32 +08:00
0a04c816cf 更新IR,.g4修改 2025-06-21 18:06:29 +08:00
232ed6d023 [backend] introduced rv32 backend 2025-06-21 17:26:50 +08:00
3ed1c7fecd 更改前置声明,IR生成更新 2025-06-21 16:39:13 +08:00
ba5f2a0620 删除格式化功能 2025-06-21 15:40:00 +08:00
8109d44232 工具类方法部分实现,实现部分IR生成 2025-06-21 14:33:56 +08:00
2b038e671b 修复bug 2025-06-21 14:33:22 +08:00
c1583e447d 更改g4文件,优化IR生成流程 2025-06-21 13:44:51 +08:00
30f89bba23 更新IR结构,重写IRBuilder 2025-06-21 12:53:41 +08:00
c54543bff3 更新目录结构,修改IR结构,部分修复IR生成 2025-06-20 22:46:04 +08:00
1de8c0e7d7 引入了常量池优化,修改constvalue类并对IR生成修复,能够编译通过 2025-06-19 00:18:58 +08:00
1aa785efc3 add arraytype def 2025-06-16 20:56:32 +08:00
5727d3bde5 [IR Gen] debugging SIGSEGV 2025-06-09 21:11:17 +08:00
3c5fb7d17b [IR Gen] fixed build errors 2025-06-09 20:06:05 +08:00
7d08763b2e [IR gen] debugging 2025-06-09 19:30:37 +08:00
c47d522e3a [IR Gen] debugging expreimental IR generator 2025-06-09 19:29:59 +08:00
5e84961dcf [IR gen] introduced IR builder into LLVMIRGenerator 2025-06-09 00:47:47 +08:00
df209f976e fixed bugs brought out by merging 2025-05-30 02:13:17 +08:00
969c83125d Merge branch 'lab2-IRGen' 2025-05-30 02:06:43 +08:00
fbb2f5f310 replace "i++;" with "i = i + 1;" in testcase 20 2025-05-30 01:57:24 +08:00
77f79dcbaf merging, fixed some bugs 2025-05-30 01:34:47 +08:00
551d727733 merging 2025-05-29 22:09:16 +08:00
1c799bd04f merging 2025-05-29 19:25:46 +08:00
09d67fdaf1 merging branch lab2-IRGen into master 2025-05-29 17:14:42 +08:00
1e47af2771 merging branch lab2-IRGen into master 2025-05-29 16:09:17 +08:00