Shrink
|
1fbdbb2ea1
|
feat: 实现完整数组支持 + 初步浮点支持 (18/21测试通过)
主要改动:
## 数组功能 (完整实现)
- 实现GEP指令支持全局数组、局部数组、指针参数的元素访问
- 支持2D数组的线性化和正确的地址计算
- 修复指针参数传递(区分数组地址传递和指针值加载)
- 添加LoadIndirect/StoreIndirect/LoadStackAddr等MIR指令
- 支持array[i][j]多维数组访问
## 浮点类型系统 (框架完成)
- IR类型系统: 添加Float32和PtrFloat32类型
- ConstantFloat: 实现浮点常量及Context管理
- IRGen: 支持float变量声明、浮点字面量、函数参数/返回值
- MIR寄存器: 添加S0-S10浮点寄存器
- MIR指令: 添加FAddRR/FSubRR/FMulRR/FDivRR/FCmpRR等浮点opcodes
- IRBuilder: CreateAllocaF32/CreateAllocaF32Array支持
## 测试结果
- 功能测试: 10/11 通过 (90.9%)
✓ 数组、函数、矩阵运算、图算法等全部通过
✗ 95_float (需完整浮点实现)
- 性能测试: 8/10 编译成功 (80%)
✓ 01_mm2 (矩阵乘法,输出验证正确)
✗ large_loop_array_2, vector_mul3 (需浮点支持)
- 总计: 18/21 (85.7%)
## 待完成
- Lowering.cpp中float的load/store/算术操作处理
- AsmPrinter.cpp中浮点汇编指令生成
- float与int的类型转换
关键修复:
- 修复GEP结果存储机制(使用8字节指针槽)
- 修复函数调用时数组参数传递(LoadStackAddr vs LoadStack)
- 修复15_graph_coloring的segfault问题
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2 weeks ago |
Shrink
|
6faa67fb65
|
通过了test_case下的测试,修改测试脚本由于不同平台换行符的差异导致测试失败的问题
|
1 month ago |
Shrink
|
9184ba9c9d
|
Merge branch 'Shrink' into master (keep Shrink sema files)
|
1 month ago |
Shrink
|
c33d36e040
|
Shrink: Compile pass with IRGen fixed
实现合并
|
1 month ago |
Shrink
|
97d5ec1d48
|
Shrink:IR-change-1
|
1 month ago |
Shrink
|
f16c29db26
|
feat<src/antlr4/SysY.g4>:complement the rules
|
1 month ago |
zjx
|
d6926a7b75
|
路径修改
|
1 month ago |
Shrink
|
04a29b2bf9
|
Shrink: Compile pass with IRGen fixed
|
2 months ago |
Shrink
|
477720eb5e
|
Shrink:IR-change-1
|
2 months ago |
p5b2alt9f
|
513501da75
|
Merge pull request 'sema模块完成' (#1) from mirror into master
|
2 months ago |
mirror
|
8414298089
|
Sema模块
|
2 months ago |
mirror
|
7405f1327d
|
测试提交
|
2 months ago |
Shrink
|
192b8004ed
|
feat<src/antlr4/SysY.g4>:complement the rules
|
2 months ago |
zjx
|
702ed9c1fd
|
feat(antlr4):语法树构建的相关代码修改
|
2 months ago |
zjx
|
3832d65537
|
feat(antlr4),test(run_tests.py)
|
2 months ago |
jing
|
be143f5326
|
Merge remote-tracking branch 'educoder/master'
|
2 months ago |
jing
|
dfa71bc0d7
|
refactor(irgen): 规范采用visitor生成
|
2 months ago |
jing
|
7d4d60c546
|
refactor(ir): ir改为更标准的实现
|
2 months ago |
刘嘉成
|
55730147cd
|
docs(doc): 修正远端仓库地址说明
|
2 months ago |
刘嘉成
|
80f5fc23ec
|
docs(doc): 更新说明文档
|
2 months ago |
刘嘉成
|
de06690f8d
|
docs(doc): 更新参考资料与头歌协作说明
|
2 months ago |
jing
|
1b283856b3
|
refactor(ir): 改一下sema相关的适配
|
2 months ago |
jing
|
f19d23c656
|
refactor(irgen): 完善irgen代码和文档,提升扩展兼容性
|
2 months ago |
jing
|
a091d9108a
|
refactor(frontend): 添加对只编译前端的支持
|
2 months ago |
jing
|
10ea8aad14
|
chore(dev): 调整test用例结构
|
2 months ago |
Lane0218
|
b26c40f6ad
|
docs(doc): remove old lab4 and lab5 files
|
2 months ago |
Lane0218
|
484a143911
|
docs(doc): swap lab4 and lab5 order
|
2 months ago |
jing
|
f746c2a75b
|
Merge branch 'master' of https://gitee.com/NUDT-compiler/nudt-compiler-cpp
|
2 months ago |
jing
|
1a5e05ea00
|
test(test): 添加测试用例
|
2 months ago |
Lane0218
|
cc58f8202f
|
chore(dev): 调整帮助信息
|
2 months ago |
jing
|
e72944a36b
|
docs(doc): 调整lab5, lab6部分表述
|
2 months ago |
Lane0218
|
0a0897a705
|
docs(doc): 调整 Lab6 循环并行化说明
|
2 months ago |
Lane0218
|
77e9eb2487
|
docs(doc): 调整 Lab6 并行优化表述
|
2 months ago |
Lane0218
|
72db506f71
|
style(doc): 重构 Lab6 文档结构
|
2 months ago |
Lane0218
|
262aad15f2
|
docs(doc): 重写 Lab5 实验定位说明
|
2 months ago |
Lane0218
|
ace75a96d5
|
docs(doc): 调整 Lab5 实验定位表述
|
2 months ago |
Lane0218
|
70a0621d1b
|
style(doc): 重构 Lab5 文档结构
|
2 months ago |
Lane0218
|
6cadd77344
|
style(doc): 调整 Lab5 文档结构
|
2 months ago |
Lane0218
|
9eab25d676
|
style(doc): 调整 Lab5 文档表述风格
|
2 months ago |
Lane0218
|
dc34d9eafd
|
docs(doc): 调整 Lab4 线性扫描说明
|
2 months ago |
Lane0218
|
c98bfb118b
|
docs(doc): 调整 Lab4 图着色说明
|
2 months ago |
Lane0218
|
f1fdeacf1b
|
style(doc): 调整 Lab4 优化建议表述
|
2 months ago |
Lane0218
|
18540d3c40
|
docs(doc): 调整 Lab1 生成与构建步骤顺序
|
2 months ago |
Lane0218
|
2f3877d16a
|
docs(doc): 调整 Lab4 要求表述
|
2 months ago |
Lane0218
|
9b8fcf60eb
|
style(doc): 简化实验文档文件指引
|
2 months ago |
Lane0218
|
422a30e5a8
|
style(doc): 完善实验文档验证要求
|
2 months ago |
Lane0218
|
1449cf3a01
|
style(doc): 恢复 Lab1 文档标题
|
2 months ago |
Lane0218
|
78488d0cfe
|
style(doc): 精简实验文档章节标题
|
2 months ago |
Lane0218
|
b008cde14e
|
docs(doc): 同步验证脚本自动比对说明
|
2 months ago |
Lane0218
|
192907a225
|
feat(test): 支持验证脚本自动比对输出
|
2 months ago |