diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2020-04-23 19:22:26 -0700 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2020-04-24 16:44:20 +0000 |
commit | 67a8660b5acd570530f3777727d67e739e54cb2b (patch) | |
tree | 4a2550a3801fcb5bf4e8a341309a8315ab46ff24 /src/cmd/compile/internal/ssa/rewritePPC64.go | |
parent | 3a37fd4010dc20403d642e2c628cb0656a4fb968 (diff) | |
download | go-67a8660b5acd570530f3777727d67e739e54cb2b.tar.gz go-67a8660b5acd570530f3777727d67e739e54cb2b.zip |
cmd/compile: CSE the RHS of rewrite rules
Keep track of all expressions encountered while
generating a rewrite result, and re-use them whenever possible.
Named expressions may still be used for clarity when desired.
Change-Id: I640dca108763eb8baeff8f9a4169300af3445b82
Reviewed-on: https://go-review.googlesource.com/c/go/+/229800
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Daniel Martà <mvdan@mvdan.cc>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewritePPC64.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewritePPC64.go | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go index 5bf9a364f7..13c188e78d 100644 --- a/src/cmd/compile/internal/ssa/rewritePPC64.go +++ b/src/cmd/compile/internal/ssa/rewritePPC64.go @@ -4948,9 +4948,7 @@ func rewriteValuePPC64_OpPPC64FGreaterEqual(v *Value) bool { v0.AuxInt = int64ToAuxInt(1) v1 := b.NewValue0(v.Pos, OpPPC64ISELB, typ.Int32) v1.AuxInt = int32ToAuxInt(1) - v2 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) - v2.AuxInt = int64ToAuxInt(1) - v1.AddArg2(v2, cmp) + v1.AddArg2(v0, cmp) v.AddArg3(v0, v1, cmp) return true } @@ -4985,9 +4983,7 @@ func rewriteValuePPC64_OpPPC64FLessEqual(v *Value) bool { v0.AuxInt = int64ToAuxInt(1) v1 := b.NewValue0(v.Pos, OpPPC64ISELB, typ.Int32) v1.AuxInt = int32ToAuxInt(0) - v2 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) - v2.AuxInt = int64ToAuxInt(1) - v1.AddArg2(v2, cmp) + v1.AddArg2(v0, cmp) v.AddArg3(v0, v1, cmp) return true } |