mirror of
https://github.com/golang/go
synced 2024-11-12 08:00:22 -07:00
[dev.ssa] cmd/compile: remove redundant compare ops
Flagalloc was recalculating flags is some situations when it didn't need to. Fixed by using the same name for the original flag calculation instruction throughout. Change-Id: Ic0bf58f728a8d87748434dd25a67b0708755e1f8 Reviewed-on: https://go-review.googlesource.com/19237 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
fd458ba499
commit
6d40c62732
@ -66,7 +66,7 @@ func flagalloc(f *Func) {
|
||||
for _, b := range f.Blocks {
|
||||
oldSched = append(oldSched[:0], b.Values...)
|
||||
b.Values = b.Values[:0]
|
||||
// The current live flag value.
|
||||
// The current live flag value the pre-flagalloc copy).
|
||||
var flag *Value
|
||||
if len(b.Preds) > 0 {
|
||||
flag = end[b.Preds[0].ID]
|
||||
@ -95,7 +95,7 @@ func flagalloc(f *Func) {
|
||||
// Update v.
|
||||
v.SetArg(i, c)
|
||||
// Remember the most-recently computed flag value.
|
||||
flag = c
|
||||
flag = a
|
||||
}
|
||||
// Issue v.
|
||||
b.Values = append(b.Values, v)
|
||||
@ -110,7 +110,7 @@ func flagalloc(f *Func) {
|
||||
// Recalculate control value.
|
||||
c := v.copyInto(b)
|
||||
b.Control = c
|
||||
flag = c
|
||||
flag = v
|
||||
}
|
||||
if v := end[b.ID]; v != nil && v != flag {
|
||||
// Need to reissue flag generator for use by
|
||||
|
Loading…
Reference in New Issue
Block a user