Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One area where Clang really shines is compile time - it's faster than gcc, at least a little [1].

The claims about who has faster binaries are pretty difficult to judge - it seems they really are about equal. It may be highly superscalar CPUs with instruction reordering and register aliasing hide the difference.

[1] http://gcc.gnu.org/ml/gcc/2012-02/msg00134.html (probably unbiased) and http://clang.llvm.org/performance.html (probably biased)



My code consists of tight loops used for numerical simulation. Clang runs about 2x slower. Hence I conclude that Clang is bad for optimizing tight loops.

Many of the Clang vs. GCC tests are clandestinely skewed towards llvm because they involve code that does not benefit from low level optimization.

Many of the people who work on GCC are scientists who want tight loop performance while many of the folks who work on clang want a BSD license.


It depends a lot on the use-case. For my hobby project (numerical stuff, C++) I got a speedup of more than 10% by moving to Clang. Huge stuff. I spend ~50% of my time in one hot function, though, and it's entirely possible that GCC generated better code for the rest of the project.

As usual, the only reliable way to know which compiler generates better code for your program is to run benchmarks.

For what it's worth, I wasn't blown away by the compile times or error messages when I moved to Clang. I think GCC is getting a lot better, but I'd also learned to live with its failings regardless.


For me it's mainly the error messages, either Clang/LLVM has gotten slower in compiling or GCC has gotten faster, but it's not a big 'percieved' difference for me anymore. I think the Clang error messages are more informative and also that the colored output makes it easier to read.

Performance-wise though I still generally get ~5-15% better speed on generated code with GCC (corei7).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: