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

Investigate use of IR-based counter instrumentation for coverage #32847

Open
vedantk opened this issue Jun 18, 2017 · 4 comments
Open

Investigate use of IR-based counter instrumentation for coverage #32847

vedantk opened this issue Jun 18, 2017 · 4 comments
Assignees
Labels
bugzilla Issues migrated from bugzilla clang:codegen

Comments

@vedantk
Copy link
Collaborator

vedantk commented Jun 18, 2017

Bugzilla Link 33500
Version trunk
OS All

Extended Description

Coverage makes use of frontend-based PGO instrumentation, which is much less efficient than the IR-based kind, primarily because it has no visibility into LLVM's inlining decisions. This results in instrumented basic blocks which contain multiple (redundant) counter increments. If we can find a way to map counters inserted by IR PGO to AST nodes, we could improve the situation.

@vedantk
Copy link
Collaborator Author

vedantk commented Jun 18, 2017

assigned to @vedantk

@llvmbot
Copy link
Collaborator

llvmbot commented Jun 20, 2017

It seems to be doable: FE needs to create and pass the mapping from regions to basic blocks to LLVM in some way so that the IR PGO can use the information to update the counter expressions associated with source regions.

@efriedma-quic
Copy link
Collaborator

mentioned in issue llvm/llvm-bugzilla-archive#34533

1 similar comment
@kcc
Copy link
Contributor

kcc commented Nov 26, 2021

mentioned in issue llvm/llvm-bugzilla-archive#34533

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla clang:codegen
Projects
None yet
Development

No branches or pull requests

4 participants