交付:为小语言生成汇编
场景:~/gen 给了半成品生成器,说明列了要补的一小段(二元运算的选指令)。 任务:把它补成能为一段 IR 正确生成汇编的生成器,让说明里的用例通过。补好运行 ~/check。 范围:只在 ~/gen 下你自己的生成器与 IR 文件里操作
开始练习 →
编译优化到底在优化什么
两个能提前算的数 编译时先算成一个结果 编译器做优化,追求的是【0】。
开始练习 →
优化的前提是什么
两个能提前算的数 编译时先算成一个结果 任何优化都必须守住的底线是【0】。
开始练习 →
下面哪种做法算优化
在结果不变的前提下,属于优化的是【0】。
开始练习 →
优化通常在哪个阶段做
编译器的优化,主要发生在【0】。
开始练习 →
为什么优化不是越多越好
优化开得越猛不一定越好,因为【0】。
开始练习 →
两处常量折叠后剩几条 const
按 IR 模型,[t1=2+3, t2=4*5] 两条都能折叠,折叠后有几条 const 指令? 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ con
开始练习 →
局部优化是指什么
所谓局部优化,作用范围是【0】。
开始练习 →
全局优化多看到了什么
比起局部优化,全局优化多看的是【0】。
开始练习 →
常量折叠属于哪类
把一条式子里两个常量提前算掉,属于【0】。
开始练习 →