1
0
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:
Keith Randall 2016-02-04 18:02:03 -08:00
parent fd458ba499
commit 6d40c62732

View File

@ -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