Speed kills

Basile B. via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 15 14:29:00 PST 2016


On Monday, 15 February 2016 at 14:16:02 UTC, Guillaume Piolat 
wrote:
> On Monday, 15 February 2016 at 13:51:38 UTC, ixid wrote:
>> This is the most recent one where John Colvin provided some 
>> pointers to speed it up significantly. Walter has done some 
>> good work taking the low-hanging fruit to speed up DMD code 
>> and there is a lot of effort going on with reference counting 
>> machinery but I wondered if some of the common errors people 
>> make that slow down D code can be addressed?
>
> Something that annoyed me a bit is floating-point comparisons, 
> DMD does not seem to be able to handle them from SSE registers, 
> it will convert to FPU and do the comparison there IIRC.

Same for std.math.lround

they use the FP way while for float and double it's only one sse 
instruction. Typically with 6 functions similar to this one:


int round(float value)
{
     asm
     {
         naked;
         cvtss2si EAX, XMM0;
         ret;
     }
}

we could get ceil/trunc/round/floor, also almost as easily fmod, 
hypoth.
classic but I dont get why thery're not in std.math.

Goddamnit, we're in 2016.


More information about the Digitalmars-d mailing list