[Bug c++/40379] New: Extremely long compiling time of gcc optimization mode
qingning dot huo at barcap dot com
gcc-bugzilla@gcc.gnu.org
Mon Jun 8 17:12:00 GMT 2009
I've got some cpp files that take extremely long time to compile with gcc-4.2.3
in the optimization mode. For example, one of them takes 102 minutes elapsed
time. This is the command line I used (I've removed -I -D -MMD -MT -MF and -MP
options).
$ /usr/bin/time g++ -m32 -xc++ -c -fPIC -pipe -fpermissive -w -fuse-cxa-atexit
-march=athlon64 -mfpmath=sse -O2 <source_file> -o <object_file>
5936.75user 2.94system 1:42:47elapsed 96%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2major+440942minor)pagefaults 0swaps
If I remove the "-O2" option, the compilation takes less than 11 seconds. It
looks like that the optimization stage is spending very long time. I've tried
to modify my source code, and one change has made the difference. There are
many functions in several anonymous namespace in the cpp file. If I name those
namespace to make them non-anonymouse. The compilation time is reduced to about
4 minutes. It seems to me that gcc is spending a lot of time inlining those
functions, presumably because those function are called only once.
I would like to know whether there are some gcc options to avoid this lengthy
optimization time without changing the source code or disabling the -O2 option
altogether. I tried to compile with -fno-unit-at-a-time and
-fno-inline-functions-called-once, but they do not seem to affect the compiling
time.
The system I am using is Red Hat Enterprise Linux AS release 4 (Nahant Update
4) on x86_64 processor. I compiled gcc 4.2.3 myself with the following config:
$ gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.2.3/configure --prefix=/home/share/gcc-4.2.3
--enable-__cxa_atexit --enable-languages=c,c++ --enable-multilib
Thread model: posix
gcc version 4.2.3
--
Summary: Extremely long compiling time of gcc optimization mode
Product: gcc
Version: 4.2.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: qingning dot huo at barcap dot com
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40379
More information about the Gcc-bugs
mailing list