- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * (2)循环的查找 必经结点 在程序流图中,对任意两个结点m和n,若从流图的首结点出发,到达n的任意通路都要经过m,则称m是n的必经结点,记为m DOM n。 必经结点集 流图中结点n的所有必经结点的集合,称为结点n的必经结点集,记为D(n)。 例如,对如右所示的程序流图, 求各结点的D(n)。 注意 D(7) 的值。 1 2 3 4 5 6 7 * * (2)循环的查找 回边 假设 a b是流图中的一条有向边, 若b DOM a, 则称a b是流图中的一条回边。 对于一已知流图,只要求出各结点 必经结点集,就可求出流图中的所有回边。 对右图,有向边6 6、7 4、4 2 是回边。 循环 如果已知有向边a b是回边, 则循环就是由结点b、a以及有通路到达 a而该通路不经过b的所有结点组成。 1 2 3 4 5 6 7 * * 例如,对右图中的程序流图,根据定义,结点序列{6},{4,5,6,7}以及{2,3,4,5,6,7}都是循环,而结点序列{2,4},{2,3,4},{4,6,7}以及{4,5,7}虽然都是强连通的,但因它们的入口结点不唯一,所以都不是上述意义下的循环。 1 2 3 4 5 6 7 对前面例题的程序流图,可看出{B2,B3} 是程序中的循环,而B2是唯一的入口结点。 (1) read x (2) read y (3) r:=x mod y (4) if r=0 goto (8) (5) x:=y (6) y:=r (7) goto (3) (8) write y (9) halt B1 B2 B3 B4 程序流图 * * 3、循环优化的主要技术 (1)代码外提 入口结点 前置结点 (2)强度削弱 (3)变换循环控制条件(删除归纳变量) 算法 * * 11.4 全局优化 全局优化是整个程序范围内的代码优化。 为了进行全局优化,需要在整个程序范围内,对程序中的所有变量的定值和引用间的关系进行分析,通常将这一工作称为数据流分析。 通过在程序的控制流图中进行数据流分析,是实现全局优化的基础。 * * 11.4.1 一些主要概念 (1)到达-定值 变量A的定值是一个语句(四元式),它赋值或可能赋值给A,该语句的位置称作A的定值点。 Eg. 对A的赋值或读值到A的语句。 (2)引用-定值链(ud链) 假设在程序中某点u引用了变量A的定值,则把能到达u的A的所有定值点的全体,称为A在引用点u的引用—定值链。通常将到达—定值信息存储(一个定值表)作为引用—定值链较方便,称之为 ud链。 * * (3)活跃变量 对程序中的某变量A和某点 p,若存在一条从p 开始的通路,其中引用了A在点p 的值,则称A 在点p 是活跃的。否则称A 在点p是死亡的。 活跃变量的分析对于删除无用赋值是很有意义的。 (4)定值-引用链(du链) 若一个变量A在程序中某点p定值,则可计算该定值能到达的对A的所有引用点,这些引用点集合称为该定值点的定值—引用链,简称为 du链。 du链信息可进一步用于强度削弱的优化中。 * * 11.4.2 数据流方程的一般形式 数据流信息可以由建立和解方程来收集,这些方程联系程序不同点的信息。 (1)数据流方程 典型的数据流方程(正向前进)形式为:P263 out[s] = (in[s] – kill[s]) ∪gen[s] (11-1) (2)建立和解数据流方程的3个因素 ① 可能沿程序控制流前进反方向进行计算; 反向前进的数据流方程形式为: in [s] = (out [s] – kill[s]) ∪gen[s] (11-2) ② 方程是在基本块一级而不是在语句一级建立; ③ 过程调用中,指针赋值和数组变量赋值的处理。 * * 11.4.3 到达—定值数据流方程 (1) 对程序中所有基本块, 定义如下几个集合 In [B] :到达基本块B入口之前的各个变量的所有定值点集。 Out [B] : 到达基本块B出口之后的各个变量的所有定值点集。 Gen [B] :基本块B中定值的并到达B出口之后的的所有定值点集。 Kill [B] :基本块B 外满足下述条件的定值点集:这些定值点所定值的变量在B中已被重新定值。 * * (2) 上述四个集合的计算 Gen[B] 和Kill [B]可直接从给定的流图求出。 In [B] 和 Out [B] 由相应方程求出。 例 图 11.6 (P 264) B Gen[B] 位向量 Kill[B] 位向量 B1 {d1,d2} 110000
您可能关注的文档
- 刘新昱《计算机信息技术教程》第3章3.2 操作系统.ppt
- 刘新昱《计算机信息技术教程》第3章3.3 算法和程序设计.ppt
- 刘新昱《计算机信息技术教程》第3章3.4 常用应用软件.ppt
- 刘新昱《计算机信息技术教程》第4章4.1 计算机网络基础.ppt
- 刘新昱《计算机信息技术教程》第4章4.2 计算机局域网.ppt
- 刘新昱《计算机信息技术教程》第4章4.3 计算机广域网.ppt
- 刘新昱《计算机信息技术教程》第4章4.4 Internet.ppt
- 刘新昱《计算机信息技术教程》第4章4.5 Internet服务.ppt
- 刘新昱《计算机信息技术教程》第4章4.6 网络信息安全.ppt
- 刘新昱《计算机信息技术教程》第5章典型题型.ppt
最近下载
- 船外机_雅马哈维修手册_英文F225F_Fl225F_F250D_Fl250D_F300B_Fl300B_p1-a-p150-anglais-Service Manual-.pdf VIP
- 船外机_雅马哈维修手册_英文F6AMH_6BMH_6Y_8CMH_8CW_8Y Service Manual [en].pdf VIP
- 船外机_雅马哈维修手册_英文F4B-F5A-F6C-(6BV-28197-3M-11)Service Manual-2014.pdf VIP
- 船外机_雅马哈维修手册_英文F9.9-T9.9(LIT-18616-03-03 6AU-28197-1K-11)2007Service Manual.pdf VIP
- 船外机_雅马哈F20C(6AJ-28197-5K-11)英文维修手册.pdf VIP
- 小儿急性咽炎护理查房.pptx
- 乐山市公安局警务辅助人员招聘考试真题2024.docx VIP
- 船外机_雅马哈维修手册_英文F15C-F20B-F20bmh-2006.pdf VIP
- 船外机_雅马哈F9.9JMH(6DR-28197-3S-11)英文维修手册.pdf VIP
- 船外机_雅马哈维修手册_英文F20C-(indo)-4stroke.pdf VIP
文档评论(0)