From 75d367e34b42b8428d535122eadead87a0c11c8c Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Mon, 19 Dec 2016 08:19:50 -0800 Subject: [PATCH] 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 --- src/cmd/compile/internal/gc/walk.go | 4 ++++ 1 file changed, 4 insertions(+) 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) -- 2.50.0