]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: use typedmemclr for zeroing if there are pointers
authorAustin Clements <austin@google.com>
Tue, 18 Oct 2016 15:06:28 +0000 (11:06 -0400)
committerAustin Clements <austin@google.com>
Fri, 28 Oct 2016 19:13:23 +0000 (19:13 +0000)
commit8a7f0ad0b5b08faa09751b5528e5fa8831745aea
tree3443f4811bb0e6a6059708d7b151e4080ff5093f
parent58e2edafb718718225056530a7a09ee3e08a96d1
cmd/compile: use typedmemclr for zeroing if there are pointers

Currently, zeroing generates an ssa.OpZero, which never has write
barriers, even if the assignment is an OASWB. The hybrid barrier
requires write barriers on zeroing, so change OASWB to generate an
ssa.OpZeroWB when assigning the zero value, which turns into a
typedmemclr.

Updates #17503.

Change-Id: Ib37ac5e39f578447dbd6b36a6a54117d5624784d
Reviewed-on: https://go-review.googlesource.com/31451
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/gen/genericOps.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/writebarrier.go