Skip to content

Commit a2f825c

Browse files
committed
[dev.regabi] cmd/compile: directly create go.map and go.track symbols
These symbols are implementation details and don't correspond to Go source symbols, so directly create them as linker symbols and get rid of their pseudo packages. Passes toolstash -cmp w/ -gcflags=all=-abiwrap. Change-Id: I2e97374c21f3e909f6d350f15e7a5ed3574cadf4 Reviewed-on: https://go-review.googlesource.com/c/go/+/284372 Run-TryBot: Matthew Dempsky <[email protected]> TryBot-Result: Go Bot <[email protected]> Reviewed-by: Cuong Manh Le <[email protected]> Trust: Matthew Dempsky <[email protected]>
1 parent 4a4212c commit a2f825c

File tree

4 files changed

+5
-23
lines changed

4 files changed

+5
-23
lines changed

src/cmd/compile/internal/gc/main.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,6 @@ func Main(archInit func(*ssagen.ArchInfo)) {
9696
ir.Pkgs.Itab = types.NewPkg("go.itab", "go.itab")
9797
ir.Pkgs.Itab.Prefix = "go.itab" // not go%2eitab
9898

99-
ir.Pkgs.Track = types.NewPkg("go.track", "go.track")
100-
ir.Pkgs.Track.Prefix = "go.track" // not go%2etrack
101-
102-
// pseudo-package used for map zero values
103-
ir.Pkgs.Map = types.NewPkg("go.map", "go.map")
104-
ir.Pkgs.Map.Prefix = "go.map"
105-
10699
// pseudo-package used for methods with anonymous receivers
107100
ir.Pkgs.Go = types.NewPkg("go", "")
108101

src/cmd/compile/internal/gc/obj.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func dumpdata() {
146146
dumpglobls(typecheck.Target.Externs[numExterns:])
147147

148148
if reflectdata.ZeroSize > 0 {
149-
zero := ir.Pkgs.Map.Lookup("zero").Linksym()
149+
zero := base.PkgLinksym("go.map", "zero", obj.ABI0)
150150
objw.Global(zero, int32(reflectdata.ZeroSize), obj.DUPOK|obj.RODATA)
151151
}
152152

src/cmd/compile/internal/ir/symtab.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ var Syms struct {
6767
var Pkgs struct {
6868
Go *types.Pkg
6969
Itab *types.Pkg
70-
Map *types.Pkg
7170
Runtime *types.Pkg
72-
Track *types.Pkg
7371
Unsafe *types.Pkg
7472
}

src/cmd/compile/internal/reflectdata/reflect.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ func dcommontype(lsym *obj.LSym, t *types.Type) int {
791791
// TrackSym returns the symbol for tracking use of field/method f, assumed
792792
// to be a member of struct/interface type t.
793793
func TrackSym(t *types.Type, f *types.Field) *obj.LSym {
794-
return ir.Pkgs.Track.Lookup(t.ShortString() + "." + f.Sym.Name).Linksym()
794+
return base.PkgLinksym("go.track", t.ShortString() + "." + f.Sym.Name, obj.ABI0)
795795
}
796796

797797
func TypeSymPrefix(prefix string, t *types.Type) *types.Sym {
@@ -1654,18 +1654,9 @@ func ZeroAddr(size int64) ir.Node {
16541654
if ZeroSize < size {
16551655
ZeroSize = size
16561656
}
1657-
s := ir.Pkgs.Map.Lookup("zero")
1658-
if s.Def == nil {
1659-
x := typecheck.NewName(s)
1660-
x.SetType(types.Types[types.TUINT8])
1661-
x.Class = ir.PEXTERN
1662-
x.SetTypecheck(1)
1663-
s.Def = x
1664-
}
1665-
z := typecheck.NodAddr(ir.AsNode(s.Def))
1666-
z.SetType(types.NewPtr(types.Types[types.TUINT8]))
1667-
z.SetTypecheck(1)
1668-
return z
1657+
lsym := base.PkgLinksym("go.map", "zero", obj.ABI0)
1658+
x := ir.NewLinksymExpr(base.Pos, lsym, types.Types[types.TUINT8])
1659+
return typecheck.Expr(typecheck.NodAddr(x))
16691660
}
16701661

16711662
func CollectPTabs() {

0 commit comments

Comments
 (0)