]> Cypherpunks.ru repositories - gostls13.git/commit
internal/bytealg: port more performance-critical functions to ABIInternal
authorAustin Clements <austin@google.com>
Wed, 14 Apr 2021 23:15:42 +0000 (19:15 -0400)
committerAustin Clements <austin@google.com>
Thu, 15 Apr 2021 04:10:33 +0000 (04:10 +0000)
commit8f4c5068e07a03e16998b6d8d38a0482433fc7fe
tree119a7b08b79aaa90c8335e72c11b34aff850484a
parent48b7432e3f5318a026842fc4f39fb690e13f79f8
internal/bytealg: port more performance-critical functions to ABIInternal

CL 308931 ported several runtime assembly functions to ABIInternal so
that compiler-generated ABIInternal calls don't go through ABI
wrappers, but it missed the runtime assembly functions that are
actually defined in internal/bytealg.

This eliminates the cost of wrappers for the BleveQuery and
GopherLuaKNucleotide benchmarks, but there's still more to do for
Tile38.

                                      0-base                1-wrappers
                                     sec/op        sec/op            vs base
BleveQuery                          6.507 ± 0%    6.477 ± 0%  -0.46% (p=0.004 n=20)
GopherLuaKNucleotide                30.39 ± 1%    30.34 ± 0%       ~ (p=0.301 n=20)
Tile38IntersectsCircle100kmRequest 1.038m ± 1%   1.080m ± 2%  +4.03% (p=0.000 n=20)

For #40724.

Change-Id: I0b722443f684fcb997b1d70802c5ed4b8d8f9829
Reviewed-on: https://go-review.googlesource.com/c/go/+/310184
Trust: Austin Clements <austin@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/dist/build.go
src/cmd/internal/objabi/path.go
src/internal/bytealg/compare_amd64.s
src/internal/bytealg/equal_amd64.s