《教妹学编译原理》(七)代码优化

数据流分析

  1. 数据流分析
  • 一组用来获取程序执行路径上的数据流信息的技术
  1. 数据流分析应用
  • 到达-定值分析
  • 活跃变量分析
  • 可用表达式分析
  1. 数据流分析模式
  • 语句的数据流模式
  1. 基本块上的数据流模式

到达定值分析

  1. 到达定值
    在这里插入图片描述
  2. 到达定值分析的主要用途
  • 循环不变计算的检测
  • 常量合并
  • 判定变量x在p点上是否未经定值就被引用
  1. 到达定值的传递函数在这里插入图片描述
  2. 到达定值的数据流方程
    在这里插入图片描述

流图

基本块是最大的连续三地址指令序列。

在这里插入图片描述
基本块的划分算法

  1. 首先确认首指令
  2. 任意一个条件或无条件转移指令的目标指令是一个首指令
  3. 紧跟在一个条件或无条件转移指令之后的指令是一个首指令
    在这里插入图片描述
    在这里插入图片描述
    流图

流图的节点是一些基本块。

从基本块B到基本块C之间有一条边当且C的第一个指令可能紧跟在B的最后一条指令之后执行。

在这里插入图片描述

常用的代码优化方法

优化的分类:
在这里插入图片描述

删除公共子表达式

在这里插入图片描述

  • 局部公共子表达式

  • 全局公共子表达式

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/105947873