Why the DMD Backend?

Joakim via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Nov 29 07:37:32 PST 2014


On Friday, 28 November 2014 at 19:59:40 UTC, Xinok wrote:
> Given that we have GDC with the GCC backend and LDC with the 
> LLVM backend, what are the benefits of keeping the DMD compiler 
> backend? It seems to me that GCC and LLVM are far more 
> developed and better supported by their respective communities. 
> They have superior optimizers and are better equipped for 
> migrating D to new platforms. On the other hand, from what I 
> gather, there's lots of work to be done on DMD on improving 
> support for x64 Windows and ARM.

The backend comes from the dmc and dmc++ compilers which Walter 
wrote, so he's always going to build against that, both because 
he knows it well and because he refuses to look at source for 
other compilers, for legal reasons.  I don't know that there's 
much work left for Win64, certainly not on the backend.  The dmc 
backend is for Intel only, ie i386 and x64.  No support for ARM 
or any other arch and no plans to add them.

> It's a genuine question, which is why I posted this to D.learn. 
> I don't follow development on the backend and overall I'm 
> unfamiliar with compilers, so I'm not sure what the benefits 
> are of the D community continuing to maintain it's own backend.

What are the drawbacks?  ldc and gdc have their own maintainers.  
I don't think it takes much work to maintain the dmc backend.

On Friday, 28 November 2014 at 20:10:03 UTC, ketmar via 
Digitalmars-d-learn wrote:
> On Fri, 28 Nov 2014 19:59:39 +0000
> Xinok via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> Given that we have GDC with the GCC backend and LDC with the 
>> LLVM backend, what are the benefits of keeping the DMD 
>> compiler backend?
> build time for the whole DMD compiler with standard library, 
> using
> G++: 100 seconds. yea, no kidding.
>
> gdc: i don't even want to think about that, way toooo long.
>
> ldc: not that long as gcc, but still much longer than DMD.

I haven't timed it, but compiling ldc feels about 50-100% longer 
to me, which isn't too bad.  Unless you're including the time to 
compile llvm, which is a different story.

On Friday, 28 November 2014 at 20:14:07 UTC, LeakingAntonovPlane 
wrote:
> DDMD, bootstraping.
> LDC and GDC are not written in D.

That's not the reason, both those projects plan on moving to the 
new D frontend also.  dmd isn't written in D either: they just 
plan on translating the common dmd frontend from C++ to D, then 
using it across all three compilers.  There is a D frontend 
written from scratch in D, SDC, which also uses llvm as the 
backend:

https://github.com/deadalnix/SDC


More information about the Digitalmars-d-learn mailing list