全国大学生计算机系统能力大赛编译系统设计赛项目推荐
项目基础介绍和主要编程语言
该项目名为“CSC2020-USTC-FlammingMyCompiler”,是由中国科学技术大学的学生团队在2020年全国大学生计算机系统能力大赛编译系统设计赛中开发的一个编译器项目。该项目的主要编程语言是C++,旨在为SysY语言(一种简化的C语言)设计一个高效的编译器,目标平台是树莓派(ARMv8,32位)。
项目核心功能
- 编译器优化:该项目编译器具有强大的优化能力,在比赛提供的大多数性能测试用例上超过了GCC -O3的优化效果。
- 多层次IR设计:编译器包含三个层次的中间表示(IR),每个层次都有相关的优化Pass,从高层IR的结构级变换到低层IR的指令调度软流水,确保了编译器的高效性。
- 后端设计:后端部分与中间代码优化的低层IR Pass相配合,共同完成指令融合、调度和选择等优化,充分利用ARM指令的特性。
- 创新多线程框架:项目中引入了一个创新的多线程框架,与经典框架OpenMP相比,具有更高的运行性能和更低的函数调用开销。
项目最近更新的功能
- 新版寄存器分配器:集成在后端的新版寄存器分配器,使用图着色算法,会衡量各种方面的奖励与代价来优化分配。
- 多线程化优化:在中间代码层次上由Multithreading Pass完成的自动多线程化变换,提升了编译器的并行处理能力。
- 指令调度软流水:在低层IR上实现的指令调度软流水,进一步优化了编译器的性能。
- 全局变量局部化:通过全局变量局部化优化,减少了寄存器分配时的溢出,提升了编译器的效率。
该项目在2020年的全国大学生计算机系统能力大赛编译系统设计赛中取得了最好的成绩,展示了其强大的功能和高效的性能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



