• Alberto Donizetti's avatar
    math/big: avoid allocation in float.{Add, Sub} when there's no aliasing · cda633b3
    Alberto Donizetti authored
    name               old time/op    new time/op    delta
    FloatAdd/10-4         116ns ± 1%      82ns ± 0%   -28.74%  (p=0.008 n=5+5)
    FloatAdd/100-4        124ns ± 0%      86ns ± 1%   -30.34%  (p=0.016 n=4+5)
    FloatAdd/1000-4       192ns ± 1%     123ns ± 0%   -35.94%  (p=0.008 n=5+5)
    FloatAdd/10000-4      826ns ± 0%     438ns ± 0%   -46.99%  (p=0.000 n=4+5)
    FloatAdd/100000-4    6.82µs ± 1%    3.36µs ± 0%   -50.74%  (p=0.008 n=5+5)
    FloatSub/10-4         108ns ± 1%      77ns ± 1%   -29.06%  (p=0.008 n=5+5)
    FloatSub/100-4        115ns ± 0%      79ns ± 0%   -31.48%  (p=0.029 n=4+4)
    FloatSub/1000-4       168ns ± 0%      99ns ± 0%   -41.09%  (p=0.029 n=4+4)
    FloatSub/10000-4      690ns ± 2%     288ns ± 1%   -58.24%  (p=0.008 n=5+5)
    FloatSub/100000-4    5.37µs ± 1%    2.10µs ± 1%   -60.89%  (p=0.008 n=5+5)
    
    name               old alloc/op   new alloc/op   delta
    FloatAdd/10-4         48.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatAdd/100-4        64.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatAdd/1000-4        176B ± 0%       0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatAdd/10000-4     1.41kB ± 0%   0.00kB ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatAdd/100000-4    13.6kB ± 0%    0.0kB ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatSub/10-4         48.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatSub/100-4        64.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatSub/1000-4        176B ± 0%       0B ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatSub/10000-4     1.41kB ± 0%   0.00kB ±NaN%  -100.00%  (p=0.008 n=5+5)
    FloatSub/100000-4    13.6kB ± 0%    0.0kB ±NaN%  -100.00%  (p=0.008 n=5+5)
    
    Fixes #14868
    
    Change-Id: Ia2b8b1a8ef0868288ecb25f812b17bd03ff40d1c
    Reviewed-on: https://go-review.googlesource.com/23568Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
    cda633b3
Name
Last commit
Last update
..
big Loading commit data...
cmplx Loading commit data...
rand Loading commit data...
abs.go Loading commit data...
acosh.go Loading commit data...
all_test.go Loading commit data...
asin.go Loading commit data...
asin_386.s Loading commit data...
asin_amd64.s Loading commit data...
asin_amd64p32.s Loading commit data...
asin_arm.s Loading commit data...
asinh.go Loading commit data...
atan.go Loading commit data...
atan2.go Loading commit data...
atan2_386.s Loading commit data...
atan2_amd64.s Loading commit data...
atan2_amd64p32.s Loading commit data...
atan2_arm.s Loading commit data...
atan_386.s Loading commit data...
atan_amd64.s Loading commit data...
atan_amd64p32.s Loading commit data...
atan_arm.s Loading commit data...
atanh.go Loading commit data...
bits.go Loading commit data...
cbrt.go Loading commit data...
const.go Loading commit data...
copysign.go Loading commit data...
dim.go Loading commit data...
dim_386.s Loading commit data...
dim_amd64.s Loading commit data...
dim_amd64p32.s Loading commit data...
dim_arm.s Loading commit data...
dim_s390x.s Loading commit data...
erf.go Loading commit data...
exp.go Loading commit data...
exp2_386.s Loading commit data...
exp2_amd64.s Loading commit data...
exp2_amd64p32.s Loading commit data...
exp2_arm.s Loading commit data...
exp_386.s Loading commit data...
exp_amd64.s Loading commit data...
exp_amd64p32.s Loading commit data...
exp_arm.s Loading commit data...
expm1.go Loading commit data...
expm1_386.s Loading commit data...
expm1_amd64.s Loading commit data...
expm1_amd64p32.s Loading commit data...
expm1_arm.s Loading commit data...
export_test.go Loading commit data...
floor.go Loading commit data...
floor_386.s Loading commit data...
floor_amd64.s Loading commit data...
floor_amd64p32.s Loading commit data...
floor_arm.s Loading commit data...
floor_asm.go Loading commit data...
frexp.go Loading commit data...
frexp_386.s Loading commit data...
frexp_amd64.s Loading commit data...
frexp_amd64p32.s Loading commit data...
frexp_arm.s Loading commit data...
gamma.go Loading commit data...
hypot.go Loading commit data...
hypot_386.s Loading commit data...
hypot_amd64.s Loading commit data...
hypot_amd64p32.s Loading commit data...
hypot_arm.s Loading commit data...
j0.go Loading commit data...
j1.go Loading commit data...
jn.go Loading commit data...
ldexp.go Loading commit data...
ldexp_386.s Loading commit data...
ldexp_amd64.s Loading commit data...
ldexp_amd64p32.s Loading commit data...
ldexp_arm.s Loading commit data...
lgamma.go Loading commit data...
log.go Loading commit data...
log10.go Loading commit data...
log10_386.s Loading commit data...
log10_amd64.s Loading commit data...
log10_amd64p32.s Loading commit data...
log10_arm.s Loading commit data...
log1p.go Loading commit data...
log1p_386.s Loading commit data...
log1p_amd64.s Loading commit data...
log1p_amd64p32.s Loading commit data...
log1p_arm.s Loading commit data...
log_386.s Loading commit data...
log_amd64.s Loading commit data...
log_amd64p32.s Loading commit data...
log_arm.s Loading commit data...
logb.go Loading commit data...
mod.go Loading commit data...
mod_386.s Loading commit data...
mod_amd64.s Loading commit data...
mod_amd64p32.s Loading commit data...
mod_arm.s Loading commit data...
modf.go Loading commit data...
modf_386.s Loading commit data...
modf_amd64.s Loading commit data...
modf_amd64p32.s Loading commit data...
modf_arm.s Loading commit data...
nextafter.go Loading commit data...
pow.go Loading commit data...
pow10.go Loading commit data...
remainder.go Loading commit data...
remainder_386.s Loading commit data...
remainder_amd64.s Loading commit data...
remainder_amd64p32.s Loading commit data...
remainder_arm.s Loading commit data...
signbit.go Loading commit data...
sin.go Loading commit data...
sin_386.s Loading commit data...
sin_amd64.s Loading commit data...
sin_amd64p32.s Loading commit data...
sin_arm.s Loading commit data...
sincos.go Loading commit data...
sincos_386.s Loading commit data...
sincos_amd64.s Loading commit data...
sincos_amd64p32.s Loading commit data...
sincos_arm.s Loading commit data...
sinh.go Loading commit data...
sqrt.go Loading commit data...
sqrt_386.s Loading commit data...
sqrt_amd64.s Loading commit data...
sqrt_amd64p32.s Loading commit data...
sqrt_arm.s Loading commit data...
sqrt_arm64.s Loading commit data...
sqrt_ppc64x.s Loading commit data...
sqrt_s390x.s Loading commit data...
stubs_arm64.s Loading commit data...
stubs_mips64x.s Loading commit data...
stubs_ppc64x.s Loading commit data...
stubs_s390x.s Loading commit data...
tan.go Loading commit data...
tan_386.s Loading commit data...
tan_amd64.s Loading commit data...
tan_amd64p32.s Loading commit data...
tan_arm.s Loading commit data...
tanh.go Loading commit data...
unsafe.go Loading commit data...