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

Reply via email to