编译原理实用教程 -杨德芳 第8章 代码优化.pptVIP

  • 3
  • 0
  • 约1.18万字
  • 约 60页
  • 2015-12-11 发布于广东
  • 举报

编译原理实用教程 -杨德芳 第8章 代码优化.ppt

第八章 代码优化 本章学习目标 源程序经过词法分析、语法分析、语义分析等阶段的编译后,就得到和与源程序等价的中间代码。但是,此时的中间代码是“机械”生成的,有很多冗余代码,降低了效率,因此,需要进行代码的优化。代码优化的目的是为了提高目标程序的质量。 优化可以分为局部优化、循环优化和全局优化。本章要点: 局部优化 循环优化 全局优化 8.1优化的概念 8.1.1 优化概述 所谓优化,一般是指为提高目标程序的质量而进行的各项工作。即对程序或中间代码进行各种等价的变换,使得从变换后的程序出发,能生成更有效的目标代码。这里所说的质量,通常就是指目标程序所占的存储空间的大小和运行目标程序所需要的时间的多少。优化的目的在于,既要设法缩小存储空间,又要尽量提高运行速度,而且常常偏重于提高运行速度。 代码涉及面很广,从优化与机器的关系出发,可将优化分为与机器无关的优化和与机器相关的优化。与机器无关的优化可以在源程序或中间语言程序一级上进行。这类优化主要包括①常数合并②公共表达式的消除③循环中不变式的外提④运算强度的削弱等。 此外,从优化与源程序的关系而言,可以把优化分为局部优化和全局优化。局部优化通常指只有一个入口(即程序段的第一条代码)和一个出口(即程序段的最后一条代码)的基本块上的优化。因为只有一个出口和一个入口,所以是线性的,处理起来比较简单,但是效果较差。全局优化是指在非线性程

文档评论(0)

1亿VIP精品文档

相关文档