Threadpools, difference between DMD and LDC
David Nadlinger via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Aug 3 16:45:06 PDT 2014
On Sunday, 3 August 2014 at 22:24:22 UTC, safety0ff wrote:
> On Sunday, 3 August 2014 at 19:52:42 UTC, Philippe Sigaud wrote:
>>
>> Can someone confirm the results and tell me what I'm doing
>> wrong?
>
> LDC is likely optimizing the summation:
>
> int sum = 0;
> foreach(i; 0..task.goal)
> sum += i;
>
> To something like:
>
> int sum = cast(int)(cast(ulong)(task.goal-1)*task.goal/2);
This is correct – the LLVM optimizer indeed gets rid of the loop
completely.
Although I'd be more than happy to be able to claim a
thousandfold speedup over DMD on real-world applications. ;)
Cheers,
David
More information about the Digitalmars-d-learn
mailing list