Re: GCC code quality, was Compiler Companies in Australia

"Robert Thorpe" <Robert.Thorpe@antenova.com>
26 Jul 2005 13:20:23 -0400

          From comp.compilers

Related articles
[3 earlier articles]
Re: GCC code quality, was Compiler Companies in Australia emailamit@gmail.com (Amit Gupta) (2005-07-05)
Re: GCC code quality, was Compiler Companies in Australia david.boyle@gmail.com (2005-07-05)
Re: GCC code quality, was Compiler Companies in Australia walter@bytecraft.com (Walter Banks) (2005-07-05)
Re: GCC code quality, was Compiler Companies in Australia der_julian@web.de (Julian Stecklina) (2005-07-11)
Re: GCC code quality, was Compiler Companies in Australia alexc@TheWorld.com (Alex Colvin) (2005-07-12)
Re: GCC code quality, was Compiler Companies in Australia robert.hundt@gmail.com (Robert H) (2005-07-22)
Re: GCC code quality, was Compiler Companies in Australia Robert.Thorpe@antenova.com (Robert Thorpe) (2005-07-26)
| List of all articles for this month |

From: "Robert Thorpe" <Robert.Thorpe@antenova.com>
Newsgroups: comp.compilers
Date: 26 Jul 2005 13:20:23 -0400
Organization: Compilers Central
References: 05-07-00805-07-017 05-07-086
Keywords: GCC, optimize

Robert H wrote:
> >>platforms? What did the numbers look like?
>
> I can't tell you too many details. However, from our experience and
> measurements on Itanium HP-UX and Linux, I can tell you that gcc is
the
> far inferior compiler in terms of performance when compared, for
> example, against the Intel compiler, our HP-UX compiler, or the ORC
> (Open64 compiler) and its derivatives. It is decent for integer
> benchmarks, but for some benchmarks, in particular fp, gcc is up to
70%
> behind - and more! (but take this number with a grain of salt - many
> compilers are heavily tuned for SPEC ;-). But even on the upcoming
SPEC
> 2006, where the vendors didn't have the time to fully tune yet, gcc is
> behind a lot.
>
> Sorry for being vague at this point. You should be able to decode some
> of the details by looking at various sources, such as the SPEC pages
> and other company disclosures and academia papers.


There is a difference between GCC performance in general and GCC
performance on IA64 in-particular.
IA64 is an in-order VLIW machine, making it a very difficult
architecture to optimize for. GCC was not built with these kind of
machines in mind. Also, IA64 machines are very expensive making testing
IA64 performance expensive. Lastly, a fair amount of the work on GCC
optimizations is funded by AMD, who of course want to improve x86-64
performance.


For comparison, GCCs performance on x86 is rather better
http://people.redhat.com/dnovillo/spec2000.i686/
The 2.26GHz Pentium 4 used for this test gave:-


Intel C Compiler 8.1:
SPECInt base/peak 687.5/686.4
SPECfp 549.2/545


Mainline GCC:
SPECInt 614.0/616.3
SPECfp 445.1/446.5


There is a significant difference, but they aren't a world away.
(I should note that these results aren't full reportable SPEC results,
see Diego Novillo's website for why)


There is another good comparison here:
http://www.coyotegulch.com/reviews/linux_compilers/index.html


The difference comes down to will. Intel and HP want IA64 to show good
performance, and are willing to put a lot of work into their compiler to
get it. The authors of GCC amongst other goals want code running fast
on commonly used architectures like x86.


> gcc's strenght is portability - and it is getting better and better in
> the high level optimizer (just see new SSA framework in 4.0, or the
> LLVM effort). Machine specific optimizations, which are particularly
> important for Itanium, are not up to snuff - yet ;-)


GCCs strength has always being its high-level optimizations. Its
low-level optimization will only match ICCs when someone spends the
time and money necessary to improve them.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.