This is the mail archive of the
mailing list for the GCC project.
Re: patches addressing g++ 3.0 compilation speed?
- To: Dale E Martin <dmartin at cliftonlabs dot com>
- Subject: Re: patches addressing g++ 3.0 compilation speed?
- From: Gerald Pfeifer <pfeifer at dbai dot tuwien dot ac dot at>
- Date: Wed, 1 Aug 2001 11:35:06 +0200 (CEST)
- cc: <gcc at gcc dot gnu dot org>
On Tue, 31 Jul 2001, Dale E Martin wrote:
> Hello. I've got an application that is a VHDL compiler that is implemented
> in C++, and it also generates C++ as an output. The compiler itself is
> about 200k lines of C++ (using wc to count, so obviously it's not that
> accurate.) The thing is, I'm using both STL and iostreams heavily, and
> compilation is dramatically slower with 3.0 over 2.95.x... It goes from
> something like 30 minutes to over two hours on my Celeron 533 machine.
Unfortunately, I have been experiencing exactly the same, and so have
> This is really a problem, as g++ 3.0 is _definitely_ superior in terms of
> adherence to the standard, but it's really too slow for me to use in
> mainline development.
> So I'm curious if there are patches being considered for the 3.x
> branch to speed C++ compilation? I'll happily help test them if there
> are any available.
There already has been applied one patch changing the behavior of the
inliner, which speeds up g++ so that it's only about 35% slower than GCC
2.95. Unfortunately, this patch also results in drastically worse code
generation (and keep in mind that, for C++ as you use it, GCC 3.0 is
already significantly worse than GCC 2.95).
And, frankly, there is essentially no chance that 3.0.1 will be
significantly better and AFAIK nobody is seriously working to fix
this problem in the timeline for GCC 3.0.x. :-(
It would be very interesting if you could give a current (CVS) snapshot
of the GCC 3.0 branch a try and post a compilation time and run time
performance comparison of GCC 2.95, 3.0, and that snapshot.
Gerald "Jerry" firstname.lastname@example.org http://www.dbai.tuwien.ac.at/~pfeifer/