This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 3.3 compile time regression (22400%)
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: Michael Matz <matz at suse dot de>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 18 Mar 2003 15:50:09 +0100 (CET)
- Subject: Re: 3.3 compile time regression (22400%)
On Tue, 18 Mar 2003, Michael Matz wrote:
> Hi Richard,
>
> On Tue, 18 Mar 2003, Richard Guenther wrote:
>
> > The picture does change if I specify -fno-default-inline,
>
> This means, that probably all the in-class definitions of functions are
> the culprit (which are equivalent to being declared inline). You might
> want to play with "--param bla=value", where "bla" is
> max-inline-insns-single (300) and max-inline-insns-auto (300). The
> numbers are the default. Try to make them smaller to limit the inlining.
> The first parameter should apply to these functions, but I'm not
> sure it does.
>From the docs I read
max-inline-insns-single
Several parameters control the tree inliner used in gcc. This number sets
the maximum number of instructions (counted in gcc's internal
representation) in a single function that the tree inliner will consider
for inlining. This only affects functions declared inline and methods
implemented in a class declaration (C++). The default value is 300.
so I suspect gcc cannot distinguish between inline and not inline methods
defined in class :( In fact, passing --param max-inline-insns-auto=0
doesnt change compile time.
Interesting though is the max-inline-insns-single vs. compile time chart:
max-inline-insns-single compile time
100 7.59
150 9.10
200 10.82
250 81.66
300 2237.98
And 300 is the default... ugh.
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/