3.循环优化 (1)代码外提 (2)强度削弱 °基本归纳变量,i唯一定值,i:=i±c 同族归纳变量,j:=c1*i±C2 则变成j:三j±c1*c,但j必须在循环外赋初 值j:=c1*i±c2
3. 循环优化 (1)代码外提 (2)强度削弱 •基本归纳变量,i有唯一定值,i := i c •同族归纳变量,j := c1 i c2 则变成j := j c1 c , 但j必须在循环外赋初 值 j := c1 * i c2
(3)删除归纳变量 即改用同族归纳变量作为判断条件 例如将1>10改为t2>100+t1 因原来t3:=10*i+t1 而100+t1即10*10+t1
(3)删除归纳变量 即改用同族归纳变量作为判断条件 例如将 i > 10 改为 t3 > 100 + t1 因原来t3 := 10 * i + t1 , 而100 + t1 即 10 * 10 + t1
优化之 BI B2 (2)if1>10goto(16) B3 (3)t1:=2* 4)t2:=10*1 (5)t3:=2+t1(6)t4:=a0-11 (7)t5:=2 (8)t6:=10*1 (9)t7:=t6+t5(10)t8:=a0-11 11)t9:=t8[t7](12)t10:=t9+1 (13)4|t3]:=t10(14)n:=i+1 (15)goto(2) B4 (16)
(1)i:=1 (2)if i>10 goto (16) (3)t1:=2*j (4)t2:=10*i (5)t3:=t2+t1 (6)t4:=a0-11 (7)t5:=2*j (8)t6:=10*i (9)t7:=t6+t5 (10)t8:=a0-11 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (15)goto (2) (16) …... 优化之前 B1 B2 B3 B4
代码外提后 BI B2 (3)t1:=2 (6)t4:=a0-11 (7)t5:=2* (10)t8:=a0-11 (2ifi>10goo(16) B2 B3 (4)t2:=10*1(5)t3:=t2+t1 (8)t6:=10*1(9)t7:=t6+t5 1)t9:=8[t7](12)t10:=t9+1 (13)t4[t3]:t10(14)i=i+1 (15)goto(2 (16) B4
(1)i:=1 (4)t2:=10*i (5)t3:=t2+t1 (8)t6:=10*i (9)t7:=t6+t5 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (15)goto (2) (16) …... (2)if i>10 goto (16) (3)t1:=2*j (6)t4:=a0-11 (7)t5:=2*j (10)t8:=a0-11 代码外提后 B1 B2’ B2 B3 B4
强度削弱后 BI ()i:=1 B2 3)1:=2*j(6)t4:=a0-11 (7)t5:=2*j (1080 4)t2:=10*1(8)t6:=10* (5)t3:=t2+tl(9)t7:=t6+5 (2)if i>10 goto(16) B2 l1)t9:=8[t7](12)t10:=9+1 B3 (13)4t3]:=t10(14):=i+1 (4)t2:=t2+10(83)t6:=t6+10 (5)t3:=t3+10(9)t7:=t7+10 (15)goto(2) (16) B4
(1)i:=1 (11)t9:=t8[t7] (12)t10:=t9+1 (13)t4[t3]:=t10 (14)i:=i+1 (4’)t2:=t2+10 (8’)t6:=t6+10 (5’)t3:=t3+10 (9’)t7:=t7+10 (15)goto (2) (16) …... (2)if i>10 goto (16) (3)t1:=2*j (6)t4:=a0-11 (7)t5:=2*j (10)t8:=a0-11 (4)t2:=10*i (8)t6:=10*i (5)t3:=t2+t1 (9)t7:=t6+t5 强度削弱后 B1 B2’ B2 B3 B4