vectorization of a simple loop -- not in DMD?

ryuukk_ ryuukk.dev at gmail.com
Mon Jul 11 22:16:05 UTC 2022


On Monday, 11 July 2022 at 21:46:10 UTC, IGotD- wrote:
> On Monday, 11 July 2022 at 18:19:41 UTC, max haughton wrote:
>>
>> The dmd backend is ancient, it isn't really capable of these 
>> kinds of loop optimizations.
>
> I've said it several times before. Just depreciate the the DMD 
> backend, it's just not up to the task anymore. This is not 
> criticism against the original purpose of it as back in the 90s 
> and early 2000s it made sense to create your own backend. Time 
> has moved on and we have LLVM and GCC backends with a lot of 
> CPU support that the D project could never achieve themselves. 
> The D project should just can the DMD backend in order to free 
> up resources for more important tasks.
>
> Some people say they like it because it is fast, yes it is fast 
> because it doesn't do much.

I use D because DMD compiles my huge project in ~1 second (full 
clean rebuild)

It is a competitive advantage that many languages doesn't have


LDC clean full rebuild
```
$ time dub build -f --compiler=ldc2
Performing "debug" build using ldc2 for x86_64.
game ~master: building configuration "desktop"...
Linking...

real    0m18.033s
user    0m0.000s
sys     0m0.015s
```

LDC incremental
```
$ time dub build --compiler=ldc2
Performing "debug" build using ldc2 for x86_64.
game ~master: building configuration "desktop"...
Linking...

real    0m17.215s
user    0m0.000s
sys     0m0.000s
```

DMD clean full rebuild
```
$ time dub build -f --compiler=dmd
Performing "debug" build using dmd for x86_64.
game ~master: building configuration "desktop"...
Linking...

real    0m1.348s
user    0m0.031s
sys     0m0.015s
```

DMD incremental
```
$ time dub build --compiler=dmd
Performing "debug" build using dmd for x86_64.
game ~master: building configuration "desktop"...
Linking...

real    0m1.249s
user    0m0.000s
sys     0m0.000s
```


The day DMD gets removed is the day i will good a different 
language

I want to thank Walter for maintaining DMD the compiler, and 
making it incredibly fast at compiling code

Release perf can't beat LLVM and its amount of optimizations, but 
the advantage is it allows VERY FAST and QUICK iteration time, it 
is ESSENTIAL for developing software




More information about the Digitalmars-d-learn mailing list