]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: undo special handling of zero-valued STRUCTLIT
authorCherry Zhang <cherryyz@google.com>
Tue, 14 Feb 2017 16:01:04 +0000 (11:01 -0500)
committerCherry Zhang <cherryyz@google.com>
Tue, 14 Feb 2017 18:57:56 +0000 (18:57 +0000)
commit78200799a290da7d53ebbd50c04e432a4ab14eec
treeac2101a1eea386aed41e2dcab95b03f9d3a2828a
parentbd91e3569a55e6ceed502422fca9db15f7198c35
cmd/compile: undo special handling of zero-valued STRUCTLIT

CL 35261 introduces special handling of zero-valued STRUCTLIT for
efficient struct zeroing. But it didn't cover all use cases, for
example, CONVNOP STRUCTLIT is not handled.

On the other hand, CL 34566 handles zeroing earlier, so we don't
need the change in CL 35261 for efficient zeroing. Other uses of
zero-valued struct literals are very rare. So undo the change in
walk.go in CL 35261.

Add a test for efficient zeroing.

Fixes #19084.

Change-Id: I0807f7423fb44d47bf325b3c1ce9611a14953853
Reviewed-on: https://go-review.googlesource.com/36955
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/asm_test.go
src/cmd/compile/internal/gc/walk.go
test/fixedbugs/issue19084.go [new file with mode: 0644]