- 常量表达式
- a = 1, b = 2, c = a + b, 则只记c = 3
- 公共表达式
- a = b * c, d = b * c, 则只记a
- 循环不变式外提
- while k < 0 do b * c, 则b * c外提只计算一次
- 基本块
- 一块语句要么全执行,要么全不执行
- 消减运算强度
- 如加法代替乘法
- 复写传播
- a = b, 后a, b不再变值,用a替代b
- 无用代码消除
- 数学优化(恒等变换)
- 如a + 0 = a, a * 1 = a, a ^ 2 = a * a, a / 1 = a, 0 / a = 0
- 窥孔优化
- 对目标代码中短指令序列局部改进,如删除重复,控制流优化,代数化简,使用特殊指令等
- 全局优化
- 对整个程序控制流和数据分析再优化,如常量表达式全局优化