From ad7f736d8f51ea03166b698256385c869968ae3e Mon Sep 17 00:00:00 2001 From: David Chase Date: Mon, 14 Oct 2024 13:28:28 -0400 Subject: [PATCH] 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 --- src/cmd/compile/internal/inline/inl.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) } } -- 2.48.1