]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.ssa] cmd/compile, etc.: more ARM64 optimizations, and enable SSA by default
authorCherry Zhang <cherryyz@google.com>
Wed, 10 Aug 2016 17:24:03 +0000 (13:24 -0400)
committerCherry Zhang <cherryyz@google.com>
Mon, 15 Aug 2016 03:37:34 +0000 (03:37 +0000)
commitd99cee79b98dfb6c1cd8e64c96845ee29aa28b4c
tree0ff90ed7f4ed8db4040630d9b99ddc911cb21dcf
parent94c8e59ae11d374cd8dd46afec4710ad10500ad9
[dev.ssa] cmd/compile, etc.: more ARM64 optimizations, and enable SSA by default

Add more ARM64 optimizations:
- use hardware zero register when it is possible.
- use shifted ops.
  The assembler supports shifted ops but not documented, nor knows
  how to print it. This CL adds them.
- enable fast division.
  This was disabled because it makes the old backend generate slower
  code. But with SSA it generates faster code.

Turn on SSA by default, also adjust tests.

Change-Id: I7794479954c83bb65008dcb457bc1e21d7496da6
Reviewed-on: https://go-review.googlesource.com/26950
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
17 files changed:
src/cmd/asm/internal/asm/operand_test.go
src/cmd/compile/internal/arm64/prog.go
src/cmd/compile/internal/arm64/ssa.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/walk.go
src/cmd/compile/internal/ssa/gen/ARM64.rules
src/cmd/compile/internal/ssa/gen/ARM64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteARM64.go
src/cmd/internal/obj/arm64/a.out.go
src/cmd/internal/obj/link.go
src/cmd/internal/obj/util.go
test/live.go
test/live_ssa.go
test/nilptr3.go
test/nilptr3_ssa.go
test/sliceopt.go