|
|
|
|
@ -31,7 +31,7 @@ sudo apt install -y build-essential cmake git openjdk-11-jre
|
|
|
|
|
|
|
|
|
|
### 2.3 安装 LLVM 工具链
|
|
|
|
|
|
|
|
|
|
`scripts/verify_ir.sh` 在 `--run` 模式下会调用 LLVM 工具链(`llc` 与 `clang`)将生成的 IR 编译并运行。
|
|
|
|
|
`scripts/verify_ir.sh` 在 `--run` 模式下会调用 LLVM 工具链(`llc` 与 `clang`)将生成的 IR 编译、运行,并在存在同名 `.out` 时自动比对输出结果。
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo apt update
|
|
|
|
|
@ -88,10 +88,10 @@ cmake --build build -j "$(nproc)"
|
|
|
|
|
./build/bin/compiler --help
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
跑完整编译流程自检:从 SysY 源码生成 AArch64 汇编,完成汇编、链接,并在 QEMU 下运行结果程序:
|
|
|
|
|
跑完整编译流程自检:从 SysY 源码生成 AArch64 汇编,完成汇编、链接,在 QEMU 下运行结果程序,并与 `test/test_case` 下同名 `.out` 自动比对:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./scripts/verify_asm.sh test/test_case/simple_add.sy test/test_result/asm --run
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果最终看到 `退出码: 3`,说明当前最小子集示例 `return a + b` 的完整链路已经跑通。
|
|
|
|
|
如果最终看到 `输出匹配: test/test_case/simple_add.out`,说明当前最小子集示例 `return a + b` 的完整链路已经跑通。
|
|
|
|
|
|