Skip to content

cmd/compile: include PGO devirtualization targets in export data #64676

@prattmic

Description

@prattmic

When performing PGO devirtualization, we will look for callees reported by the profile from export data. If they are present, great! If not, it may be because that callee doesn't exist anymore, or it may exist but simply wasn't included in export data because it wasn't otherwise needed in export data.

For PGO inlining, we explicitly include bodies of functions that we expect to be PGO inlining targets. We could do the same with devirtualization, explicitly including any function in export data if we expect it to be a devirtualization callee.

I discussed this with @mdempsky a few months ago, who suggested that in addition to (or instead of?) IR-level PGO annotation, we also do analysis at the cmd/compile/internal/syntax level so that unified export generation could use PGO information to decide what needs to be exported.

cc @cherrymui @aclements

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone 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.

    Type

    No type

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions