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.