为什么要分局部和全局

把优化分成局部/全局两层,好处是【0】。

开始练习 →

这趟优化是局部的吗

按模型,is_local("block") 交回什么? def is_local(kind): """只在一个基本块内做的优化是「局部」的(kind == "block&q

开始练习 →

跨函数的优化叫什么

按模型,scope_name("proc") 交回什么? def is_local(kind): """只在一个基本块内做的优化是「局部」的(kind == "block&

开始练习 →

补全:判断是不是局部优化

补全 is_local:只在一个基本块内做的才算局部。

开始练习 →

补全:说出优化范围名

补全 scope_name:block 是局部、其它是全局。

开始练习 →

常量折叠做的是什么

常量折叠这趟优化,做的是【0】。 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ const/copy/+/-/*,操作数 a/b 是整数(常量)或字符

开始练习 →

常量传播做的是什么

常量传播这趟优化,做的是【0】。 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ const/copy/+/-/*,操作数 a/b 是整数(常量)或字符

开始练习 →

折叠和传播为什么常一起用

常量传播和折叠经常配合,因为【0】。 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ const/copy/+/-/*,操作数 a/b 是整数(常量)或

开始练习 →

折叠会改变结果吗

常量折叠对程序结果的影响是【0】。 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ const/copy/+/-/*,操作数 a/b 是整数(常量)或字

开始练习 →

传播后这个操作数变成几

按模型,t1=const 7 后接 r=t1+1,propagate 后第 2 条的第一个操作数是几? 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈

开始练习 →