This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: A question about integer promotion in GCC


On Mon, 6 Sep 2004, Nathan Sidwell wrote:

> > flags from constants.)  Splitting fold that way, with the subsequent pass
> > running just before gimplification, should be straightforward.  (I don't 
> I'd suspect we don't want it to run once just there.  It should be cheap
> enough to run multiple times on gimple form.
> 
> > know what performance impact there might be, though gains from smaller
> > footprint while parsing the whole file before optimising any of it are
> > possible.)  The hard bit would be creating a fold parse for GIMPLE that does
> > everything fold currently does.
> sure, but that's a goal that can be incrementally acheived.

I agree we want to run it multiple times on GIMPLE.  Putting the existing 
fold just before gimplification is to avoid regressions.  Because folding 
of subexpressions feeds back into optimisations on the full expression, 
things can't be removed from the existing fold without potential for 
regressions until all the optimisations have been implemented to work on 
GIMPLE; just as it's taking a while to eliminate cases some RTL passes get 
which tree-ssa doesn't so that those RTL passes can be removed.  While the 
implementation of everything for GIMPLE is something that can and so must 
be done incrementally, each optimisation placed there improving the 
optimisation of programs that use explicit temporaries rather than 
complicated expressions.

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
  http://www.srcf.ucam.org/~jsm28/gcc/#c90status - status of C90 for GCC 3.5
    jsm@polyomino.org.uk (personal mail)
    jsm28@gcc.gnu.org (Bugzilla assignments and CCs)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]