Benjamin Thaut:
I just wanted to say that there are currently bigger fish to
fry then micro optimization through calling convetions. (GC,
allocators, all the bugs...)
I understand and I agree. On the other hand I think there are
things that (if desired) it's better to introduce sooner, despite
some important bugs are not fixed, because they shape the future
of D a bit.
Did you compile the shown code with optimization enabled or is
that a debug build? If it is optimized I'M going to be
disappointed by LDCs codegen.
If you take a look at the original post I have used:
ldc2 -O5 -disable-inlining -release -vectorize-slp
-vectorize-slp-aggressive -output-s test.d
I think that's about the max optimization, I have also added some
aggressive optimization switches introduced only the latest LLVM
version (if you remove them the resulting asm of addParticles is
about the same, but it reorders less better some of the
instructions inside the dmain).
Bye,
bearophile