This is the mail archive of the
mailing list for the GCC project.
Benchmarking 3.1's code generation...
- From: "Scott Robert Ladd" <scott at coyotegulch dot com>
- To: "gcc List" <gcc at gcc dot gnu dot org>
- Date: Sun, 19 May 2002 20:44:12 -0400
- Subject: Benchmarking 3.1's code generation...
Congratulations to the gcc 3.1 team for a fine effort.
After ensuring I wasn't tripping over my own ignorance, I ran new and
improved benchmark tests, comparing gcc 3.1 to 3.0.4 and Intel C++ 6.0. You
can find the revised article here:
>From the conclusion:
The latest gcc holds it own against Intel C++, winning some benchmarks it
lost previously. There are still applications where Intel shines, but the
differences between the compilers have narrowed.
Has gcc 3.1 changed my opinions? No -- but my earlier opinion is somewhat
incomplete. Intel's C++ compiler is available for non-commercial use, but it
is not "free software." Nor is Intel C++ a drop-in replacement for gcc; it
can not, at this time, compile a stock Linux kernel. HOWEVER, Intel C++ is
an excellent tool for numerical, portable parallel, and commercial
applications. Using Intel C++, I've cut days off the running time of some
internal research projects -- but then, on another project, Intel's
implementation of the vector template is twice as slow as gcc's, making the
GNU compiler a better choice.
"Choice" is the key word here -- choice is good, be it in democracy or
software. Intel provides a useful alternative to gcc for development on ia32
(and ia64) systems; soon, other companies will do the same. One compiler
might have a great environment for developing GUI code; another compiler
might generate fast code. Smart programmers choose the right tool for the
job; fools make snap decisions based on religious issues.
Thank you, all who helped me with these comparisons; I've added
acknowledgements to the review.
I look forward to considered comments.
Scott Robert Ladd
Coyote Gulch Productions, http://www.coyotegulch.com
No ads -- just very free (and somewhat unusual) code.