main() int x,y,zi x=(1+20)*-8; y x*x+(x/y); y=z=(x/y)/(x*x); } tmp1=1+20; tmp2 =-x x tmpl tmp2 tmp3 =x*x i tmp4 x /y y tmp3 tmp4 tmp5 x /y i tmp6 =x*x z tmp5 tmp6 y=zi
main() { int x, y, z; x = (1+20)* -x; y = x*x+(x/y); y = z = (x/y)/(x*x); } tmp1 = 1 + 20 ; tmp2 = -x ; x = tmp1 * tmp2 ; tmp3 = x * x ; tmp4 = x / y ; y = tmp3 + tmp4 ; tmp5 = x / y ; tmp6 = x * x ; z = tmp5 / tmp6 ; y = z ;
●优化技术简介 1.删除多余运算 2.循环不变代码外提 3.强度削弱 4.变换循环控制条件 5.合并已知量与复写传播 6.删除无用赋值 P:=0 for I:=1 to 20 do P:=P+A四*B四
•优化技术简介 1.删除多余运算 2.循环不变代码外提 3.强度削弱 4.变换循环控制条件 5.合并已知量与复写传播 6.删除无用赋值 P:=0 for I:=1 to 20 do P:=P+A[I]*B[I]
(1)P:=0 (1)P:=0 (2)=1+ (2):=1 (4)T2:=addr(A)-4 (3)T1:=4*I (7)T5:=addr(B)-4 (4)T2:=addr(A)-4 (5)T3:=T2[Ti] (3)T1=4*T (6)T4:=4*I (5)T3:=T2[T1] (7)Ts:=addr(B)-4 (6)T4:=T1 (8)T6:=T5T4] (8)T6=T5T4] (9)T7=T3*T6 (9)T7=T3*T6 (10)P:=P+T2 (10)P:=P+T2 (11)=+1 (11):=+1 (12)ifK=20g0to(3) (12)if<=20goto(3)
(1)P:=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)P:=P+T7 (11)I:=I+1 (12)if I<=20 goto(3) (1)P:=0 (2)I:=1 (3)T1 :=4*I (5)T3 :=T2[T1] (8)T6 :=T5[T4] (9)T7 :=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I<=20 goto(3) (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (6)T4:=T1
(1)P:=0 (1)P:=0 (2)=1 (2):=1 (4)T2:=addr(A)-4 (4)T2=addr(A)-4 (7)Ts:=addr(B)-4 (7)Ts:=addr(B)-4 3)T1:=4*T (3)T1=4*T (5)T3=T2T (5)T3=T2T1] (6)T4=T1 (6)T4:=T1 (8)T6=TsT4 (8)T6=T5T4] (9)T7=T3*T6 (9)T7=T3*T6 (10)P:=P+T7 。 (11):=+1 (10)P:=P+T2 (3)T1:=T1+4 (11):=+1 (12)ifI≤=20g0to(5) (12)if<=20goto(3)
(1)P:=0 (2)I:=1 (4)T 2 :=addr(A) - 4 (7)T 5 :=addr(B) - 4 (3)T 1 :=4*I (5)T 3 :=T2[T1] (6)T 4 :=T1 (8)T 6 :=T5[T4] (9)T 7 :=T 3*T 6 (10)P:=P+T 7 (11)I:=I+1 (12)if I<=20 goto(3) • (1)P:=0 • (2)I:=1 • (4)T2 :=addr(A) - 4 • (7)T 5 :=addr(B) - 4 • (5)T 3 :=T 2 [T 1 ] • (6)T 4 :=T 1 • (8)T 6 :=T 5 [T 4 ] • (9)T 7 :=T 3*T 6 • (10)P:=P+T 7 • (11)I:=I+1 • (12)if I<=20 goto(5) (3)T1:=4*I (3‘)T1:=T1+4
(1)P:=0 (1)P:=0 (2)=1 (2):=1 (4)T2:=addr(A)-4 (4)T2:=addr(A)-4 (7)Ts:=addr(B)-4 (7)Ts:=addr(B)-4 3)工=4*L 3)T1:=4 ⑤)T3=T2T (5)T3=T2T (6)T4=T1 (6)T4=T1 (8)T6=TsT4 (8)T:=Tsl T1 (9)T7=T3*T6 (9)T7=T3*T6 (10)P:=P+T7 (10)P:=P+T7 (11):=+1 (11):=+1 (3)T1:=T1+4 (3)T1=T1+4 (12)if<=20g0to(⑤)】 (12)ifT1<=80goto(⑤)
(1)P:=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)P:=P+T7 (11)I:=I+1 (3’)T1:=T1+4 (12)if I<=20 goto(5) (1)P:=0 (2)I:=1 (4)T2 :=addr(A)-4 (7)T5 :=addr(B)-4 (5)T3 :=T2 [T1 ] (6)T4 :=T1 (8)T6 :=T5 [ ] (9)T7 :=T3*T6 (10)P:=P+T7 (11)I:=I+1 (3’)T1 :=T1+4 (12)if <=80 goto(5) (3)T1:=4 T1 T1