Commit Graph

20 Commits

Author SHA1 Message Date
rain2133
3e4cac089e [midend-reg2mem]增加reg2mem遍,应用未定义值,增加inst迭代器查找方法,通过编译且脚本运行通过率不变 2025-07-29 02:01:48 +08:00
rain2133
efe74cba6c [midend-mem2reg]mem2reg遍基本写完,编译不报错,待reg2mem写完统一测试 2025-07-28 14:28:46 +08:00
rain2133
2643eb1edd [midend-mem2reg]修改函数参数定义引入argument类,显示为参数创建alloca和store指令 2025-07-26 12:30:03 +08:00
rain2133
04c5c6b44d [midend-mem2reg]修复assignstmt对lvalue的错误解析(lvaue会被exp解释为值,而被assign解释为地址) 2025-07-25 20:00:41 +08:00
rain2133
12f63a0bf5 [midend]解决标签重名问题 2025-07-25 12:35:35 +08:00
rain2133
9c56bc1310 [midend]修改GEP指令定义,更靠近llvm ir设计,增加自动推断类型函数,修复generator中错误生成ir的逻辑 2025-07-24 17:02:29 +08:00
rain2133
550f4017be [midend]重构中端,建立遍管理器,注册器等,初步构建支配树分析遍,增加基本块方法 2025-07-21 15:19:38 +08:00
rain2133
de696b2b53 [IR]重构数组地址相关指令
增加GEP指令以及相关方法
新增数组Array Type
删除无用指令(GetSubArray,LA)
删除冗余类定义(Lval)
修复中间代码生成逻辑
测试通过所以test目录下的文件
TODO:后端展开数组计算地址仅需要针对GEP指令展开
2025-07-20 15:33:58 +08:00
rain2133
a5d97185e1 [IR]修复IR报错,调整结构。 2025-07-18 18:17:22 +08:00
rain2133
fdc946c1b5 [IR]重构常量定义,引入undefvalue定义,修改常量方法使用尽量适配旧版 2025-07-18 16:40:16 +08:00
rain2133
631ef80de2 [IR]phi指令重构,将block信息加入并提供新方法,后续需更改phi相关指令构建逻辑 2025-07-17 19:01:02 +08:00
Lixuanwang
a509dabbf0 [backend]解决了数组访存地址计算问题,加入了参数控制的中端、后端调试选项 2025-07-15 11:32:53 +08:00
rain2133
73dd8eba22 删除IR中关于分析的属性,准备建立分析器 2025-06-24 10:18:29 +08:00
rain2133
568e9af626 IRoptpre 初步构建 2025-06-23 13:17:15 +08:00
rain2133
496e2abfb6 构建IR打印器,llvm风格,跑通大部分样例(9/10),待修复 2025-06-22 17:59:19 +08:00
rain2133
0a04c816cf 更新IR,.g4修改 2025-06-21 18:06:29 +08:00
rain2133
3ed1c7fecd 更改前置声明,IR生成更新 2025-06-21 16:39:13 +08:00
rain2133
2b038e671b 修复bug 2025-06-21 14:33:22 +08:00
rain2133
30f89bba23 更新IR结构,重写IRBuilder 2025-06-21 12:53:41 +08:00
rain2133
c54543bff3 更新目录结构,修改IR结构,部分修复IR生成 2025-06-20 22:46:04 +08:00