Chapter 9 Code Generation
Chapter 9 Code Generation
(ADD, b, c, T1)
(LBL, L1)
(ADD, b, c, T2)
(MUL, T1, T2,
T3)
(TST, b, c, 1, L3)
(MOV, T3, a)
Example of an Atom
Sequence Which
Cannot be Optimized
+
a := b + c b,d -
b := a – d
a +
d0
d := a – d
c := d + c b0 c0
+ e
a := b + c
b := b – d + a - b + c
c := c + d
e := b + c b0 c0 d0
t1 := 4 * i
t2 := a [ t1 ] + t5,i
t3 := 4 * i
t4 := b [ t3 ] t4 [] [] t2
t5 := t2 + t4 * t1, t3
i := t5
b a 4 i
c +
a := b + c
a := b + c
b := a – d ×b,d - d := a - d
d := a – d
c := d + c
c := d + c a +
d0
b is not live
b0 c0
(MUL, a, b, T1)
(MUL, a, b, T2)
(ADD, T1, T2, T3)
(MUL, a, b, T4)
(ADD, T3, T4, T5)
(MUL, a, b, T1)
(MUL, a, b, T2)
(ADD, T1, T2, T3)
(MUL, a, b, T4)
(ADD, T3, T4, T5)
MUL a, b, T1.2.4
ADD T1.2.4, T1.2.4,
T3
ADD T3, T1.2.4, T5
LOD R1,a
ADD R1,b LOD R1,a
STO R1,T1 ADD R1,b
LOD R1,T1 SUB R1,c
SUB R1,c STO R1,T2
STO R1,T2