]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: fix rule for combining loads with compares
authorKeith Randall <keithr@alum.mit.edu>
Fri, 26 Oct 2018 17:52:59 +0000 (10:52 -0700)
committerBen Shi <powerman1st@163.com>
Sat, 27 Oct 2018 00:59:54 +0000 (00:59 +0000)
commit9f291d1fc38c25726c683becf8844fb8f81fb81b
treec9f53e116c3bcb3d837a136e80879c0792b79902
parent67a9c0afd1cc38fb119c3c4787280668bad0f750
cmd/compile: fix rule for combining loads with compares

Unlike normal load+op opcodes, the load+compare opcode does
not clobber its non-load argument. Allow the load+compare merge
to happen even if the non-load argument is used elsewhere.

Noticed when investigating issue #28417.

Change-Id: Ibc48d1f2e06ae76034c59f453815d263e8ec7288
Reviewed-on: https://go-review.googlesource.com/c/145097
Reviewed-by: Ainar Garipov <gugl.zadolbal@gmail.com>
Reviewed-by: Ben Shi <powerman1st@163.com>
src/cmd/compile/internal/ssa/gen/386.rules
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/S390X.rules
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewrite386.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/rewriteS390X.go
test/codegen/memops.go