1 / 23
文档名称:

CHAP10 优化.ppt

格式:ppt   页数:23
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

CHAP10 优化.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

CHAP10 优化.ppt

文档介绍

文档介绍:第十章优化
本章讨论如何对程序进行各种等价变幻,使得从变换后的程序出发,能生成更有效的目标代码,我们通常称这种变换为优化。优化可以在编译的各个阶段进行,但最主要的一类优化是在目标代码生成以前,对语法分析后的中间代码进行的。这类优化不依赖于具体的计算机。另一类重要的优化是在目标代码生成时进行的它在很大程度上依赖于具体的计算机。本章讨论前一类优化。
有很多技术和手段可以用于中间代码这一级上的优化。总体上讲在一个编译程序中优化器的地位和结构如下图:
第十章优化
优化
编译前端
代码优化器
代码产生
控制流分析
数据流分析
代码变换
代码优化器的地位和结构
第十章优化
10。1 概述
由于本章讲的方法在计算机的很多领域都很有用,所以应作为学习的重点内容。
优化的目的是为了产生更高效的代码。由优化编译程序提供的对代码的各种变换必须遵循下面的原则:
(1)等价原则。
(2)有效原则。
(3)核算原则。
本章我们着重讨论中间代码这一级上的优化,其应掌握优化的一般方法:删除公共子表达式、复写传播、删除无用代码、代码外提、强度消弱、删除归纳变量
10。2 局部优化
10。2。1基本块及流图
第十章优化
所谓基本块是指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个语句,出口就是其中的最后一个语句。
这里应掌握划分四元式程序为基本块的算法。
在基本块内,可以以进行删除公共子表达式和删除无用赋值这两种优化外,还可以实现下面几种变换。
1。合并已知量
2。临时变量改名
3。交换语句位置
4。代数变换
10。2。2基本块的DAG表示及其应用
一个基本块的DAG是一种其结点带有下述标记或附加信息的DAG。
第十章优化
1。图的叶结点(没有后继的结点)以一标识符(变量明)或常数作为标记,表示该结点代表该变量或常数的值。如果叶结点用来代表某变量A的地址,则用add(A)作为该结点的标记。通常把叶结点上作为标记的标识符加上下标0,以表示它是该变量的初值。
2。图的内部结点(有后继的结点)以一运算符作为标记,表示该结点代表应用该运算符对其后继结点所代表的值进行运算的结果。
3。图中各结点上可能附加一个或多个标识符,表示这些变量具有该结点所代表的值。
用DAG图优化程序应掌握。
10。3 循环优化
循环就是程序中那些可能反复执行的代码序列。
对循环中的代码,可以实行代码外提、强度消弱和删除归纳变量等优化。
第十章优化
这部分应作为重点,作一部分习题。
10。3。1代码外提
所谓变量A在某点d 的定值到达另一点u(或称变量A的定值点d 到达另一点u ),是指流图中从d有一通路到达u且该通路上没有A的其它定值。
实行代码外提时,我们在循环入口结点前建立一个新的结点(基本块),称循环的前置结点。循环前置结点以循环入口为其为以后继,原来流图中从循环外引到循环入口结点的有向边,改成引到循环前置结点。
[例10。5]
对下面一段Pascal元程序:
for I:= 1 to 10 do
A[I, 2*J] := A[I, 2*J] + 1
( 其中A是 10 X10 的二维数组)
第十章优化
产生中间代码如图10。11。
(1)I := 1
(2) If I > 10 goto (15)
(3) T1 :=2*J
(4) T2 := 10 * I
(5) T3 :=T2 + T1
(6) T4 :=add(A) – 11
(7) T5 :=2 * J
(8) T6 := 10 * I
(9) T7 := T5 + T6
(10) T8 :=add(A) - 11
(11) T9 := T8[T7]
(12) T4[T3] := T9 + 1
(13) I ;= I + 1
(14) Goto B2
(15)
B1
B2
B2
B3
第十章优化
代码外提后:
(1) I := 1
(3) T1 := 2 * J
(6) T4 := add(A) – 11
(7) T5 := 2 * J
(8) T8 := add(A) - 11
(
(2) if I > 10 goto (15)
(4) T2 := 10* I
(5) T3 := T2 + T1
(8) T6 := 10 * I
(9) T7 := T6 + T5
(11) T9 := T8[T7]
(12) T4[T3] := T9 +1
(13) I := I + 1
(14) goto B2
(15)
B1
B2’
B2
B3
第十章优化
强度消弱:
(1) I := 1
(3) T1 := 2* J
(6) T4

最近更新

2026年以成长印记中学生的作文初一 7页

2026年以微笑为主题的作文 6页

网络暴力的性别差异分析 35页

2026年仓库管理的年终总结 21页

股权激励与员工持股计划 17页

结直肠癌代谢异常 35页

高考数学试题难度与考生心理因素的关系研究 20页

隔膜绿色制备方法 36页

2024年安徽省阜阳市单招职业适应性测试模拟测.. 40页

2024年安徽矿业职业技术学院单招职业适应性测.. 40页

2024年安徽警官职业学院单招职业技能考试题库.. 41页

2024年安徽马钢技师学院单招综合素质考试模拟.. 39页

2024年安阳职业技术学院单招职业技能考试模拟.. 40页

2024年宜宾职业技术学院单招职业倾向性测试题.. 41页

2024年宝鸡中北职业学院单招综合素质考试模拟.. 41页

2024年宣化科技职业学院单招职业倾向性考试模.. 39页

2024年宿州学院单招职业技能考试模拟测试卷附.. 39页

2024年宿迁泽达职业技术学院单招职业适应性考.. 41页

2024年山东传媒职业学院单招职业技能测试题库.. 42页

2024年山东力明科技职业学院单招职业适应性考.. 41页

2024年山东圣翰财贸职业学院单招职业技能考试.. 43页

2024年山东外事职业大学单招综合素质考试题库.. 40页

2024年山东外贸职业学院单招职业技能测试题库.. 42页

2024年山东文化产业职业学院单招职业适应性考.. 41页

2024年山东水利职业学院单招职业倾向性考试模.. 39页

2024年山东理工职业学院单招职业适应性测试题.. 40页

2024年山东省日照市单招职业倾向性测试题库附.. 40页

2024年山东省烟台市单招职业倾向性考试模拟测.. 41页

2024年山东省青岛市单招职业倾向性考试题库含.. 39页

2024年山东职业学院单招职业倾向性测试题库推.. 40页