
On 21/01/2012 20:39, Edward Z. Yang wrote:
Excerpts from Edward Z. Yang's message of Fri Jan 20 23:44:02 -0500 2012:
If multiple assignment is rare enough in straight line code, I might be able to take the conservative approach and just say
a -> used multiple times
Which I don't think will cause any problems in the inlining step later. But I don't have a good sense for this.
I realized the answer to my question, which is YES. In particular, the spill-reload step will result in this happening. Back to the drawing board...
In the old code generator we generated SSA code, by virtue of (a) never having loops and (b) never reusing LocalRegs. In fact I think the mini-inliner in CmmOpt relies on this property. It's a useful property to have - perhaps we should have it in the new codegen too? (modulo loops of course, I'm not suggesting we introduce Phi nodes) Cheers, Simon