On 10/26/07, Diego Novillo <[EMAIL PROTECTED]> wrote:
> SSA names of pointers are also pointers, when points-to sets are
> computed for SSA names, what you get is all the symbols that the
> particular SSA name has been found to point to. Eg,
>
> if (...)
> p_1 = &a;
> else
> p_2 = &b;
> endif
> p_3 = phi (p_1, p_2)
>
> points-to (p_1) = { a }
> points-to (p_2) = { b }
> points-to (p_3) = { a b }
What is the matter if the 'b' var. is unused and
optimally removed by the SSA algorithm?
int a;
int b;
a = 2;
p_4 = phi(a)
// b doesn't used here
if (...)
p_1 = &a;
else
p_2 = &b;
endif
p_3 = phi (p_1, p_2)
points-to (p_1) = { a }
points-to (p_2) = { b }
points-to (p_3) = { a b }
In this case, should exist hidden p_5 = phi(b) although 'b' is not used
but yes used his reference to phantom cell 'b'. It's weird for me.
I've not idea WHERE put "hidden p_5 = phi(b)"!
Too it's possible to ocurr *p_2 = c where 'b' will be hidden used through
the pointer p_2. It's too weird for me.
J.C. Pizarro