优化
- 任务
- 对前面产生的中间代码进行加工变换,以期在最后阶段能产生更为高效的目标代码。
- 原则:等价变换
- 主要关注:公共子表达式的提取、合并已知量、删除无用语句、循环优化等。
- 循环优化:将循环内的语句优化为必需语句
- 对前面产生的中间代码进行加工变换,以期在最后阶段能产生更为高效的目标代码。
优化举例
上图左边是C语句,右边为for循环的拆解,根据右边语句生成中间代码
中间代码如上,优化结果如下
优化结果中可以看到,乘法消失了
如果循环中只有示例中的代码的话,可以使用加法一次性计算代替循环计算(+1到100
变为+5050
,依旧等价)