This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: Speeding up libstdc++.so with --dynamic-list-data
On Mon, Jan 08, 2007 at 08:09:59PM -0800, Andrew Pinski wrote:
> On Mon, 2007-01-08 at 18:25 -0800, H. J. Lu wrote:
> > I am enclosing a patch to implement a new linker swicth,
> > --dynamic-list-data. It is -Bsymbolic for function symbols only.
> > I tried it with C, C++, Java and Fortran on Linux/ia32, Linux/x86-64
> > and Linux/ia64. There are only a few regressions. The function calls
> > within the new resulting DSOs will bind locally. It speeds up
> > the enclosed C++ testcase by
> >
> > 1. 23% on ia64.
> > 2. 6% on ia32.
> > 3. 3% on x86-64.
> >
> > Should we consider such optimization?
>
> The real question is, does this work with operator new?
>
> In that if I a C++ developer provides a seperate operator new (and
> delete), does libstdc++ use that one as required by the C++ standard?
These are the regressions I was talking about. I can support them with
a new linker switch. So far, we have
--dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
--dynamic-list FILE Read dynamic list
My current proposal adds
--dynamic-list-data Add data symbols to dynamic list
I can add a new one
--dynamic-list-cpp-new Add C++ new/delete to dynamic list
Then we can build libstdc++ with
--dynamic-list-data --dynamic-list-cpp-new
H.J.