2024/07/05—2024/08/20 华为毕昇杯比赛 ARM 后端编译器 担任队长
项目需要将给定语法的 SysY 语言编译成 ARMv7 汇编语言。编译器分为“前端、IR、后端”三个主要部分,本人主要贡献是实现了编译器后端的目标代码生成,并在后端采用了线性扫描寄存器分配、窥孔优化、强度削弱等优化方法,同时也在 IR 部分实现了 Live Var 的数据流分析和公共子表达式消除的优化,还编写了自动化测试脚本以便对所有样例进行快速测试;项目总代码量 20000+ 行,本人代码量 5000+ 行;最终带领队员们进入全国总决赛并获优胜奖。