计算机复试编译原理哈工大课件ch81_第1页
计算机复试编译原理哈工大课件ch81_第2页
计算机复试编译原理哈工大课件ch81_第3页
计算机复试编译原理哈工大课件ch81_第4页
计算机复试编译原理哈工大课件ch81_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1122VoidInt{intI,j;intv,x;if(n<=m)Do{I=I+1;}while}}3VoidInt{intI,j;intv,x;if(n<=m)Do{I=I+1;}while}}3gotoItofgotoItofo4gotob2IfI>=jgotoIft5<vgotoIft3<vgoto式5式5gotob2gotob26gotob2gotob2677在B5中t6=t2,而x=a[t6]中引用了而x=a[t6]改写为x=a[t2]这种变换称为8在B5中t6=t2,而x=a[t6]中引用了而x=a[t6]改写为x=a[t2]这种变换称为8gotoB29tft5<vgotoift3<vgotogotoB29tft5<vgotoift3<vgoto时变量t6,t7,t8,t9,时变量t6,t7,t8,t9,ift5<vgotoift3<vgotoift5<vgotoift3<vgotoi=iift5<vgotoiftfoift3<vgotoi=iift5<vgotoiftfoift3<vgotoB2[t]gotoift3<vgotoifift2>=t4gotoift5<vgotogotoB2[t]gotoift3<vgotoifift2>=t4gotoift5<vgotogoto其中只有一个入口和一个出口,入口就其中只有一个入口和一个出口,入口就条件转移语句转到的语句③条件转移语句转到的语句③①read中间②read③r=xmod④ifr=0goto⑤⑥⑦goto⑧write⑨①read中间②read③r=xmod④ifr=0goto⑤⑥⑦goto⑧write⑨入口语句、③、⑤、基本块①、③、④;⑤、⑥、基本块内除可用:删除公共子表达复写传删除无用赋还可用下面的变换入口语句、③、⑤、基本块①、③、④;⑤、⑥、基本块内除可用:删除公共子表达复写传删除无用赋还可用下面的变换二、图2。B2紧跟在B1后面(且B1最后语不是无条件转移语句此时称B2为B1的后继,B1为B2的前B2二、图2。B2紧跟在B1后面(且B1最后语不是无条件转移语句此时称B2为B1的后继,B1为B2的前B2B序上例流图为①read②⑤⑥⑦goto⑧write⑨程上例流图为①read②⑤⑥⑦goto⑧write⑨程基本块的DAG表示及其应一。定A*基本块的DAG表示及其应一。定A*①基G②③④⑤⑥⑦⑧⑩①基G②③④⑤⑥⑦⑧⑩B*DAGA*T2-+rRB*DAGA*T2-+rR二。约A=opA=Bop三。构造DAG算作二。约A=opA=Bop三。构造DAG算作3、A记B,且让NODE(B)=nBAn3、A记B,且让NODE(B)=nBAn4、A=op记B,且让NODE(B)=nA=-Bpnn-P,n=NODE(P)4、A=op记B,且让NODE(B)=nA=-Bpnn-P,n=NODE(P)NODE(B)AnBiNODE(B)AnBi③RrBOPC(合并已知量),令产生的新常数为②③RrBOPC(合并已知量),令产生的新常数为②③公共达+Rr删除无用值③公共达+Rr删除无用值B①*2=R+④⑤⑥⑦⑧A,B*T2+-rRB①*2=R+④⑤⑥⑦⑧A,B*T2+-rRB*A*T2-+rRB*A*T2-+rR的中间代码由①①②③④⑤⑥⑦⑧⑩②③④⑤⑥⑦⑨知量②⑥G’已删的中间代码由①①②③④⑤⑥⑦⑧⑩②③④⑤⑥⑦⑨知量②⑥G’已删假0、T1、T2、T3、T4、T5T6在后面的基本块中都不使用假0、T1、T2、T3、T4、T5T6在后面的基本块中都不使用IntForI=1to10doIntForI=1to10do(2)ifI>10goto(14)GOTOB2图(2)ifI>10goto(14)GOTOB2图)(2)ifI>10goto(14)GOTOB2提)(2)ifI>10goto(14)GOTOB2提)(2)ifI>10goto弱)(2)ifI>10goto弱而*i+是循环不变量而*i+是循环不变量(6)T4=addr(A)-(2)ifI>10goto(14)GOTOB2(5)=T2+T1弱(6)T4=addr(A)-(2)ifI>10goto(14)GOTOB2(5)=T2+T1弱(6)T4=addr(A)-删(2)ifT3>Rgoto量(14)GOTOB2(6)T4=addr(A)-删(2)ifT3>Rgoto量(14)GOTOB28.4并尽可能用更小更短的指令8.4并尽可能用更小更短的指令8.4.1R0,a2.8.4.1R0,a2.8.4.20if(debug)}8.4.20if(debug)}debug=1gotogotogotodebug=1gotogotogoto0≠goto0≠goto无条件转移到无条件转移的指令、无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论