下载此文档

讲稿_7.ppt


文档分类:办公文档 | 页数:约117页 举报非法文档有奖
1/117
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/117 下载此文档
文档列表 文档介绍
第7章代码优化
内容
概述
代码优化的基本原则
基本块及其优化
数据流分析
循环优化
概述
中间代码是一种通用的抽象,不考虑与具体机器相关的细节内容。
高级语言编写的程序可能本身并不是优化的。
某些高级语言的特征在映射到更低层面语言时,存在多种实现方式,具有不同的时间、空间开销。
优化必须保证语义上的等价
在具有相同功能的条件下,使系统在某方面具有更好的指标。
优化的指标:
目标代码指令条数
目标代码运行效率
目标代码占用内存的多少
目标代码的功耗
……
优化的时机
中间代码生成时的优化
平台无关的优化
平台相关的优化(很多在代码生成阶段进行考虑)
本章主要关注代码优化的基本原理,不考虑具体机器的情况。
中间代码生成阶段的优化
大部分优化是在生成中间代码后进行的
在中间代码生成阶段也可进行部分优化
布尔表达式的优化。主要是短路机制的实现
控制流语句的少量优化。如书中例子里,while语句尾部的if-then-else语句在生成then部分的中间代码时,直接跳转到while开头的做法。
内置调用语句的优化,可根据已经知道的调用规律,减少不必要的开销。
代码优化的基本原则、思路和范围
代码优化的基本原则
等价原则:所谓等价原则(有的文献上称为“安全性”),就是优化前后的代码具有完全相同的功能。
有效原则:优化后产生的代码达到预期的优化目标。
合算原则:以较小的代价获得尽可能高的优化效果。
优化的基本思路
(1)冗余代码的消除
(2)重复计算的合并与提取
(3)复杂计算的简单化
优化的范围
子程序内部的优化
第一,局部优化。该范围优化针对一个基本块内的中间代码进行优化。
第二,超局部优化和区域优化。该范围的优化考虑多个基本块之间的控制流关系,能够实现跨越多个基本块边界的优化。
第三,全局优化,也称过程内优化。是针对一个完整的子程序进行的优化。全局优化的主要技术是数据流分析技术。
过程间优化(Interprocedural)
基本块及其优化方法
所谓基本块,就是只包含线性无谓词代码的最长片段。
基本块是符合以下性质的代码序列:
(1)一个基本块有唯一的入口和出口,分别对应于该块的第一个和最末一个指令;
(2)基本块内部的所有指令都是顺序执行的,不存在任何转跳(除了出口语句可以指向其他基本块的入口);

讲稿_7 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数117
  • 收藏数0 收藏
  • 顶次数0
  • 上传人allap
  • 文件大小889 KB
  • 时间2017-06-29