Skip to content

Commit 65c4c6d

Browse files
committed
[dev.regabi] cmd/compile: group known symbols, packages, names [generated]
There are a handful of pre-computed magic symbols known by package gc, and we need a place to store them. If we keep them together, the need for type *ir.Name means that package ir is the lowest package in the import hierarchy that they can go in. And package ir needs gopkg for methodSymSuffix (in a later CL), so they can't go any higher either, at least not all together. So package ir it is. Rather than dump them all into the top-level package ir namespace, however, we introduce global structs, Syms, Pkgs, and Names, and make the known symbols, packages, and names fields of those. [git-generate] cd src/cmd/compile/internal/gc rf ' add go.go:$ \ // Names holds known names. \ var Names struct{} \ \ // Syms holds known symbols. \ var Syms struct {} \ \ // Pkgs holds known packages. \ var Pkgs struct {} \ mv staticuint64s Names.Staticuint64s mv zerobase Names.Zerobase mv assertE2I Syms.AssertE2I mv assertE2I2 Syms.AssertE2I2 mv assertI2I Syms.AssertI2I mv assertI2I2 Syms.AssertI2I2 mv deferproc Syms.Deferproc mv deferprocStack Syms.DeferprocStack mv Deferreturn Syms.Deferreturn mv Duffcopy Syms.Duffcopy mv Duffzero Syms.Duffzero mv gcWriteBarrier Syms.GCWriteBarrier mv goschedguarded Syms.Goschedguarded mv growslice Syms.Growslice mv msanread Syms.Msanread mv msanwrite Syms.Msanwrite mv msanmove Syms.Msanmove mv newobject Syms.Newobject mv newproc Syms.Newproc mv panicdivide Syms.Panicdivide mv panicshift Syms.Panicshift mv panicdottypeE Syms.PanicdottypeE mv panicdottypeI Syms.PanicdottypeI mv panicnildottype Syms.Panicnildottype mv panicoverflow Syms.Panicoverflow mv raceread Syms.Raceread mv racereadrange Syms.Racereadrange mv racewrite Syms.Racewrite mv racewriterange Syms.Racewriterange mv SigPanic Syms.SigPanic mv typedmemclr Syms.Typedmemclr mv typedmemmove Syms.Typedmemmove mv Udiv Syms.Udiv mv writeBarrier Syms.WriteBarrier mv zerobaseSym Syms.Zerobase mv arm64HasATOMICS Syms.ARM64HasATOMICS mv armHasVFPv4 Syms.ARMHasVFPv4 mv x86HasFMA Syms.X86HasFMA mv x86HasPOPCNT Syms.X86HasPOPCNT mv x86HasSSE41 Syms.X86HasSSE41 mv WasmDiv Syms.WasmDiv mv WasmMove Syms.WasmMove mv WasmZero Syms.WasmZero mv WasmTruncS Syms.WasmTruncS mv WasmTruncU Syms.WasmTruncU mv gopkg Pkgs.Go mv itabpkg Pkgs.Itab mv itablinkpkg Pkgs.Itablink mv mappkg Pkgs.Map mv msanpkg Pkgs.Msan mv racepkg Pkgs.Race mv Runtimepkg Pkgs.Runtime mv trackpkg Pkgs.Track mv unsafepkg Pkgs.Unsafe mv Names Syms Pkgs symtab.go mv symtab.go cmd/compile/internal/ir ' Change-Id: Ic143862148569a3bcde8e70b26d75421aa2d00f3 Reviewed-on: https://go-review.googlesource.com/c/go/+/279235 Trust: Russ Cox <[email protected]> Run-TryBot: Russ Cox <[email protected]> TryBot-Result: Go Bot <[email protected]> Reviewed-by: Matthew Dempsky <[email protected]>
1 parent 9ee3092 commit 65c4c6d

File tree

29 files changed

+255
-231
lines changed

29 files changed

+255
-231
lines changed

src/cmd/compile/internal/amd64/ggen.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package amd64
77
import (
88
"cmd/compile/internal/base"
99
"cmd/compile/internal/gc"
10+
"cmd/compile/internal/ir"
1011
"cmd/internal/obj"
1112
"cmd/internal/obj/x86"
1213
"cmd/internal/objabi"
@@ -102,7 +103,7 @@ func zerorange(pp *gc.Progs, p *obj.Prog, off, cnt int64, state *uint32) *obj.Pr
102103
}
103104
p = pp.Appendpp(p, leaptr, obj.TYPE_MEM, x86.REG_SP, off+dzDI(cnt), obj.TYPE_REG, x86.REG_DI, 0)
104105
p = pp.Appendpp(p, obj.ADUFFZERO, obj.TYPE_NONE, 0, 0, obj.TYPE_ADDR, 0, dzOff(cnt))
105-
p.To.Sym = gc.Duffzero
106+
p.To.Sym = ir.Syms.Duffzero
106107

107108
if cnt%16 != 0 {
108109
p = pp.Appendpp(p, x86.AMOVUPS, obj.TYPE_REG, x86.REG_X0, 0, obj.TYPE_MEM, x86.REG_DI, -int64(8))

src/cmd/compile/internal/amd64/ssa.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"cmd/compile/internal/base"
1212
"cmd/compile/internal/gc"
13+
"cmd/compile/internal/ir"
1314
"cmd/compile/internal/logopt"
1415
"cmd/compile/internal/ssa"
1516
"cmd/compile/internal/types"
@@ -912,7 +913,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
912913
}
913914
p = s.Prog(obj.ADUFFZERO)
914915
p.To.Type = obj.TYPE_ADDR
915-
p.To.Sym = gc.Duffzero
916+
p.To.Sym = ir.Syms.Duffzero
916917
p.To.Offset = off
917918
case ssa.OpAMD64MOVOconst:
918919
if v.AuxInt != 0 {
@@ -923,7 +924,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
923924
case ssa.OpAMD64DUFFCOPY:
924925
p := s.Prog(obj.ADUFFCOPY)
925926
p.To.Type = obj.TYPE_ADDR
926-
p.To.Sym = gc.Duffcopy
927+
p.To.Sym = ir.Syms.Duffcopy
927928
if v.AuxInt%16 != 0 {
928929
v.Fatalf("bad DUFFCOPY AuxInt %v", v.AuxInt)
929930
}

src/cmd/compile/internal/arm/ggen.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package arm
66

77
import (
88
"cmd/compile/internal/gc"
9+
"cmd/compile/internal/ir"
910
"cmd/internal/obj"
1011
"cmd/internal/obj/arm"
1112
)
@@ -28,7 +29,7 @@ func zerorange(pp *gc.Progs, p *obj.Prog, off, cnt int64, r0 *uint32) *obj.Prog
2829
p.Reg = arm.REGSP
2930
p = pp.Appendpp(p, obj.ADUFFZERO, obj.TYPE_NONE, 0, 0, obj.TYPE_MEM, 0, 0)
3031
p.To.Name = obj.NAME_EXTERN
31-
p.To.Sym = gc.Duffzero
32+
p.To.Sym = ir.Syms.Duffzero
3233
p.To.Offset = 4 * (128 - cnt/int64(gc.Widthptr))
3334
} else {
3435
p = pp.Appendpp(p, arm.AADD, obj.TYPE_CONST, 0, 4+off, obj.TYPE_REG, arm.REG_R1, 0)

src/cmd/compile/internal/arm/ssa.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
702702
p := s.Prog(obj.ACALL)
703703
p.To.Type = obj.TYPE_MEM
704704
p.To.Name = obj.NAME_EXTERN
705-
p.To.Sym = gc.Udiv
705+
p.To.Sym = ir.Syms.Udiv
706706
case ssa.OpARMLoweredWB:
707707
p := s.Prog(obj.ACALL)
708708
p.To.Type = obj.TYPE_MEM
@@ -724,13 +724,13 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
724724
p := s.Prog(obj.ADUFFZERO)
725725
p.To.Type = obj.TYPE_MEM
726726
p.To.Name = obj.NAME_EXTERN
727-
p.To.Sym = gc.Duffzero
727+
p.To.Sym = ir.Syms.Duffzero
728728
p.To.Offset = v.AuxInt
729729
case ssa.OpARMDUFFCOPY:
730730
p := s.Prog(obj.ADUFFCOPY)
731731
p.To.Type = obj.TYPE_MEM
732732
p.To.Name = obj.NAME_EXTERN
733-
p.To.Sym = gc.Duffcopy
733+
p.To.Sym = ir.Syms.Duffcopy
734734
p.To.Offset = v.AuxInt
735735
case ssa.OpARMLoweredNilCheck:
736736
// Issue a load which will fault if arg is nil.

src/cmd/compile/internal/arm64/ggen.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package arm64
66

77
import (
88
"cmd/compile/internal/gc"
9+
"cmd/compile/internal/ir"
910
"cmd/internal/obj"
1011
"cmd/internal/obj/arm64"
1112
"cmd/internal/objabi"
@@ -41,7 +42,7 @@ func zerorange(pp *gc.Progs, p *obj.Prog, off, cnt int64, _ *uint32) *obj.Prog {
4142
p.Reg = arm64.REG_R20
4243
p = pp.Appendpp(p, obj.ADUFFZERO, obj.TYPE_NONE, 0, 0, obj.TYPE_MEM, 0, 0)
4344
p.To.Name = obj.NAME_EXTERN
44-
p.To.Sym = gc.Duffzero
45+
p.To.Sym = ir.Syms.Duffzero
4546
p.To.Offset = 4 * (64 - cnt/(2*int64(gc.Widthptr)))
4647
} else {
4748
// Not using REGTMP, so this is async preemptible (async preemption clobbers REGTMP).

src/cmd/compile/internal/arm64/ssa.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
961961
p := s.Prog(obj.ADUFFZERO)
962962
p.To.Type = obj.TYPE_MEM
963963
p.To.Name = obj.NAME_EXTERN
964-
p.To.Sym = gc.Duffzero
964+
p.To.Sym = ir.Syms.Duffzero
965965
p.To.Offset = v.AuxInt
966966
case ssa.OpARM64LoweredZero:
967967
// STP.P (ZR,ZR), 16(R16)
@@ -987,7 +987,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
987987
p := s.Prog(obj.ADUFFCOPY)
988988
p.To.Type = obj.TYPE_MEM
989989
p.To.Name = obj.NAME_EXTERN
990-
p.To.Sym = gc.Duffcopy
990+
p.To.Sym = ir.Syms.Duffcopy
991991
p.To.Offset = v.AuxInt
992992
case ssa.OpARM64LoweredMove:
993993
// MOVD.P 8(R16), Rtmp

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -265,19 +265,19 @@ func hashfor(t *types.Type) ir.Node {
265265
case types.AMEM:
266266
base.Fatalf("hashfor with AMEM type")
267267
case types.AINTER:
268-
sym = Runtimepkg.Lookup("interhash")
268+
sym = ir.Pkgs.Runtime.Lookup("interhash")
269269
case types.ANILINTER:
270-
sym = Runtimepkg.Lookup("nilinterhash")
270+
sym = ir.Pkgs.Runtime.Lookup("nilinterhash")
271271
case types.ASTRING:
272-
sym = Runtimepkg.Lookup("strhash")
272+
sym = ir.Pkgs.Runtime.Lookup("strhash")
273273
case types.AFLOAT32:
274-
sym = Runtimepkg.Lookup("f32hash")
274+
sym = ir.Pkgs.Runtime.Lookup("f32hash")
275275
case types.AFLOAT64:
276-
sym = Runtimepkg.Lookup("f64hash")
276+
sym = ir.Pkgs.Runtime.Lookup("f64hash")
277277
case types.ACPLX64:
278-
sym = Runtimepkg.Lookup("c64hash")
278+
sym = ir.Pkgs.Runtime.Lookup("c64hash")
279279
case types.ACPLX128:
280-
sym = Runtimepkg.Lookup("c128hash")
280+
sym = ir.Pkgs.Runtime.Lookup("c128hash")
281281
default:
282282
// Note: the caller of hashfor ensured that this symbol
283283
// exists and has a body by calling genhash for t.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ func methodSymSuffix(recv *types.Type, msym *types.Sym, suffix string) *types.Sy
626626
// Find the package the receiver type appeared in. For
627627
// anonymous receiver types (i.e., anonymous structs with
628628
// embedded fields), use the "go" pseudo-package instead.
629-
rpkg := gopkg
629+
rpkg := ir.Pkgs.Go
630630
if rsym != nil {
631631
rpkg = rsym.Pkg
632632
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
// sysfunc looks up Go function name in package runtime. This function
1717
// must follow the internal calling convention.
1818
func sysfunc(name string) *obj.LSym {
19-
s := Runtimepkg.Lookup(name)
19+
s := ir.Pkgs.Runtime.Lookup(name)
2020
s.SetFunc(true)
2121
return s.Linksym()
2222
}
@@ -25,7 +25,7 @@ func sysfunc(name string) *obj.LSym {
2525
// runtime. If this is a function, it may have a special calling
2626
// convention.
2727
func sysvar(name string) *obj.LSym {
28-
return Runtimepkg.Lookup(name).Linksym()
28+
return ir.Pkgs.Runtime.Lookup(name).Linksym()
2929
}
3030

3131
// isParamStackCopy reports whether this is the on-stack copy of a

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

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,6 @@ var decldepth int32
6464

6565
var inimport bool // set during import
6666

67-
var itabpkg *types.Pkg // fake pkg for itab entries
68-
69-
var itablinkpkg *types.Pkg // fake package for runtime itab entries
70-
71-
var Runtimepkg *types.Pkg // fake package runtime
72-
73-
var racepkg *types.Pkg // package runtime/race
74-
75-
var msanpkg *types.Pkg // package runtime/msan
76-
77-
var unsafepkg *types.Pkg // package unsafe
78-
79-
var trackpkg *types.Pkg // fake package for field tracking
80-
81-
var mappkg *types.Pkg // fake package for map zero value
82-
83-
var gopkg *types.Pkg // pseudo-package for method symbols on anonymous receiver types
84-
8567
var zerosize int64
8668

8769
var (
@@ -149,57 +131,8 @@ type Arch struct {
149131
var thearch Arch
150132

151133
var (
152-
staticuint64s *ir.Name
153-
zerobase *ir.Name
154-
155-
assertE2I,
156-
assertE2I2,
157-
assertI2I,
158-
assertI2I2,
159-
deferproc,
160-
deferprocStack,
161-
Deferreturn,
162-
Duffcopy,
163-
Duffzero,
164-
gcWriteBarrier,
165-
goschedguarded,
166-
growslice,
167-
msanread,
168-
msanwrite,
169-
msanmove,
170-
newobject,
171-
newproc,
172-
panicdivide,
173-
panicshift,
174-
panicdottypeE,
175-
panicdottypeI,
176-
panicnildottype,
177-
panicoverflow,
178-
raceread,
179-
racereadrange,
180-
racewrite,
181-
racewriterange,
182-
x86HasPOPCNT,
183-
x86HasSSE41,
184-
x86HasFMA,
185-
armHasVFPv4,
186-
arm64HasATOMICS,
187-
typedmemclr,
188-
typedmemmove,
189-
Udiv,
190-
writeBarrier,
191-
zerobaseSym *obj.LSym
192-
193134
BoundsCheckFunc [ssa.BoundsKindCount]*obj.LSym
194135
ExtendCheckFunc [ssa.BoundsKindCount]*obj.LSym
195-
196-
// Wasm
197-
WasmMove,
198-
WasmZero,
199-
WasmDiv,
200-
WasmTruncS,
201-
WasmTruncU,
202-
SigPanic *obj.LSym
203136
)
204137

205138
// GCWriteBarrierReg maps from registers to gcWriteBarrier implementation LSyms.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ func (p *iexporter) pushDecl(n *ir.Name) {
400400
}
401401

402402
// Don't export predeclared declarations.
403-
if n.Sym().Pkg == types.BuiltinPkg || n.Sym().Pkg == unsafepkg {
403+
if n.Sym().Pkg == types.BuiltinPkg || n.Sym().Pkg == ir.Pkgs.Unsafe {
404404
return
405405
}
406406

@@ -647,7 +647,7 @@ func (w *exportWriter) startType(k itag) {
647647

648648
func (w *exportWriter) doTyp(t *types.Type) {
649649
if t.Sym() != nil {
650-
if t.Sym().Pkg == types.BuiltinPkg || t.Sym().Pkg == unsafepkg {
650+
if t.Sym().Pkg == types.BuiltinPkg || t.Sym().Pkg == ir.Pkgs.Unsafe {
651651
base.Fatalf("builtin type missing from typIndex: %v", t)
652652
}
653653

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86,32 +86,32 @@ func Main(archInit func(*Arch)) {
8686
types.BuiltinPkg.Prefix = "go.builtin" // not go%2ebuiltin
8787

8888
// pseudo-package, accessed by import "unsafe"
89-
unsafepkg = types.NewPkg("unsafe", "unsafe")
89+
ir.Pkgs.Unsafe = types.NewPkg("unsafe", "unsafe")
9090

9191
// Pseudo-package that contains the compiler's builtin
9292
// declarations for package runtime. These are declared in a
9393
// separate package to avoid conflicts with package runtime's
9494
// actual declarations, which may differ intentionally but
9595
// insignificantly.
96-
Runtimepkg = types.NewPkg("go.runtime", "runtime")
97-
Runtimepkg.Prefix = "runtime"
96+
ir.Pkgs.Runtime = types.NewPkg("go.runtime", "runtime")
97+
ir.Pkgs.Runtime.Prefix = "runtime"
9898

9999
// pseudo-packages used in symbol tables
100-
itabpkg = types.NewPkg("go.itab", "go.itab")
101-
itabpkg.Prefix = "go.itab" // not go%2eitab
100+
ir.Pkgs.Itab = types.NewPkg("go.itab", "go.itab")
101+
ir.Pkgs.Itab.Prefix = "go.itab" // not go%2eitab
102102

103-
itablinkpkg = types.NewPkg("go.itablink", "go.itablink")
104-
itablinkpkg.Prefix = "go.itablink" // not go%2eitablink
103+
ir.Pkgs.Itablink = types.NewPkg("go.itablink", "go.itablink")
104+
ir.Pkgs.Itablink.Prefix = "go.itablink" // not go%2eitablink
105105

106-
trackpkg = types.NewPkg("go.track", "go.track")
107-
trackpkg.Prefix = "go.track" // not go%2etrack
106+
ir.Pkgs.Track = types.NewPkg("go.track", "go.track")
107+
ir.Pkgs.Track.Prefix = "go.track" // not go%2etrack
108108

109109
// pseudo-package used for map zero values
110-
mappkg = types.NewPkg("go.map", "go.map")
111-
mappkg.Prefix = "go.map"
110+
ir.Pkgs.Map = types.NewPkg("go.map", "go.map")
111+
ir.Pkgs.Map.Prefix = "go.map"
112112

113113
// pseudo-package used for methods with anonymous receivers
114-
gopkg = types.NewPkg("go", "")
114+
ir.Pkgs.Go = types.NewPkg("go", "")
115115

116116
base.DebugSSA = ssa.PhaseOption
117117
base.ParseFlags()
@@ -165,10 +165,10 @@ func Main(archInit func(*Arch)) {
165165
thearch.LinkArch.Init(base.Ctxt)
166166
startProfile()
167167
if base.Flag.Race {
168-
racepkg = types.NewPkg("runtime/race", "")
168+
ir.Pkgs.Race = types.NewPkg("runtime/race", "")
169169
}
170170
if base.Flag.MSan {
171-
msanpkg = types.NewPkg("runtime/msan", "")
171+
ir.Pkgs.Msan = types.NewPkg("runtime/msan", "")
172172
}
173173
if base.Flag.Race || base.Flag.MSan {
174174
base.Flag.Cfg.Instrumenting = true
@@ -592,13 +592,13 @@ func loadsys() {
592592

593593
typs := runtimeTypes()
594594
for _, d := range &runtimeDecls {
595-
sym := Runtimepkg.Lookup(d.name)
595+
sym := ir.Pkgs.Runtime.Lookup(d.name)
596596
typ := typs[d.typ]
597597
switch d.tag {
598598
case funcTag:
599-
importfunc(Runtimepkg, src.NoXPos, sym, typ)
599+
importfunc(ir.Pkgs.Runtime, src.NoXPos, sym, typ)
600600
case varTag:
601-
importvar(Runtimepkg, src.NoXPos, sym, typ)
601+
importvar(ir.Pkgs.Runtime, src.NoXPos, sym, typ)
602602
default:
603603
base.Fatalf("unhandled declaration tag %v", d.tag)
604604
}
@@ -647,7 +647,7 @@ func importfile(f constant.Value) *types.Pkg {
647647
}
648648

649649
if path_ == "unsafe" {
650-
return unsafepkg
650+
return ir.Pkgs.Unsafe
651651
}
652652

653653
if islocalname(path_) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ func (p *noder) importDecl(imp *syntax.ImportDecl) {
334334
return
335335
}
336336

337-
if ipkg == unsafepkg {
337+
if ipkg == ir.Pkgs.Unsafe {
338338
p.importedUnsafe = true
339339
}
340340
if ipkg.Path == "embed" {

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

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

160160
if zerosize > 0 {
161-
zero := mappkg.Lookup("zero")
161+
zero := ir.Pkgs.Map.Lookup("zero")
162162
ggloblsym(zero.Linksym(), int32(zerosize), obj.DUPOK|obj.RODATA)
163163
}
164164

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ func (lv *Liveness) markUnsafePoints() {
571571
var load *ssa.Value
572572
v := wbBlock.Controls[0]
573573
for {
574-
if sym, ok := v.Aux.(*obj.LSym); ok && sym == writeBarrier {
574+
if sym, ok := v.Aux.(*obj.LSym); ok && sym == ir.Syms.WriteBarrier {
575575
load = v
576576
break
577577
}
@@ -690,7 +690,7 @@ func (lv *Liveness) hasStackMap(v *ssa.Value) bool {
690690
// typedmemclr and typedmemmove are write barriers and
691691
// deeply non-preemptible. They are unsafe points and
692692
// hence should not have liveness maps.
693-
if sym, ok := v.Aux.(*ssa.AuxCall); ok && (sym.Fn == typedmemclr || sym.Fn == typedmemmove) {
693+
if sym, ok := v.Aux.(*ssa.AuxCall); ok && (sym.Fn == ir.Syms.Typedmemclr || sym.Fn == ir.Syms.Typedmemmove) {
694694
return false
695695
}
696696
return true

0 commit comments

Comments
 (0)