]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.regabi] cmd/compile: remove unneeded indirection
authorMatthew Dempsky <mdempsky@google.com>
Tue, 29 Dec 2020 09:22:50 +0000 (01:22 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Tue, 29 Dec 2020 09:57:31 +0000 (09:57 +0000)
Thanks to package reorganizing, we can remove types.TypeLinkSym by
simply having its only callers use reflectdata.TypeLinksym directly.

Passes toolstash -cmp.

Change-Id: I5bc5dbb6bf0664af43ae5130cfe1f19bd23b2bfe
Reviewed-on: https://go-review.googlesource.com/c/go/+/280644
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
src/cmd/compile/internal/gc/abiutils_test.go
src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/ssa/writebarrier.go
src/cmd/compile/internal/types/type.go
src/cmd/compile/internal/types/utils.go

index 656eab18cbe8d28129535f646411fb401feef8d5..d535a6a34bf44317d1b775819c7972336f19601f 100644 (file)
@@ -7,7 +7,6 @@ package gc
 import (
        "bufio"
        "cmd/compile/internal/base"
-       "cmd/compile/internal/reflectdata"
        "cmd/compile/internal/ssagen"
        "cmd/compile/internal/typecheck"
        "cmd/compile/internal/types"
@@ -39,12 +38,6 @@ func TestMain(m *testing.M) {
        base.Ctxt.Bso = bufio.NewWriter(os.Stdout)
        types.PtrSize = ssagen.Arch.LinkArch.PtrSize
        types.RegSize = ssagen.Arch.LinkArch.RegSize
-       types.TypeLinkSym = func(t *types.Type) *obj.LSym {
-               return reflectdata.TypeLinksym(t)
-       }
-       types.TypeLinkSym = func(t *types.Type) *obj.LSym {
-               return reflectdata.TypeLinksym(t)
-       }
        typecheck.Init()
        os.Exit(m.Run())
 }
index a4613f04fbc17f43b2942beaadbc8f3dc5b00a7a..45219801f0f161eb7b576e19e05554df10039ff4 100644 (file)
@@ -190,9 +190,6 @@ func Main(archInit func(*ssagen.ArchInfo)) {
        types.PtrSize = ssagen.Arch.LinkArch.PtrSize
        types.RegSize = ssagen.Arch.LinkArch.RegSize
        types.MaxWidth = ssagen.Arch.MAXWIDTH
-       types.TypeLinkSym = func(t *types.Type) *obj.LSym {
-               return reflectdata.TypeLinksym(t)
-       }
 
        typecheck.Target = new(ir.Package)
 
@@ -202,9 +199,6 @@ func Main(archInit func(*ssagen.ArchInfo)) {
 
        base.AutogeneratedPos = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
 
-       types.TypeLinkSym = func(t *types.Type) *obj.LSym {
-               return reflectdata.TypeLinksym(t)
-       }
        typecheck.Init()
 
        // Parse input.
index 849c9e8967c60f73a60c2f2d8606c5ba68158f86..4378f2d62763c0c14a40534fb05e584f34938b96 100644 (file)
@@ -5,6 +5,7 @@
 package ssa
 
 import (
+       "cmd/compile/internal/reflectdata"
        "cmd/compile/internal/types"
        "cmd/internal/obj"
        "cmd/internal/objabi"
@@ -270,11 +271,11 @@ func writebarrier(f *Func) {
                        case OpMoveWB:
                                fn = typedmemmove
                                val = w.Args[1]
-                               typ = w.Aux.(*types.Type).Symbol()
+                               typ = reflectdata.TypeLinksym(w.Aux.(*types.Type))
                                nWBops--
                        case OpZeroWB:
                                fn = typedmemclr
-                               typ = w.Aux.(*types.Type).Symbol()
+                               typ = reflectdata.TypeLinksym(w.Aux.(*types.Type))
                                nWBops--
                        case OpVarDef, OpVarLive, OpVarKill:
                        }
index 6feedbfabc5a726481dea293f96475e3fd3e2c12..5176b96c0204f24f6bd6a0941e8039266c0975ed 100644 (file)
@@ -6,7 +6,6 @@ package types
 
 import (
        "cmd/compile/internal/base"
-       "cmd/internal/obj"
        "cmd/internal/src"
        "fmt"
        "sync"
@@ -1532,10 +1531,6 @@ func (t *Type) HasPointers() bool {
        return true
 }
 
-func (t *Type) Symbol() *obj.LSym {
-       return TypeLinkSym(t)
-}
-
 // Tie returns 'T' if t is a concrete type,
 // 'I' if t is an interface type, and 'E' if t is an empty interface type.
 // It is used to build calls to the conv* and assert* runtime routines.
index 2477f1da668a6acc346e3349930ba5c941365337..f9f629ca3ea6cf5bd878387b6cab1a7892e1685b 100644 (file)
@@ -4,19 +4,8 @@
 
 package types
 
-import (
-       "cmd/internal/obj"
-)
-
 const BADWIDTH = -1000000000
 
-// The following variables must be initialized early by the frontend.
-// They are here to break import cycles.
-// TODO(gri) eliminate these dependencies.
-var (
-       TypeLinkSym func(*Type) *obj.LSym
-)
-
 type bitset8 uint8
 
 func (f *bitset8) set(mask uint8, b bool) {