]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: optimize nil checks
authorKeith Randall <khr@golang.org>
Sat, 24 Oct 2015 02:12:49 +0000 (19:12 -0700)
committerKeith Randall <khr@golang.org>
Sun, 25 Oct 2015 20:34:28 +0000 (20:34 +0000)
commit31115a5c98935b5dee2de73b991bc391141dfb9d
treefbef8ffa2f322b4a3fb5eb41978d8876bfb9f8e5
parenta3180d8b1daff3e0238a3ff08dd9a4213a9e1266
[dev.ssa] cmd/compile: optimize nil checks

Use faulting loads instead of test/jeq to do nil checks.
Fold nil checks into a following load/store if possible.

Makes binaries about 2% smaller.

Change-Id: I54af0f0a93c853f37e34e0ce7e3f01dd2ac87f64
Reviewed-on: https://go-review.googlesource.com/16287
Reviewed-by: David Chase <drchase@google.com>
16 files changed:
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/type.go
src/cmd/compile/internal/ssa/check.go
src/cmd/compile/internal/ssa/dom.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/gen/genericOps.go
src/cmd/compile/internal/ssa/gen/rulegen.go
src/cmd/compile/internal/ssa/nilcheck.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/rewritegeneric.go
src/cmd/compile/internal/ssa/type.go
src/cmd/compile/internal/ssa/type_test.go