网站大量收购独家精品文档,联系QQ:2885784924

编译原理课件Chapter-11.pdf

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 代 码 优 化 11.1 概述 11.2 优化的例子 11.3 基本块的优化 11.4 循环优化 1 11.1 概述 经过前面各章所介绍的各个编译阶段,我们已经可 以把源程序变换成目标代码了,但这样生成的目标代码效 率未必是最高的。 代码优化(code optimization) 时间效率(减少运行时间) 目的:提高目标代码运行效率 空间效率(减少内存容量) 原则:进行优化必须严格遵循“不能改变原有程序语义”原则。 2 优化的分类: ★从优化的层次,与机器是否有关,分为: 独立于机器的优化:即与目标机无关的优化,通常是在中间代码上进 行的优化。 与机器有关的优化:充分利用系统资源(指令系统,寄存器资源)。 ★从优化涉及的范围,又分为: 局部优化:是指在基本块内进行的优化。 循环优化:对循环语句所生成的中间代码序列上所进行的优化。 全局优化:顾名思义,跨越多个基本块的全局范围内的优化。因此它 是指在非线性程序段上(包括多个基本块, GOTO, 循环) 的优化。需要进行全局控制流和数据流分析,比较复杂。 3 [定义]基本块 (basic block ) 满足以下三个条件的程序段,称为基本块:  只有一个入口和一个出口,且语句为顺序执行的程序段。  它使得所有转向该基本块的入口都是该基本块的第一条 语句。  如果块中任一语句被执行,则该块内的所有语句也将被 执行(无分支),且执行次数一样(无循环)。 4 例:一个FORTRAN语言例子 1. FACTOR = A( I ) + 2.0 * B( I ) 基本块 1 ⊕ 2. EXP 1 = ABS( FACTOR ) 2 ⊕ 3. IF ( KEY.NE.0 ) GO TO 10 3 ⊕ 4. BASE = 2.0 ⊕ 基本块 4 ⊕ 10 5. FACTOR = FACTOR ** 2 5 ⊕ 6. GO TO 20 11 6 ⊕ ⊕ 10. BASE = 10.0 基本块 ⊕ 11. FACTOR = SQRT( FACTOR ) 20 20. Q = ( BASE ** EXP ) * FACTOR 21

文档评论(0)

JuanHuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档