On 3/4/08 4:06 PM, Jan Hubicka wrote:

The names are equivalent to UD pointers:  Either you can have version
names or just coinsider the destination of UD pointer to be the
destination.  Or am I still missing a point?

Nope, that's exactly right. Versioned names are useful for some things (mostly keeping attributes/values/etc in arrays indexed by name version), but straight pointers are also doable.

I believe that FUD on hard regs is doable and practical: I don't see how
the rewriting SSA problems hit by RTL-SSA project map here and overall I
believe the basic disapointment lesson from RTL-SSA project was not
SUBREGs/STRICT_LOW_PARTs and other isues, but the fact that RTL is that
hard to modify: everything you do go through target validation machinery
or expansion and can behave irregularly that does not play well with
standard optimization algorithms plus there are ugly things like libcall
or other notes that was a lot more important in GCC of RTL-SSA project
time.

Yes, we should not try to do a rewriting SSA for the time being. In this we are all in agreement. Nobody is advocating a rewriting SSA form on RTL at the moment. Maybe in the future, but for now building FUD chains on the DF framework is Not Hard.

DF already has support for rebuilding the UD chains. So, rebuilding FUDs will probably be straightforward and it may be a bit simpler. With FUD chains you are trading the complexity of computing dominance frontiers and (maybe) PHI pruning with the setting of more UD chains.


Diego.

Reply via email to