aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewrite386.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2020-04-23 19:22:26 -0700
committerJosh Bleecher Snyder <josharian@gmail.com>2020-04-24 16:44:20 +0000
commit67a8660b5acd570530f3777727d67e739e54cb2b (patch)
tree4a2550a3801fcb5bf4e8a341309a8315ab46ff24 /src/cmd/compile/internal/ssa/rewrite386.go
parent3a37fd4010dc20403d642e2c628cb0656a4fb968 (diff)
downloadgo-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/rewrite386.go')
-rw-r--r--src/cmd/compile/internal/ssa/rewrite386.go12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go
index b4d2056b3b..fc1e0541b2 100644
--- a/src/cmd/compile/internal/ssa/rewrite386.go
+++ b/src/cmd/compile/internal/ssa/rewrite386.go
@@ -5838,9 +5838,7 @@ func rewriteValue386_Op386MULLconst(v *Value) bool {
v.reset(Op386LEAL8)
v0 := b.NewValue0(v.Pos, Op386LEAL2, v.Type)
v0.AddArg2(x, x)
- v1 := b.NewValue0(v.Pos, Op386LEAL2, v.Type)
- v1.AddArg2(x, x)
- v.AddArg2(v0, v1)
+ v.AddArg2(v0, v0)
return true
}
// match: (MULLconst [37] x)
@@ -5879,9 +5877,7 @@ func rewriteValue386_Op386MULLconst(v *Value) bool {
v.reset(Op386LEAL8)
v0 := b.NewValue0(v.Pos, Op386LEAL4, v.Type)
v0.AddArg2(x, x)
- v1 := b.NewValue0(v.Pos, Op386LEAL4, v.Type)
- v1.AddArg2(x, x)
- v.AddArg2(v0, v1)
+ v.AddArg2(v0, v0)
return true
}
// match: (MULLconst [73] x)
@@ -5907,9 +5903,7 @@ func rewriteValue386_Op386MULLconst(v *Value) bool {
v.reset(Op386LEAL8)
v0 := b.NewValue0(v.Pos, Op386LEAL8, v.Type)
v0.AddArg2(x, x)
- v1 := b.NewValue0(v.Pos, Op386LEAL8, v.Type)
- v1.AddArg2(x, x)
- v.AddArg2(v0, v1)
+ v.AddArg2(v0, v0)
return true
}
// match: (MULLconst [c] x)