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