]> Cypherpunks repositories - gostls13.git/commit
all: explode GOEXPERIMENT=regabi into 5 sub-experiments
authorAustin Clements <austin@google.com>
Mon, 15 Mar 2021 20:48:54 +0000 (16:48 -0400)
committerAustin Clements <austin@google.com>
Thu, 18 Mar 2021 16:51:27 +0000 (16:51 +0000)
commiteaa1ddee84cfdfbd47183b03962744fea52624f0
treeaf4d26ddbbcba94950f64844141f5a9b04a56b2c
parentc71acbfe8372099877cdc989b546389b05222600
all: explode GOEXPERIMENT=regabi into 5 sub-experiments

This separates GOEXPERIMENT=regabi into five sub-experiments:
regabiwrappers, regabig, regabireflect, regabidefer, and regabiargs.
Setting GOEXPERIMENT=regabi now implies the working subset of these
(currently, regabiwrappers, regabig, and regabireflect).

This simplifies testing, helps derisk the register ABI project,
and will also help with performance comparisons.

This replaces the -abiwrap flag to the compiler and linker with
the regabiwrappers experiment.

As part of this, regabiargs now enables registers for all calls
in the compiler. Previously, this was statically disabled in
regabiEnabledForAllCompilation, but now that we can control it
independently, this isn't necessary.

For #40724.

Change-Id: I5171e60cda6789031f2ef034cc2e7c5d62459122
Reviewed-on: https://go-review.googlesource.com/c/go/+/302070
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
20 files changed:
src/cmd/asm/internal/lex/input.go
src/cmd/compile/internal/amd64/ggen.go
src/cmd/compile/internal/amd64/ssa.go
src/cmd/compile/internal/base/flag.go
src/cmd/compile/internal/ssa/config.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssagen/abi.go
src/cmd/compile/internal/ssagen/ssa.go
src/cmd/internal/obj/x86/obj6.go
src/cmd/internal/objabi/util.go
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/main.go
src/cmd/link/internal/ld/symtab.go
src/internal/abi/abi_amd64.go
src/internal/abi/abi_generic.go
src/runtime/abi_test.go
src/runtime/asm_amd64.s
src/runtime/race_amd64.s
src/runtime/sys_linux_amd64.s