gdc or ldc for faster programs?

Johan j at j.nl
Tue Jan 25 20:01:18 UTC 2022


On Tuesday, 25 January 2022 at 19:52:17 UTC, Ali Çehreli wrote:
>
> I am not experienced with dub but I used 
> --build=release-nobounds and verified that -O3 is used for both 
> compilers. (I also tried building manually with GNU 'make' with 
> e.g. -O5 and the results were similar.)

`-O5` does not do anything different than `-O3` for LDC.

> For a test run for 2 million numbers:
>
> ldc: ~0.95 seconds
> gdc: ~0.79 seconds
> dmd: ~1.77 seconds
>
> I am using compilers installed by Manjaro Linux's package 
> system:
>
> ldc: LDC - the LLVM D compiler (1.28.0):
>   based on DMD v2.098.0 and LLVM 13.0.0
>
> gdc: dc (GCC) 11.1.0
>
> dmd: DMD64 D Compiler v2.098.1
>
> I've been mainly a dmd person for various reasons and was under 
> the impression that ldc was the clear winner among the three. 
> What is your experience? Does gdc compile faster programs in 
> general? Would ldc win if I took advantage of e.g. link-time 
> optimizations?

Tough to say. Of course DMD is not a serious contender, but I 
believe the difference between GDC and LDC is very small and 
really in the details, i.e. you'll have to look at assembly to 
find out the delta.
Have you tried `--enable-cross-module-inlining` with LDC?

-Johan




More information about the Digitalmars-d-learn mailing list