Does that help?
arguable.
BSD and commercial Unices used PCC and PCC derivitives for much of their history; by this token, GCC is the 'other woman', and this is itself ignoring the clear differences in philosophy between MIT/BSD and GPL licening
This is probably not true (because clang is in C++ it can't be less complicated than anything), and gcc is complicated in some parts because it uses much better algorithms (the LLVM register allocator is not as good as LRA). LLVM also has some very ugly DSLs like the .td files.
But GCC's codebase does have lots of added complexity from the extremely weird GNU coding style where they want you to pretend you're writing Lisp and all commits have to update a changelog file. Plus terrible GNU software like autotools and recursive make.
https://penguindreams.org/blog/the-philosophy-of-open-source...
And most likely, given the BSD state back then, it would mean we would just keep using either commercial UNIXes, or Windows would have won the UNIX wars.
But lets get rid of Stallmann's GNU concepts.
you mean being persecuted by over-bearing commercial unices? (e.g. SVr4 and ATT)?
lets not mis-confuse the issues to our personal ends - the argument is just as valid that without BSD UNIX, stallman would also not have a system to base a clone on..
GNU attempts to redefine the existing cultural status quo of open-source software dating from the dawn of computing to its own personal ends
GCC only got manpower when Sun changed the way UNIX SDK used to be given to customers.
And who knows, maybe companies would have been more willing to dedicate manpower to HURD.
Though NetBSD is a bit behind on switching to the LLVM toolchain, here's a recent update https://blog.netbsd.org/tnf/entry/final_report_on_clang_lld
Meanwhile FreeBSD (on amd64, i386, armv6/7, aarch64) has been buildable with clang since some point in 9.x (2012-13), comes with clang only since 10.0 (01.2014), and since 12.0 the bootstrap linker on amd64/i386/armv7 is LLD (which was the case on aarch64 from the beginning iirc)
Linux distros, package repositories, etc. are basically giant compilation farms, compiling packages making sure they work well together so that you don't have to.
So switching to clang might impact their resource usage.
---
For you, the user, the performance of binaries compiled with GCC or clang is pretty much on par. Some binaries are a bit faster with clang, others are a bit faster with GCC, often in negligible ways.
If you are doing something that's very resource intensive, recompiling that software yourself tuning it to your use cases is probably going to have a much larger impact on resource usage than whether the shipped package was compiled with gcc or clang.
Edit: last I checked (more than two years ago), GCC was faster on more micro-benchmarks.
The existence of a distribution using Clang for building itself makes the ecosystem way stronger.
People promote Clang because it has a permissive license and opens the door for Google and Apple to inject proprietary crap into Linux.
Looking around just now, there's what seems like an initial experiment from someone, but it doesn't seem to have gone anywhere. :(
https://sourceware.org/ml/binutils/2017-03/msg00044.html
Asking because with the LLVM 8.0.0 release (a few months ago) it's one of the standard supported architectures.
This doesn't make sense. You can compile proprietary code with gcc without problems already. Clang doesn't enable anything new here.
e.g. the clang memcpy can be 100x faster than the gcc memcpy, when the size and alignment is known.
And gcc-9 added serious regressions on some platforms, that you need to blacklist it. gcc-10 probably not being better.
Also with FDO I get better results with GCC over Clang/LLVM, my main test subjects are rendering (Blender), archivers, encoders and emulation.
However with straight up -O2/-O3 I very often get better performance with Clang/LLVM. I haven't benchmarked on ARM though, my results may be very different there.