Alternatives to gcc (was Re: gcc 4.3: when will it become
standard compiler?)
Maxim Sobolev
sobomax at FreeBSD.org
Wed Jan 14 01:40:32 PST 2009
Adrian Chadd wrote:
> So I re-iterate. Why all of the discussion having the default compiler
> be something new and shiny, when those who need the performance gains
> can just install -that- compiler as a port and use that?
First of all let's make it clean that I did not tell anything about
expecting any magic speed up by just dropping a new compiler in, at
least not for the software in the base system. You are simply putting
somebody's else words into my mouth. Anybody who has even small
understanding of compiler technology understands that without major
paradigm changes there is not much room for improvement left for better
code generation in C language, especially for the kind of code we have
in /usr/src.
My point is that in 1-2 years from now our outdated compiler might get
in the way of using new features in state of the art CPUs and porting
FreeBSD to new architectures. If nothing else, some new ideas should
come out of CPU/GPU fusion work and/or massively multi-core designs soon
and they would likely to require some kind of compiler support.
Also, outdated C++ could cause issues with importing 3rd party software
to the base system. I am only one who still remember horrible base
system compiler C++ performance during gcc 2.7x times and eventual
painful upgrade that broke all third-party libraries and required
everything to be recompiled?
Not to mention important new features like TLS support, symbol
versioning and so on. If my memory serves, all of them required some
kind binutils/compiler upgrade. And I am pretty sure something else of
similar importance will appear on radar relatively soon.
I don't have the answer to the GPLv2 vs. GPLv3 compiler issue. My point
is that anybody here who thinks that we can get away with stale compiler
in the base system for a long period of time by just hiding head in
the sand, ignoring the issue and doing nothing is fooling himself.
IMHO it seems highly unlikely that some new kid on the block like llvm
will be able to answer our problems. The argument that "it's good for
Apple, it should be good for us" to me seems to be little out of touch
with reality. First of all, Apple cares about significantly lesser
number of architectures. They don't have IA64, Sparc or MIPS, they will
probably drop PPC soon. Second, they have a capacity (read "big money")
to port compiler to a new architecture, fix it as needed or extend it to
support some features provided by never chips if they need to. We don't
have that capacity.
-Maxim
More information about the freebsd-current
mailing list