aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/cse.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2016-07-13 16:15:54 -0700
committerKeith Randall <khr@golang.org>2016-07-18 16:11:36 +0000
commit25e0a367da6254d89b497f392ea9d1679455d000 (patch)
tree65d17174fd2ebfed7180ee993529857d318dba89 /src/cmd/compile/internal/ssa/cse.go
parent6b6de15d327142a19c978c8b9811310b174fd60b (diff)
downloadgo-25e0a367da6254d89b497f392ea9d1679455d000.tar.gz
go-25e0a367da6254d89b497f392ea9d1679455d000.zip
[dev.ssa] cmd/compile: clean up tuple types and selects
Make tuple types and their SelectX ops fully generic. These ops no longer need to be lowered. Regalloc understands them and their tuple-generating arguments. We can now have opcodes returning arbitrary pairs of results. (And it would be easy to move to >2 results if needed.) Update arm implementation to the new standard. Implement just enough in 386 port to do 64-bit add. Change-Id: I370ed5aacce219c82e1954c61d1f63af76c16f79 Reviewed-on: https://go-review.googlesource.com/24976 Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/cse.go')
-rw-r--r--src/cmd/compile/internal/ssa/cse.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/ssa/cse.go b/src/cmd/compile/internal/ssa/cse.go
index dcb6eb86dd..a000c577d1 100644
--- a/src/cmd/compile/internal/ssa/cse.go
+++ b/src/cmd/compile/internal/ssa/cse.go
@@ -171,10 +171,10 @@ func cse(f *Func) {
if rewrite[v.ID] != nil {
continue
}
- if !v.Op.isTupleSelector() {
+ if v.Op != OpSelect0 && v.Op != OpSelect1 {
continue
}
- if !v.Args[0].Op.isTupleGenerator() {
+ if !v.Args[0].Type.IsTuple() {
f.Fatalf("arg of tuple selector %s is not a tuple: %s", v.String(), v.Args[0].LongString())
}
t := rewrite[v.Args[0].ID]