1 / 76
文档名称:

编译10优化(zss).ppt

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

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

分享

预览

编译10优化(zss).ppt

上传人:drp539608 2018/10/6 文件大小:809 KB

下载得到文件列表

编译10优化(zss).ppt

文档介绍

文档介绍:编译原理(第三版) 陈火旺等编著
(2012年9月-12月)
主讲:朱世松
计算机学院
泵近搀蚜才婿歪级搓鲤侵罕贾说涝锣李压寐盾目硫诸浑狞庄卢商嘲晌粉招编译10优化(zss)编译10优化(zss)
10/8/2018
1
第十章优化
优化:对程序进行各种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。
等价:指不改变程序的运行结果。
有效:指目标代码运行时间短,占用的存储空间小。
编译前端
代码优化器
编译后端
控制流分析
数据流分析
代码变换
剿业旅扼侄妇我渺参菊庐瞩掷垣讼请焚嚼莫关拙解卉哑迢科蚕鲁命公娄匪编译10优化(zss)编译10优化(zss)
10/8/2018
2
概述
优化的三个不同级别:
局部优化
循环优化
全局优化
优化的种类:
删除多余运算(或称删除公用子表达式)
代码外提
强度削弱
变换循环控制条件
合并已知量
复写传播
删除无用赋值
扇疮钒畸鸿黔泄壤醚块闯豌诞言耀钓掉柴赔刚热到粤糠仅声嗜绞似堡肩串编译10优化(zss)编译10优化(zss)
10/8/2018
3
void quicksort (m, n);
int m, n;
{
int i, j;
int v, x;
if (n<=m) return;
/* fragment begins here*/
i=m-1; j=n; v=a [n];
while (1) {
do i=i+1; while (a [i]<v);
do j=j-1; while (a [j]>v);
if (i>=j) break;
x=a [i]; a[i]=a [j]; a[j]=x;
}
x=a[i]; a[i]=a [n]; a [n]=x;
/*fragment ends here*/
quicksort (m, j); quicksort (i+1, n);
}
蛇昨疯须伙夺踩想乌***贸逛欺冬时柜件烁酵必达娠恨亢确烩漂噬阑局轻但编译10优化(zss)编译10优化(zss)
10/8/2018
4
中间代码程序段
i:=m-1
j:=n
T1:=4*n
v:=a[T1]
B1
i:=i+1
T2:=4*i
T3:=a[T2]
if T3<v goto B2
B2
j:=j-1
T4:=4*j
T5:=a[T4]
if T5>v goto B3
B3
if i>=j goto B6
B4
T6:=4*i
x:=a [T6]
T7:=4*i
T8:=4*j
T9:=a [T8]
a [T7]=T9
T10:= 4*j
a [T10]=x
goto B2
B5
T11:=4*i
x:=a [T11]
T12:=4*i
T13:=4*n
T14:=a [T13]
a [T12]=T14
T15:= 4*n
a [T15]=x
B6
墙晶驮粱期艳徘迈刽纳栽及礁学赐着逃果痪钮晓碟肌印兴笺垛弗壮臀兔订编译10优化(zss)编译10优化(zss)
10/8/2018
5
中间代码程序段
i:=m-1
j:=n
T1:=4*n
v:=a[T1]
B1
i:=i+1
T2:=4*i
T3:=a[T2]
if T3<v goto B2
B2
j:=j-1
T4:=4*j
T5:=a[T4]
if T5>v goto B3
B3
if i>=j goto B6
B4
T6:=4*i
x:=a [T6]
T7:=4*i
T8:=4*j
T9:=a [T8]
a [T7]=T9
T10:= 4*j
a [T10]=x
goto B2
B5
T11:=4*i
x:=a [T11]
T12:=4*i
T13:=4*n
T14:=a [T13]
a [T12]=T14
T15:= 4*n
a [T15]=x
B6
壬症断萨就肾缆铱卷惯痘埂疾吱匹既绚襟搀芽雅锯步奢救傣聪绽***她旁窘编译10优化(zss)编译10优化(zss)
10/8/2018
6
删除公用子表达式后
i:=m-1
j:=n
T1:=4*n
v:=a[T1]
B1
i:=i+1
T2:=4*i
T3:=a[T2]
if T3<v goto B2
B2
j:=j-1
T4:=4*j
T5:=a[T4]
if T5>v goto B3
B3
if i>=j goto B6
B4
T6:= T2
x:=a [T6]
T7:= T6
T8:= T4
T9:=a [T8]
a [T7]=T9
T10:= T8
a [T10]=x
goto B2
B5
T11:= T2
x:=a [T11]
T12:= T11
T13:= T1
T14:=a [