Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Tracked by #62463
prattmic opened this issue Dec 12, 2023 · 0 comments
Open
Tracked by #62463

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

prattmic opened this issue Dec 12, 2023 · 0 comments
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Performance
Milestone

Comments

@prattmic
Copy link
Member

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

@prattmic prattmic added Performance NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Dec 12, 2023
@prattmic prattmic added this to the Backlog milestone Dec 12, 2023
@gopherbot gopherbot added the compiler/runtime Issues related to the Go compiler and/or runtime. label Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Performance
Projects
Development

No branches or pull requests

2 participants