Skip to content

2025年全国大学生计算机系统能力大赛-编译系统设计赛-编译系统实现赛RISC-V赛道全国第四(国家二等奖第一名)作品,队伍:左递归警告

License

Notifications You must be signed in to change notification settings

Crzax/compiler2025-x

Repository files navigation

Compiler 2025-x

本项目是 2025年全国大学生计算机系统能力大赛-编译系统设计赛-编译系统实现赛 的参赛作品,荣获 全国二等奖(国二)

项目说明

  • 比赛名称:2025年全国大学生计算机系统能力大赛-编译系统设计赛-编译系统实现赛
  • 获奖情况:全国二等奖
  • 分支说明当前分支 即为最终代码提交测试的分支。
  • 最新更新:本项目的后续开发与最新更新请移步至 GitHub 仓库:https://github.com/Crzax/compiler2025-x

项目结构

.
├── src/
│   ├── frontend/    # 前端:基于 ANTLR4 的词法/语法分析,生成初始 IR
│   ├── midend/      # 中端:中间代码(IR)定义及基础处理逻辑
│   ├── backend/     # 后端:RISC-V 汇编生成、寄存器分配、栈帧管理
│   ├── opt/         # 优化层:包含中端优化(midend)与后端优化(backend)
│   │   ├── midend/  # 中端优化:常量折叠、死代码消除、别名分析、循环优化等
│   │   └── backend/ # 后端优化:指令选择优化、窥孔优化等
│   ├── main/        # 编译器入口:处理命令行参数,调度各阶段编译流程
│   └── exception/   # 异常处理:编译过程中的错误捕获与提示
├── 设计分析文档.md    # 详细的设计思路与技术实现说明
├── pom.xml          # Maven 项目配置文件
├── compilesy.sh     # 编译脚本
├── runTest.py       # 自动化测试脚本
└── runSingleTest.py # 单个测试用例运行脚本

核心特性

  • 前端:基于 ANTLR4 生成语法解析树。
  • 中端:借鉴 LLVM 实现,包含常量折叠、常量传播、条件简化、GEP 指令优化等。支持别名分析、控制流分析、支配图分析、值域分析及标量演化分析。
  • 后端:支持 RISC-V 规范,实现了基于图着色的寄存器分配策略,包含活跃性分析、冲突图构建、跨函数调用寄存器保护以及栈帧管理。针对乘除法和取余进行了常数优化。

更多详细设计请参考 设计分析文档.md

About

2025年全国大学生计算机系统能力大赛-编译系统设计赛-编译系统实现赛RISC-V赛道全国第四(国家二等奖第一名)作品,队伍:左递归警告

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages