From: Matthew Dempsky Date: Mon, 19 Dec 2016 16:19:50 +0000 (-0800) Subject: cmd/compile: restore zero assignment optimization for non-pointer types X-Git-Tag: go1.8rc1~88 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=75d367e34b42b8428d535122eadead87a0c11c8c;p=gostls13.git cmd/compile: restore zero assignment optimization for non-pointer types golang.org/cl/31572 disabled some write barrier optimizations, but inadvertantly disabled optimizations for some non-pointer composite literal assignments too. Fixes #18370. Change-Id: Ia25019bd3016b6ab58173298c7d16202676bce6b Reviewed-on: https://go-review.googlesource.com/34564 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 8248d503b3..efe2016e46 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -694,6 +694,10 @@ opswitch: break } + if !instrumenting && iszero(n.Right) && !needwritebarrier(n.Left, n.Right) { + break + } + switch n.Right.Op { default: n.Right = walkexpr(n.Right, init)