mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal/gc: cleaning; use range when appropriate
Made use of range statement in for loops. Cleaning along the way: -remove unnecessary variable declarations -rename variables -remove dead code This change passes go build -toolexec 'toolstash -cmp' -a std. Change-Id: Ife8c2a98482a81ba91f5bbb65142d9f3dc46d6ee Reviewed-on: https://go-review.googlesource.com/14379 Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
This commit is contained in:
parent
a326c3e1ad
commit
2dc63d1544
6 changed files with 172 additions and 247 deletions
|
|
@ -329,13 +329,13 @@ func staticcopy(l *Node, r *Node, out **NodeList) bool {
|
|||
// copy slice
|
||||
a := inittemps[r]
|
||||
|
||||
n1 := *l
|
||||
n1.Xoffset = l.Xoffset + int64(Array_array)
|
||||
gdata(&n1, Nod(OADDR, a, nil), Widthptr)
|
||||
n1.Xoffset = l.Xoffset + int64(Array_nel)
|
||||
gdata(&n1, r.Right, Widthint)
|
||||
n1.Xoffset = l.Xoffset + int64(Array_cap)
|
||||
gdata(&n1, r.Right, Widthint)
|
||||
n := *l
|
||||
n.Xoffset = l.Xoffset + int64(Array_array)
|
||||
gdata(&n, Nod(OADDR, a, nil), Widthptr)
|
||||
n.Xoffset = l.Xoffset + int64(Array_nel)
|
||||
gdata(&n, r.Right, Widthint)
|
||||
n.Xoffset = l.Xoffset + int64(Array_cap)
|
||||
gdata(&n, r.Right, Widthint)
|
||||
return true
|
||||
}
|
||||
fallthrough
|
||||
|
|
@ -344,24 +344,21 @@ func staticcopy(l *Node, r *Node, out **NodeList) bool {
|
|||
case OSTRUCTLIT:
|
||||
p := initplans[r]
|
||||
|
||||
n1 := *l
|
||||
var e *InitEntry
|
||||
var ll *Node
|
||||
var rr *Node
|
||||
for i := 0; i < len(p.E); i++ {
|
||||
e = &p.E[i]
|
||||
n1.Xoffset = l.Xoffset + e.Xoffset
|
||||
n1.Type = e.Expr.Type
|
||||
n := *l
|
||||
for i := range p.E {
|
||||
e := &p.E[i]
|
||||
n.Xoffset = l.Xoffset + e.Xoffset
|
||||
n.Type = e.Expr.Type
|
||||
if e.Expr.Op == OLITERAL {
|
||||
gdata(&n1, e.Expr, int(n1.Type.Width))
|
||||
gdata(&n, e.Expr, int(n.Type.Width))
|
||||
} else {
|
||||
ll = Nod(OXXX, nil, nil)
|
||||
*ll = n1
|
||||
ll := Nod(OXXX, nil, nil)
|
||||
*ll = n
|
||||
ll.Orig = ll // completely separate copy
|
||||
if !staticassign(ll, e.Expr, out) {
|
||||
// Requires computation, but we're
|
||||
// copying someone else's computation.
|
||||
rr = Nod(OXXX, nil, nil)
|
||||
rr := Nod(OXXX, nil, nil)
|
||||
|
||||
*rr = *orig
|
||||
rr.Orig = rr // completely separate copy
|
||||
|
|
@ -380,8 +377,6 @@ func staticcopy(l *Node, r *Node, out **NodeList) bool {
|
|||
}
|
||||
|
||||
func staticassign(l *Node, r *Node, out **NodeList) bool {
|
||||
var n1 Node
|
||||
|
||||
for r.Op == OCONVNOP {
|
||||
r = r.Left
|
||||
}
|
||||
|
|
@ -404,9 +399,9 @@ func staticassign(l *Node, r *Node, out **NodeList) bool {
|
|||
case OADDR:
|
||||
var nam Node
|
||||
if stataddr(&nam, r.Left) {
|
||||
n1 := *r
|
||||
n1.Left = &nam
|
||||
gdata(l, &n1, int(l.Type.Width))
|
||||
n := *r
|
||||
n.Left = &nam
|
||||
gdata(l, &n, int(l.Type.Width))
|
||||
return true
|
||||
}
|
||||
fallthrough
|
||||
|
|
@ -448,13 +443,13 @@ func staticassign(l *Node, r *Node, out **NodeList) bool {
|
|||
ta.Bound = Mpgetfix(r.Right.Val().U.(*Mpint))
|
||||
a := staticname(ta, 1)
|
||||
inittemps[r] = a
|
||||
n1 = *l
|
||||
n1.Xoffset = l.Xoffset + int64(Array_array)
|
||||
gdata(&n1, Nod(OADDR, a, nil), Widthptr)
|
||||
n1.Xoffset = l.Xoffset + int64(Array_nel)
|
||||
gdata(&n1, r.Right, Widthint)
|
||||
n1.Xoffset = l.Xoffset + int64(Array_cap)
|
||||
gdata(&n1, r.Right, Widthint)
|
||||
n := *l
|
||||
n.Xoffset = l.Xoffset + int64(Array_array)
|
||||
gdata(&n, Nod(OADDR, a, nil), Widthptr)
|
||||
n.Xoffset = l.Xoffset + int64(Array_nel)
|
||||
gdata(&n, r.Right, Widthint)
|
||||
n.Xoffset = l.Xoffset + int64(Array_cap)
|
||||
gdata(&n, r.Right, Widthint)
|
||||
|
||||
// Fall through to init underlying array.
|
||||
l = a
|
||||
|
|
@ -466,19 +461,17 @@ func staticassign(l *Node, r *Node, out **NodeList) bool {
|
|||
initplan(r)
|
||||
|
||||
p := initplans[r]
|
||||
n1 = *l
|
||||
var e *InitEntry
|
||||
var a *Node
|
||||
for i := 0; i < len(p.E); i++ {
|
||||
e = &p.E[i]
|
||||
n1.Xoffset = l.Xoffset + e.Xoffset
|
||||
n1.Type = e.Expr.Type
|
||||
n := *l
|
||||
for i := range p.E {
|
||||
e := &p.E[i]
|
||||
n.Xoffset = l.Xoffset + e.Xoffset
|
||||
n.Type = e.Expr.Type
|
||||
if e.Expr.Op == OLITERAL {
|
||||
gdata(&n1, e.Expr, int(n1.Type.Width))
|
||||
gdata(&n, e.Expr, int(n.Type.Width))
|
||||
} else {
|
||||
setlineno(e.Expr)
|
||||
a = Nod(OXXX, nil, nil)
|
||||
*a = n1
|
||||
a := Nod(OXXX, nil, nil)
|
||||
*a = n
|
||||
a.Orig = a // completely separate copy
|
||||
if !staticassign(a, e.Expr, out) {
|
||||
*out = list(*out, Nod(OAS, a, e.Expr))
|
||||
|
|
@ -569,9 +562,8 @@ func getdyn(n *Node, top int) int {
|
|||
break
|
||||
}
|
||||
|
||||
var value *Node
|
||||
for nl := n.List; nl != nil; nl = nl.Next {
|
||||
value = nl.N.Right
|
||||
value := nl.N.Right
|
||||
mode |= getdyn(value, 0)
|
||||
if mode == MODEDYNAM|MODECONST {
|
||||
break
|
||||
|
|
@ -582,18 +574,15 @@ func getdyn(n *Node, top int) int {
|
|||
}
|
||||
|
||||
func structlit(ctxt int, pass int, n *Node, var_ *Node, init **NodeList) {
|
||||
var r *Node
|
||||
var a *Node
|
||||
var index *Node
|
||||
var value *Node
|
||||
|
||||
for nl := n.List; nl != nil; nl = nl.Next {
|
||||
r = nl.N
|
||||
r := nl.N
|
||||
if r.Op != OKEY {
|
||||
Fatalf("structlit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
|
||||
var a *Node
|
||||
|
||||
switch value.Op {
|
||||
case OARRAYLIT:
|
||||
|
|
@ -650,18 +639,15 @@ func structlit(ctxt int, pass int, n *Node, var_ *Node, init **NodeList) {
|
|||
}
|
||||
|
||||
func arraylit(ctxt int, pass int, n *Node, var_ *Node, init **NodeList) {
|
||||
var r *Node
|
||||
var a *Node
|
||||
var index *Node
|
||||
var value *Node
|
||||
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
r = l.N
|
||||
r := l.N
|
||||
if r.Op != OKEY {
|
||||
Fatalf("arraylit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
|
||||
var a *Node
|
||||
|
||||
switch value.Op {
|
||||
case OARRAYLIT:
|
||||
|
|
@ -828,17 +814,14 @@ func slicelit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
*init = list(*init, a)
|
||||
|
||||
// put dynamics into slice (6)
|
||||
var value *Node
|
||||
var r *Node
|
||||
var index *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
r = l.N
|
||||
r := l.N
|
||||
if r.Op != OKEY {
|
||||
Fatalf("slicelit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
a = Nod(OINDEX, var_, index)
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
a := Nod(OINDEX, var_, index)
|
||||
a.Bounded = true
|
||||
|
||||
// TODO need to check bounds?
|
||||
|
|
@ -872,10 +855,6 @@ func slicelit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
}
|
||||
|
||||
func maplit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
||||
var r *Node
|
||||
var index *Node
|
||||
var value *Node
|
||||
|
||||
ctxt = 0
|
||||
|
||||
// make the map var
|
||||
|
|
@ -889,13 +868,12 @@ func maplit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
b := int64(0)
|
||||
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
r = l.N
|
||||
|
||||
r := l.N
|
||||
if r.Op != OKEY {
|
||||
Fatalf("maplit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
|
||||
if isliteral(index) && isliteral(value) {
|
||||
b++
|
||||
|
|
@ -936,17 +914,14 @@ func maplit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
vstat := staticname(t, ctxt)
|
||||
|
||||
b := int64(0)
|
||||
var index *Node
|
||||
var r *Node
|
||||
var value *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
r = l.N
|
||||
r := l.N
|
||||
|
||||
if r.Op != OKEY {
|
||||
Fatalf("maplit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
|
||||
if isliteral(index) && isliteral(value) {
|
||||
// build vstat[b].a = key;
|
||||
|
|
@ -981,13 +956,13 @@ func maplit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
// for i = 0; i < len(vstat); i++ {
|
||||
// map[vstat[i].a] = vstat[i].b
|
||||
// }
|
||||
index = temp(Types[TINT])
|
||||
index := temp(Types[TINT])
|
||||
|
||||
a = Nod(OINDEX, vstat, index)
|
||||
a.Bounded = true
|
||||
a = Nod(ODOT, a, newname(symb))
|
||||
|
||||
r = Nod(OINDEX, vstat, index)
|
||||
r := Nod(OINDEX, vstat, index)
|
||||
r.Bounded = true
|
||||
r = Nod(ODOT, r, newname(syma))
|
||||
r = Nod(OINDEX, var_, r)
|
||||
|
|
@ -1011,13 +986,13 @@ func maplit(ctxt int, n *Node, var_ *Node, init **NodeList) {
|
|||
|
||||
var val *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
r = l.N
|
||||
r := l.N
|
||||
|
||||
if r.Op != OKEY {
|
||||
Fatalf("maplit: rhs not OKEY: %v", r)
|
||||
}
|
||||
index = r.Left
|
||||
value = r.Right
|
||||
index := r.Left
|
||||
value := r.Right
|
||||
|
||||
if isliteral(index) && isliteral(value) {
|
||||
continue
|
||||
|
|
@ -1290,9 +1265,8 @@ func initplan(n *Node) {
|
|||
Fatalf("initplan")
|
||||
|
||||
case OARRAYLIT:
|
||||
var a *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
a = l.N
|
||||
a := l.N
|
||||
if a.Op != OKEY || !Smallintconst(a.Left) {
|
||||
Fatalf("initplan arraylit")
|
||||
}
|
||||
|
|
@ -1300,9 +1274,8 @@ func initplan(n *Node) {
|
|||
}
|
||||
|
||||
case OSTRUCTLIT:
|
||||
var a *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
a = l.N
|
||||
a := l.N
|
||||
if a.Op != OKEY || a.Left.Type == nil {
|
||||
Fatalf("initplan structlit")
|
||||
}
|
||||
|
|
@ -1310,9 +1283,8 @@ func initplan(n *Node) {
|
|||
}
|
||||
|
||||
case OMAPLIT:
|
||||
var a *Node
|
||||
for l := n.List; l != nil; l = l.Next {
|
||||
a = l.N
|
||||
a := l.N
|
||||
if a.Op != OKEY {
|
||||
Fatalf("initplan maplit")
|
||||
}
|
||||
|
|
@ -1332,13 +1304,11 @@ func addvalue(p *InitPlan, xoffset int64, key *Node, n *Node) {
|
|||
if isvaluelit(n) {
|
||||
initplan(n)
|
||||
q := initplans[n]
|
||||
var e *InitEntry
|
||||
for i := 0; i < len(q.E); i++ {
|
||||
e = entry(p)
|
||||
*e = q.E[i]
|
||||
for _, qe := range q.E {
|
||||
e := entry(p)
|
||||
*e = qe
|
||||
e.Xoffset += xoffset
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue