On Fri, 29 Jun 2012 02:27:19 -0700, Don Clugston <d...@nospam.com> wrote:
On 29/06/12 08:04, bearophile wrote:
This is a very easy to read article about the design of LLVM:
http://www.drdobbs.com/architecture-and-design/the-design-of-llvm/240001128
That IR has a great effect on making it simpler to debug the compiler, I
think this is important (and I think it partially explains why Clang was
created so quickly):
It's a good design, especially for optimisation tests. Although I can't
see an immediate application of this for D. DMD's backend is nearly
bug-free. (By which I mean, it has 100X fewer bugs than the front-end).
Sure, but LLVM is just as bug free and spanks the current DMD backend in
perf tests. Just because something is well tested and understood doesn't
automatically make it superior. Also worth consideration is that moving to
LLVM would neatly solve an incredible number of sticky points with the
current backend, not the least of which is it's license. And lets not ven
talk about the automatic multi-arch support we'd get.
My guess is that, unless something changes significantly, DMD will remain
a niche tool; useful as a reference/research compiler, but for actual work
people will use LDC or GDC.
At the moment, the ONLY reasons I use DMD are to test my changes to the
compiler and that LLVM doesn't yet support SEH. As soon as LDC supports
SEH, and it will (I hear 3.2 will), I will move all my work to LDC. So
what if it's a version or two behind, it has superior code generation and
better Windows support (COFF/x64 anybody?).
--
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/