编译原理笔记【第九章 优化】

文章目录

  • 第一节 优化的概念
    • 1.1 概念
    • 1.2 中间代码优化
    • 1.3 划分基本块
    • 1.4 程序流图
  • 第二节 局部优化
  • 第三节 全局优化

第一节 优化的概念

1.1 概念

优化是一种等价的,有效的程序变换

等价——不改变程序运行结果;
有效——提高程序的效率,包括时间效率和空间效率

优化的时间

编码阶段的优化:源代码优化(数据结构和算法)
编译阶段的优化:中间代码的优化,目标代码的优化

1.2 中间代码优化

局部优化:基本块内的优化
全局优化:基本块外的优化

基本块的定义

程序中的一段语句序列,它有一个唯一的入口语句,和一个唯一的出口语句。
基本块内的所有语句的执行次数都是相同的。

1.3 划分基本块

编译原理笔记【第九章 优化】_第1张图片
编译原理笔记【第九章 优化】_第2张图片

例子

编译原理笔记【第九章 优化】_第3张图片
编译原理笔记【第九章 优化】_第4张图片

1.4 程序流图

编译原理笔记【第九章 优化】_第5张图片

编译原理笔记【第九章 优化】_第6张图片

第二节 局部优化

局部优化就是在基本块内的优化,常用的方法包括
编译原理笔记【第九章 优化】_第7张图片
编译原理笔记【第九章 优化】_第8张图片

第三节 全局优化

全局优化实在基本块之间的优化,常用的方法包括
编译原理笔记【第九章 优化】_第9张图片

编译原理笔记【第九章 优化】_第10张图片
编译原理笔记【第九章 优化】_第11张图片
编译原理笔记【第九章 优化】_第12张图片

编译原理笔记【第九章 优化】_第13张图片

你可能感兴趣的:(编译原理)