Skip to content

Commit

Permalink
internal/buildcfg: enable register ABI for PPC64
Browse files Browse the repository at this point in the history
This enables the new register ABI for all PPC64 targets
by default including linux/ppc64, linux/ppc64le, and aix/ppc64.

Improvements with the new register ABI on a power9:

name	old time/op (ns/op)	new time/op (ns/op)	delta
BinaryTree17    	3882070000	3274900000	-15.64%
Fannkuch11	        3787620000	3614740000	-4.56%
FmtFprintfEmpty	        58.705	        51.1875 	-12.81%
FmtFprintfString	101.675	        94.4725 	-7.08%
FmtFprintfInt	        112.725 	104.075 	-7.67%
FmtFprintfIntInt	166.475 	158.05  	-5.06%
FmtFprintfPrefixedInt	183.7	        178.975 	-2.57%
FmtFprintfFloat	        246.55	        258.8	        +4.97%
FmtManyArgs	        648.325 	665.875 	+2.71%
GobDecode	        8004660	        6802210 	-15.02%
GobEncode       	7289780 	5675710 	-22.14%
Gzip    	        326931000	323586000	-1.02%
Gunzip          	47544700	37808000	-20.48%
HTTPClientServer    	46927.2 	42357.8 	-9.74%
JSONEncode	        12098300	9621450	        -20.47%
JSONDecode      	62305300	55410200	-11.07%
Mandelbrot200	        5841540 	5934590 	+1.59%
GoParse         	5594880 	4003360 	-28.45%
RegexpMatchEasy0_32	96.185	        89.6325 	-6.81%
RegexpMatchEasy0_1K	255.775 	210.45  	-17.72%
RegexpMatchEasy1_32	102.95  	93.8825 	-8.81%
RegexpMatchEasy1_1K	511.65  	385.075 	-24.74%
RegexpMatchMedium_32	1414.75 	1236.75 	-12.58%
RegexpMatchMedium_1K	42114.5 	37022.5 	-12.09%
RegexpMatchHard_32	2110.5  	1901.5  	-9.90%
RegexpMatchHard_1K	63559.5 	59494   	-6.40%
Revcomp         	532981000	480640000	-9.82%
Template        	81903600	65743300	-19.73%
TimeParse       	310.75	        276.525 	-11.01%
TimeFormat	        483.4   	355.475  	-26.46%

Change-Id: Ib7c5dfe8ddc2f17050943912048f55667dabde39
Reviewed-on: https://go-review.googlesource.com/c/go/+/353969
Trust: Lynn Boger <[email protected]>
Reviewed-by: Cherry Mui <[email protected]>
  • Loading branch information
laboger committed Oct 5, 2021
1 parent 7e69c5d commit ae83301
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/internal/buildcfg/exp.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ var FramePointerEnabled = GOARCH == "amd64" || GOARCH == "arm64"
//
// TODO(mdempsky): Move to internal/goexperiment.
func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment.Flags, err error) {
regabiSupported := goarch == "amd64" || goarch == "arm64"
regabiSupported := false
switch goarch {
case "amd64", "arm64", "ppc64le", "ppc64":
regabiSupported = true
}

baseline = goexperiment.Flags{
RegabiWrappers: regabiSupported,
Expand Down Expand Up @@ -112,7 +116,7 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment
flags.RegabiArgs = true
}
// regabi is only supported on amd64, arm64, ppc64 and ppc64le.
if goarch != "amd64" && goarch != "arm64" && goarch != "ppc64le" && goarch != "ppc64" {
if !regabiSupported {
flags.RegabiReflect = false
flags.RegabiArgs = false
}
Expand Down

0 comments on commit ae83301

Please sign in to comment.