数据流分析
- 数据流分析
- 一组用来获取程序执行路径上的数据流信息的技术
- 数据流分析应用
- 到达-定值分析
- 活跃变量分析
- 可用表达式分析
- 数据流分析模式
- 语句的数据流模式
- 基本块上的数据流模式
到达定值分析
- 到达定值
- 到达定值分析的主要用途
- 循环不变计算的检测
- 常量合并
- 判定变量x在p点上是否未经定值就被引用
- 到达定值的传递函数
- 到达定值的数据流方程
流图
基本块是最大的连续三地址指令序列。
基本块的划分算法
- 首先确认首指令
- 任意一个条件或无条件转移指令的目标指令是一个首指令
- 紧跟在一个条件或无条件转移指令之后的指令是一个首指令
流图
流图的节点是一些基本块。
从基本块B到基本块C之间有一条边当且C的第一个指令可能紧跟在B的最后一条指令之后执行。
常用的代码优化方法
优化的分类:
删除公共子表达式
-
局部公共子表达式
-
全局公共子表达式