LLVM 20.0.0git
|
InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized. More...
#include "llvm/ProfileData/InstrProfCorrelator.h"
Public Member Functions | |
InstrProfCorrelatorImpl (std::unique_ptr< InstrProfCorrelator::Context > Ctx) | |
const RawInstrProf::ProfileData< IntPtrT > * | getDataPointer () const |
Return a pointer to the underlying ProfileData vector that this class constructs. | |
size_t | getDataSize () const |
Return the number of ProfileData elements. | |
InstrProfCorrelatorImpl (std::unique_ptr< InstrProfCorrelator::Context > Ctx) | |
InstrProfCorrelatorImpl (std::unique_ptr< InstrProfCorrelator::Context > Ctx) | |
bool | classof (const InstrProfCorrelator *C) |
bool | classof (const InstrProfCorrelator *C) |
Public Member Functions inherited from llvm::InstrProfCorrelator | |
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 bool | classof (const InstrProfCorrelator *C) |
static llvm::Expected< std::unique_ptr< InstrProfCorrelatorImpl< IntPtrT > > > | get (std::unique_ptr< InstrProfCorrelator::Context > Ctx, const object::ObjectFile &Obj, ProfCorrelatorKind FileKind) |
Static Public Member Functions inherited from llvm::InstrProfCorrelator | |
static llvm::Expected< std::unique_ptr< InstrProfCorrelator > > | get (StringRef Filename, ProfCorrelatorKind FileKind, const object::BuildIDFetcher *BIDFetcher=nullptr, const ArrayRef< llvm::object::BuildID > BIs={}) |
Protected Member Functions | |
Error | correlateProfileData (int MaxWarnings) override |
Construct a ProfileData vector used to correlate raw instrumentation data to their functions. | |
virtual void | correlateProfileDataImpl (int MaxWarnings, InstrProfCorrelator::CorrelationData *Data=nullptr)=0 |
virtual Error | correlateProfileNameImpl ()=0 |
Error | dumpYaml (int MaxWarnings, raw_ostream &OS) override |
Process debug info and dump the correlation data. | |
void | addDataProbe (uint64_t FunctionName, uint64_t CFGHash, IntPtrT CounterOffset, IntPtrT FunctionPtr, uint32_t NumCounters) |
template<class T > | |
T | maybeSwap (T Value) const |
Protected Member Functions inherited from llvm::InstrProfCorrelator | |
InstrProfCorrelator (InstrProfCorrelatorKind K, std::unique_ptr< Context > Ctx) | |
Protected Attributes | |
std::vector< RawInstrProf::ProfileData< IntPtrT > > | Data |
Protected Attributes inherited from llvm::InstrProfCorrelator | |
const std::unique_ptr< Context > | Ctx |
std::string | Names |
std::vector< std::string > | NamesVec |
Additional Inherited Members | |
Public Types inherited from llvm::InstrProfCorrelator | |
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 } |
Static Public Attributes inherited from llvm::InstrProfCorrelator | |
static const char * | FunctionNameAttributeName = "Function Name" |
static const char * | CFGHashAttributeName = "CFG Hash" |
static const char * | NumCountersAttributeName = "Num Counters" |
InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized.
Definition at line 130 of file InstrProfCorrelator.h.
llvm::InstrProfCorrelatorImpl< IntPtrT >::InstrProfCorrelatorImpl | ( | std::unique_ptr< InstrProfCorrelator::Context > | Ctx | ) |
llvm::InstrProfCorrelatorImpl< uint32_t >::InstrProfCorrelatorImpl | ( | std::unique_ptr< InstrProfCorrelator::Context > | Ctx | ) |
Definition at line 187 of file InstrProfCorrelator.cpp.
llvm::InstrProfCorrelatorImpl< uint64_t >::InstrProfCorrelatorImpl | ( | std::unique_ptr< InstrProfCorrelator::Context > | Ctx | ) |
Definition at line 192 of file InstrProfCorrelator.cpp.
|
protected |
Definition at line 281 of file InstrProfCorrelator.cpp.
|
static |
bool llvm::InstrProfCorrelatorImpl< uint32_t >::classof | ( | const InstrProfCorrelator * | C | ) |
Definition at line 197 of file InstrProfCorrelator.cpp.
References llvm::CallingConv::C.
bool llvm::InstrProfCorrelatorImpl< uint64_t >::classof | ( | const InstrProfCorrelator * | C | ) |
Definition at line 201 of file InstrProfCorrelator.cpp.
References llvm::CallingConv::C.
|
overrideprotectedvirtual |
Construct a ProfileData vector used to correlate raw instrumentation data to their functions.
MaxWarnings | the maximum number of warnings to emit (0 = no limit) |
Implements llvm::InstrProfCorrelator.
Definition at line 230 of file InstrProfCorrelator.cpp.
References assert().
|
protectedpure virtual |
|
protectedpure virtual |
|
overrideprotectedvirtual |
Process debug info and dump the correlation data.
MaxWarnings | the maximum number of warnings to emit (0 = no limit) |
Implements llvm::InstrProfCorrelator.
Definition at line 267 of file InstrProfCorrelator.cpp.
References OS, and llvm::Error::success().
|
static |
Definition at line 209 of file InstrProfCorrelator.cpp.
References llvm::DWARFContext::create(), llvm::object::Binary::isCOFF(), llvm::object::Binary::isELF(), and llvm::object::Binary::isMachO().
|
inline |
Return a pointer to the underlying ProfileData vector that this class constructs.
Definition at line 137 of file InstrProfCorrelator.h.
References llvm::InstrProfCorrelatorImpl< IntPtrT >::Data.
|
inline |
Return the number of ProfileData elements.
Definition at line 142 of file InstrProfCorrelator.h.
References llvm::InstrProfCorrelatorImpl< IntPtrT >::Data.
|
inlineprotected |
Definition at line 165 of file InstrProfCorrelator.h.
References llvm::byteswap(), and llvm::InstrProfCorrelator::Ctx.
|
protected |
Definition at line 149 of file InstrProfCorrelator.h.
Referenced by llvm::InstrProfCorrelatorImpl< IntPtrT >::getDataPointer(), and llvm::InstrProfCorrelatorImpl< IntPtrT >::getDataSize().