LLVM 20.0.0git
|
InstrProfCorrelator - A base class used to create raw instrumentation data to their functions. More...
#include "llvm/ProfileData/InstrProfCorrelator.h"
Classes | |
struct | Context |
struct | CorrelationData |
struct | Probe |
Public Types | |
enum | ProfCorrelatorKind { NONE , DEBUG_INFO , BINARY } |
Indicate if we should use the debug info or profile metadata sections to correlate. More... | |
enum | InstrProfCorrelatorKind { CK_32Bit , CK_64Bit } |
Public Member Functions | |
virtual Error | correlateProfileData (int MaxWarnings)=0 |
Construct a ProfileData vector used to correlate raw instrumentation data to their functions. | |
virtual Error | dumpYaml (int MaxWarnings, raw_ostream &OS)=0 |
Process debug info and dump the correlation data. | |
std::optional< size_t > | getDataSize () const |
Return the number of ProfileData elements. | |
const char * | getNamesPointer () const |
Return a pointer to the names string that this class constructs. | |
size_t | getNamesSize () const |
Return the number of bytes in the names string. | |
uint64_t | getCountersSectionSize () const |
Return the size of the counters section in bytes. | |
InstrProfCorrelatorKind | getKind () const |
virtual | ~InstrProfCorrelator ()=default |
Static Public Member Functions | |
static llvm::Expected< std::unique_ptr< InstrProfCorrelator > > | get (StringRef Filename, ProfCorrelatorKind FileKind, const object::BuildIDFetcher *BIDFetcher=nullptr, const ArrayRef< llvm::object::BuildID > BIs={}) |
Static Public Attributes | |
static const char * | FunctionNameAttributeName = "Function Name" |
static const char * | CFGHashAttributeName = "CFG Hash" |
static const char * | NumCountersAttributeName = "Num Counters" |
Protected Member Functions | |
InstrProfCorrelator (InstrProfCorrelatorKind K, std::unique_ptr< Context > Ctx) | |
Protected Attributes | |
const std::unique_ptr< Context > | Ctx |
std::string | Names |
std::vector< std::string > | NamesVec |
Friends | |
struct | yaml::MappingTraits< Probe > |
struct | yaml::SequenceElementTraits< Probe > |
struct | yaml::MappingTraits< CorrelationData > |
InstrProfCorrelator - A base class used to create raw instrumentation data to their functions.
Definition at line 34 of file InstrProfCorrelator.h.
Enumerator | |
---|---|
CK_32Bit | |
CK_64Bit |
Definition at line 72 of file InstrProfCorrelator.h.
Indicate if we should use the debug info or profile metadata sections to correlate.
Enumerator | |
---|---|
NONE | |
DEBUG_INFO | |
BINARY |
Definition at line 38 of file InstrProfCorrelator.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 96 of file InstrProfCorrelator.h.
|
pure virtual |
Construct a ProfileData vector used to correlate raw instrumentation data to their functions.
MaxWarnings | the maximum number of warnings to emit (0 = no limit) |
Implemented in llvm::InstrProfCorrelatorImpl< IntPtrT >.
|
pure virtual |
Process debug info and dump the correlation data.
MaxWarnings | the maximum number of warnings to emit (0 = no limit) |
Implemented in llvm::InstrProfCorrelatorImpl< IntPtrT >.
|
static |
Definition at line 94 of file InstrProfCorrelator.cpp.
References BINARY, DEBUG_INFO, llvm::ArrayRef< T >::empty(), llvm::errorOrToExpected(), llvm::object::BuildIDFetcher::fetch(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::ArrayRef< T >::front(), get(), llvm::MemoryBuffer::getFile(), llvm::ArrayRef< T >::size(), and llvm::unable_to_correlate_profile.
Referenced by get().
|
inline |
Return the size of the counters section in bytes.
Definition at line 64 of file InstrProfCorrelator.h.
References Ctx.
std::optional< size_t > InstrProfCorrelator::getDataSize | ( | ) | const |
Return the number of ProfileData elements.
Definition at line 175 of file InstrProfCorrelator.cpp.
References llvm::CallingConv::C, and llvm::dyn_cast().
|
inline |
Definition at line 73 of file InstrProfCorrelator.h.
Return a pointer to the names string that this class constructs.
Definition at line 58 of file InstrProfCorrelator.h.
References Names.
|
inline |
Return the number of bytes in the names string.
Definition at line 61 of file InstrProfCorrelator.h.
References Names.
|
friend |
Definition at line 100 of file InstrProfCorrelator.h.
|
friend |
Definition at line 100 of file InstrProfCorrelator.h.
|
friend |
Definition at line 100 of file InstrProfCorrelator.h.
Definition at line 69 of file InstrProfCorrelator.h.
Definition at line 94 of file InstrProfCorrelator.h.
Referenced by getCountersSectionSize(), llvm::BinaryInstrProfCorrelator< IntPtrT >::getNamesPointer(), llvm::BinaryInstrProfCorrelator< IntPtrT >::getNamesSize(), and llvm::InstrProfCorrelatorImpl< IntPtrT >::maybeSwap().
Definition at line 68 of file InstrProfCorrelator.h.
|
protected |
Definition at line 99 of file InstrProfCorrelator.h.
Referenced by getNamesPointer(), and getNamesSize().
|
protected |
Definition at line 100 of file InstrProfCorrelator.h.
Definition at line 70 of file InstrProfCorrelator.h.