From: Keith Randall Date: Fri, 5 Feb 2016 02:02:03 +0000 (-0800) Subject: [dev.ssa] cmd/compile: remove redundant compare ops X-Git-Tag: go1.7beta1~1623^2^2~46 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6d40c62732ac76333426bdd6a67f8c1457ac8334;p=gostls13.git [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 Reviewed-by: David Chase --- diff --git a/src/cmd/compile/internal/ssa/flagalloc.go b/src/cmd/compile/internal/ssa/flagalloc.go index 85e9c4fbee..7ed1fe5908 100644 --- a/src/cmd/compile/internal/ssa/flagalloc.go +++ b/src/cmd/compile/internal/ssa/flagalloc.go @@ -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