]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile/internal/typecheck: push ONEW into go/defer wrappers
authorMatthew Dempsky <mdempsky@google.com>
Thu, 17 Aug 2023 05:37:42 +0000 (22:37 -0700)
committerGopher Robot <gobot@golang.org>
Thu, 17 Aug 2023 19:37:04 +0000 (19:37 +0000)
commit2c51ea11b0f96ece871f84f83fb393ff80ec8f4a
tree08a8bca8c7d6a2cfe7b12233e1552a30ab537558
parent7e2e648a2d55547f0e541668b893329ec195691a
cmd/compile/internal/typecheck: push ONEW into go/defer wrappers

Currently, we rewrite:

go f(new(T))

into:

tmp := new(T)
go func() { f(tmp) }()

However, we can both shrink the closure and improve escape analysis by
instead rewriting it into:

go func() { f(new(T)) }()

This CL does that.

Change-Id: Iae16a476368da35123052ca9ff41c49159980458
Reviewed-on: https://go-review.googlesource.com/c/go/+/520340
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
src/cmd/compile/internal/typecheck/stmt.go
test/fixedbugs/issue31573.go