P04 设计报告模板
2–6 页为宜。把本文件复制到提交目录或在此基础上填写;不要删除失败实验和限制。
1. 摘要与范围
- 组员、分工、提交 commit:
- 选择的目标格式(LLVM IR / 字节码 / RISC-V 子集):
- 未实现的接口和已知限制:
2. IR 与 CFG
- 指令、值、类型、调用和副作用约定:
- 基本块切分、前驱/后继不变量:
- 一个输入的 IR/CFG 图或文本:
3. SSA 设计
- 支配树/支配边界算法:
- φ 节点表示与 incoming 边约定:
- 如何证明/测试单赋值和重命名栈的正确性:
4. 优化
| Pass | 前置条件 | 保持的不变量 | 失败或不适用的例子 |
|---|---|---|---|
解释器 oracle 如何使用?如何处理异常、I/O 或未知副作用?
5. 寄存器分配与代码生成
- 活跃变量方程和冲突图:
- k 色、spill 选择、重写和终止条件:
- 调用约定、返回值和递归:
6. 正确性、故障与性能证据
- 公开/隐藏/随机测试摘要:
- 至少一个失败案例及修复:
- 固定机器、编译器、输入、重复次数和中位数:
- 指令数、spill、代码大小、wall time 的 before/after:
7. 反思与后续工作
- 哪个设计选择最影响结果?
- 若再有两周,会先改什么?为什么?