0 is not a power of 2
via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 20 03:47:36 PDT 2015
On Wednesday, 20 May 2015 at 09:49:06 UTC, Temtaime wrote:
> First version isn't any slow. It's clear and can be optimized
> with gdc:
>
> http://goo.gl/Q7HKcU
Yes, and besides, if one cares about these minor performance
issues, that most likely will disappear in the pipeline if you
are a little bit careful about how you arrange your code, then
one one would be better off letting the compiler take advantage
of statically available information about size:
@always_inline
... allocate(ulong size){
if(size==0) return _my_alloc_zero();
if(is_log2_or_zero(size)) return _my_alloc_log2size(size);
return _my_alloc_nonlog2size(size);
}
So basically a version that preserves the tests that the compiler
most easily can get rid of can lead to faster code even if it in
isolation has a few extra instructions.
More information about the Digitalmars-d
mailing list