主要改动: ## 数组功能 (完整实现) - 实现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>