diff options
| author | Dan Scales <danscales@google.com> | 2021-04-09 06:30:20 -0700 |
|---|---|---|
| committer | Dan Scales <danscales@google.com> | 2021-04-09 22:57:48 +0000 |
| commit | 281d168e2debf7660f9ba5006ddbc1b4cda90ab7 (patch) | |
| tree | 21701a394f2e69b797ac51dade0e18b48d98bfac /src/cmd/compile/internal/noder | |
| parent | 756e2b1529592ffbe1760932d14f8e6eae3fda06 (diff) | |
| download | go-281d168e2debf7660f9ba5006ddbc1b4cda90ab7.tar.xz | |
cmd/compile: don't set Ntype in noder2 anymore
Now that we are no longer calling the old typechecker at all during the
noder2 pass, we don't need to create and set an Ntype node ((which is
just a node representation of the type which we already know) for the
Name and Closure nodes. This should reduce memory usage a bit for -G=3.
Change-Id: I6b1345007ce067a89ee64955a53f25645c303f4d
Reviewed-on: https://go-review.googlesource.com/c/go/+/308909
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/noder')
| -rw-r--r-- | src/cmd/compile/internal/noder/expr.go | 2 | ||||
| -rw-r--r-- | src/cmd/compile/internal/noder/object.go | 3 | ||||
| -rw-r--r-- | src/cmd/compile/internal/noder/stencil.go | 6 |
3 files changed, 1 insertions, 10 deletions
diff --git a/src/cmd/compile/internal/noder/expr.go b/src/cmd/compile/internal/noder/expr.go index fc97df7197..b2c2616b35 100644 --- a/src/cmd/compile/internal/noder/expr.go +++ b/src/cmd/compile/internal/noder/expr.go @@ -360,8 +360,6 @@ func (g *irgen) funcLit(typ2 types2.Type, expr *syntax.FuncLit) ir.Node { typ := g.typ(typ2) fn.Nname.Func = fn fn.Nname.Defn = fn - // Set Ntype for now to be compatible with later parts of compile, remove later. - fn.Nname.Ntype = ir.TypeNode(typ) typed(typ, fn.Nname) fn.SetTypecheck(1) diff --git a/src/cmd/compile/internal/noder/object.go b/src/cmd/compile/internal/noder/object.go index 6c8ed4af97..82cce1ace0 100644 --- a/src/cmd/compile/internal/noder/object.go +++ b/src/cmd/compile/internal/noder/object.go @@ -147,9 +147,6 @@ func (g *irgen) objFinish(name *ir.Name, class ir.Class, typ *types.Type) { sym.SetFunc(true) } - // We already know name's type, but typecheck is really eager to try - // recomputing it later. This appears to prevent that at least. - name.Ntype = ir.TypeNode(typ) name.SetTypecheck(1) name.SetWalkdef(1) diff --git a/src/cmd/compile/internal/noder/stencil.go b/src/cmd/compile/internal/noder/stencil.go index 0d84db9993..329c80098a 100644 --- a/src/cmd/compile/internal/noder/stencil.go +++ b/src/cmd/compile/internal/noder/stencil.go @@ -298,7 +298,6 @@ func (g *irgen) genericSubst(newsym *types.Sym, nameNode *ir.Name, targs []ir.No subst.fields(ir.PPARAM, append(oldt.Recvs().FieldSlice(), oldt.Params().FieldSlice()...), newf.Dcl), subst.fields(ir.PPARAMOUT, oldt.Results().FieldSlice(), newf.Dcl)) - newf.Nname.Ntype = ir.TypeNode(newt) newf.Nname.SetType(newt) ir.MarkFunc(newf.Nname) newf.SetTypecheck(1) @@ -497,8 +496,7 @@ func (subst *subster) node(n ir.Node) ir.Node { case ir.OCLOSURE: x := x.(*ir.ClosureExpr) - // Need to save/duplicate x.Func.Nname, - // x.Func.Nname.Ntype, x.Func.Dcl, x.Func.ClosureVars, and + // Need to duplicate x.Func.Nname, x.Func.Dcl, x.Func.ClosureVars, and // x.Func.Body. oldfn := x.Func newfn := ir.NewFunc(oldfn.Pos()) @@ -522,8 +520,6 @@ func (subst *subster) node(n ir.Node) ir.Node { newfn.Dcl = subst.namelist(oldfn.Dcl) newfn.ClosureVars = subst.namelist(oldfn.ClosureVars) - // Set Ntype for now to be compatible with later parts of compiler - newfn.Nname.Ntype = subst.node(oldfn.Nname.Ntype).(ir.Ntype) typed(subst.typ(oldfn.Nname.Type()), newfn.Nname) typed(newfn.Nname.Type(), m) newfn.SetTypecheck(1) |
