- 1、本文档共175页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
6.删除归纳变量由图5–28可知,B2中每循环一次,i值加1,T2与i之间保持着T2=4*i的线性关系;而B3中每循环一次,j值减1,T4与j之间保持着T4=4*j的线性关系。在对T2=4*i和T4=4*j进行了强度削弱后,i和j仅出现在条件句ifi≥jgotoB6中,其余地方不再被引用。因此,我们可以变换归纳变量而把此条件句变换为:ifT2≥T4gotoB6。经过这种变换,我们又可以将无用赋值i=i+1和j=j–1删去。删除归纳变量后的程序流图如图5–29所示。通过上述各种优化,最终得到图5–29所示的优化结果。比较图5–25和图5–29可知:B2和B3中的四元式从4条减为2条,而且一条是由乘法变为加法;B5中的四元式由9条变为3条,B6中的四元式由8条变为2条。以上这些优化对循环执行来说,效果是非常明显的。虽然B1的四元式由4条变为现在的B1和B2共6条,但因其仅被执行一次,所以影响甚微。图5–29删除归纳变量后的程序流图习题五5.1完成以下选择题:(1)优化可生成的目标代码。A.运行时间较短 B.占用存储空间较小C.运行时间短但占用内存空间大 D.运行时间短且占用存储空间小(2)下列优化方法不是针对循环优化进行的。A.强度削弱 B.删除归纳变量 C.删除多余运算 D.代码外提(3)对一个基本块来说,_______是正确的。A.有一个入口语句和一个出口语句B.有一个入口语句和多个出口语句C.有多个入口语句和一个出口语句D.有多个入口语句和多个出口语句(4)下面________不能作为一个基本块的入口。A.程序的第一个语句B.条件转移语句转移到的语句C.无条件转移语句后的下一条语句D.无条件转移语句转移到的语句(5)基本块内的优化为。A.代码外提,删除归纳变量 B.删除多余运算,删除无用赋值C.强度削弱,代码外提 D.循环展开,循环合并(6)在程序流图中,我们称具有下述性质的结点序列为一个循环。A.它们是非连通的且只有一个入口结点 B.它们是强连通的但有多个入口结点C.它们是非连通的但有多个入口结点 D.它们是强连通的且只有一个入口结点(7)关于必经结点的二元关系,下列叙述中不正确的是。A.满足自反性 B.满足传递性C.满足反对称性 D.满足对称性(8)已知有向边a→b是一条回边,则由它组成的循环是的所有结点组成的。A.由结点a、结点b以及有通路到达b但该通路不经过aB.由结点a、结点b以及有通路到达a但该通路不经过bC.仅由结点a以及有通路到达a但该通路不经过bD.仅由结点b以及有通路到达b但该通路不经过a(9)对循环中各基本块的每个四元式,如果它的,则将此四元式标记为“不变运算”。A.每个运算对象为常数B.每个运算对象定值点在循环内C.每个运算对象定值点在循环外D.每个运算对象为常数或者定值点在循环外(10)循环中进行代码外提时,对循环L中的不变运算S:A=BopC或A=opB或A=B,要求满足下述条件(A在离开L后仍是活跃的)中错误的是。A.S所在的结点是L的所有出口结点的必经结点B.A在L中其它地方未再定值C.不变运算S中的B和C必须是常量D.L中的所有A的引用点只有S中A的定值才能到达5.2何谓局部优化、循环优化和全局优化?优化工作在编译的哪个阶段进行?5.3将下面程序划分为基本块并作出其程序流图: read(A,B) F=1 C=A*A D=B*B ifCDgotoL1 E=A*A F=F+1
文档评论(0)