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: Suggestions for improving gcc 3.2 compilation speed?


>The best win I can think of for g++ would be to create all, and include 
>all the headers one can, and change all headers to inlcude all, and 
>then precompile all, and link it around under all the various names 
>that can be used and fix the can't do more than abs names problem in 
>PCH.
>
>This doesn't rely upon -include, works out of the box for all the std 
>include files, maximal win, easy to use, just #include one of the 
>normal C++ headers before anything else in the .cc files.

Well....

With Devang's patch I can do this, only I used std++.h.pch as "include
all." I'm not quite sure what you mean by the "link it around under all the
various names that can be used and fix the..." bits.

However, still.

baseline cvs, no pch
1031.380u 68.120s 23:47.94 76.9%        0+0k 0+0io 1687168pf+0w

cvs with stamp-std-precompile,  C++ includes as individual pch files
1005.580u 67.070s 23:43.49 75.3%        0+0k 0+0io 1678954pf+0w

-include stdc++.h, stdc++.h.pch generated
1563.800u 103.100s 34:36.41 80.2%       0+0k 0+0io 1784752pf+0w

#include stdc++.h, stdc++.h.pch generated
1017.940u 66.770s 24:34.06 73.5%        0+0k 0+0io 1684457pf+0w

When I run the compiler with "-v -H" I get

#include "..." search starts here:
#include <...> search starts here:
 /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include
 /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu
 /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/backward
 /mnt/hd/src/gcc/libstdc++-v3/libsupc++
 /mnt/hd/src/gcc/libstdc++-v3/testsuite
 /mnt/hd/bld/gcc/gcc/include
 /usr/local/include
 /mnt/hd/bld/H-x86-gcc/include
 /usr/include
End of search list.
GNU C++ version 3.4 20030308 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4 20030308 (experimental).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64154

. /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/string
.. /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/stdc++.h
.. /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/c++config.h

etc, etc, etc. Tell me if I'm doing something wrong, but I thought this
was how it was supposed to work...

This is with

<bkoz at belmont> /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include
%ll stdc++.h.pch
-rw-rw-r--    1 bkoz     bkoz          13M Mar  8 01:43 stdc++.h.pch


Where stdc++.h includes all the C++ standard includes.

Is the .pch just not being used?

-benjamin


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