补全:常量折叠

补全:常量折叠

补全 fold:两个操作数都是常量的运算,折成 const。 贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ c

阅读更多 →
传播后这个操作数变成几

传播后这个操作数变成几

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

阅读更多 →
折叠会改变结果吗

折叠会改变结果吗

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

阅读更多 →
折叠和传播为什么常一起用

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

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

阅读更多 →
常量传播做的是什么

常量传播做的是什么

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

阅读更多 →
常量折叠做的是什么

常量折叠做的是什么

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

阅读更多 →
补全:说出优化范围名

补全:说出优化范围名

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

阅读更多 →
补全:判断是不是局部优化

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

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

阅读更多 →
跨函数的优化叫什么

跨函数的优化叫什么

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

阅读更多 →
这趟优化是局部的吗

这趟优化是局部的吗

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

阅读更多 →