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: -finline-functions does not affect libstdc++?


On Mon, 27 Oct 2003, Chris Lattner wrote:

>
> Richard Guenther wrote:
> > It seems specifying -finline-functions with gcc3.4 does not affect
> > libstdc++ declarations!? I figured this out while doing work on
> > attribute((leafify)). Is this intentional? At least it hurts performance
> > quite a bit!
>
> This is because almost all of libstdc++ is specified in terms of
> "external" templates.  For example, ostream and istream all use external
> templates, so the compiler does not instantiate them except when building
> libstdc++.  Presumably this is a performance optimization of the compiler
> itself, rather than of the code.

Hm, the failed to inline functions are actually in the headers, but not
marked inline. So I still think -finline-functions does not affect
libstdc++ declarations.

But, I doubt so much changed between 3.3 and 3.4 in this area. So there
must be something seriously wrong with 3.4s loop/gcse/cse passes that they
leave all this crap in, compared to 3.3. Ugh. I'll try to dig into it -
but 223 lines assembly for 3.3 compared to 531 for 3.4 is just bad.

Any hints? Anybody wants another (huge) POOMA testcase? ;)

Richard.




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