docs(doc): 同步验证脚本自动比对说明

master
Lane0218 6 days ago
parent 192907a225
commit b008cde14e

@ -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` 的完整链路已经跑通。

@ -81,7 +81,7 @@ cmake --build build -j "$(nproc)"
./build/bin/compiler --emit-parse-tree test/test_case/simple_add.sy
```
推荐使用统一脚本验证 “IR -> LLVM 后端 -> 可执行程序” 整体链路,用于验证 IR 的正确性:
推荐使用统一脚本验证 “IR -> LLVM 后端 -> 可执行程序” 整体链路。`--run` 模式下会自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对,用于验证 IR 的正确性:
```bash

@ -79,10 +79,10 @@ cmake --build build -j "$(nproc)"
./build/bin/compiler --emit-asm test/test_case/simple_add.sy
```
推荐使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路,用于验证后端代码生成的正确性:
推荐使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路。`--run` 模式下会自动读取同名 `.in`,并将程序输出与退出码和同名 `.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` 的完整后端链路已经跑通。

@ -135,7 +135,7 @@ cmake --build build -j "$(nproc)"
./build/bin/compiler --emit-asm test/test_case/simple_add.sy
```
推荐继续使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路,用于做最小回归:
推荐继续使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路。`--run` 模式下会自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对,用于做最小回归:
```bash
./scripts/verify_asm.sh test/test_case/simple_add.sy test/test_result/asm --run

@ -209,11 +209,11 @@ cmake --build build -j "$(nproc)"
### 8.2 语义回归
```bash
```bash
./scripts/verify_ir.sh test/test_case/simple_add.sy test/test_result/ir --run
./scripts/verify_asm.sh test/test_case/simple_add.sy test/test_result/asm --run
```
```
目标:优化后程序行为与优化前保持一致。
目标:脚本自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对,确保优化后程序行为与优化前保持一致。
---

@ -161,6 +161,8 @@ cmake --build build -j "$(nproc)"
./scripts/verify_asm.sh test/test_case/simple_add.sy test/test_result/asm --run
```
`--run` 模式下脚本会自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对。
### 9.2 优化效果对比(示例)
```bash

Loading…
Cancel
Save