1、新概念英语第一册新概念英语第一册123123课课课课件件单词学习单词学习 during prep.在在期间期间 trip n.旅行旅行 travel v.旅行旅行 offer v.提供提供 job n.工作工作 guess v.猜猜 grow(grew/grown)v.长,让长,让生长生长 beard n.(下巴上的)胡子,络腮胡子(下巴上的)胡子,络腮胡子 during djuri prep.在在期间期间 休假期间,我到海里游了两次泳。休假期间,我到海里游了两次泳。I went swimming in the sea twice during the vacation.整个用餐时间她讲个不停
2、。整个用餐时间她讲个不停。She kept on talking during the meal offer v.提供提供 offer sb sth=offer sth to sb 对对提供提供 她给他一杯茶她给他一杯茶 She offered him a cup of tea。他帮助了我。他帮助了我。He offered his help to me.job n.1.n.工作工作 他做什么工作的?他在书店工作。他做什么工作的?他在书店工作。What does he do?He has a job in a book-store.你若会开车就比较容易找工作。你若会开车就比较容易找工作。It i
3、s easier to find a job if you can drive.求职求职 apply for a job/hunt for a job 失业失业 lose ones job 2.分内事分内事 洗盘子是你份内的事。洗盘子是你份内的事。Its your job to do the dishes.guess v.猜猜 你猜得出它花了多少钱吗?你猜得出它花了多少钱吗?Can you guess how much it cost?我猜得对吗?我猜得对吗?Have I guessed right?grow v.1.成长,成长,长长 大大 小孩子长得很快小孩子长得很快 Children gr
4、ow rapidly.2.增大,变大增大,变大 这个城市的人口每年都在增加。这个城市的人口每年都在增加。The population of the city is growing every year.3)变得)变得 天色渐渐暗下来了。天色渐渐暗下来了。It was growing dark.beard n beard n 胡须胡须(络腮胡子)(络腮胡子)grow a beard 留/蓄胡子 Shave v.剃须,剃毛剃须,剃毛Its a pity you shaveshaved your moustache off.真可惜,你刮掉了小胡子。Razor,shaver 剃胡刀Listen and
5、 answer the question Whos the man with the beard?课文课文 Mike:Look,Scott.This is a photograph I took during my trip to Australia.Scott:Let me see it,Mike.This is a good photograph.Who are these people?Mike:Theyre people I met during the trip.Thats the ship we travelled on.Scott:What a beautiful ship!Wh
6、os this?Mike:Thats the man I told you about.Remember?Scott:Ah yes.The one who offered you a job in Australia.Mike:Thats right.Scott:Whos this?Mike:Guess!Scott:Its not you,is it?Thats right.Mike:I grew a beard during the trip but I shaved it off when I came home.Scott:Why did you shave it off?Mike:My
7、 wife didnt like it!课文讲解课文讲解 Look,Scott.This is a photograph I took during my trip to Australia.由于所修饰的名词在从句中作动词由于所修饰的名词在从句中作动词took的宾语,因的宾语,因此,引导从句的关系代词此,引导从句的关系代词that往往省略。往往省略。during.在在期间期间 我上一个假期是在美国度过的。我上一个假期是在美国度过的。I was in the U.S.during my last holiday.trip to 到到旅行旅行 我的父亲要去罗马旅行:我的父亲要去罗马旅行:?Let
8、me see it,Mike.=Let me have a look at it.This is a good photograph.Who are these people?Theyre people I met during the trip.由于先行词由于先行词people在从句中是作动词在从句中是作动词met 的宾的宾语,因此引导词语,因此引导词whom或或who被略了。被略了。Thats the ship we traveled on.ship作从句中作从句中travelled on的宾语,因此省略了的宾语,因此省略了从句的关系代词从句的关系代词that或或which.travel
9、on a ship 乘船旅行乘船旅行 What a beautiful ship!-What+a/an+adj.+可数名词可数名词+主谓主谓-What+adj.+不可数名词不可数名词+主谓主谓 多好的天气啊。多好的天气啊。What pleasant weather it is!她是一个多么可爱的女孩啊!她是一个多么可爱的女孩啊!?How+adj./adv.+主谓主谓 天空多蓝呀!天空多蓝呀!?他开得多快呀!他开得多快呀!How quickly he drives!Whos this?Thats the man I told you about.Remember?Tell sb about st
10、h 把你的计划告诉我们吧。把你的计划告诉我们吧。?Yes.The one who offered you a job in Australia.Thats right.定语从句,定语从句,who是关系代词在从句中作主语,因此不是关系代词在从句中作主语,因此不可以省略。可以省略。offer sb sth 为某人提供为某人提供 他们为我在那家公司提供一个职位。他们为我在那家公司提供一个职位。They offered me a position in that company.Whos this?Guess!Its not you,is it?反意疑问句,前面一句用肯定句,后面一句反意疑问句,前面一
11、句用肯定句,后面一句用否定句,时态要保持一致用否定句,时态要保持一致 Thats right.Thats right=Yes,it is.I grew a beard during the trip,but I shaved it off when I came home.grew a beard 留胡子留胡子 shave it off 刮掉胡子刮掉胡子 Why did you shave it off?My wife didnt like it!Important phrases take photographs during my trip to Australlia tell sb.ab
12、out sth.offer sb.sth.shave sth.off travel on Thats the trip we travelled on.What a beautiful ship.Attributive Clause 定语从句定语从句(who)/(whom),(which)and(that)关系代词作宾语时关系代词作宾语时可省略可省略She is the girl.I met her yesterday.She is the girl I met yesterday.This is the book.I bought it yesterday.This is the book
13、I bought yesterday.Practise This is village.I wrote to you about it.She is the woman.I read about her.小结小结 1.定于从句关系代词的省略定于从句关系代词的省略 如果关系代词在从句中代表先行词做宾语,如果关系代词在从句中代表先行词做宾语,它就可以被省略。它就可以被省略。2.感叹句的结构感叹句的结构 what 后面接后面接n,how 后面接形容词和副词。后面接形容词和副词。Tthanks for your listening!Bella 新一新一 第第11章章 代码优化代码优化学习目标:学习目标
14、:掌握:基本块的划分、基本块的掌握:基本块的划分、基本块的DAG优化优化 理解:什么是局部优化、循环优化、全局优化理解:什么是局部优化、循环优化、全局优化了解:循环优化技术了解:循环优化技术11.1优化技术简介优化技术简介11.2局部优化局部优化11.3循环优化简介循环优化简介11.1 优化技术简介优化技术简介 什么是优化:什么是优化:所谓优化是对代码进行等价变换,使得变换后所谓优化是对代码进行等价变换,使得变换后的代码的效率更高(节省运行时间、存储空间的代码的效率更高(节省运行时间、存储空间或两者兼而有之)或两者兼而有之)优化可在编译的不同阶段进行,最主要的优化优化可在编译的不同阶段进行,最
15、主要的优化有有 中间代码优化中间代码优化(不依赖具体计算机)(不依赖具体计算机)目标代码优化目标代码优化(依赖于具体计算机)(依赖于具体计算机)中间代码优化中间代码优化中间代码中间代码源代码源代码编译前端编译前端代码生成代码生成目标代码目标代码目标代码优化目标代码优化编译的优化工作阶段编译的优化工作阶段 优化的分类:优化的分类:根据优化涉及的程序范围,分为:根据优化涉及的程序范围,分为:局部优化局部优化:在只有一个入口、一个出口的基:在只有一个入口、一个出口的基 本块上进行优化本块上进行优化 循环优化循环优化:对循环中的代码进行优化:对循环中的代码进行优化 全局优化全局优化:在整个程序范围内进
16、行的优化:在整个程序范围内进行的优化 中间代码优化常用技术中间代码优化常用技术1.删除多余运算删除多余运算(删除公共子表达式)(删除公共子表达式)如果子表达式如果子表达式E在前面计算过,且之后在前面计算过,且之后E中的变中的变量值都未改变,那么量值都未改变,那么E的重复出现称为公共子的重复出现称为公共子表达式,可避免重复计算表达式,可避免重复计算(1)和和(4)中都有中都有4*I的运算,的运算,(1)到到(4)之间无对之间无对I的的赋值,显然赋值,显然两次计算的值是相等的,两次计算的值是相等的,(4)的运算是多余的的运算是多余的例例(1)T1:=4*I(2)T2:=addr(A)4(3)T3:
17、=T2T1T4:=4*I(4)(5)(4)变换成变换成T4:=T12.合并已知量与复写传播合并已知量与复写传播 如果运算量都是已知量,则在编译时就算出它的值,如果运算量都是已知量,则在编译时就算出它的值,称为称为合并已知量合并已知量 若有若有A:=B,称为把称为把B值值复写复写到到A。如果其后有引用如果其后有引用A的地方,且其间的地方,且其间A、B的的值都未改变,则可把对值都未改变,则可把对A的的引用改为对引用改为对B引用,称为引用,称为复写传播复写传播。例:例:(1)I:=1(2)T1:=4*I(3)T4:=T1(4)T6:=T5T4 I是已知量是已知量把把T1的值复写到的值复写到T4(4)
18、T6:=T5T1 复写传播复写传播(2)T1:=4 合并已知量合并已知量3.删除无用赋值删除无用赋值 有些变量的赋值从未被引用,称为无用赋值,应删除。有些变量的赋值从未被引用,称为无用赋值,应删除。无用赋值分三种情况:无用赋值分三种情况:变量被赋值,但在程序中从未被引用(在局部范变量被赋值,但在程序中从未被引用(在局部范围内难判定)围内难判定)变量赋值后未被引用又重新赋值,则前面赋值是变量赋值后未被引用又重新赋值,则前面赋值是无用的无用的 变量的赋值只被计算变量自己引用,其他变量都变量的赋值只被计算变量自己引用,其他变量都不引用它不引用它例例 (1)I:=1(2)T1:=4(3)T3:=T2T
19、1(4)T4:=T1 (5)I:=I+1(6)T1:=T1+4(7)if T180 goto (3)(4)中对中对T4赋值,但赋值,但T4未被引用;未被引用;(1)和和(5)对对I赋值,但只有赋值,但只有(5)中计算中计算I时引用时引用I如果程序其他地方不需要引用如果程序其他地方不需要引用T4和和I,则则(4)、(1)和和(5)是无用赋值,可删除。是无用赋值,可删除。(2)T1:=4(3)T3:=T2 T1(6)T1:=T1+4(7)if T180 goto (3)4.其他优化技术其他优化技术以下优化技术将在循环优化中介绍:以下优化技术将在循环优化中介绍:代码外提代码外提 强度削弱强度削弱 变
20、换循环控制条件变换循环控制条件(删除归纳变量)(删除归纳变量)11.2 局部优化局部优化 局部优化是指基本块内的优化局部优化是指基本块内的优化 基本块基本块是指程序中一顺序执行的语句序列,其是指程序中一顺序执行的语句序列,其中只有一个入口语句和一个出口语句。执行时中只有一个入口语句和一个出口语句。执行时只能从入口语句进入,从其出口语句退出只能从入口语句进入,从其出口语句退出11.2.1 基本块的划分基本块的划分把程序(中间代码形成)划分成基本块的算法:把程序(中间代码形成)划分成基本块的算法:1.求基本块的求基本块的入口语句入口语句,它们是:,它们是:程序的第一个语句;或者程序的第一个语句;或
21、者条件转移条件转移或或无条件转移无条件转移语句的转移目标语句;语句的转移目标语句;或者或者1)紧跟在紧跟在条件转移条件转移语句后面的语句。语句后面的语句。2对每一入口语句,构造其所属的基本块对每一入口语句,构造其所属的基本块:它是由该入口语句到下一入口语句它是由该入口语句到下一入口语句(不包括下不包括下一入口语句一入口语句);或到一转移语句或到一转移语句(包括该转移语句包括该转移语句);或到一停止语句或到一停止语句(包括该停止语句包括该停止语句)之间的语句序列组成的。之间的语句序列组成的。3凡未被纳入某一基本块的语句,是不会被执凡未被纳入某一基本块的语句,是不会被执行到的语句,可以把它们删除。
22、行到的语句,可以把它们删除。例:例:read Xread YR:=X mod Y if R=0 goto (8)X:=YY:=R goto (3)write Y(1)halt(1)、(3)、(5)和和(8)是入是入口语句,分别构成基本口语句,分别构成基本块块B1(1)、(2)B2(3)、(4)B3(5)、(6)、(7)B4(8)、(9)read X R:=X mod Y X:=Y write Y11.2.2 基本块的基本块的DAG表示表示DAG(Directed Acyclic Graph)是无环路有向图的简称是无环路有向图的简称1.基本块的基本块的DAG是一种其结点带有标记或附加信息的是一种
23、其结点带有标记或附加信息的DAG:叶结点叶结点(无后继的结点无后继的结点)以一标识符或常数作以一标识符或常数作标记标记,表示该结点代表该变量或常数的值表示该结点代表该变量或常数的值内部结点内部结点(有后继的结点有后继的结点)以一运算符作以一运算符作标记标记,表示,表示该结点代表用该算符对其后继结点所代表的值进行该结点代表用该算符对其后继结点所代表的值进行运算的结果运算的结果1)各结点都可以各结点都可以附加附加上一个或多个上一个或多个标识符标识符,表示这些,表示这些变量具有该结点所代表的值变量具有该结点所代表的值基本块的基本块的DAG的例子的例子T0:=3.14T1:=2*T0T2:=R+rA:
24、=T1*T2B:=AT3:=2*T0T4:=R+rT5:=T3*T4T6:=Rr1)B:=T5*T6+rT6A,B,T5*T1,T3T0R6.286.28 3.143.14T2,T4n5n7n2n3n4n1B*n6n8ni是结点编号是结点编号结点下面的符号(运算符、标识符或常量)结点下面的符号(运算符、标识符或常量)是各结点的标记是各结点的标记结点右边的标识符是结点的附加标识符结点右边的标识符是结点的附加标识符2.四元式及其相应的四元式及其相应的DAG结点形式结点形式0型型:A:=B (:=,B,A)B n1A n2 n1opBA 1型型:A:=op B (op,B,A)2型型:A:=B op
25、 C (op,B,C,A)n3n1n2 BCopA3 构造基本块的构造基本块的DAG的算法的算法 算法准备:算法准备:假定假定DAG各结点信息将用适当的各结点信息将用适当的数据结构数据结构来存放,来存放,并设有一个标识符(包括常数)与结点的并设有一个标识符(包括常数)与结点的对应表对应表。NODE(A)是描述这种对应关系的函数,它的值或为是描述这种对应关系的函数,它的值或为n(表示结点表示结点n上有上有A作为标记或附加标识符),或无作为标记或附加标识符),或无定义。定义。算法:算法:首先首先DAG为空,对基本块的每一四元式,按其类型为空,对基本块的每一四元式,按其类型分别处理:分别处理:对对0
26、型(型(A:=B)YNNYNODE(B)有定义有定义构造叶结点构造叶结点B令该结点为令该结点为nNODE(A)有定义有定义从从NODE(A)的附加标的附加标识符中删去识符中删去A在结点在结点n上附加上附加A下一四元式下一四元式nBA 对对1型(型(A:=op B)YYNNYNYNYNYN NODE(B)有定义有定义构造叶结点构造叶结点BNODE(B)标记常数标记常数执行执行op B 得得P有标记为有标记为op后继后继为为NODE(B)的结的结点点NODE(B)为新结为新结点点删除删除NODE(B)结点结点NODE(P)有定义有定义构造叶结点构造叶结点P构造该结点构造该结点从从NODE(A)的附
27、加的附加标识符中删去标识符中删去A令该结点为令该结点为nNODE(A)有定有定义义在结点在结点n上附加上附加A下一四元式下一四元式npAnBopA 对于对于2型(型(A:=B op C)YYNNN 删除删除NODE(C)结点结点NODE(C)是新结点是新结点NODE(P)有定义有定义 构 造 叶 结构 造 叶 结点点PYNYNYNYYN下一四元式下一四元式 执行执行B op C得得PNODE(B)是新结点是新结点 删除删除NODE(B)结点结点NODE(B),NODE(C)均标记常数均标记常数N NODE(B)有定义有定义 构造叶结点构造叶结点B 构造叶结点构造叶结点C NODE(C)有定有定
28、义义有标记为有标记为op后继为后继为N O D E(B)、NODE(C)的结点的结点 构 造 该 结构 造 该 结点点Y 令该结点为令该结点为nNODE(A)有定义有定义 从从NODE(A)的附加标识符中删去的附加标识符中删去A 在结点在结点n上附加上附加AnBCopAnAp例:构造以下基本块的例:构造以下基本块的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:=Rr(10)B:=T5*T6 T6,T5,T3T0,T46.286.28n2Rn3rn43.13
29、.14 4n1B*n6*n8n7+n52 2T1T2A,B2 211.2.3 DAG的应用的应用在一个基本块被构造成相应的在一个基本块被构造成相应的DAG的过程中的过程中,进行了如下基本的优化工作:进行了如下基本的优化工作:合并已知量合并已知量1)在在DAG构造算法中构造算法中,如果运算量都是已知如果运算量都是已知量,则不生成计算该结点值的内部结点,而量,则不生成计算该结点值的内部结点,而执行该运算,将计算结果生成一个叶结点,执行该运算,将计算结果生成一个叶结点,实现了合并已知量优化实现了合并已知量优化删除多余运算删除多余运算对具有公共子表达式的所有四元式,只生对具有公共子表达式的所有四元式,
30、只生成一个计算该表达式的内部结点,所有被赋成一个计算该表达式的内部结点,所有被赋值的变量都作为该结点的附加标识符,实现值的变量都作为该结点的附加标识符,实现了删除多余运算的优化了删除多余运算的优化删除无用赋值删除无用赋值如果变量被赋值后,在它被引用前又被重如果变量被赋值后,在它被引用前又被重新赋值,则变量被从具有前一个值的结点上新赋值,则变量被从具有前一个值的结点上删除删除+rT6A,T5*T1,T3T0R6.286.283.13.14 4T2,T4n5n7n2n3n4n1B*n6n8(1)T0:=3.14(2)T1:=6.28(3)T3:=6.28(4)T2:=R+r(5)T4:=T2(6)
31、A:=6.28*T2(7)T5:=A(8)T6:=Rr(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:=Rr(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(
32、7)T5:=A(8)T6:=Rr(9)B:=A*T6 G中中(2)(6)(2)(6)的已知量已的已知量已合并合并G中中(5)(5)的无用赋值已的无用赋值已删除删除G中中(3)(7)(3)(7)的公共子表达式的公共子表达式R+r 只计算一次只计算一次,删除了多余运算,删除了多余运算利用利用DAG进行优化进行优化删除在基本块后不被引用变量的赋值删除在基本块后不被引用变量的赋值rR6.286.283.13.14 4+T6A,T5*T1,T3T0T2,T4n5n7n2n3n4n1B*n6n8假如假如T0,T1,T6在基本块后在基本块后都不被引用都不被引用,则这些符号可在则这些符号可在DAG附加标识符中
33、删去,重写四附加标识符中删去,重写四元式得到进一步的优化:元式得到进一步的优化:(1 1)S1:=R+r(2)A:=6.28*S1(3)S2:=Rr(4)B:=A*S2其中其中S1和和S2是临时变量。是临时变量。T0,T1,T6被赋值的代码被被赋值的代码被优化掉优化掉11.3 循环优化简介循环优化简介 循环就是程序中那些可能反复执行的代码序列。循环就是程序中那些可能反复执行的代码序列。因为循环中的代码要反复执行,所以循环的代因为循环中的代码要反复执行,所以循环的代码优化对提高目标代码的效率将起更大的作用。码优化对提高目标代码的效率将起更大的作用。11.3.1 程序流图程序流图把控制流的信息加到
34、基本块集合上构成的有向图把控制流的信息加到基本块集合上构成的有向图称为表示程序的流图,简称称为表示程序的流图,简称流图流图。流图的构造方法:流图的构造方法:点集点集:以基本块为结点,含程序第一条语句的结:以基本块为结点,含程序第一条语句的结点为首结点。点为首结点。边集边集:从基本块:从基本块Bi向基本块向基本块Bj引有向边,仅当引有向边,仅当 Bj在程序中的位置紧跟在在程序中的位置紧跟在Bi之后之后,且且Bi的出口语的出口语句不是无条件转移语句或停止语句。句不是无条件转移语句或停止语句。或者或者 Bi的出口是转移语句的出口是转移语句(goto(s)或或ifgoto(s),并且转移目标并且转移目
35、标(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)(1)read X(2)read Y(3)(3)R:=X mod Y(4)if R=0 goto (8)(5)(5)X:=Y(6)Y:=R(7)goto (3)(8)(8)write Y(9)halt11.3.2 循环优化循环优化1.代码外提代码外提 把循环不变运算,即其结果独立于循环执行次把循环不变运算,即其结果独立于循环执
36、行次数的表达式,提到循环的前面,使之只在循环数的表达式,提到循环的前面,使之只在循环外计算一次,这种优化称为代码外提。外计算一次,这种优化称为代码外提。循环不变运算循环不变运算:运算量为常量或在循环外定值,:运算量为常量或在循环外定值,每次循环时其值不变的运算。每次循环时其值不变的运算。(1)(1)P:=0(2)I:=1(3)(3)T1:=4*I(4)T2:=addr(A)4(5)T3:=T2T1(6)T4:=T1(7)T5:=addr(B)4(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(12)if I20 goto (3)中间代码段中间代码段B1B
37、2(1)(1)P:=0(2)I:=1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)(3)T1:=4*I(5)T3:=T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(12)If I20 goto(3)代码外提后代码外提后B1B2(4)中的运算量中的运算量addr(A)是分配是分配的数组的数组A的首地址,是个常的首地址,是个常量,量,4也是常量,因而也是常量,因而(4)是是循环不变运算,同样循环不变运算,同样(7)也也是循环不变运算,是循环不变运算,(4)、(7)都可提到循环前都可提到循环前2.强度削弱强度削弱
38、 强度削弱是指把程序中强度大的运算替换成强强度削弱是指把程序中强度大的运算替换成强度小的运算。例如把乘法运算换成加法运算等度小的运算。例如把乘法运算换成加法运算等(1)(1)P:=0(2)I:=1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)(3)T1:=4*I(5)T3:=T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(12)If I20 goto(3)中间代码段中间代码段(1)(1)P:=0(2)I:=1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)T1:=4*I(5)(5)T3:=
39、T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(3)T1:=T1+4(12)if I20 goto(5)强度削弱强度削弱I和和T1始终保持始终保持T1:=4*I的线的线性关系性关系这样把这样把(12)的循环控制条件的循环控制条件 I20变换成变换成T180,程序的运程序的运行结果不变行结果不变这种变换称为变换循环控制条这种变换称为变换循环控制条件件经过这一变换,循环中经过这一变换,循环中I的值的值不被引用,四元式不被引用,四元式(11)可被删可被删去,这是变换的目的所在。去,这是变换的目的所在。(1)(1)P:=0(2)I:=
40、1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)T1:=4*I(5)(5)T3:=T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(3)T1:=T1+4(12)if I20 goto(5)变换循环控制条件变换循环控制条件(1)(1)P:=0(2)I:=1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)T1:=4*I(5)(5)T3:=T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(3)T1:=T1+4(12)if T180 goto(5)变换循
41、环控制条件变换循环控制条件中间代码段中间代码段(1)(1)P:=0(2)I:=1(4)T2:=addr(A)4(7)T5:=addr(B)4(3)T1:=4*I(5)(5)T3:=T2T1(6)T4:=T1(8)T6:=T5T4(9)T7:=T3*T6(10)P:=P+T7(11)I:=I+1(3)T1:=T1+4(12)if I20 goto(5)本章小结本章小结主要讨论在中间代码级别上进行的优化主要讨论在中间代码级别上进行的优化优化的种类:局部优化、循环优化、全局优化优化的种类:局部优化、循环优化、全局优化基本块内的优化基本块内的优化v删除公共子表达式、合并已知量、复写传播删除公共子表达式、合并已知量、复写传播、删除无用赋值删除无用赋值v借助借助DAG进行基本块的优化进行基本块的优化循环优化循环优化代码外提、强度削弱、变换循环控制条件代码外提、强度削弱、变换循环控制条件
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。