2024年全国大学生计算机系统能力大赛-编译系统设计赛-编译系统实现赛
中山大学-四个圣甲虫
项目结构
- FrontEnd——使用SysY2022,并采用antlr进行前端的分析
- IR(MiddleEnd)——仿照llvm的数据结构
- Target(BackEnd)——首先将llvm compatible的IR翻译成Machine Instruction,然后进行寄存器分配,最终生成riscv的汇编代码
- Transform——包含了多种类型的optimize方法
- Driver——程序的入口和optimize控制入口
参考代码说明
- mem2reg.cpp中与支配树相关的部分代码,参考了洛谷大佬@haochengw920大佬的实现
- 寄存器分配中的部分代码,参考了现代编译原理-c语言描述(虎书)以及2023年参赛队伍@Yat-CC的实现