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: Any very recent inlining changes (libstdc++' ABI check fails in mainline) ?


On Wed, Oct 7, 2009 at 2:33 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
>> Anyway, as regards *which* specific functions are not inlined, I would
>> say all the functions which break the ABI test as newly exported symbols
>> should be checked, like the above, 'std::ios_base::getloc() const'. I'm
>> attaching below a complete list, from my libstdc++.log, but I would
>> guess should be easy to reproduce with a GCC tree post your last changes...
>
> Hi,
> from quick glance at the symbols it seems that the functions are not
> that small they would be considered code size win after inlining, so it
> might be that inliner just no longer inline them into cold sections
> callers.
>
> There is one change concerning COMDAT I made in my patch. ?Inliner when
> doing size estimates knows that inlining all calls might make out of
> line function unnecesary. ?This logic was working for COMDAT functions
> too (they do disappear from current unit) while after the patch COMDAT
> functions are assumed to stay in the unit size after inlining. ?I did
> this because this logic has an effect that all COMDAT functions that are
> called just once in current compilation unit will get inlined (since
> producing inline copy while removing offline copy always reduce size)
> regardless their size that might lead to uncontrolled program size
> growth.
>
> I will see if it reproduces on my setup and if it disappears after this
> logic is reverted to original behaviour.
> Lets also see how C++ benchmarks will change in behaviour today.

Btw, that new comdat behavior is very well reasonable.  In
whole-program mode it should be the old one though.

Richard.


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