(1)P:=0 (1)P:=0 (2)l:=1 (2)l:=1 (4)T2:=addr(A)-4 °(4)T2:=addr(A)-4 (7)Ts:=adr(B)-4 (7)T 5:add (B)-4 (3)T1:=4I (3)T1=4*I (5)Tg:=T2[T1 (5)T3:=T2[Tl (6)T4:=T1 (6)T4=T1 (8)T6:=T5T2 (8)T6:=T5[T4 (9)T7=T (10)P:=P+T (10)P:=P+T7 °(11)l:=I+1 (3)T1:=T1+4 l1)l:=I+1 .2if<=20 gotos (12)if K<=20 goto)
(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)l:=1 (2)l:=1 (4T2: -addr(A)-4 (4)T2:=adr(A)-4 (Ts:addr(B)-4 (Ts:=addr(b)- 3):=4 5)T3:=T2T1l (5)T3:=T2T (8)T6:=Ts[T4 (8T6 =TsT (9)T;:=T3*T 10)P:=P+T (10)P:=P+T (11)l:=H+1 (11)l:=I+1 (3)T1:=T1+4 (3)T1:=T1+4 (12)ifl<=20goto(5) (1fT1<80goto(5)
(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
(1)P:=0 (1)P:=0 (2)l:=1 (4)T2:=adr(A)-4 (4T2: -addr(A)-4 (⑦)Ts=addr(B)-4 (Ts:addr(B)-4 3)T1:=4 3)T1=4 5)T3:=T2 (5)T3:=T2T 6 (8)T6:=Ts[T1 (9)T7 316 10)P:=P+T (10)P:=P+T7 (11)l:=H+1 (3)T1:=T1+4 (3)T1:=T1+4 12if T<=80 goto(5) (12)ifT1<=80goto(5)
(1)P:=0 (2)I:=1 (4)T 2 :=addr(A) - 4 (7)T 5 :=addr(B) - 4 (3)T 1 :=4 (5)T 3 :=T 2 [T 1 ] (6)T 4 :=T 1 (8)T 6 :=T 5 [T 1 ] (9)T 7 :=T 3*T 6 (10)P:=P+T 7 (11)I:=I+1 (3’)T 1 :=T 1+4 (12)if T 1<=80 goto(5) (1)P:=0 (4)T 2 :=addr(A) - 4 (7)T 5 :=addr(B) - 4 (3)T 1 :=4 (5)T 3 :=T 2 [T 1 ] (8)T 6 :=T 5 [T 1 ] (9)T 7 :=T 3*T 6 (10)P:=P+T 7 (3’)T 1 :=T 1+4 (12)if T 1<=80 goto(5)
92局部优化:基本块内的优化 基本块:是指程序中一顺序执行的语句序列,其 中只有一个入口语句和一个出口语句。 入口语句: 程序的第一个语句;或者 条件转移语句或无条件转移语句的转移目标语 句;或者 紧跟在条件转移语句后面的语句
9.2局部优化:基本块内的优化 基本块:是指程序中一顺序执行的语句序列,其 中只有一个入口语句和一个出口语句。 入口语句: • 程序的第一个语句;或者, • 条件转移语句或无条件转移语句的转移目标语 句;或者 • 紧跟在条件转移语句后面的语句
划分基本块的算法: 1.求出四元式程序之中各个基本块的入口语句。 2.对每一入口语句,构造其所属的基本块。它是由该语句到 下一入口语句(不包括下一入口语句),或到一转移语句 (包括该转移语句),或到一停语句(包括该停语句)之 间的语句序列组成的。 3.凡未被纳入某一基本块的语句,都是程序中控制流程无法 到达的语句,因而也是不会被执行到的语句,我们可以把 它们删除
划分基本块的算法: 1.求出四元式程序之中各个基本块的入口语句。 2.对每一入口语句,构造其所属的基本块。它是由该语句到 下一入口语句(不包括下一入口语句),或到一转移语句 (包括该转移语句),或到一停语句(包括该停语句)之 间的语句序列组成的。 3.凡未被纳入某一基本块的语句,都是程序中控制流程无法 到达的语句,因而也是不会被执行到的语句,我们可以把 它们删除