DMD is faster than LDC and GDC

Iain Buclaw via Digitalmars-d digitalmars-d at puremagic.com
Thu Nov 12 14:38:25 PST 2015


On 12 Nov 2015 10:25 pm, "David Nadlinger via Digitalmars-d" <
digitalmars-d at puremagic.com> wrote:
>
> 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.
>

Same here, and for some very surprising reasons from what I recall.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20151112/e97cb7ad/attachment.html>


More information about the Digitalmars-d mailing list