This is the mail archive of the 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]

Re: inline-limit: some experimental feedback

On Tue, 21 Aug 2001, Gerald Pfeifer wrote:
> On Tue, 21 Aug 2001, Richard B. Kreckel wrote:
> > Okay, I just learned that Gerald has set the default
> > PARAM_MAX_INLINE_INSNS from 10000 down to 600 in order to remedy
> > compile-time performance regressions.
> Minor correction: I have *increased* the limit from 100 to 600 based on
> tests, never decreased it:

Oops; me sorry.  Not being careful.   :-/

> Neither the tree-based inliner per se, nor the switch to libstdc++-v3, nor
> the decrease to 100 had been performance-tested in a suitable way; this is
> why GCC 3.0 and 3.0.1 appear as bad as they do compile-time and run-time
> performance-wise for many C++ sources.
> However, tweaking this parameter is a band-aid in any case: Even if we
> tune for maximum compile-time performance or maximum run-time performance,
> the result with GCC 3.0 and 3.0.1 is *still* worse than GCC 2.95.x in both
> terms (for my projects at least).

Just for the record: for my projects this is not the case.
GCC 3.0 produces faster code.

> The proper fix really is to improve the inliner.
> Gerald
> PS: Increasing the value to 2000 would tripple compile-time for my
> projects, for example, and also increase binary size quite a bit.

Apparently, the behavior varies greatly from application to application.  
IMHO, when people compile with -O2 they are rarely compiling during
development.  Instead, they are usually preparing a product for delivery.  
The exceptions are obvious: kernel development where you need more control
over the generated, but that's C, not C++.  Hence, I wouldn't be so
concerned about compile-time regressions.  Most people agree that the
run-time regressions are much mor important.  They do not expect -O2 to be
*so* far off from the optimum.  Anyways, if the real fix is the inliner,
discussing PARAM_MAX_INLINE_INSNS is probably useless anyways...

Richard B. Kreckel

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