24.1 循环优化
优化的级别
- 局部优化
- 循环优化
- 可能反复执行的代码序列
- 全局优化
循环优化的措施
对循环中的代码,可以实行
- 代码外提
- 强度消弱
- 删除归纳变量(变换循环控制条件)
- 循环展开
- 循环合并
24.2 代码外提
- 所谓变量A在某点d的定值到达 另一点u(或称变量A的定值点 d到达另一点u),是指流图中 从d有一通路到达u且该通路上 没有A的其它定值
- 循环不变运算: 对四元式A:=B op C,若B和C是常数,或者到 达它们的B和C的定值点都在循 环外
- 把循环不变运算提到循环体外
查找循环中不变运算的算法
循环优化示例
外提的条件
代码外提算法
循环优化示例
24.3 强度削弱
把程序中执行时间较长的运算转换为执行时间
较短的运算
强度消弱
- 强度消弱通常是针对循环控制变量有线性关系 的变量赋值进行
- 经过强度消弱后,循环中可能出现一些新的无 用赋值
- 对于消弱下标变量地址计算的强度非常有效
删除归纳变量
删除归纳变量