]>
Cypherpunks repositories - gostls13.git/commit
cmd/compile: inline constant sized memclrNoHeapPointers calls on PPC64
Update the function isInlinableMemclr for ppc64 and ppc64le
to enable inlining for the constant sized cases < 512.
Larger cases can use dcbz which performs better but requires
alignment checking so it is best to continue using memclrNoHeapPointers
for those cases.
Results on p10:
MemclrKnownSize1 2.07ns ± 0% 0.57ns ± 0% -72.59%
MemclrKnownSize2 2.56ns ± 5% 0.57ns ± 0% -77.82%
MemclrKnownSize4 5.15ns ± 0% 0.57ns ± 0% -89.00%
MemclrKnownSize8 2.23ns ± 0% 0.57ns ± 0% -74.57%
MemclrKnownSize16 2.23ns ± 0% 0.50ns ± 0% -77.74%
MemclrKnownSize32 2.28ns ± 0% 0.56ns ± 0% -75.28%
MemclrKnownSize64 2.49ns ± 0% 0.72ns ± 0% -70.95%
MemclrKnownSize112 2.97ns ± 2% 1.14ns ± 0% -61.72%
MemclrKnownSize128 4.64ns ± 6% 2.45ns ± 1% -47.17%
MemclrKnownSize192 5.45ns ± 5% 2.79ns ± 0% -48.87%
MemclrKnownSize248 4.51ns ± 0% 2.83ns ± 0% -37.12%
MemclrKnownSize256 6.34ns ± 1% 3.58ns ± 0% -43.53%
MemclrKnownSize512 3.64ns ± 0% 3.64ns ± 0% -0.03%
MemclrKnownSize1024 4.73ns ± 0% 4.73ns ± 0% +0.01%
MemclrKnownSize4096 17.1ns ± 0% 17.1ns ± 0% +0.07%
MemclrKnownSize512KiB 2.12µs ± 0% 2.12µs ± 0% ~ (all equal)
Change-Id: If1abf5749f4802c64523a41fe0058bd144d0ea46
Reviewed-on: https://go-review.googlesource.com/c/go/+/464340
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: Jakub Ciolek <jakub@ciolek.dev>
Reviewed-by: Archana Ravindar <aravind5@in.ibm.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Carlos Eduardo Seo <carlos.seo@linaro.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>