Should LLVM become the default D-lang platform?

Kai Nacke kai at redstar.de
Sat Jan 11 06:35:23 PST 2014


On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
> This might have been brought up before but I couldn't find any 
> thread about this. As things has progressed I wonder if Digital 
> Mars DMD should move over to use LLVM instead of its own code 
> generation and compiler framework.
>
> As I see it with the small amount of contributors D-language 
> has, DMD will never support anything beyond x86 as there are no 
> resources for this. Also, why spend time on recreating the the 
> code generation which has already been done with LLVM? This 
> enables this community to focus on the language which is the 
> most important part as well as supporting more and future 
> processor targets.

You currently can't get the best of all worlds in a single 
compiler.

LLVM does not support exceptions on native Win32. (Same is true 
for Win64 but I hope to change this.) LLVM does not support 
CodeView debug symbols. Not in the format embedded in object file 
and not as PDB.
In short, you loose the complete native Windows tool chain.

With LDC, you can use other platforms. E.g. it runs on 
Linux/PPC64. But you can't ignore the backend because it has bugs 
and is incomplete.

E.g. on Linux/ARM I have a linker error when I enable generation 
of debug symbols. LLVM for arm-apple-darwin does not support TLS. 
LLVM for PPC supports only 2 of the 4 TLS models. In addition, 
the assembler for PPC/PPC64 does not support all instructions I 
need for std.math.

Regards,
Kai


More information about the Digitalmars-d mailing list