- 9
- 0
- 约2.22万字
- 约 161页
- 2017-09-22 发布于广东
- 举报
公共子表达式 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的指令数都从原
您可能关注的文档
- DA & AD转换器及其与单片机接口.ppt
- Delphi_数据库程序设计.ppt
- e01.Introduction绪论.ppt
- e03.Connective tissue结缔组织.ppt
- e04.Cartilage & Bone软骨和骨.ppt
- e05.Blood and Hemopoiesis血液淋巴和血发生.ppt
- e06.Muscular Tissue肌组织.ppt
- e09.Circulat0ry system循环系统.ppt
- e10.Immune system免疫系统.ppt
- e11.Skin皮肤.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 中医护理技术在骨科中的应用.ppt VIP
- 非煤矿山节后复工安全培训.pptx VIP
- 吉林省松原市长岭县2025~2026学年度下学期第一次月考试卷 八年英语(含答题卡、答案).docx VIP
- 2019新人教版高中英语必修二Unit4词汇表.pdf VIP
- 2025年上半年中国铁路西安局集团有限公司校招笔试题带答案.docx VIP
- 教育学原理-第三章-教育与人的发展【实用参考】.ppt VIP
- 婴幼儿早期教育课程标准.docx VIP
- 景成道人培训课件.ppt VIP
- 2022年高中军训心得体会(集合15篇).docx VIP
- (统编版2024)语文七年级下册 第三单元《课外古诗词诵读》课件(新教材).pptx
原创力文档

文档评论(0)