To view parent comment, click here.
To read all comments associated with this story, please click here.
Outdated common knowledge, then. GCC has improved very fast for the past 5 years now in the performance area, and simultaneously the nature of compiler optimization has shifted: 5 years ago it was mostly about the back-end carefully selecting asm instructions, which ICC is very good at, but nowadays programmers of performance-critical software use more and more intrinsics (especially for SIMD) so to a large extent they control that themselves. In other words, ICC's superiority in the area of auto-vectorization is becoming irrelevant as that doesn't get nearly as good as intrinsics-based vectorization anyway. Instead, compiler optimization has been moving to a larger scale, with e.g. the advanced loop transformations (polyhedral model) introduced in gcc 4.4, with partial loop unrolling, partial function inlining, better constants propagation, etc.
Talk is cheap, real benchmarks are more telling.
The one I provided was from 2009.
Here's another from 2010:
http://macles.blogspot.com/2010/08/intel-atom-icc-gcc-clang.html
Here is another:
http://www.luxrender.net/forum/viewtopic.php?f=21&t=603
ffmpeg benchmark:
http://geminialpha.blogspot.com/2008/03/icc-vs-gcc-43.html
Here is someone showing how clamav can be recompiled with icc for a significant performance boost:
http://groups.google.com/group/linuxdna/browse_thread/thread/36a354...
I see no reason why I should believe that GCC will create a faster binary in most cases. But if you would like to convince me otherwise then pick some commonly used open source programs and create your own benchmarks.





Member since:
2009-08-26
Best at what? I thought it was common knowledge that icc is better for performance.
http://multimedia.cx/eggs/icc-vs-gcc-smackdown-round-3/
GCC is of course more portable but I wouldn't call it the best.