mirror of
https://github.com/golang/go
synced 2024-11-12 10:20:27 -07:00
cmd/compile/internal/gc: remove redundant for label
Since there are no nested loops and/or switches, loop label can be removed and "bare continue" can be used. Change-Id: Id642a0859299e4470af544d59884fec51dbb31ee Reviewed-on: https://go-review.googlesource.com/135837 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
c03d0e4fec
commit
88c1fd642e
@ -234,7 +234,6 @@ func canMergeLoad(target, load, x *Value) bool {
|
||||
// memPreds contains memory states known to be predecessors of load's
|
||||
// memory state. It is lazily initialized.
|
||||
var memPreds map[*Value]bool
|
||||
search:
|
||||
for i := 0; len(args) > 0; i++ {
|
||||
const limit = 100
|
||||
if i >= limit {
|
||||
@ -246,13 +245,13 @@ search:
|
||||
if target.Block.ID != v.Block.ID {
|
||||
// Since target and load are in the same block
|
||||
// we can stop searching when we leave the block.
|
||||
continue search
|
||||
continue
|
||||
}
|
||||
if v.Op == OpPhi {
|
||||
// A Phi implies we have reached the top of the block.
|
||||
// The memory phi, if it exists, is always
|
||||
// the first logical store in the block.
|
||||
continue search
|
||||
continue
|
||||
}
|
||||
if v.Type.IsTuple() && v.Type.FieldType(1).IsMemory() {
|
||||
// We could handle this situation however it is likely
|
||||
@ -296,14 +295,14 @@ search:
|
||||
// load = read ... mem
|
||||
// target = add x load
|
||||
if memPreds[v] {
|
||||
continue search
|
||||
continue
|
||||
}
|
||||
return false
|
||||
}
|
||||
if len(v.Args) > 0 && v.Args[len(v.Args)-1] == mem {
|
||||
// If v takes mem as an input then we know mem
|
||||
// is valid at this point.
|
||||
continue search
|
||||
continue
|
||||
}
|
||||
for _, a := range v.Args {
|
||||
if target.Block.ID == a.Block.ID {
|
||||
|
Loading…
Reference in New Issue
Block a user