]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: redo writebarrier pass
authorCherry Zhang <cherryyz@google.com>
Wed, 1 Feb 2017 19:27:40 +0000 (14:27 -0500)
committerCherry Zhang <cherryyz@google.com>
Fri, 17 Feb 2017 19:20:25 +0000 (19:20 +0000)
commitc4ef597c47a00c3f78916425153aefa171a3b12f
tree8945efb57d9bf5cce74c8edcb083304ae0bb5c25
parent98061fa5f3a2410c97625cf5eb5a2cd8816bb558
cmd/compile: redo writebarrier pass

SSA's writebarrier pass requires WB store ops are always at the
end of a block. If we move write barrier insertion into SSA and
emits normal Store ops when building SSA, this requirement becomes
impractical -- it will create too many blocks for all the Store
ops.

Redo SSA's writebarrier pass, explicitly order values in store
order, so it no longer needs this requirement.

Updates #17583.
Fixes #19067.

Change-Id: I66e817e526affb7e13517d4245905300a90b7170
Reviewed-on: https://go-review.googlesource.com/36834
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/gc/ssa.go
src/cmd/compile/internal/ssa/nilcheck.go
src/cmd/compile/internal/ssa/schedule.go
src/cmd/compile/internal/ssa/writebarrier.go