fix(frontend): 修复部分实现
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# SysY 编译器课程实验(C++)
|
||||
|
||||
本仓库为“并行编译课程实验”提供一个 SysY 编译器的最小可运行示例,实验按 Lab1–Lab6 逐步完成:
|
||||
从前端(ANTLR 词法/语法分析与 AST 构建)到中端(IR 生成与优化),再到后端(ARM64/AArch64 汇编生成与寄存器分配),最后进行循环/并行相关优化。
|
||||
从前端(词法/语法分析与语法树处理)到中端(IR 生成与优化),再到后端(ARM64/AArch64 汇编生成与寄存器分配),最后进行循环/并行相关优化。
|
||||
|
||||
## 1. 实验介绍
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
| 实验 | 名称 | 任务/目标 |
|
||||
| --- | --- | --- |
|
||||
| Lab1 | 语法树构建 | 基于 SysY 源程序完成语法分析与 AST 构建,并按约定输出 AST(JSON 形式) |
|
||||
| Lab2 | 中间表示生成 | 将 AST 翻译为 LLVM 风格的中间表示(IR),并输出 IR |
|
||||
| Lab1 | 语法树构建 | 基于 SysY 源程序完成语法分析与语法树构建,并按约定输出语法树 |
|
||||
| Lab2 | 中间表示生成 | 将语法树翻译为 LLVM 风格的中间表示(IR),并输出 IR |
|
||||
| Lab3 | 指令选择与汇编生成 | 将 IR 翻译为目标平台汇编代码(本项目以 ARM64/AArch64 为主) |
|
||||
| Lab4 | 寄存器分配 | 为后端生成的虚拟寄存器分配物理寄存器,完成 spill/reload 等必要处理 |
|
||||
| Lab5 | 基本标量优化 | 实现常见的标量优化(如常量传播、死代码删除、简化 CFG 等) |
|
||||
@@ -94,4 +94,4 @@ cmake --build build -j "$(nproc)"
|
||||
./scripts/verify_asm_with_qemu.sh test/test_case/simple_add.sy out/asm --run
|
||||
```
|
||||
|
||||
如果最终看到 `退出码: 3`,说明当前最小子集示例 `return a + b` 的完整链路已经跑通。
|
||||
如果最终看到 `退出码: 3`,说明当前最小子集示例 `return a + b` 的完整链路已经跑通。
|
||||
|
||||
Reference in New Issue
Block a user