- 1、本文档共161页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
到达-定值的迭代算法 - read
公共子表达式 1、定义: 如果表达式E先前已计算,并且从先 前的计算至现在,E中变量的值没有 改变,那么E的这次出现称为公共子 表达式。 2、优化的方法----删除公共子表达式 ????在B5中,对t7和t10的赋值分别有公共子表达式4*i和4*j在它们的右部。如果用t6代替t7;t8代替t10,删除这些公共子表达式,就可以避免表达式的重复计算,达到优化的目的。 例1:删除B5中的公共子表达式. 例2: 在例1中,我们删除的只是B5基本 块中的局部公共子表达式。下面我 们看一个既有局部子表达式,又有 全局子表达式的例子。我们采用先 删除局部子表达式,后删除全局子 表达式的方法。这涉及到一种新的 优化方法——复写传播 复写传播 例1中的流图经过删除公共子表达式优化后还存在进一步改进的地方。 以B5为例: 复写传播(续) 复写传播:复写传播和一种形式为f:=g的赋值有关, 复写传播变换的做法是在复写语句f:=g后,尽可能 用g代替f。 ? 死代码删除 如果变量的值以后还要引用,则 称它在程序的一点是活跃的;否 则它在该点是死亡的。死代码指 其计算的值绝不被引用的代码。 死代码删除(续) 例如: ??????????… … ???????????????? ???debug := false ??? ????????????? if (debug) print … … ????????????????????… … 死代码删除(续) 复写传播的优点之一是它常常使得复写语句成为死代码。 例如:在下图中的B5经过公共子表达式删除、复写传播, 我们看死代码删除后的情况是什么样。 循环优化 现在我们简短介绍一下非常重要的可优化的地方, 即循环。尤其是程序消耗它大部分时间的内循环。 如果减少内循环的指令数,即使增加了外循环的 指令数,程序的运行时间也可以减少。 代码外提 代码外提是减少循环中代码总数的一 个重要办法。这种变换是把循环不变 计算(即产生的结果独立于循环执行 次数的表达式)放到循环的前面。(注 意:这里隐含着循环只存在一个入口) ?? ???? 代码外提(续) 例如:下面是一个while语句: ????????????while ( i = limit-2 ) ???????????????? 循环体 假设while的循环体不改变limit的值,那 么limit-2是循环不变计算。代码外提的 结果是: ????????????t=limit-2; ????????????while ( i = t ) ???????????????? 循环体 当然while的循环体也不改变t的值。 强度削弱 强度削弱是指用较快的操作代替较慢的操作,如 用加法代替乘法。我们通过举例说明什么叫强度 削弱。 强度削弱(续) 强度削弱(续) 注意到:当用t4:=t4-4代替t4:=4*j后,出现 一个问题是第一次进B3时t4没有初值,所以在j本身置初值的那一块末尾给t4置恰当初值4*j。在图中,这个语句放在块B1的最后。 归纳变量删除 1、什么是归纳变量 在做完强度削弱的流图中,注意到:在B3的内循环中, 因为4*j赋给t4 ,j和t4的值步伐一致地变化,每次j的 值减1,t4的值减4;同理,在B2的内循环中,i和t2的 值步伐一致地变化,这样的标识符就叫做归纳变量。 2、什么是删除归纳变量 如果在循环中有两个或更多的归纳变量,也许可以只 留一个,去掉其余的,这个过程称为删除归纳变量。 归纳变量删除(续) 例如: 把强度削减用于B2和B3的内循环,i 和j的作用仅在于决定B4的测试结果。 我们已知道i和t2满足关系t2:=4*i;j和t4 满足关系t4:=4*j,那么测试t2=t4等价 于i=j。我们用t2=t4替代i=j后,B2的 i和B3的j就成了死变量,在这些块中 对它们的赋值也就成了死代码,可以 删除。删除结果如图所示。 归纳变量删除(续) 很明显,这种代码变换是有效的。流图 经过强度削弱和归纳变量删除后,块B2 和块B3的指令数都从原
您可能关注的文档
- 大数据与统计教育-业界的观点 - 统计之都.pdf
- 大数据天文学— 时间序列分析2cmmichael ting-chang yang 杨庭彰.pdf
- 大数据与图书馆信息服务工作的变革 - 北京大学医学图书馆.pdf
- 大数据在我国高速公路问题研究中的应用初探 - 中国统计教育学会.pdf
- 大学生恋爱观 - 常州规划局.doc
- 大英百科全书线上知识库.ppt
- 大学物理 - 物理与电子工程学院 - 四川理工学院.doc
- 大足鼠耳蝠嘴巴张角辐射声场的数值研究 - 南京大学学报(自然科学).pdf
- 代数、几何与应用的结合.ppt
- 大中华ipo活动保持强势 - ey.pdf
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)