-
Notifications
You must be signed in to change notification settings - Fork 19k
cmd/compile: PGO devirtualization of closures #64675
Copy link
Copy link
Open
Labels
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.Performancecompiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Milestone
Metadata
Metadata
Assignees
Labels
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.Performancecompiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Todo
https://go.dev/cl/539699 adds PGO devirtualization of calls to function values, but it is limited to callees that are standard functions. Closures (any function requiring closure context) are excluded due to the extra complexity of passing the closure context.
It should be feasible to devirtualize these calls, but will require extra work in SSA to pass a closure context to a closure call as well as work in IR to represent such static closure calls.
cc @cherrymui @aclements @mdempsky