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
Hi Ilya,
I am not sure if I understand your question. I compiled this code
with ldc
void main()
{
double[] a, c;
a[] = 1;
c[] = 2;
c[] += a[];
}
(options ldc2 -c -output-ll -output-s -release -O0)
and get in the main function
movq 120(%rsp), %r8
movq 128(%rsp), %r9
movq 104(%rsp), %rcx
movq 112(%rsp), %rdx
callq _arraySliceSliceAddass_d
Using -O1 or higher optimizes the call away, maybe that is the
problem. Could you post the source code you are using?
Regards,
Kai