diff options
| author | Joel Sing <joel@sing.id.au> | 2024-02-01 23:58:54 +1100 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2024-02-16 11:59:07 +0000 |
| commit | daa58db486c3806b6767a8d87ee275ed4d7c2713 (patch) | |
| tree | 3b8bc5f35c34bf5917c416cef6780bace6c35550 /src/cmd/vendor/github.com/google/pprof/internal/plugin/plugin.go | |
| parent | b634f6fdcbebee23b7da709a243f3db217b64776 (diff) | |
| download | go-daa58db486c3806b6767a8d87ee275ed4d7c2713.tar.xz | |
cmd/compile: improve rotations for riscv64
Enable canRotate for riscv64, enable rotation intrinsics and provide
better rewrite implementations for rotations. By avoiding Lsh*x64
and Rsh*Ux64 we can produce better code, especially for 32 and 64
bit rotations. By enabling canRotate we also benefit from the generic
rotation rewrite rules.
Benchmark on a StarFive VisionFive 2:
│ rotate.1 │ rotate.2 │
│ sec/op │ sec/op vs base │
RotateLeft-4 14.700n ± 0% 8.016n ± 0% -45.47% (p=0.000 n=10)
RotateLeft8-4 14.70n ± 0% 10.69n ± 0% -27.28% (p=0.000 n=10)
RotateLeft16-4 14.70n ± 0% 12.02n ± 0% -18.23% (p=0.000 n=10)
RotateLeft32-4 13.360n ± 0% 8.016n ± 0% -40.00% (p=0.000 n=10)
RotateLeft64-4 13.360n ± 0% 8.016n ± 0% -40.00% (p=0.000 n=10)
geomean 14.15n 9.208n -34.92%
Change-Id: I1a2036fdc57cf88ebb6617eb8d92e1d187e183b2
Reviewed-on: https://go-review.googlesource.com/c/go/+/560315
Reviewed-by: M Zhuo <mengzhuo1203@gmail.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Mark Ryan <markdryan@rivosinc.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/vendor/github.com/google/pprof/internal/plugin/plugin.go')
0 files changed, 0 insertions, 0 deletions
