- 4
- 0
- 约1.54万字
- 约 107页
- 2018-02-26 发布于河南
- 举报
编译第11章
第十一章 代码优化 1.掌握:代码优化的概念,划分基本块,用DAG来优化基本块,可归约流图的概念 2.理解:循环优化 目录 11.1 优化技术简介 11.2 局部优化 11.3 控制流分析和循环优化 11.1 优化技术简介 一、代码优化的目的 提高目标代码的运行效率。 注:效率是指目标代码运行时间较短,占有空间较少。 二、代码优化的实质 代码优化实际上是对代码进行等价变换,由一组代码变成运行结果相同的另一组代码。 四、优化分类 根据优化所涉及的程序范围分成: (1)局部优化:(基本块) (2)循环优化:对循环中的代码进行优化 (3)全局优化:在整个程序范围内的优化 五、常用优化技术简介 1.删除多余运算 2.循环不变代码外提 3.强度削弱 4.变换循环控制条件 5.合并已知量与复写传播 6.删除无用赋值 1.删除多余运算(删除公共子表达式): 目的:提高目标代码速度。 例如: P:=0 for I:=1 to 20 do P:=P+A[I]*B[I] (1)P:=0 (2)I:=1 (3)T1:=4*I (4)T2:=addr(A)-4 (5)T3:=T2[T1] (6)T4:=4*I (7)T5:=addr(B)-4 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) 2、代码外提 减少循环中代码总数的重要办法。 方法:把循环不变运算,即其结果独立于循环执行次数的表达式提到循环的前面,使之只在循环外计算一次。 例如: P:=0 for I:=1 to 20 do P:=P+A[I]*B[I] (1)P:=0 (2)I:=1 (3)T1:=4*I (4)T2:=addr(A)-4 (5)T3:=T2[T1] (6)T4:=T1 (7)T5:=addr(B)-4 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (1)P:=0 (2)I:=1 (3)T1:=4*I (5)T3:=T2[T1] (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(5) 4、变换循环控制条件 经过变换后,有些变量不被引用,可以从循环中删除! (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (3’)T1:=T1+4 (12)if I=20 goto(5) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4 ] (9)T7:=T3*T6 (10)P:=P+T7 (3’)T1:=T1+4 (12)if T1 =80 goto(5) 5、合并已知量与复写传播 编码时的已知量—常数,可在编译时计算出它的值,这种变换称为合并已知量或常数合并。 通过复制后没有再改变的值可以互相替换,不会改变程序的结果,这种变换称为复写传播。 (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3) T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (3’)T1:=T1+4 (12)if T1=80 goto(5) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=ad
您可能关注的文档
最近下载
- 德州职业技术学院单招职业技能测试参考试题库(含答案).docx VIP
- SolidWorks-全套入门教程PPT课件.pptx VIP
- 2025年加州驾照常考题库及答案.doc VIP
- SYT5695-2017 钻井液用降黏剂 两性离子聚合物.pdf VIP
- 高中数学第二章随机变量及其分布章末复习课件新人教A版选修.pptx VIP
- ZBTB18控制胼胝体投射神经元的命运选择和进化.docx VIP
- 氯醇法年产20万吨环氧丙烷精馏工序工艺设计.docx VIP
- 2025年山东省春季高考信息技术类专业知识试题(打印版) .pdf VIP
- SY∕T 5612-2018 石油天然气钻采设备 钻井液固相控制设备规范.docx VIP
- 医院病房楼改造项目初步设计(范文).docx
原创力文档

文档评论(0)