">
《中間代碼優(yōu)化》PPT課件

《中間代碼優(yōu)化》PPT課件

ID:41118394

大?。?99.01 KB

頁數(shù):47頁

時間:2019-08-16

《中間代碼優(yōu)化》PPT課件_第1頁
《中間代碼優(yōu)化》PPT課件_第2頁
《中間代碼優(yōu)化》PPT課件_第3頁
《中間代碼優(yōu)化》PPT課件_第4頁
《中間代碼優(yōu)化》PPT課件_第5頁
資源描述:

《《中間代碼優(yōu)化》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、局部優(yōu)化循環(huán)優(yōu)化優(yōu)化目的:提高運行速度,減少存儲空間.第五章中間代碼優(yōu)化內(nèi)容:第一節(jié)優(yōu)化概述右面為for循環(huán)的中間代碼:PROD:=0;forI:=1to20doPROD:=PROD+A[I]*B[I]對該段中間代碼,可以進(jìn)行如下優(yōu)化:1>刪除多余運算見(3),(6)兩四元式的4*I,(6)可以改寫為:T4:=T1,從而減少了一次乘法.參見下頁四元式表(1)PROD:=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(

2、8)T6:=T5[T4](9)T7:=T3*T6(10)PROD:=PROD+T7(11)I:=I+1(12)ifI<=20goto(3)2(1)PROD:=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)PROD:=PROD+T7(11)I:=I+1(12)ifI<=20goto(3)2>代碼外提(4)與(7)每次循環(huán)其值都不變,稱為循環(huán)不變量.可以放到循環(huán)前,

3、減少循環(huán)中的運算.參見下頁四元式表3(1)PROD:=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)PROD:=PROD+T7(11)I:=I+1(12)ifI<=20goto(3)3>強(qiáng)度削弱由于每次循環(huán)I都增加1,因此,T1遞增4,可把(3)改為T1:=T1+4,放在(11)之后,并在循環(huán)前對I賦初值T1:=4*I.(12)改為goto(5).參見下頁四元式

4、表4(1)PROD:=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)PROD:=PROD+T7(11)I:=I+1(3’)T1:=T1+4(12)ifI<=20goto(5)4>變換控制條件由于I只用作循環(huán)控制,而T1=4*I,因此,可用T1替換I,I<=20等價于T1<=80,把(12)改為ifT1<=80goto(5)這樣,可以刪掉無用的I.參見下頁四元式表

5、5(1)PROD:=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)PROD:=PROD+T7(3’)T1:=T1+4(12)ifT1<=80goto(5)5>合并已知量由于(3)中的I在(2)賦值后仍然為1,因此可改為:T1:=46>復(fù)寫(6)中T1復(fù)制到T4,而(6)到(8)之間沒有改變T1和T4,因此(8)可以改為:T6:=T5[T1],從而使(6)式無用.

6、參見下頁四元式表6(1)PROD:=0(2)I:=1(4)T2:=addr(A)-4(7)T5:=addr(B)-4(3)T1:=4(5)T3:=T2[T1](6)T4:=T1(8)T6:=T5[T1](9)T7:=T3*T6(10)PROD:=PROD+T7(3’)T1:=T1+4(12)ifT1<=80goto(5)7>刪除無用賦值(2)和(6)兩四元式為無用四元式,可以刪除.最終優(yōu)化后,得到下頁四元式表7(1)PROD:=0(4)T2:=addr(A)-4(7)T5:=addr(B)-4(3)T1:=4(5)

7、T3:=T2[T1](8)T6:=T5[T1](9)T7:=T3*T6(10)PROD:=PROD+T7(3’)T1:=T1+4(12)ifT1<=80goto(5)(1)PROD:=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)PROD:=PROD+T7(11)I:=I+1(12)ifI<=20goto(3)優(yōu)化前優(yōu)化后8第二節(jié)局部優(yōu)化局部優(yōu)化是指局限于基本

8、塊內(nèi)的優(yōu)化.一基本塊1>定義:基本塊是一順序執(zhí)行的中間代碼序列,僅包含一個入口四元式和一個出口四元式,第一條四元式為入口四元式,最后一條四元式為出口四元式.中間部分不含轉(zhuǎn)移四元式.2>基本塊的劃分給定一四元式程序,可以通過如下算法,劃分基本塊:9基本塊劃分算法:1)求四元式程序中所有基本入口四元式,包括:a)程序的第一條四元式;b)轉(zhuǎn)移語句轉(zhuǎn)移到的四元式;c

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。