川师编译原理课件11.ppt

川师编译原理课件11.ppt

ID:48586946

大小:378.50 KB

页数:43页

时间:2020-01-23

川师编译原理课件11.ppt_第1页
川师编译原理课件11.ppt_第2页
川师编译原理课件11.ppt_第3页
川师编译原理课件11.ppt_第4页
川师编译原理课件11.ppt_第5页
资源描述:

《川师编译原理课件11.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十一章代码优化教学目的:让学生了解几种常见的代码优化技术,掌握局部优化、循环优化、数据流分析方法。教学重点:代码优化技术、基本块的DAG及应用。课时分配:4学时。教学过程:7/19/2021111.1优化技术简介一、代码优化分类编译前端中间代码优化目标代码中间代码目标代码优化7/19/20212吉首大学:莫礼平1、按阶段分类中间代码优化、目标代码优化。2、按程序范围分类局部(基本块)优化、循环优化、全局优化。二、代码优化原则等价原则、高效原则。7/19/20213吉首大学:莫礼平三、代码优化技术例:有

2、如下源程序段,求其四元式形式的中间代码,并优化之(设A为实型数组,每个元素占四个字节)。P:=0;fori:=1to20doP:=P+A[i]*B[i];7/19/20214吉首大学:莫礼平1、数组的存储空间设数组中每个元素占t个存储空间,则A[1]A[2]A[3]A[4].......数组首地址Addr(A)A[i]的地址为:Addr(A)+(i-1)*t=Addr(A)-t+i*t令为T=Addr(A)-t,则A[i]的地址为:T+i*t7/19/20215吉首大学:莫礼平(1)P:=0(2)i:=

3、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)IFi<=20GOTO(3)2、程序段对应的中间代码为如下四元式序列B2:B1:每个元素占四个字节,故t=47/19/20216吉首大学:莫礼平1)删除公共子表达式(4*i)和代码外提(4)(7)(3)T1:=4*i(5)T3:=T2[T1](6)T4:=T1(8)

4、T6:=T5[T4](9)T7:=T3*T6(10)P:=P+T7(11)i:=i+1(12)IFi<=20GOTO(3)(1)P:=0(2)i:=1(4)T2:=addr(A)-4(7)T5:=addr(A)-4B1:B2:7/19/20217吉首大学:莫礼平2)强度削弱(T1的乘法变为加法)(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)IFi<=20GOTO(5)(1)P:=0(

5、2)i:=1(4)T2:=addr(A)-4(7)T5:=addr(A)-4(3)T1:=4*iB1:B2:7/19/20218吉首大学:莫礼平3)变换循环控制条件(T1<=80)、合并已知量(T1:=4)和复写传播(T6:=T5[T1])(5)T3:=T2[T1](6)T4:=T1(8)T6:=T5[T1](9)T7:=T3*T6(10)P:=P+T7(11)i:=i+1(3')T1:=T1+4(12)IFT1<=80GOTO(5)(1)P:=0(2)i:=1(4)T2:=addr(A)-4(7)T5

6、:=addr(A)-4(3)T1:=4B1:B2:7/19/20219吉首大学:莫礼平4)删除无用赋值(2)、(6)、(11)(5)T3:=T2[T1](8)T6:=T5[T1](9)T7:=T3*T6(10)P:=P+T7(3')T1:=T1+4(12)IFT1<=80GOTO(5)(1)P:=0(4)T2:=addr(A)-4(7)T5:=addr(A)-4(3)T1:=4B1:B2:7/19/202110吉首大学:莫礼平11.2局部优化一、局部优化的概念1、基本块的定义:一个基本块是指程序中一顺序

7、执行的语句序列,其中只有一个入口和一个出口。入口是程序第一个语句或转移语句的目标语句,或转移语句的后继第一个语句。出口是程序最后一个语句或转移语句。2、对中间代码求基本块后,凡是没被纳入某个基本块的语句,则是控制流程无法到达的、也不会被执行的语句,可删去。3、在基本块范围内的优化称为局部优化。7/19/202111吉首大学:莫礼平二、基本块的变换1、提高运算效率的代数变换;2、四种保结构变换1)删除公共子表达式;2)删除无用代码;3)重新命名临时变量:引入新的临时变量不影响基本块的运算结果;4)变换语句

8、次序:当两个语句相互没有引用关系时,变换语句次序也不影响基本块的运算结果。例如:1)t1:=a+b;2)t2:=c+d;3)t1:=t2+b;其中,1)和2)可交换次序。7/19/202112吉首大学:莫礼平三、基本块的DAG表示1、DAG图即有向无环图例:n1n2n2n27/19/202113吉首大学:莫礼平2、附加信息的DAG图1)以四元式为结点构造中间代码的DAG,其中,ni表示结点编号,结点下符号为结点标记,结点右边符号为附加标识符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。