From 3684abbf6c82d7f151a30cce6f435ee203908b2c Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Tue, 15 Mar 2022 13:27:53 -0400 Subject: [PATCH] all: delete regabireflect goexperiment regabireflect goexperiment was helpful in the register ABI development, to control code paths for reflect calls, before the compiler can generate register ABI everywhere. It is not necessary for now. Drop it. Change-Id: I2731197d2f496e29616c426a01045c9b685946a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/393362 Trust: Cherry Mui Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot Reviewed-by: Michael Knyszek --- src/internal/abi/abi_arm64.go | 2 +- src/internal/abi/abi_generic.go | 2 +- src/internal/abi/abi_ppc64x.go | 2 +- src/internal/buildcfg/exp.go | 8 ++------ src/internal/goexperiment/exp_regabireflect_off.go | 9 --------- src/internal/goexperiment/exp_regabireflect_on.go | 9 --------- src/internal/goexperiment/flags.go | 5 ----- src/reflect/abi_test.go | 2 +- src/runtime/abi_test.go | 2 +- src/runtime/asm_arm64.s | 2 +- src/runtime/asm_ppc64x.s | 2 +- 11 files changed, 9 insertions(+), 36 deletions(-) delete mode 100644 src/internal/goexperiment/exp_regabireflect_off.go delete mode 100644 src/internal/goexperiment/exp_regabireflect_on.go diff --git a/src/internal/abi/abi_arm64.go b/src/internal/abi/abi_arm64.go index 5c3dd6cbe2..8f85901c47 100644 --- a/src/internal/abi/abi_arm64.go +++ b/src/internal/abi/abi_arm64.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build goexperiment.regabireflect +//go:build goexperiment.regabiargs package abi diff --git a/src/internal/abi/abi_generic.go b/src/internal/abi/abi_generic.go index a36745f402..d7d2f3749b 100644 --- a/src/internal/abi/abi_generic.go +++ b/src/internal/abi/abi_generic.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !goexperiment.regabireflect && !amd64 +//go:build !goexperiment.regabiargs && !amd64 package abi diff --git a/src/internal/abi/abi_ppc64x.go b/src/internal/abi/abi_ppc64x.go index d47271d1a1..d51fb49bea 100644 --- a/src/internal/abi/abi_ppc64x.go +++ b/src/internal/abi/abi_ppc64x.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build goexperiment.regabireflect && (ppc64 || ppc64le) +//go:build goexperiment.regabiargs && (ppc64 || ppc64le) package abi diff --git a/src/internal/buildcfg/exp.go b/src/internal/buildcfg/exp.go index a9b29d6718..230ec0b231 100644 --- a/src/internal/buildcfg/exp.go +++ b/src/internal/buildcfg/exp.go @@ -54,7 +54,6 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment baseline = goexperiment.Flags{ RegabiWrappers: regabiSupported, - RegabiReflect: regabiSupported, RegabiArgs: regabiSupported, PacerRedesign: true, } @@ -81,7 +80,6 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment // do the right thing. names["regabi"] = func(v bool) { flags.RegabiWrappers = v - flags.RegabiReflect = v flags.RegabiArgs = v } @@ -113,17 +111,15 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment // regabi is always enabled on amd64. if goarch == "amd64" { flags.RegabiWrappers = true - flags.RegabiReflect = true flags.RegabiArgs = true } // regabi is only supported on amd64, arm64, ppc64 and ppc64le. if !regabiSupported { - flags.RegabiReflect = false flags.RegabiArgs = false } // Check regabi dependencies. - if flags.RegabiArgs && !(flags.RegabiWrappers && flags.RegabiReflect) { - err = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers,regabireflect") + if flags.RegabiArgs && !flags.RegabiWrappers { + err = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers") } return } diff --git a/src/internal/goexperiment/exp_regabireflect_off.go b/src/internal/goexperiment/exp_regabireflect_off.go deleted file mode 100644 index 515f4a53e6..0000000000 --- a/src/internal/goexperiment/exp_regabireflect_off.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build !goexperiment.regabireflect -// +build !goexperiment.regabireflect - -package goexperiment - -const RegabiReflect = false -const RegabiReflectInt = 0 diff --git a/src/internal/goexperiment/exp_regabireflect_on.go b/src/internal/goexperiment/exp_regabireflect_on.go deleted file mode 100644 index e8a3e9c06a..0000000000 --- a/src/internal/goexperiment/exp_regabireflect_on.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build goexperiment.regabireflect -// +build goexperiment.regabireflect - -package goexperiment - -const RegabiReflect = true -const RegabiReflectInt = 1 diff --git a/src/internal/goexperiment/flags.go b/src/internal/goexperiment/flags.go index 6d935edc2b..9150493575 100644 --- a/src/internal/goexperiment/flags.go +++ b/src/internal/goexperiment/flags.go @@ -72,11 +72,6 @@ type Flags struct { // ABI0 and ABIInternal functions. Without this, the ABIs are // assumed to be identical so cross-ABI calls are direct. RegabiWrappers bool - // RegabiReflect enables the register-passing paths in - // reflection calls. This is also gated by intArgRegs in - // reflect and runtime (which are disabled by default) so it - // can be used in targeted tests. - RegabiReflect bool // RegabiArgs enables register arguments/results in all // compiled Go functions. // diff --git a/src/reflect/abi_test.go b/src/reflect/abi_test.go index f39eb5efea..c9a4cd1c8e 100644 --- a/src/reflect/abi_test.go +++ b/src/reflect/abi_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build goexperiment.regabireflect && goexperiment.regabiargs +//go:build goexperiment.regabiargs package reflect_test diff --git a/src/runtime/abi_test.go b/src/runtime/abi_test.go index f9e8d701ce..0c9488a5f4 100644 --- a/src/runtime/abi_test.go +++ b/src/runtime/abi_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build goexperiment.regabireflect +//go:build goexperiment.regabiargs // This file contains tests specific to making sure the register ABI // works in a bunch of contexts in the runtime. diff --git a/src/runtime/asm_arm64.s b/src/runtime/asm_arm64.s index 9e9d9314ef..46ffaaa9b3 100644 --- a/src/runtime/asm_arm64.s +++ b/src/runtime/asm_arm64.s @@ -317,7 +317,7 @@ TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0 MOVW $0, R26 B runtime·morestack(SB) -#ifdef GOEXPERIMENT_regabireflect +#ifdef GOEXPERIMENT_regabiargs // spillArgs stores return values from registers to a *internal/abi.RegArgs in R20. TEXT ·spillArgs(SB),NOSPLIT,$0-0 MOVD R0, (0*8)(R20) diff --git a/src/runtime/asm_ppc64x.s b/src/runtime/asm_ppc64x.s index ae14213999..45e0c8240a 100644 --- a/src/runtime/asm_ppc64x.s +++ b/src/runtime/asm_ppc64x.s @@ -788,7 +788,7 @@ TEXT runtime·cputicks(SB),NOSPLIT,$0-8 MOVD R3, ret+0(FP) RET -#ifdef GOEXPERIMENT_regabireflect +#ifdef GOEXPERIMENT_regabiargs // spillArgs stores return values from registers to a *internal/abi.RegArgs in R20. TEXT runtime·spillArgs(SB),NOSPLIT,$0-0 MOVD R3, 0(R20) -- 2.50.0