DMD is faster than LDC and GDC

David Nadlinger via Digitalmars-d digitalmars-d at puremagic.com
Thu Nov 12 13:24:29 PST 2015


On Thursday, 12 November 2015 at 21:16:25 UTC, Walter Bright 
wrote:
> It's more than that - dmd's optimizer is designed to make use 
> of the guarantees of a pure function. Since C/C++ do not have 
> pure functions, ldc/gdc's optimizer may not have that 
> capability.

Oh, GCC has had similar notions as a non-standard attribute for 
ages, and LLVM since its inception.

At least for LDC, the reason why we do not currently lower many 
of the qualifiers like pure, nothrow, immutable, etc. is that 
LLVM will ruthlessly consider your code to exhibit undefined 
behavior if you try to be clever and violate them, subsequently 
optimizing based on that. In other words, if you cast away 
const/immutable and modify a variable, for instance, you might 
find that the entire function body magically disappears under 
your feet.

Maybe it is time to revisit this, though, but last time I tried 
it broke druntime/Phobos in a couple of places.

  — David


More information about the Digitalmars-d mailing list