proposal for compilation unil wide alias analyis

Jeffrey A Law law@redhat.com
Mon Jun 28 16:46:00 GMT 2004


On Sat, 2004-06-26 at 13:49, Mark Mitchell wrote:
> Zack Weinberg wrote:
> 
> >There is also an argument from ease of maintenance, for having just
> >one pipeline from source to object code - in other words, enabling
> >optimization only enables more passes, it doesn't switch from a
> >'stupid' pass to a 'smart' one.  In particular, if it makes sense to
> >rewrite the tree-to-RTL expander such that it expects to be fed SSA
> >form GIMPLE, then we should always give it SSA form GIMPLE, rather
> >than keeping around another tree-to-RTL expander that can cope with
> >non-SSA form or even GENERIC.[2]
> >  
> >
> I agree with the ease-of-maintenance argument, but I'm not sure it 
> should triumph.  For speed of -O0 comilation, avoiding going into SSA 
> form at all seems like it would be a win.  In other words, I'd expect 
> that having the tree-to-RTL expanders take GENERIC -- or even 
> near-generic with callbacks into the front end to expand non-GENERIC 
> bits to GENERIC on the fly -- would be a win over forcing everything to 
> be converted to SSA GIMPLE first.  The fewer passes we make over the 
> tree structure, the better.
Note that in a -O0 scenario, we could consider going into SSA form
to get uninitialized warnings and some simple const/copy propagation.

If done correctly, we could avoid the out-of-ssa step and just drop
the SSA version numbers.  The out-of-ssa step is a significant 
component of the compile time cost of the SSA path.

jeff




More information about the Gcc mailing list