编译原理(王晓斌)第十二章.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

No.1如何对中间代码进行优化;No.2如何由优化后的中间代码生成有效和目标代码;电子科技大学计算机科学与工程学院本章主要讨论以下两个问题:第十二章代码优化和目标代码生成

第一节局部优化优化的定义优化是一种等价的,有效的程序变换等价——不改变程序运行结果有效——时空效率要高电子科技大学计算机科学与工程学院

二、不同阶段的优化局部优化:在基本块内的优化全局优化:超越基本块,在基本块之间的优化1.源程序阶段的优化:考虑DS和算法2.编译优化——中间代码优化和目标代码优化电子科技大学计算机科学与工程学院中间代码优化——局部优化和全局优化

三、划分基本块和构造程序流图1.划分基本块基本块是指程序中的一段语句(四元式)序列。一个入口语句,即程序中该语句序列的第一个语句;一个出口语句,即该语句序列的最后一个语句;(1)入口语句紧跟在条件转向语句后的那个语句程序的第一条语句能由条件或无条件转向语句转移到的语句(2)出口语句转向语句停止语句电子科技大学计算机科学与工程学院

入口语句入口语句入口语句………………入口语句转向语句停语句确定基本块删除未被划入基本块的语句电子科技大学计算机科学与工程学院

电子科技大学计算机科学与工程学院(1)i:=m-1(2)j:=n(3)t1:=4*n(4)v:=a[t1](5)i:=i+1(6)t2:=4*i(7)t3:=a[t2](8)ift3vgoto(5)(9)j:=j-1(10)t4:=4*j(11)t5:=a[t4](12)ift5vgoto(9)(13)ifi=jgoto(23)(14)t6:=4*i(15)x:=a[t6](16)t7:=4*i(17)t8:=4*j(18)t9:=a[t8](19)a[t7]:=t9(20)t10:=4*j(21)a[t10]:=x(22)goto(5)(23)t11:=4*i(24)x:=a[t11](25)t12:=4*i(26)t13:=4*n(27)t14:=a[t13](28)a[t12]:=t14(29)t15:=4*n(30)a[t15]:=xB1B2B3B4B5B6例

2.构造流图G=(N,E,n0)(1)基本块集即为结点集N;(2)含程序第一个语句的基本块为首结点n0;(3)设Bi,Bj∈N,若满足下列条件之一,则Bi?BjBj紧跟在Bi之后,且Bi的出口语句不是无条件转向或停止语句Bi的出口语句为转向语句,其转向点恰为Bj的入口语电子科技大学计算机科学与工程学院

电子科技大学计算机科学与工程学院(1)i:=m-1(2)j:=n(3)t1:=4*n(4)v:=a[t1](5)i:=i+1(6)t2:=4*i(7)t3:=a[t2](8)ift3vgoto(5)(9)j:=j-1(10)t4:=4*j(11)t5:=a[t4](12)ift5vgoto(9)(13)ifi=jgoto(23)(14)t6:=4*i(15)x:=a[t6](16)t7:=4*i(17)t8:=4*j(18)t9:=a[t8](19)a[t7]:=t9(20)t10:=4*j(21)a[t10]:=x(22)goto(5)(23)t11:=4*i(24)x:=a[t11](25)t12:=4*i(26)t13:=4*n(27)t14:=a[t13](28)a[t12]:=t14(29)t15:=4*n(30)a[t15]:=xB1B2B3B4B5B6

四、基本块内的优化对于A:=OPB或A:=BOPC这样的语句,若B及C为常数,则编译时可以把它们计算出来,把值存放在临时单元中,相应的语句变成A:=T;1.合并已知量2.删除公共子表达式也叫删除多余运算;例如两条赋值语句A:=B+C*DU:=V-C*D中有两次C*D运算。只计算一次,将值存在临时单元中T第二个语句改为:U:=V-T电子科技大学计算机科学与工程学院

删除无用赋值iF语句条件为定值例如四元式序列A:=B+D…A:=M+N中没有对A的引用,则第一个赋值无用,可删除。4.删除死代码电子科技大学计算机科学与工程学院

F:=1 I:=H*GC:=F+E J:=D/4D:=F+3K:=J+CB:=A*A L:=HG:=B-D L:=I-JH:=EF:=1 I:=H*GC:=1+E J:=1D:=4 K:=2+EB:=A*A L

文档评论(0)

135****7720 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档