From: David Chase Date: Mon, 14 Oct 2024 17:28:28 +0000 (-0400) Subject: cmd/compile: discount calls to closure variables X-Git-Tag: go1.24rc1~638 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ad7f736d8f51ea03166b698256385c869968ae3e;p=gostls13.git cmd/compile: discount calls to closure variables This causes more inlining for rangefunc code. The PAUTOHEAP case catches closure-passed-as-param to function that returns a closure, that calls the outer PPARAM. Change-Id: I927cf2e1924ed2191e0ad8be9a1f2e793b6f2b38 Reviewed-on: https://go-review.googlesource.com/c/go/+/620220 Reviewed-by: Keith Randall Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI --- diff --git a/src/cmd/compile/internal/inline/inl.go b/src/cmd/compile/internal/inline/inl.go index c38ed8be7f..e3462f54ec 100644 --- a/src/cmd/compile/internal/inline/inl.go +++ b/src/cmd/compile/internal/inline/inl.go @@ -544,7 +544,7 @@ opSwitch: } } } - if name.Class == ir.PPARAM { + if name.Class == ir.PPARAM || name.Class == ir.PAUTOHEAP && name.IsClosureVar() { extraCost = min(extraCost, inlineParamCallCost) } }