From 53f13128a7a4c7d16af5ea9ca5f25b56ff9881fe Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Tue, 26 Apr 2022 22:07:46 +0800 Subject: [PATCH] internal/abi, internal/buildcfg: enable regabi on riscv64 by default MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This CL we turn regabi on by default. Later CLs will clean up fallback code. name old time/op new time/op delta BinaryTree17 35.2s ± 2% 31.0s ± 1% -11.87% (p=0.008 n=5+5) Fannkuch11 10.8s ± 1% 11.0s ± 1% +1.73% (p=0.008 n=5+5) FmtFprintfEmpty 379ns ± 2% 389ns ± 4% ~ (p=0.095 n=5+5) FmtFprintfString 746ns ± 5% 693ns ± 2% -7.10% (p=0.008 n=5+5) FmtFprintfInt 769ns ± 3% 744ns ± 2% -3.23% (p=0.032 n=5+5) FmtFprintfIntInt 1.14µs ± 3% 1.09µs ± 4% -4.51% (p=0.032 n=5+5) FmtFprintfPrefixedInt 5.04µs ± 0% 4.53µs ± 1% -10.14% (p=0.008 n=5+5) FmtFprintfFloat 1.82µs ± 4% 1.67µs ± 4% -8.12% (p=0.008 n=5+5) FmtManyArgs 3.92µs ± 3% 3.67µs ± 2% -6.20% (p=0.008 n=5+5) GobDecode 137ms ± 1% 132ms ± 1% -4.13% (p=0.008 n=5+5) GobEncode 93.9ms ± 1% 89.3ms ± 2% -4.84% (p=0.008 n=5+5) Gzip 2.54s ± 1% 2.59s ± 1% +1.95% (p=0.008 n=5+5) Gunzip 1.39s ± 1% 1.35s ± 0% -3.07% (p=0.008 n=5+5) HTTPClientServer 416µs ± 1% 397µs ± 0% -4.39% (p=0.016 n=5+4) JSONEncode 202ms ± 1% 196ms ± 2% -2.76% (p=0.008 n=5+5) JSONDecode 478ms ± 2% 435ms ± 4% -8.97% (p=0.008 n=5+5) Mandelbrot200 44.1ms ± 0% 44.1ms ± 0% ~ (p=0.151 n=5+5) GoParse 33.7ms ± 1% 31.5ms ± 1% -6.55% (p=0.008 n=5+5) RegexpMatchEasy0_32 624ns ± 6% 548ns ± 6% -12.08% (p=0.008 n=5+5) RegexpMatchEasy0_1K 4.49µs ± 1% 3.59µs ± 1% -20.21% (p=0.008 n=5+5) RegexpMatchEasy1_32 654ns ± 4% 556ns ± 2% -15.01% (p=0.008 n=5+5) RegexpMatchEasy1_1K 6.21µs ± 2% 4.96µs ± 3% -20.22% (p=0.008 n=5+5) RegexpMatchMedium_32 9.78µs ± 5% 8.03µs ± 4% -17.96% (p=0.008 n=5+5) RegexpMatchMedium_1K 280µs ± 4% 223µs ± 5% -20.42% (p=0.008 n=5+5) RegexpMatchHard_32 17.0µs ± 3% 15.2µs ± 3% -10.63% (p=0.008 n=5+5) RegexpMatchHard_1K 520µs ± 4% 485µs ± 6% -6.76% (p=0.008 n=5+5) Revcomp 35.2s ± 1% 35.2s ± 1% ~ (p=0.690 n=5+5) Template 686ms ± 2% 610ms ± 3% -11.09% (p=0.008 n=5+5) TimeParse 1.91µs ± 2% 1.78µs ± 1% -6.86% (p=0.008 n=5+5) TimeFormat 3.04µs ± 2% 2.84µs ± 3% -6.71% (p=0.008 n=5+5) name old speed new speed delta GobDecode 5.59MB/s ± 1% 5.84MB/s ± 1% +4.40% (p=0.008 n=5+5) GobEncode 8.17MB/s ± 1% 8.59MB/s ± 3% +5.14% (p=0.008 n=5+5) Gzip 7.65MB/s ± 1% 7.50MB/s ± 1% -1.96% (p=0.008 n=5+5) Gunzip 13.9MB/s ± 1% 14.4MB/s ± 0% +3.16% (p=0.008 n=5+5) JSONEncode 9.63MB/s ± 1% 9.90MB/s ± 2% +2.83% (p=0.008 n=5+5) JSONDecode 4.06MB/s ± 2% 4.46MB/s ± 4% +9.90% (p=0.008 n=5+5) GoParse 1.72MB/s ± 1% 1.84MB/s ± 1% +6.85% (p=0.008 n=5+5) RegexpMatchEasy0_32 51.4MB/s ± 6% 58.4MB/s ± 6% +13.72% (p=0.008 n=5+5) RegexpMatchEasy0_1K 228MB/s ± 1% 286MB/s ± 1% +25.32% (p=0.008 n=5+5) RegexpMatchEasy1_32 48.9MB/s ± 4% 57.5MB/s ± 2% +17.63% (p=0.008 n=5+5) RegexpMatchEasy1_1K 165MB/s ± 2% 207MB/s ± 3% +25.37% (p=0.008 n=5+5) RegexpMatchMedium_32 3.27MB/s ± 5% 3.99MB/s ± 5% +21.87% (p=0.008 n=5+5) RegexpMatchMedium_1K 3.66MB/s ± 4% 4.60MB/s ± 5% +25.61% (p=0.008 n=5+5) RegexpMatchHard_32 1.88MB/s ± 3% 2.10MB/s ± 3% +12.03% (p=0.008 n=5+5) RegexpMatchHard_1K 1.97MB/s ± 4% 2.11MB/s ± 6% +7.31% (p=0.008 n=5+5) Revcomp 7.23MB/s ± 1% 7.23MB/s ± 1% ~ (p=0.810 n=5+5) Template 2.83MB/s ± 2% 3.18MB/s ± 4% +12.52% (p=0.008 n=5+5) Change-Id: Ie02aa5ebe60607dbb5007da0efae731c36e96399 Reviewed-on: https://go-review.googlesource.com/c/go/+/402374 Reviewed-by: David Chase TryBot-Result: Gopher Robot Run-TryBot: mzh Reviewed-by: Cherry Mui --- src/internal/buildcfg/exp.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/internal/buildcfg/exp.go b/src/internal/buildcfg/exp.go index 87b1686c20..6118c49d7f 100644 --- a/src/internal/buildcfg/exp.go +++ b/src/internal/buildcfg/exp.go @@ -65,6 +65,8 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (*ExperimentFlags, error) { case "amd64", "arm64", "ppc64le", "ppc64": regabiAlwaysOn = true regabiSupported = true + case "riscv64": + regabiSupported = true } baseline := goexperiment.Flags{ @@ -128,7 +130,7 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (*ExperimentFlags, error) { flags.RegabiWrappers = true flags.RegabiArgs = true } - // regabi is only supported on amd64, arm64, ppc64 and ppc64le. + // regabi is only supported on amd64, arm64, riscv64, ppc64 and ppc64le. if !regabiSupported { flags.RegabiArgs = false } -- 2.50.0