]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: use shifted and indexed ops in SSA for ARM
authorCherry Zhang <cherryyz@google.com>
Fri, 17 Jun 2016 14:34:06 +0000 (10:34 -0400)
committerCherry Zhang <cherryyz@google.com>
Fri, 15 Jul 2016 18:19:59 +0000 (18:19 +0000)
commit8cc3f4a17e2f4d63e090fd7bd39bee697521fddf
tree5e880cfe21e53973cbe855e5573165d3716b7c2e
parent14cf6e20832dd64d79c345e0fd59169c5bd0eb35
[dev.ssa] cmd/compile: use shifted and indexed ops in SSA for ARM

This CL implements the following optimizations for ARM:
- use shifted ops (e.g. ADD R1<<2, R2) and indexed load/stores
- break up shift ops. Shifts used to be one SSA op that generates
  multiple instructions. We break them up to multiple ops, which
  allows constant folding and CSE for comparisons. Conditional moves
  are introduced for this.
- simplify zero/sign-extension ops.

Updates #15365.

Change-Id: I55e262a776a7ef2a1505d75e04d1208913c35d39
Reviewed-on: https://go-review.googlesource.com/24512
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/arm/ssa.go
src/cmd/compile/internal/gc/testdata/arith_ssa.go
src/cmd/compile/internal/ssa/gen/ARM.rules
src/cmd/compile/internal/ssa/gen/ARMOps.go
src/cmd/compile/internal/ssa/op.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteARM.go