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: 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/


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