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 }