From 46be01f4e06a2ef1d2450a81dd855671eac5b855 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Sat, 12 Oct 2019 16:05:34 -0700 Subject: [PATCH] cmd/compile: remove Addable flag This flag is supposed to indicate whether the expression is "addressable"; but in practice, we infer this from other attributes about the expression (e.g., n.Op and n.Class()). Passes toolstash-check. Change-Id: I19352ca07ab5646e232d98e8a7c1c9aec822ddd0 Reviewed-on: https://go-review.googlesource.com/c/go/+/200897 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/dcl.go | 2 -- src/cmd/compile/internal/gc/esc.go | 1 - src/cmd/compile/internal/gc/fmt.go | 4 ---- src/cmd/compile/internal/gc/reflect.go | 3 --- src/cmd/compile/internal/gc/sinit.go | 4 ++-- src/cmd/compile/internal/gc/ssa.go | 1 - src/cmd/compile/internal/gc/subr.go | 1 - src/cmd/compile/internal/gc/syntax.go | 3 --- src/cmd/compile/internal/gc/walk.go | 1 - 9 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index 44ef64f329..8168f739f4 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -203,7 +203,6 @@ func newnoname(s *types.Sym) *Node { } n := nod(ONONAME, nil, nil) n.Sym = s - n.SetAddable(true) n.Xoffset = 0 return n } @@ -282,7 +281,6 @@ func oldname(s *types.Sym) *Node { c.SetIsClosureVar(true) c.SetIsDDD(n.IsDDD()) c.Name.Defn = n - c.SetAddable(false) // Link into list of active closure variables. // Popped from list in func closurebody. diff --git a/src/cmd/compile/internal/gc/esc.go b/src/cmd/compile/internal/gc/esc.go index 0bb666dfaf..92f229b97f 100644 --- a/src/cmd/compile/internal/gc/esc.go +++ b/src/cmd/compile/internal/gc/esc.go @@ -283,7 +283,6 @@ func moveToHeap(n *Node) { // and substitute that copy into the function declaration list // so that analyses of the local (on-stack) variables use it. stackcopy := newname(n.Sym) - stackcopy.SetAddable(false) stackcopy.Type = n.Type stackcopy.Xoffset = n.Xoffset stackcopy.SetClass(n.Class()) diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go index 87e0e40dca..877bbe4469 100644 --- a/src/cmd/compile/internal/gc/fmt.go +++ b/src/cmd/compile/internal/gc/fmt.go @@ -417,10 +417,6 @@ func (n *Node) format(s fmt.State, verb rune, mode fmtMode) { func (n *Node) jconv(s fmt.State, flag FmtFlag) { c := flag & FmtShort - if c == 0 && n.Addable() { - fmt.Fprintf(s, " a(%v)", n.Addable()) - } - if c == 0 && n.Name != nil && n.Name.Vargen != 0 { fmt.Fprintf(s, " g(%d)", n.Name.Vargen) } diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go index b2b5deb74e..9e3dca25c8 100644 --- a/src/cmd/compile/internal/gc/reflect.go +++ b/src/cmd/compile/internal/gc/reflect.go @@ -1024,7 +1024,6 @@ func typename(t *types.Type) *Node { n := nod(OADDR, asNode(s.Def), nil) n.Type = types.NewPtr(asNode(s.Def).Type) - n.SetAddable(true) n.SetTypecheck(1) return n } @@ -1045,7 +1044,6 @@ func itabname(t, itype *types.Type) *Node { n := nod(OADDR, asNode(s.Def), nil) n.Type = types.NewPtr(asNode(s.Def).Type) - n.SetAddable(true) n.SetTypecheck(1) return n } @@ -1886,7 +1884,6 @@ func zeroaddr(size int64) *Node { } z := nod(OADDR, asNode(s.Def), nil) z.Type = types.NewPtr(types.Types[TUINT8]) - z.SetAddable(true) z.SetTypecheck(1) return z } diff --git a/src/cmd/compile/internal/gc/sinit.go b/src/cmd/compile/internal/gc/sinit.go index 96b343081a..5f05a2c72f 100644 --- a/src/cmd/compile/internal/gc/sinit.go +++ b/src/cmd/compile/internal/gc/sinit.go @@ -388,7 +388,7 @@ func isLiteral(n *Node) bool { } func (n *Node) isSimpleName() bool { - return n.Op == ONAME && n.Addable() && n.Class() != PAUTOHEAP && n.Class() != PEXTERN + return n.Op == ONAME && n.Class() != PAUTOHEAP && n.Class() != PEXTERN } func litas(l *Node, r *Node, init *Nodes) { @@ -1018,7 +1018,7 @@ func stataddr(nam *Node, n *Node) bool { switch n.Op { case ONAME: *nam = *n - return n.Addable() + return true case ODOT: if !stataddr(nam, n.Left) { diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index a263fa7e99..be09fc5f83 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -6151,7 +6151,6 @@ func (e *ssafn) splitSlot(parent *ssa.LocalSlot, suffix string, offset int64, t n.Sym = s n.Type = t n.SetClass(PAUTO) - n.SetAddable(true) n.Esc = EscNever n.Name.Curfn = e.curfn e.curfn.Func.Dcl = append(e.curfn.Func.Dcl, n) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 27326f67a1..3b085a0d64 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -370,7 +370,6 @@ func newnamel(pos src.XPos, s *types.Sym) *Node { n.Orig = n n.Sym = s - n.SetAddable(true) return n } diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index 08edef9496..69d8a5590b 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -153,7 +153,6 @@ const ( _, nodeNonNil // guaranteed to be non-nil _, nodeTransient // storage can be reused immediately after this statement _, nodeBounded // bounds check unnecessary - _, nodeAddable // addressable _, nodeHasCall // expression contains a function call _, nodeLikely // if statement condition likely _, nodeHasVal // node.E contains a Val @@ -181,7 +180,6 @@ func (n *Node) Colas() bool { return n.flags&nodeColas != 0 } func (n *Node) NonNil() bool { return n.flags&nodeNonNil != 0 } func (n *Node) Transient() bool { return n.flags&nodeTransient != 0 } func (n *Node) Bounded() bool { return n.flags&nodeBounded != 0 } -func (n *Node) Addable() bool { return n.flags&nodeAddable != 0 } func (n *Node) HasCall() bool { return n.flags&nodeHasCall != 0 } func (n *Node) Likely() bool { return n.flags&nodeLikely != 0 } func (n *Node) HasVal() bool { return n.flags&nodeHasVal != 0 } @@ -208,7 +206,6 @@ func (n *Node) SetColas(b bool) { n.flags.set(nodeColas, b) } func (n *Node) SetNonNil(b bool) { n.flags.set(nodeNonNil, b) } func (n *Node) SetTransient(b bool) { n.flags.set(nodeTransient, b) } func (n *Node) SetBounded(b bool) { n.flags.set(nodeBounded, b) } -func (n *Node) SetAddable(b bool) { n.flags.set(nodeAddable, b) } func (n *Node) SetHasCall(b bool) { n.flags.set(nodeHasCall, b) } func (n *Node) SetLikely(b bool) { n.flags.set(nodeLikely, b) } func (n *Node) SetHasVal(b bool) { n.flags.set(nodeHasVal, b) } diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 041d368922..325eea019f 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -564,7 +564,6 @@ opswitch: n = mkcall("gorecover", n.Type, init, nod(OADDR, nodfp, nil)) case OCLOSUREVAR, OCFUNC: - n.SetAddable(true) case OCALLINTER, OCALLFUNC, OCALLMETH: if n.Op == OCALLINTER { -- 2.50.0