On Monday, 23 June 2014 at 18:09:46 UTC, Ilya Yaroshenko wrote:
Hello all!

very simple code:

------------------
double[] a, c;
...
c[] += a[];
------------------

The DMD version I can find in _arraySliceSliceAddass_d, https://github.com/D-Programming-Language/druntime/blob/master/src/rt/arraydouble.d .

What about LDC and GDC?
The _arraySliceSliceAddass_d is the same, no any version(LDC).

When I compile code into assembler I found other code then in asm scope.

So I suppose LDC has it's own architecture.
Is it right?

Where I can find it for understanding what optimization can be done by LLVM optimizer?

Have GDC it's own architecture too?

Best Regards,
Ilya

If you look at the bottom of those _array functions you will find a regular loop doing the cleanup for anything missed by the inline asm. If I remember correctly, for gdc it is this loop doing the whole operation as the asm is versioned out.

Reply via email to