This is the mail archive of the
mailing list for the GCC project.
Re: mainline "exploding"
> Date: Wed, 15 Oct 2003 22:30:33 +0200
> From: Jan Hubicka <email@example.com>
> > On Wed, 2003-10-15 at 10:57, Geoff Keating wrote:
> > > Mark Mitchell <firstname.lastname@example.org> writes:
> > >
> > > > I think we should make -funit-at-a-time the default at this point, if it
> > > > is passing test suites.
> > > >
> > > > In fact, I think we should make it *unconditional*. There is no need
> > > > for this to be an option; it should be the only mode.
> > >
> > > I presume all this discussion is about -O2, right? It would be a
> > > severe regression if we started switching unit-at-a-time on at -O0
> > > (where it isn't even useful, since we don't do inlining at -O0).
> > I think we're talking about -O2 and -O1 -- if we do inlining at -O1,
> > which I don't presently remember.
> Yes, problem is fun with old heuristics used by -O1.
> OK, at a start, I am attaching patch to enable unit-at-a-time at -O1 so
> we fix the regression Geoff is speaking about. Would this be OK?
> >From now we can go in following ways:
> 1) keep it this way
> 2) kill old inlining heuristics and make function inlining imply
> 3) kill old inlining heuristics and new incremental inlining code
> 4) kill old code path completely and make unit-at-a-time default for all
I don't think any of these are good solutions. Instead, we need to
1. New heuristics; or
2. Switching off inlining at -O1 completely (and of course not using
I think new heuristics ought to be better than switching inlining off.
Please remember, unit-at-a-time means very high memory use for some
input files. We cannot have it as the only choice unless there's some
limit on peak memory use, and that means throwing away some function
- Geoffrey Keating <email@example.com>