Nicer swaps, loops (removed tmp variables). Use of bool instead of int.
This change passes go build -toolexec 'toolstash -cmp' -a std.
Change-Id: I541904c74b57297848decc51a8a4913a8eca4af3
Reviewed-on: https://go-review.googlesource.com/14316
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
t := nl.Type
t0 := t
- check := 0
+ check := false
if gc.Issigned[t.Etype] {
- check = 1
+ check = true
if gc.Isconst(nl, gc.CTINT) && nl.Int() != -(1<<uint64(t.Width*8-1)) {
- check = 0
+ check = false
} else if gc.Isconst(nr, gc.CTINT) && nr.Int() != -1 {
- check = 0
+ check = false
}
}
} else {
t = gc.Types[gc.TUINT32]
}
- check = 0
+ check = false
}
a := optoas(op, t)
}
var p2 *obj.Prog
- if check != 0 {
+ if check {
gc.Nodconst(&n4, t, -1)
gins(optoas(gc.OCMP, t), &n3, &n4)
p1 := gc.Gbranch(optoas(gc.ONE, t), nil, +1)
gmove(&dx, res)
}
restx(&dx, &olddx)
- if check != 0 {
+ if check {
gc.Patch(p2, gc.Pc)
}
restx(&ax, &oldax)
t := nl.Type
a := optoas(gc.OHMUL, t)
if nl.Ullman < nr.Ullman {
- tmp := nl
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
var n1 gc.Node
// largest ullman on left.
if nl.Ullman < nr.Ullman {
- tmp := nl
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
// generate operands in "8-bit" registers.
n1.Op = gc.OINDREG
var z gc.Node
gc.Nodconst(&z, gc.Types[gc.TUINT64], 0)
- for {
- tmp14 := q
- q--
- if tmp14 <= 0 {
- break
- }
+ for ; q > 0; q-- {
n1.Type = z.Type
gins(x86.AMOVQ, &z, &n1)
n1.Xoffset += 8
}
gc.Nodconst(&z, gc.Types[gc.TUINT8], 0)
- for {
- tmp15 := c
- c--
- if tmp15 <= 0 {
- break
- }
+ for ; c > 0; c-- {
n1.Type = z.Type
gins(x86.AMOVB, &z, &n1)
n1.Xoffset++
gc.Regfree(&nend)
} else {
var p *obj.Prog
- for {
- tmp14 := c
- c--
- if tmp14 <= 0 {
- break
- }
+ for ; c > 0; c-- {
p = gins(op, &src, &tmp)
p.From.Type = obj.TYPE_MEM
p.From.Offset = int64(dir)
*/
func cgen_hmul(nl *gc.Node, nr *gc.Node, res *gc.Node) {
if nl.Ullman < nr.Ullman {
- tmp := nl
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
t := nl.Type
// ADDs. That will produce shorter, more
// pipeline-able code.
var p *obj.Prog
- for {
- tmp14 := c
- c--
- if tmp14 <= 0 {
- break
- }
-
+ for ; c > 0; c-- {
p = gins(op, &src, &tmp)
p.From.Type = obj.TYPE_MEM
p.From.Offset = int64(dir)
t := nl.Type
t0 := t
- check := 0
+ check := false
if gc.Issigned[t.Etype] {
- check = 1
+ check = true
if gc.Isconst(nl, gc.CTINT) && nl.Int() != -(1<<uint64(t.Width*8-1)) {
- check = 0
+ check = false
} else if gc.Isconst(nr, gc.CTINT) && nr.Int() != -1 {
- check = 0
+ check = false
}
}
} else {
t = gc.Types[gc.TUINT64]
}
- check = 0
+ check = false
}
a := optoas(gc.ODIV, t)
gc.Patch(p1, gc.Pc)
var p2 *obj.Prog
- if check != 0 {
+ if check {
var nm1 gc.Node
gc.Nodconst(&nm1, t, -1)
gcmp(optoas(gc.OCMP, t), &tr, &nm1)
}
gc.Regfree(&tl)
- if check != 0 {
+ if check {
gc.Patch(p2, gc.Pc)
}
}
func cgen_hmul(nl *gc.Node, nr *gc.Node, res *gc.Node) {
// largest ullman on left.
if nl.Ullman < nr.Ullman {
- tmp := (*gc.Node)(nl)
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
t := (*gc.Type)(nl.Type)
*/
sbop: // symmetric binary
if nl.Ullman < nr.Ullman || (nl.Ullman == nr.Ullman && (Smallintconst(nl) || (nr.Op == OLITERAL && !Smallintconst(nr)))) {
- r := nl
- nl = nr
- nr = r
+ nl, nr = nr, nl
}
abop: // asymmetric binary
for j = 0; j < len(lv.vars); j++ {
n = lv.vars[j]
if islive(n, args, locals) {
- tmp9 := printed
- printed++
- if tmp9 != 0 {
+ if printed != 0 {
fmt.Printf(",")
}
fmt.Printf("%v", n)
+ printed++
}
}
-
fmt.Printf("\n")
}
i++
}
sort.Sort(methcmp(a[:i]))
- for {
- tmp11 := i
- i--
- if tmp11 <= 0 {
- break
- }
+ for i--; i >= 0; i-- {
a[i].Down = f
f = a[i]
}
setlineno(ll.N)
typecheck(&ll.N, Erv)
if f == nil {
- tmp12 := bad
- bad++
- if tmp12 == 0 {
+ if bad == 0 {
Yyerror("too many values in struct initializer")
}
+ bad++
continue
}
l = ll.N
setlineno(l)
if l.Op != OKEY {
- tmp13 := bad
- bad++
- if tmp13 == 0 {
+ if bad == 0 {
Yyerror("mixture of field:value and value initializers")
}
+ bad++
typecheck(&ll.N, Erv)
continue
}
// ADDs. That will produce shorter, more
// pipeline-able code.
var p *obj.Prog
- for {
- tmp14 := c
- c--
- if tmp14 <= 0 {
- break
- }
-
+ for ; c > 0; c-- {
p = gins(op, &src, &tmp)
p.From.Type = obj.TYPE_MEM
p.From.Offset = int64(dir)
t := nl.Type
t0 := t
- check := 0
+ check := false
if gc.Issigned[t.Etype] {
- check = 1
+ check = true
if gc.Isconst(nl, gc.CTINT) && nl.Int() != -(1<<uint64(t.Width*8-1)) {
- check = 0
+ check = false
} else if gc.Isconst(nr, gc.CTINT) && nr.Int() != -1 {
- check = 0
+ check = false
}
}
} else {
t = gc.Types[gc.TUINT64]
}
- check = 0
+ check = false
}
a := optoas(gc.ODIV, t)
gc.Patch(p1, gc.Pc)
var p2 *obj.Prog
- if check != 0 {
+ if check {
var nm1 gc.Node
gc.Nodconst(&nm1, t, -1)
gins(optoas(gc.OCMP, t), &tr, &nm1)
}
gc.Regfree(&tl)
- if check != 0 {
+ if check {
gc.Patch(p2, gc.Pc)
}
}
func cgen_hmul(nl *gc.Node, nr *gc.Node, res *gc.Node) {
// largest ullman on left.
if nl.Ullman < nr.Ullman {
- tmp := (*gc.Node)(nl)
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
t := (*gc.Type)(nl.Type)
n1.Op = gc.OINDREG
var z gc.Node
gc.Nodconst(&z, gc.Types[gc.TUINT64], 0)
- for {
- tmp14 := q
- q--
- if tmp14 <= 0 {
- break
- }
+ for ; q > 0; q-- {
n1.Type = z.Type
gins(x86.AMOVL, &z, &n1)
n1.Xoffset += 4
}
gc.Nodconst(&z, gc.Types[gc.TUINT8], 0)
- for {
- tmp15 := c
- c--
- if tmp15 <= 0 {
- break
- }
+ for ; c > 0; c-- {
n1.Type = z.Type
gins(x86.AMOVB, &z, &n1)
n1.Xoffset++
t := nl.Type
t0 := t
- check := 0
+ check := false
if gc.Issigned[t.Etype] {
- check = 1
+ check = true
if gc.Isconst(nl, gc.CTINT) && nl.Int() != -1<<uint64(t.Width*8-1) {
- check = 0
+ check = false
} else if gc.Isconst(nr, gc.CTINT) && nr.Int() != -1 {
- check = 0
+ check = false
}
}
} else {
t = gc.Types[gc.TUINT32]
}
- check = 0
+ check = false
}
var t1 gc.Node
gc.Patch(p1, gc.Pc)
}
- if check != 0 {
+ if check {
gc.Nodconst(&n4, t, -1)
gins(optoas(gc.OCMP, t), &n1, &n4)
p1 := gc.Gbranch(optoas(gc.ONE, t), nil, +1)
} else {
gmove(dx, res)
}
- if check != 0 {
+ if check {
gc.Patch(p2, gc.Pc)
}
}
// largest ullman on left.
if nl.Ullman < nr.Ullman {
- tmp := nl
- nl = nr
- nr = tmp
+ nl, nr = nr, nl
}
var nt gc.Node
sbop: // symmetric binary
if nl.Ullman < nr.Ullman || nl.Op == gc.OLITERAL {
- r := nl
- nl = nr
- nr = r
+ nl, nr = nr, nl
}
abop: // asymmetric binary