If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

GCC & LLVM Clang Performance On The Intel Atom

Phoronix: GCC & LLVM Clang Performance On The Intel Atom

A few weeks ago there were benchmarks of GCC, LLVM-GCC, DragonEgg, and Clang. In this compiler performance comparison the releases of GCC 4.2, 4.3, 4.4, 4.5, and a 4.6 development snapshot were benchmarked. On the LLVM side there was LLVM-GCC 4.2, DragonEgg with GCC 4.5 and LLVM 2.8, and then Clang with LLVM 2.8. This combination of eight open-source compilers were tested on three distinct Intel and AMD systems (even a 12-thread Core i7 Gulftown), but all of which were 64-bit capable and contained relatively high-end processors from their respective series. To complement this earlier article, available now are some new GCC/LLVM benchmarks but this time an older Intel Atom CPU was used to look at the 32-bit compiler performance on a slower, low-power netbook.

Clang continues to impress me, I can't wait for it to be capable of compiling a full standard distribution. In fact I have been eagerly eying FreeBSD again after years away from the platform because of their investment in making GCC history.

In fact I have been eagerly eying FreeBSD again after years away from the platform because of their investment in making GCC history.

Why would you want GCC to be history? I am very happy to have competition (finally) on the open compiler front and the last thing I would want is a lack of competition again. Is this some BSD licence zelot/anti-GPL thing?

Add Intel icc to the mix, so that we have some perspective. I am sure Intel will readily provide you with a copy, unless they are afraid of comparison. :-)

Although it was quite some time since I did tests using ICC, I remember it failed to compile alot of things. Although it's a closed source compiler it's available for free on Linux (windows users have to pay), or atleast that was the case when I last tried it (many moons ago). It would indeed be interesting seeing the results assuming that the tests would compile fine.

Although it was quite some time since I did tests using ICC, I remember it failed to compile alot of things. Although it's a closed source compiler it's available for free on Linux (windows users have to pay), or atleast that was the case when I last tried it (many moons ago). It would indeed be interesting seeing the results assuming that the tests would compile fine.

The issue is that a significant amount of open source software that uses GCC extensions to C/C++. If it were following the standard, there would not be a problem.

Why would you want GCC to be history? I am very happy to have competition (finally) on the open compiler front and the last thing I would want is a lack of competition again. Is this some BSD licence zelot/anti-GPL thing?

Several reasons, firstly it is blindingly obvious that the horse to back is LLVM + Clang not GCC. The sooner we can switch the better for all involved. It is progressing extremely rapidly as a technology and is finding uses in places where GCC cannot.

Secondly, looking at how the FSF has run GCC e.g. you will see that they directly prohibited things like plugins for reason not of technology but to protect their ideological bend. Thus disallowing, in practice, the use of GCC for things such as static analysis which LLVM offers us today. Static code analysis is just one of many technologies we could and should deploy to ensure secure and performant code. The FSF playing politics with the compiler and their licensing has actively prevented that, in effect putting Open Source software in a worse place than it had to be (so much so that Coverity has made a small fortune running such tests on select codebases for us - using of course proprietary software which I hardly would call a win for ideology overall).

Thirdly, I prefer a BSD/X11 style license (specifically I am personally rather fond of the MS-PL license but that is besides the point).

GCC is holding us back, the few areas where it currently leads such as proactive security I expect Clang will catch up shortly - as the tests show performance of the resulting code isn't holding for long. In the mean time your average distro will be moving to ship LLVM for the Gallium drivers, likely also for Mono and Python (if Google's work will ever get mrged) and many other aspects. Making GCC effectively redundant code, and who wants to maintain two separate code paths which both have to be supported.

I believe the sooner we start moving towards a goal of compiling our distros with Clang and obsoleting GCC, the sooner we will start reaping the benefits that are inherent to such a move. FreeBSD have realized it's potential and have started this move, I believe we are behind technologically and the time to start this work is now.

The issue is that a significant amount of open source software that uses GCC extensions to C/C++. If it were following the standard, there would not be a problem.

Yes, but that's no fault of GCC, these extensions are added at the behest of programmers (I'd wager the vast majority has been added due to the requests of the Linux kernel devs). Programmers asked for them, programmers use them.