This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: inline-limit: some experimental feedback
- To: gcc at gcc dot gnu dot org
- Subject: Re: inline-limit: some experimental feedback
- From: "Richard B. Kreckel" <kreckel at ginac dot de>
- Date: Tue, 21 Aug 2001 16:36:58 +0200 (CEST)
- cc: Gerald Pfeifer <pfeifer at dbai dot tuwien dot ac dot at>
- Reply-To: Richard dot Kreckel at Uni-Mainz dot DE
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:
>
> http://gcc.gnu.org/ml/gcc-patches/2001-08/msg00061.html
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...
Regards
-richy.
--
Richard B. Kreckel
<Richard.Kreckel@Uni-Mainz.DE>
<http://wwwthep.physik.uni-mainz.de/~kreckel/>