Hi Diego,

In the example of dynamic partitioning below (Figure 6), I don't understand
why MEM7 is not killed in line 13 and is killed in line 20 later. As far as
I understand, in line 13 'c' is in the alias set, and it's currdef is MEM7,
so it must be killed by the store in line 14. What am I missing?

Thanks,
Ira


a, b, c} q6 points?to {b, c}
CD(v) means that the generated MEM i name is the “current definition” for
v.
LU(v) looks up the “current definition” for v.
The initial SSA name for MEM is MEM7.

1 . . .
2 # MEM8 = VDEF <MEM7> ) CD(a)
3 a = 2
4
5 # MEM10 = VDEF <MEM7> ) CD(b)
6 b = 5
7
8 # VUSE <MEM10> ) LU(b)
9 b.311 = b
10
11 D.153612 = b.311 + 3
12
13 # MEM25 = VDEF <MEM8, MEM10> ) CD(a, b, c)
14 *p5 = D.153612
15
16 # VUSE <MEM25> ) CD(b)
17 b.313 = b
18 D.153714 = 10 ? b.313
19
20 # MEM26 = VDEF <MEM25, MEM7> ) CD(b, c)
21 *q6 = D.153714
22
23 # VUSE <MEM25> ) LU(a)
24 a.415 = a
25
26 # MEM17 = VDEF <MEM7> ) CD(SFT.2)
27 X.x = a.415
28 return
}


Reply via email to