学习途径:
- 国防科技大学中国大学 MOOC
优化的种类:
- 删除多余运算(删除公用子表达式)
- 合并已知量
- 复写传播
- 删除无用赋值
- 代码外提
- 强度消弱
- 变换循环控制条件
优化的级别:
- 局部优化
- 循环优化
- 全局优化
局部优化
基本块的划分
基本块:
- 程序中以顺序执行的语句序列;
- 其中只有一个入口和一个出口。入口就是其中的第一个语句,出口就是其中的最后一个语句。
划分算法:
找到中间语句(三地址语句)程序中的各个基本快的入口语句。它可能是
- 程序的第一个语句;
- 能够由条件转移语句或无条件转移语句转移到的语句;
- 紧跟在条件转移语句后面的语句。
对以上求出的每个入口语句,确定其所属的基本快。
它是由该入口语句 A 到下一入口语句 B(不包括 B)、或到一转移语句 B(包括 B)、或停语句 B(包括 B)之间的语句序列组成的。
凡未被纳入某一基本块中的语句,可以从程序中删除。