Why Clang

Peter Ulrich Kruppa ulrich at pukruppa.de
Tue Jun 19 17:11:06 UTC 2012

On 19.06.2012 16:43, Michel Talon wrote:
> David Brodbeck said:
>> Another way of looking at it is after 25 years of optimization GCC is
>> unable to beat a new compiler that's had almost none...
> Unfortunately this affirmation is blatantly false, recent gcc produce code
> much faster than clang. I give here an example which i like, a monte carlo computation for a spin lattice.
> Everything runs on my macbook.
> lilas% clang -v
> Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
> Target: x86_64-apple-darwin11.4.0
> lilas% clang -O4 test.c -lf2c
> lilas% time ./a.out
> ...
> real	0m2.359s
> user	0m2.341s
> sys	0m0.003s
> lilas% /usr/local/bin/gcc -v
>> gcc version 4.6.1 (GCC)
> lilas% /usr/local/bin/gcc -O3 test.c -lf2c
> lilas% time ./a.out
> real	0m1.241s
> user	0m1.234s
> sys	0m0.003s
> So gcc gives an executable running twice faster than clang, basically, when both compilers
> are run at maximal optimization. To show the effectiveness of the optimizer, here is the running
> time without any optimization:
> lilas% /usr/local/bin/gcc  test.c -lf2c
> lilas% time ./a.out
> real	0m6.895s
> user	0m6.889s
> sys	0m0.005s
> What this demonstrates is that for programs which do real computations, optimization is
> *very* important, and gcc is now very good (i have not shown the numbers but they match the Intel compiler)
> while clang is at the level gcc was ten years ago. So i fully agree with Wojciech Puchar, the move to clang
> is only driven by anti GPL propaganda which is frankly completely stupid, since in any events, gcc
> does not contaminate the binaries it produces (except when using contaminated accompanying libraries
> e.g. for C++). Of course, when compiling FreeBSD kernel or similar programs which do little computation
> there is no harm using clang. I suspect that the price is higher for programs like mencoder which require
> the highest efficiency.
Really - just to throw in another opinion:

As an average user I don't see any performance impact on my clang-built 
desktop-every-day-workstation. The only thing that is getting on my 
nerves are some ports I frequently have to rebuild with gcc.

It would be nice if the porting team could set up some automagic for 
that. There seems to be no harm in running a mixed clang/gcc built 
userland. Some members of this list seem to fear some kind of communist 
infiltration by gcc - I hope this is no serious issue, is it?

> I will not comment on the better error messages coming from clang, this could be a more serious argument.
I don't know what they mean, but they really do look good :-)



> --
> Michel Talon
> talon at lpthe.jussieu.fr

More information about the freebsd-questions mailing list