优化

学习途径:

  • 国防科技大学中国大学 MOOC

优化的种类:

  • 删除多余运算(删除公用子表达式)
  • 合并已知量
  • 复写传播
  • 删除无用赋值
  • 代码外提
  • 强度消弱
  • 变换循环控制条件

优化的级别:

  • 局部优化
  • 循环优化
  • 全局优化

局部优化

基本块的划分

基本块:

  • 程序中以顺序执行的语句序列;
  • 其中只有一个入口和一个出口。入口就是其中的第一个语句,出口就是其中的最后一个语句。

划分算法:

  1. 找到中间语句(三地址语句)程序中的各个基本快的入口语句。它可能是

    1. 程序的第一个语句;
    2. 能够由条件转移语句或无条件转移语句转移到的语句;
    3. 紧跟在条件转移语句后面的语句。
  2. 对以上求出的每个入口语句,确定其所属的基本快。

    它是由该入口语句 A 到下一入口语句 B(不包括 B)、或到一转移语句 B(包括 B)、或停语句 B(包括 B)之间的语句序列组成的。

  3. 凡未被纳入某一基本块中的语句,可以从程序中删除。