|
|
|
|
@ -129,13 +129,13 @@ cmake --build build -j "$(nproc)"
|
|
|
|
|
|
|
|
|
|
## 7. Lab4 验证方式
|
|
|
|
|
|
|
|
|
|
项目编译后可先按当前最小样例检查后端链路是否仍能运行:
|
|
|
|
|
项目编译后可先用当前示例用例检查后端链路是否仍能运行:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./build/bin/compiler --emit-asm test/test_case/simple_add.sy
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
推荐继续使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路。`--run` 模式下会自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对,用于做最小回归:
|
|
|
|
|
推荐继续使用统一脚本验证 “源码 -> 汇编 -> 可执行程序” 整体链路。`--run` 模式下会自动读取同名 `.in`,并将程序输出与退出码和同名 `.out` 比对,用于检查单个用例的完整结果:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./scripts/verify_asm.sh test/test_case/simple_add.sy test/test_result/asm --run
|
|
|
|
|
@ -147,4 +147,4 @@ cmake --build build -j "$(nproc)"
|
|
|
|
|
2. 是否减少了不必要的 `load/store` 与重复访存。
|
|
|
|
|
3. 是否消除了无意义的恒等操作。
|
|
|
|
|
|
|
|
|
|
完成 Lab4 后,最终不应只停留在 `simple_add` 这一最小示例,而应对 `test/test_case` 下全部测试用例逐个回归,确保生成代码功能正确;在此基础上,再尽量减少不必要的 spill/reload、无效拷贝、冗余访存与低效机器指令,以提升最终性能表现。
|
|
|
|
|
完成 Lab4 后,最终不应只停留在 `simple_add` 这一示例用例,而应对 `test/test_case` 下全部测试用例逐个回归,确保生成代码功能正确;如有需要,也可以自行编写批量测试脚本统一执行。在此基础上,再尽量减少不必要的 spill/reload、无效拷贝、冗余访存与低效机器指令,以提升最终性能表现。
|
|
|
|
|
|