Tree-SSA self checking infrastructure

Jan Hubicka hubicka@ucw.cz
Wed Nov 19 22:15:00 GMT 2003


> In message <20031119213603.GW16923@atrey.karlin.mff.cuni.cz>, Jan Hubicka write
> s:
>  >I am doing the first, how can I implement the second? That may be
>  >actually one problems I am seeing...
>  >(given the fact that only the tail recursion ellimination run as very
>  >last pass before de-ssa breaks I think it is actually not the case, but
>  >definitly needs to be done right)
> I'm not absolutely sure myself.  Again, my recollection is a bit fuzzy, but 
> I think people have argued that you do want those PHI nodes for the meet
> between the uninitialized path and the initialized path.  But before you
> spend a lot of time on it, you might want to do a little research.
> 
> It's also worth noting that we don't seem to be creating PHIs for this
> right now.  Consider:
> 
> foo(x)
> {
> 
>   int a;
> label:
> 
>   a = 20;
> 
>   goto label;
>   
> }
> 
> We don't get a PHI at "label" -- so even if it is recommended that we
> have PHIs at the join point between initialized and uninitialized, it
> doesn't appear that we currently do it.

THe uninitialized variables does not appear to be big deal.  The more
problem can be global scope variables that we maintain in SSA form.  I
guess these really need PHI node in case function modify them, right?
I think I do have the new SSA names as these will be call clobbered
variables so the call I am converting is implicit set of these.  How do
I figure out the proper names?

Honza
> 
> jeff



More information about the Gcc mailing list