mirror of
https://github.com/golang/go
synced 2024-11-05 15:46:11 -07:00
cmd/compile: cleanup artifacts from previous CL
Does not pass toolstash, but only because it causes ATYPE instructions to be emitted in a different order, and it avoids emitting type metadata for unused variables. Change-Id: I3ec8f66a40b5af9213e0d6e852b267a8dd995838 Reviewed-on: https://go-review.googlesource.com/30217 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
5c7a005266
commit
9abaef93c7
@ -262,12 +262,6 @@ func (s *ssaExport) AllocFrame(f *ssa.Func) {
|
||||
}
|
||||
}
|
||||
|
||||
// To satisfy toolstash -cmp, preserve the unsorted
|
||||
// declaration order so we can emit the ATYPE instructions in
|
||||
// the same order.
|
||||
// TODO(mdempsky): Remove in followup CL.
|
||||
Curfn.Func.UnsortedDcls = append([]*Node(nil), Curfn.Func.Dcl...)
|
||||
|
||||
if f.Config.NeedsFpScratch {
|
||||
scratchFpMem = temp(Types[TUINT64])
|
||||
scratchFpMem.Used = scratchUsed
|
||||
@ -432,18 +426,13 @@ func compile(fn *Node) {
|
||||
}
|
||||
}
|
||||
|
||||
for _, n := range fn.Func.UnsortedDcls {
|
||||
for _, n := range fn.Func.Dcl {
|
||||
if n.Op != ONAME { // might be OTYPE or OLITERAL
|
||||
continue
|
||||
}
|
||||
switch n.Class {
|
||||
case PAUTO:
|
||||
if !n.Used {
|
||||
// Hacks to appease toolstash -cmp.
|
||||
// TODO(mdempsky): Remove in followup CL.
|
||||
pcloc++
|
||||
Pc.Pc++
|
||||
Linksym(ngotype(n))
|
||||
continue
|
||||
}
|
||||
fallthrough
|
||||
|
@ -22,7 +22,7 @@ func TestSizeof(t *testing.T) {
|
||||
_32bit uintptr // size on 32bit platforms
|
||||
_64bit uintptr // size on 64bit platforms
|
||||
}{
|
||||
{Func{}, 108, 192}, // TODO(mdempsky): Change back to 96, 168 in followup CL.
|
||||
{Func{}, 96, 168},
|
||||
{Name{}, 52, 80},
|
||||
{Node{}, 92, 144},
|
||||
{Sym{}, 60, 112},
|
||||
|
@ -271,21 +271,20 @@ type Param struct {
|
||||
|
||||
// Func holds Node fields used only with function-like nodes.
|
||||
type Func struct {
|
||||
Shortname *Node
|
||||
Enter Nodes // for example, allocate and initialize memory for escaping parameters
|
||||
Exit Nodes
|
||||
Cvars Nodes // closure params
|
||||
Dcl []*Node // autodcl for this func/closure
|
||||
UnsortedDcls []*Node // autodcl for this func/closure
|
||||
Inldcl Nodes // copy of dcl for use in inlining
|
||||
Closgen int
|
||||
Outerfunc *Node // outer function (for closure)
|
||||
FieldTrack map[*Sym]struct{}
|
||||
Ntype *Node // signature
|
||||
Top int // top context (Ecall, Eproc, etc)
|
||||
Closure *Node // OCLOSURE <-> ODCLFUNC
|
||||
FCurfn *Node
|
||||
Nname *Node
|
||||
Shortname *Node
|
||||
Enter Nodes // for example, allocate and initialize memory for escaping parameters
|
||||
Exit Nodes
|
||||
Cvars Nodes // closure params
|
||||
Dcl []*Node // autodcl for this func/closure
|
||||
Inldcl Nodes // copy of dcl for use in inlining
|
||||
Closgen int
|
||||
Outerfunc *Node // outer function (for closure)
|
||||
FieldTrack map[*Sym]struct{}
|
||||
Ntype *Node // signature
|
||||
Top int // top context (Ecall, Eproc, etc)
|
||||
Closure *Node // OCLOSURE <-> ODCLFUNC
|
||||
FCurfn *Node
|
||||
Nname *Node
|
||||
|
||||
Inl Nodes // copy of the body for use in inlining
|
||||
InlCost int32
|
||||
|
Loading…
Reference in New Issue
Block a user