diff options
author | Joel Sing <joel@sing.id.au> | 2020-04-13 01:39:45 +1000 |
---|---|---|
committer | Joel Sing <joel@sing.id.au> | 2020-04-12 17:51:29 +0000 |
commit | fb16f4b82e2f7cb1a44cc6e32adad7ce2b0d0553 (patch) | |
tree | 565e378ff373012418d91cb4f96f2754607949ed /src/cmd/compile/internal/ssa/rewriteRISCV64.go | |
parent | 1eb66be1b933055102b2bdcaa113c04cc24e41f9 (diff) | |
download | go-fb16f4b82e2f7cb1a44cc6e32adad7ce2b0d0553.tar.gz go-fb16f4b82e2f7cb1a44cc6e32adad7ce2b0d0553.zip |
cmd/compile: log large copies on riscv64
Log large copies in the riscv64 compiler.
This was missed in 47ade08141b23cfeafed92943e16012d5dc5eb8b, resulting in
the new test added to cmd/compile/internal/logopt failing on riscv64.
Change-Id: I6f763e86f42834148e911d16928f9fbabcfa4290
Reviewed-on: https://go-review.googlesource.com/c/go/+/227804
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteRISCV64.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteRISCV64.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go index 7405f686eb6..6a0f7f1c96f 100644 --- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go +++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go @@ -1894,6 +1894,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { return true } // match: (Move [s] {t} dst src mem) + // cond: (s <= 16 || logLargeCopy(v, s)) // result: (LoweredMove [t.(*types.Type).Alignment()] dst src (ADDI <src.Type> [s-moveSize(t.(*types.Type).Alignment(), config)] src) mem) for { s := v.AuxInt @@ -1901,6 +1902,9 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { dst := v_0 src := v_1 mem := v_2 + if !(s <= 16 || logLargeCopy(v, s)) { + break + } v.reset(OpRISCV64LoweredMove) v.AuxInt = t.(*types.Type).Alignment() v0 := b.NewValue0(v.Pos, OpRISCV64ADDI, src.Type) @@ -1909,6 +1913,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { v.AddArg4(dst, src, v0, mem) return true } + return false } func rewriteValueRISCV64_OpMul16(v *Value) bool { v_1 := v.Args[1] |