第十一章 代码优化论述.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11.3.2 循环的查找 分析程序流图中结点间的关系 m DOM n 定义 在程序流图中,对任意两个结点m和n,如果从流图的首结点出发,到达n的任意通路都要经过m,则称m是n的必经结点,记为m DOM n (?a,a DOM a) 必经结点集 定义 结点n的所有必经结点的集合,称为结点n的必经结点集,记为D(n). 例 : 6 7 3 4 1 2 3 5 7 6 1 2 1 2 1 2 1 必经结点集 D(1)={1} D(2)={1,2} D(3)={1,2,3} D(4)={1,2,4} D(5)={1,2,4,5} D(6)={1,2,4,6} D(7)={1,2,4,7} 3 回边: 假设a→b是流图中的一条有向边,如果b DOM a,则a→b是流图中的一条回边。 对于一已知流图,只要求出各结点的必经结点集,就可以求出流图中所有的回边。 必经结点集 D(1)={1} D(2)={1,2} D(3)={1,2,3} D(4)={1,2,4} D(5)={1,2,4,5} D(6)={1,2,4,6} D(7)={1,2,4,7} 6 7 3 4 1 2 3 5 7 6 1 2 1 2 1 2 1 3 回边 4 → 2 6→6 7 → 4 循环: 有向边n→d是回边,组成的循环是由结点d、节点n以及有通路到达n而该通路不经过d的所有节点组成,并且d是该循环的唯一入口节点。 回边 6→6:该回边组成的循环所包含的节点为 6 回边7 → 4:该回边组成的循环所包含的节点为 4,5,6,7 回边4 → 2:该回边组成的循环所包含的节点为 2,3,4,5,6,7 6 7 3 4 1 2 3 5 7 6 1 2 1 2 1 2 1 3 11.3.3 循环优化 1.代码外提 2.强度消弱与删除归纳变量 (1) I:=1 (2) if XY goto B3 B1 B2 (3) I:=2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 X=30, Y=25 J=1, I=1 1. 代码外提 找循环不变运算 循环:{B2,B3,B4} 循环不变运算是否 都可以提到循环外面? (1) I:=1 (2) if XY goto B3 B1 B2 (3) I:=2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 X=25, Y=30 J=2, I=2 代码外提条件:不变运算A所在的结点是循环所有出口结点的必经结点. (1) I:=1 (2′) I:=3 (2) if XY goto B3 B1 B2 (3) I:=2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 考虑: B2 ?B3 ? B4 ? B2 ? B4 ? B5 I=3, J=3 不变运算A所在的结点是循环所有出口结点的必经结点一定能外提? 考虑: B2 ?B3 ? B4 ? B5 I=2, J=2 代码外提条件: A在循环中其他地方未再定值,才能把循环不变运算A:=B op C外提; (1) I:=1 (2′) I:=3 (2) if XY goto B3 B1 B2 (3) I:=2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 代码外提条件: 不变运算A所在的结点是循环所有出口结点的必经结点, 并且A在循环中其他地方未再定值,才能把循环不变运算A:=B op C外提; 或 不变运算A在循环中其他地方未再定值,并且出了A所属的循环后,不在引用A (1) I:=1 (2) I:=3 (3) if XY goto B3 B1 B2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 (1) I:=1 (3) if XY goto B3 B1 B2 (4) X:=X+1 (5) Y:=Y-1 (6) if Y=20 goto B5 (7) J:=I B3 B4 B5 (2) I:=3

文档评论(0)

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

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

1亿VIP精品文档

相关文档