diff options
author | David Chase <drchase@google.com> | 2018-06-29 19:47:19 +0000 |
---|---|---|
committer | David Chase <drchase@google.com> | 2018-06-29 19:48:48 +0000 |
commit | d4d8237a5bfee5965382ee43da9e70417e9516af (patch) | |
tree | 2fd103afb74b9f89628154dfe0276f985dad039a /src/cmd/compile/internal/ssa/schedule.go | |
parent | cbce223da02bb198b9984c161c6cd6291a80b3d9 (diff) | |
download | go-d4d8237a5bfee5965382ee43da9e70417e9516af.tar.gz go-d4d8237a5bfee5965382ee43da9e70417e9516af.zip |
Revert "cmd/compile: make OpAddr depend on VarDef in storeOrder"
This reverts commit 1a27f048ad25f151d2a17ce7f2d73d0d2dbe94cf.
Reason for revert: Broke the ssacheck and -N-l builders, and the -N-l fix looks like it will take some time and take a different route entirely.
Change-Id: Ie0ac5e86ab7d72a303dfbbc48dfdf1e092d4f61a
Reviewed-on: https://go-review.googlesource.com/121715
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/schedule.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/schedule.go | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/src/cmd/compile/internal/ssa/schedule.go b/src/cmd/compile/internal/ssa/schedule.go index c62c0c47e2..f1783a9532 100644 --- a/src/cmd/compile/internal/ssa/schedule.go +++ b/src/cmd/compile/internal/ssa/schedule.go @@ -310,7 +310,6 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value // A constant bound allows this to be stack-allocated. 64 is // enough to cover almost every storeOrder call. stores := make([]*Value, 0, 64) - var vardefs map[interface{}]*Value // OpAddr must depend on Vardef for Node hasNilCheck := false sset.clear() // sset is the set of stores that are used in other values for _, v := range values { @@ -324,12 +323,6 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value if v.Op == OpNilCheck { hasNilCheck = true } - if v.Op == OpVarDef { - if vardefs == nil { // Lazy init, not all blocks have vardefs - vardefs = make(map[interface{}]*Value) - } - vardefs[v.Aux] = v - } } if len(stores) == 0 || !hasNilCheck && f.pass.name == "nilcheckelim" { // there is no store, the order does not matter @@ -393,20 +386,7 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value stack = stack[:len(stack)-1] continue } - if w.Op == OpAddr { - // OpAddr depends only on relevant VarDef - vn := int32(0) - if vardefs != nil { - if a := vardefs[w.Aux]; a != nil { // if nil, it is in some other block, or global or arg - vn = storeNumber[a.ID] - } - } - vn += 2 - storeNumber[w.ID] = vn - count[vn]++ - stack = stack[:len(stack)-1] - continue - } + max := int32(0) // latest store dependency argsdone := true for _, a := range w.Args { |