1
0
mirror of https://github.com/golang/go synced 2024-09-29 17:24:34 -06:00

cmd/compile: avoid range over copy of array

Passes toostash-check.

Slightly reduce compiler binary size:

file    before    after     Δ       %
compile 21087288  21070776  -16512  -0.078%
total   131847020 131830508 -16512  -0.013%

file                      before    after     Δ       %
cmd/compile/internal/gc.a 9007472   8999640   -7832   -0.087%
total                     127117794 127109962 -7832   -0.006%

Change-Id: I4aadd68d0a7545770598bed9d3a4d05899b67b52
Reviewed-on: https://go-review.googlesource.com/c/go/+/205777
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Cuong Manh Le 2019-11-01 18:12:27 +07:00 committed by Daniel Martí
parent 1d90e1a0ac
commit 7e1028a9ff
8 changed files with 13 additions and 13 deletions

View File

@ -1371,7 +1371,7 @@ func (e *Escape) finish(fns []*Node) {
fn.Esc = EscFuncTagged
narg := 0
for _, fs := range types.RecvsParams {
for _, fs := range &types.RecvsParams {
for _, f := range fs(fn.Type).Fields().Slice() {
narg++
f.Note = e.paramTag(fn, narg, f)

View File

@ -954,7 +954,7 @@ func (w *exportWriter) funcExt(n *Node) {
w.symIdx(n.Sym)
// Escape analysis.
for _, fs := range types.RecvsParams {
for _, fs := range &types.RecvsParams {
for _, f := range fs(n.Type).FieldSlice() {
w.string(f.Note)
}

View File

@ -660,7 +660,7 @@ func (r *importReader) funcExt(n *Node) {
r.symIdx(n.Sym)
// Escape analysis.
for _, fs := range types.RecvsParams {
for _, fs := range &types.RecvsParams {
for _, f := range fs(n.Type).FieldSlice() {
f.Note = r.string()
}

View File

@ -1071,7 +1071,7 @@ func loadsys() {
typecheckok = true
typs := runtimeTypes()
for _, d := range runtimeDecls {
for _, d := range &runtimeDecls {
sym := Runtimepkg.Lookup(d.name)
typ := typs[d.typ]
switch d.tag {
@ -1374,7 +1374,7 @@ var concurrentFlagOK = [256]bool{
}
func concurrentBackendAllowed() bool {
for i, x := range Debug {
for i, x := range &Debug {
if x != 0 && !concurrentFlagOK[i] {
return false
}

View File

@ -646,7 +646,7 @@ func (p *noder) expr(expr syntax.Expr) *Node {
}
n := p.nod(expr, op, p.expr(expr.X), nil)
var index [3]*Node
for i, x := range expr.Index {
for i, x := range &expr.Index {
if x != nil {
index[i] = p.expr(x)
}

View File

@ -419,7 +419,7 @@ func (lv *Liveness) regEffects(v *ssa.Value) (uevar, kill liveRegMask) {
if v.Type.Etype != types.TTUPLE {
v.Fatalf("location pair %s has non-tuple type %v", loc, v.Type)
}
for i, loc1 := range loc {
for i, loc1 := range &loc {
if loc1 == nil {
continue
}

View File

@ -3216,7 +3216,7 @@ func init() {
var p4 []*sys.Arch
var p8 []*sys.Arch
var lwatomics []*sys.Arch
for _, a := range sys.Archs {
for _, a := range &sys.Archs {
all = append(all, a)
if a.PtrSize == 4 {
p4 = append(p4, a)

View File

@ -66,7 +66,7 @@ var builtinFuncs = [...]struct {
// isBuiltinFuncName reports whether name matches a builtin function
// name.
func isBuiltinFuncName(name string) bool {
for _, fn := range builtinFuncs {
for _, fn := range &builtinFuncs {
if fn.name == name {
return true
}
@ -92,7 +92,7 @@ func initUniverse() {
// lexinit initializes known symbols and the basic types.
func lexinit() {
for _, s := range basicTypes {
for _, s := range &basicTypes {
etype := s.etype
if int(etype) >= len(types.Types) {
Fatalf("lexinit: %s bad etype", s.name)
@ -111,13 +111,13 @@ func lexinit() {
asNode(s2.Def).Name = new(Name)
}
for _, s := range builtinFuncs {
for _, s := range &builtinFuncs {
s2 := builtinpkg.Lookup(s.name)
s2.Def = asTypesNode(newname(s2))
asNode(s2.Def).SetSubOp(s.op)
}
for _, s := range unsafeFuncs {
for _, s := range &unsafeFuncs {
s2 := unsafepkg.Lookup(s.name)
s2.Def = asTypesNode(newname(s2))
asNode(s2.Def).SetSubOp(s.op)
@ -402,7 +402,7 @@ func lexinit1() {
dowidth(types.Runetype)
// backend-dependent builtin types (e.g. int).
for _, s := range typedefs {
for _, s := range &typedefs {
s1 := builtinpkg.Lookup(s.name)
sameas := s.sameas32