cmd/compile: remove Node.Alloc
$ sizeof -p cmd/compile/internal/gc Node
Node 240
$
Change-Id: Id12710c480ed4e0a5bf4f5006f6bd56ef91a2af1
Reviewed-on: https://go-review.googlesource.com/10525
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go
index 07d1309..368cd42 100644
--- a/src/cmd/compile/internal/gc/walk.go
+++ b/src/cmd/compile/internal/gc/walk.go
@@ -1824,8 +1824,8 @@
n.Type = tslice
} else {
n = Nod(OCOMPLIT, nil, typenod(tslice))
- if ddd != nil {
- n.Alloc = ddd.Alloc // temporary to use
+ if ddd != nil && prealloc[ddd] != nil {
+ prealloc[n] = prealloc[ddd] // temporary to use
}
n.List = lr0
n.Esc = esc
@@ -2682,10 +2682,10 @@
if compiling_runtime != 0 {
Yyerror("%v escapes to heap, not allowed in runtime.", v)
}
- if v.Alloc == nil {
- v.Alloc = callnew(v.Type)
+ if prealloc[v] == nil {
+ prealloc[v] = callnew(v.Type)
}
- nn = list(nn, Nod(OAS, v.Name.Heapaddr, v.Alloc))
+ nn = list(nn, Nod(OAS, v.Name.Heapaddr, prealloc[v]))
if v.Class&^PHEAP != PPARAMOUT {
as = Nod(OAS, v, v.Param.Stackparam)
v.Param.Stackparam.Typecheck = 1
@@ -2861,7 +2861,9 @@
t.Type = Types[TSTRING]
t.Bound = -1
slice := Nod(OCOMPLIT, nil, typenod(t))
- slice.Alloc = n.Alloc
+ if prealloc[n] != nil {
+ prealloc[slice] = prealloc[n]
+ }
slice.List = args.Next // skip buf arg
args = list1(buf)
args = list(args, slice)