UNIT 68 / 78 · IR-45
编译器入口:读懂眼前的LLVM IR
本单元预计 5 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。
时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。
先知道自己在观察什么
完成本节窄合同、逐步推演与指定练习;沿本页证据边界区分纸面模型、真实执行和未执行片段。
完成本节窄合同、逐步推演与指定练习;沿本页证据边界区分纸面模型、真实执行和未执行片段。
完成本节窄合同、逐步推演与指定练习;沿本页证据边界区分纸面模型、真实执行和未执行片段。
完成本节窄合同、逐步推演与指定练习;沿本页证据边界区分纸面模型、真实执行和未执行片段。
完成本节窄合同、逐步推演与指定练习;沿本页证据边界区分纸面模型、真实执行和未执行片段。
先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。
先留下自己的预测或独立尝试
先纸读三段教学IR及真实旧O0/O2的指定片段;读到I5后按已授driver命令核对有效例。非法支配例只记录verifier拒绝,不执行。
三个有效函数:计算、分支与两次读取 →源码下载与编译入口
下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →
teaching.ll这份文件需要原任务的专用工具或driver命令,不能当作单文件C++程序编译。
先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。
通过一个变动看清原因
完成本桥已给store 9→10对照与x*4+1变体,按独立oracle比较五输入,保留当前实际结果。
修改后应观察到什么
按桥内已给单条件合同比较实际结果;保留命令、退出码和不匹配记录,不重复冒充既有收据。
换一组条件,独立解决
独立完成SSA/phi与内存两题;区分手写IR、真实生成IR、编译拒绝和未运行的poison/undef讨论。
用这些条件检查自己的实现
- 独立写输入/预期与范围限制,再按本页已授命令核对;纸面非法例不执行。
- 只记录实际使用工具与设备的结果;已有教材收据不是本人通过证据。
用证据决定是否进入下一单元
- 本桥为下一份完整源码补齐了哪几条调用或语言合同?
- 模型、实际执行与未验证部分分别能够证明什么?
本单元的验收依据
四步记录与独立复述齐全;桥只补先备,不自动解锁个人项目或设备验收。
留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。