教育代码优化.pptx
《教育代码优化.pptx》由会员分享,可在线阅读,更多相关《教育代码优化.pptx(39页珍藏版)》请在咨信网上搜索。
1、第五章第五章 代码优化代码优化 第五章第五章 代码优化代码优化 5.1 完成以下选择题:(1)优化可生成 d 的目标代码。a.运行时间较短 b.占用存储空间较小c.运行时间短但占用内存空间大 d.运行时间短且占用存储空间小第五章第五章 代码优化代码优化 (2)下列 c 优化方法不是针对循环优化进行的。a.强度削弱 b.删除归纳变量 c.删除多余运算 d.代码外提 (3)基本块内的优化为 b 。a.代码外提,删除归纳变量 b.删除多余运算,删除无用赋值c.强度削弱,代码外提 d.循环展开,循环合并第五章第五章 代码优化代码优化 (4)在程序流图中,我们称具有下述性质 d 的结点序列为一个循环。a
2、.它们是非连通的且只有一个入口结点 b.它们是强连通的但有多个入口结点c.它们是非连通的但有多个入口结点 d.它们是强连通的且只有一个入口结点(5)关于必经结点的二元关系,下列叙述中不正确的是 d 。a.满足自反性 b.满足传递性 c.满足反对称性 d.满足对称性【解答】(1)d (2)c (3)b (4)d (5)d第五章第五章 代码优化代码优化 5.2 何谓局部优化、循环优化和全局优化?优化工作在编译的哪个阶段进行?【解答】优化根据涉及的程序范围可分为三种。(1)局部优化是指局限于基本块范围内的一种优化。一个基本块是指程序中一组顺序执行的语句序列(或四元式序列),其中只有一个入口(第一个语
3、句)和一个出口(最后一个语句)。对于一个给定的程序,我们可以把它划分为一系列的基本块,然后在各个基本块范围内分别进行优化。通常应用DAG方法进行局部优化。第五章第五章 代码优化代码优化 (2)循环优化是指对循环中的代码进行优化。例如,如果在循环语句中某些运算结果不随循环的重复执行而改变,那么该运算可以提到循环外,其运算结果仍保持不变,但程序运行的效率却提高了。循环优化包括代码外提、强度削弱、删除归纳变量、循环合并和循环展开。第五章第五章 代码优化代码优化 5.3将下面程序划分为基本块并作出其程序流图。read(A,B)F=1C=A*AD=B*BifC100gotoL2haltL2:F=F-1g
4、otoL1第五章第五章 代码优化代码优化 【解答】先求出四元式程序中各基本块的入口语句,即程序的第一个语句,或者能由条件语句或无条件转移语句转移到的语句,或者条件转移语句的后继语句。然后对求出的每一入口语句构造其所属的基本块,它是由该入口语句至下一入口语句(不包括该入口语句)或转移语句(包括该转移语句)或停语句(包括该停语句)之间的语句序列组成的。凡未被纳入某一基本块的语句都从程序中删除。要注意基本块的核心只有一个入口和一个出口,入口就是其中第一个语句,出口就是其中最后一个语句。如果发现某基本块有两个以上的入口或两个以上的出口,则划分基本块有误。第五章第五章 代码优化代码优化 程序流图画法是当
5、下述条件(1)和(2)有一个成立时,从结点i有一有向边引到结点j:(1)基本块j在程序中的位置紧跟在基本块i之后,并且基本块i的出口语句不是无条件转移语句goto(s)或停语句。(2)基本块i的出口语句是goto(s)或ifgoto(s),并且(s)是基本块j的入口语句。应用上述方法求出本题所给程序的基本块及程序流图见图5-1,图中的有向边、实线是按流图画法(1)画出的,虚线是按流图画法(2)画出的。第五章第五章 代码优化代码优化 图5-1程序流图第五章第五章 代码优化代码优化 5.4 基本块的DAG如图5-2所示。若:(1)b在该基本块出口处不活跃;(2)b在该基本块出口处活跃;请分别给出下
6、列代码经过优化之后的代码:(1)a=b+c(2)b=a-d (3)c=b+c(4)d=a-d第五章第五章 代码优化代码优化 图5-2习题5.4的DAG图第五章第五章 代码优化代码优化 【解答】(1)当b在出口处不活跃时,生成优化后的代码为 a=b0+c0 d=a-d0 c=d+c0 (2)当b在出口活跃时,生成优化后的代码为 a=b0+c0 b=a-d0 d=b c=d+c0第五章第五章 代码优化代码优化 5.5 对于基本块P:S0=2S1=3/S0S2=T-CS3=T+CR=S0/S3H=RS4=3/S1S5=T+CS6=S4/S5H=S6*S2第五章第五章 代码优化代码优化 (1)应用DA
7、G对该基本块进行优化;(2)假定只有R、H在基本块出口是活跃的,试写出优化后的四元式序列。【解答】(1)根据DAG图得到优化后的四元式序列为S0=2S4=2S1=1.5S2=T-C第五章第五章 代码优化代码优化 S3=T+CS5=S3R=2/S3S6=RH=S6*S2(2)若只有R、H在基本块出口是活跃的,优化后的四元式序列为S2=T-CS3=T+CR=2/S3H=R*S2第五章第五章 代码优化代码优化 5.6 试画出如下中间代码序列的程序流图,并求出:(1)各结点的必经结点集合D(n);(2)流图中的回边与循环。J=0L1:I=0if I 8 goto L3L2:A=B+CB=D*C第五章第
8、五章 代码优化代码优化 L3:if B=0 goto L4writeBgotoL5L4:I=I+1ifI8gotoL2L5:J=J+1ifJ=3gotoL1halt第五章第五章 代码优化代码优化 【解答】(1)各结点的必经结点集分别为D(n0)=n0D(n1)=n0,n1D(n2)=n0,n1,n2D(n3)=n0,n1,n3D(n4)=n0,n1,n3,n4D(n5)=n0,n1,n3,n5D(n6)=n0,n1,n3,n6D(n7)=n0,n1,n3,n6,n7程序流图如图5-3所示。第五章第五章 代码优化代码优化 图5-3习题5.6的程序流图第五章第五章 代码优化代码优化 由于有n5n2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教育 代码 优化
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。