On Saturday, 26 October 2013 at 02:21:37 UTC, deadalnix wrote:
The explanation is quite simple. LLVM understand C and C++ runtime. It doesn't understand D runtime (LDC is doing some work in that regard, but it is still limited). So you see a difference between C and C++ as some optimization will be done in C/C++ (for instance heap to stack promotion) when it won't be done in D.

While this is true in general I don't think that it explains the difference in the mentioned benchmark. A PRNG does not use too much of the C runtime.

I believe that the IR generated by LDC could be improved and that the difference in speed is caused by this.

Regards
Kai

Reply via email to