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.