- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:构造以下基本块的DAG (1) T0:=3.14 (2) T1:=2*T0 (3) T2:=R+r (4) A:=T1*T2 (5) B:=A (6) T3:=2*T0 (7) T4:=R+r (8) T5:=T3*T4 (9) T6:=R-r (10) B:=T5*T6 T6 ,T5 ,T3 T0 ,T4 6.28 n2 R n3 r n4 3.14 n1 B * n6 * n8 - n7 + n5 2 T1 T2 A ,B 2 * 7.2.3 DAG的应用 在一个基本块被构造成相应的DAG的过程中,进行了如下基本的优化工作: 合并已知量 在DAG构造算法中,如果运算量都是已知量,则不生成计算该结点值的内部结点,而执行该运算,将计算结果生成一个叶结点,实现了合并已知量优化 * 删除多余运算 对具有公共子表达式的所有四元式,只生成一个计算该表达式的内部结点,所有被赋值的变量都作为该结点的附加标识符,实现了删除多余运算的优化 删除无用赋值 如果变量被赋值后,在它被引用前又被重新赋值,则变量被从具有前一个值的结点上删除 * - + r T6 A, T5 * T1,T3 T0 R 6.28 3.14 T2,T4 n5 n7 n2 n3 n4 n1 B * n6 n8 (1) T0 :=3.14 (2) T1 :=6.28 (3) T3 :=6.28 (4) T2 :=R+r (5) T4 :=T2 (6) A :=6.28*T2 (7) T5 :=A (8) T6 :=R-r (9) B :=A*T6 由DAG重新生成原基本块的一个优化的代码序列: * 原基本块的四元式序列G (1) T0:=3.14 (2) T1:=2*T0 (3) T2:=R+r (4) A:=T1*T2 (5) B:=A (6) T3:=2*T0 (7) T4:=R+r (8) T5:=T3*T4 (9) T6:=R-r (10) B:=T5*T6 按DAG重新写成的四元式序列G’ (1) T0 :=3.14 (2) T1 :=6.28 (3) T3 :=6.28 (4) T2 :=R+r (5) T4 :=T2 (6) A :=6.28*T2 (7) T5 :=A (8) T6 :=R-r (9) B :=A*T6 G中(2)(6)的已知量已合并 G中(5)的无用赋值已删除 G中(3)(7)的公共子表达式R+r 只计算一次,删除了多余运算 * 利用DAG进行优化 删除在基本块后不被引用变量的赋值 r R 6.28 3.14 - + T6 A, T5 * T1,T3 T0 T2,T4 n5 n7 n2 n3 n4 n1 B * n6 n8 假如T0,T1,…,T6在基本块后都不被引用,则这些符号可在DAG附加标识符中删去,重写四元式得到进一步的优化: (1) S1:=R+r (2) A:=6.28*S1 (3) S2:=R-r (4) B:=A*S2 其中S1和S2是临时变量。 T0,T1,…,T6被赋值的代码被优化掉 * 7.3 循环优化简介 循环就是程序中那些可能反复执行的代码序列。 因为循环中的代码要反复执行,所以循环的代码优化对提高目标代码的效率将起更大的作用。 * 7.3.1 程序流图 把控制流的信息加到基本块集合上构成的有向图称为表示程序的流图,简称流图。 流图的构造方法: 点集:以基本块为结点,含程序第一条语句的结点为首结点。 边集:从基本块Bi向基本块Bj引有向边,仅当 Bj在程序中的位置紧跟在Bi之后, 且Bi的出口语句不是无条件转移语句或停止语句。或者 Bi的出口是转移语句 (goto (s)或if…goto (s)),并且转移目标(s)是Bj的入口语句。 * 例:构造以下程序的流图 (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 (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 * 7.3.2 循环优化 1. 代码外提 把循环不变运算,即其结果独立于循环执行次数的表达式,提到循环的前面,使之只在循环外计算一次,这种优化称为代码外提。 循环不变运算:运算量为常量或在循环外定值,每次循环时其值不变的运算
您可能关注的文档
- 主义起源.ppt
- 课标版二年级语文《黄山奇石》第二课时ppt课件.ppt
- 地理 农业区位论.ppt
- 中国,魅力大理.ppt
- 精神的起源与发展.ppt
- 营销人机大战.ppt
- 能思想的苇草(优).ppt
- 对话考试系统培训文档.ppt
- 旅游资源——节庆.ppt
- 地理学第六章农业的起源与发展.ppt
- 全国统一施工机械台班费用编制规则摘要.pdf
- 初三化学酸碱盐知识点整理版.pdf
- 城市改造项目:2024拆迁与重建施工合作合同.pdf
- 公共娱乐场所消防安全管理十条规定(2篇).pdf
- 关于初中学生自我反思与评价(四篇).pdf
- Unit 4 History and Traditions Reading and Thinking(分层作业)(解析版)-2024-2025学年高一英语同步备课系列(人教版必修第二册).docx
- Unit 4 History and Traditions Discovering Useful Structures(分层作业)(解析版)-2024-2025学年高一英语同步备课系列(人教版必修第二册).docx
- Unit 8 Healthy diet【速记清单】-2024-2025学年九年级英语上册单元速记巧练(牛津沪教版).docx
- 2024-2025学年高一英语必修第一册单元检测 06-全书综合测评.docx
- Unit 4 History and Traditions Listening and Speaking(分层作业)(原卷版)-2024-2025学年高一英语同步备课系列(人教版必修第二册).docx
最近下载
- ISO 8178-1-2017 Reciprocating internal combustion engines Exhaust emission measurement Part 1:Test-bed measurement systems of gaseous and particulate emissions往复式内燃机排放测量第1部分: 气体和颗粒物排放测量系统(2-1).pdf
- 11J508 建筑玻璃应用构造-栏板隔断地板 吊顶 水下玻璃 挡烟垂壁图集.pdf
- 私立门诊财务管理制度.docx
- 触电事故典型案例分析.pptx
- 行政法与行政诉讼法(第七版)胡锦光-全套课件.pptx
- 丰田自工序完结培训资料.pdf VIP
- 德育课程体系.doc
- 海工试验报告.doc
- 废旧轮胎在道路工程中的应用课件.pptx VIP
- 静脉留置针健康宣传册.doc VIP
文档评论(0)