LLVM 22.0.0git
llvm::InstrProfCorrelatorImpl< IntPtrT > Class Template Referenceabstract

InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized. More...

#include "llvm/ProfileData/InstrProfCorrelator.h"

Inheritance diagram for llvm::InstrProfCorrelatorImpl< IntPtrT >:
[legend]

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
LLVM_ABI std::optional< size_t > getDataSize () const
 Return the number of ProfileData elements.
const chargetNamesPointer () 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_ABI 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< ContextCtx
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 LLVM_ABI const charFunctionNameAttributeName = "Function Name"
static LLVM_ABI const charCFGHashAttributeName = "CFG Hash"
static LLVM_ABI const charNumCountersAttributeName = "Num Counters"

Detailed Description

template<class IntPtrT>
class llvm::InstrProfCorrelatorImpl< IntPtrT >

InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized.

Definition at line 131 of file InstrProfCorrelator.h.

Constructor & Destructor Documentation

◆ InstrProfCorrelatorImpl() [1/3]

◆ InstrProfCorrelatorImpl() [2/3]

◆ InstrProfCorrelatorImpl() [3/3]

Member Function Documentation

◆ addDataProbe()

template<class IntPtrT>
void InstrProfCorrelatorImpl::addDataProbe ( uint64_t FunctionName,
uint64_t CFGHash,
IntPtrT CounterOffset,
IntPtrT FunctionPtr,
uint32_t NumCounters )
protected

Definition at line 281 of file InstrProfCorrelator.cpp.

References Data, maybeSwap(), and llvm::NumCounters.

◆ classof() [1/3]

◆ classof() [2/3]

◆ classof() [3/3]

◆ correlateProfileData()

template<class IntPtrT>
Error InstrProfCorrelatorImpl::correlateProfileData ( int MaxWarnings)
overrideprotectedvirtual

Construct a ProfileData vector used to correlate raw instrumentation data to their functions.

Parameters
MaxWarningsthe maximum number of warnings to emit (0 = no limit)

Implements llvm::InstrProfCorrelator.

Definition at line 230 of file InstrProfCorrelator.cpp.

References assert(), correlateProfileDataImpl(), correlateProfileNameImpl(), Data, llvm::make_error(), llvm::InstrProfCorrelator::Names, llvm::InstrProfCorrelator::NamesVec, and llvm::unable_to_correlate_profile.

◆ correlateProfileDataImpl()

template<class IntPtrT>
virtual void llvm::InstrProfCorrelatorImpl< IntPtrT >::correlateProfileDataImpl ( int MaxWarnings,
InstrProfCorrelator::CorrelationData * Data = nullptr )
protectedpure virtual

References Data.

Referenced by correlateProfileData(), and dumpYaml().

◆ correlateProfileNameImpl()

template<class IntPtrT>
virtual Error llvm::InstrProfCorrelatorImpl< IntPtrT >::correlateProfileNameImpl ( )
protectedpure virtual

References llvm::NumCounters.

Referenced by correlateProfileData().

◆ dumpYaml()

template<class IntPtrT>
Error InstrProfCorrelatorImpl::dumpYaml ( int MaxWarnings,
raw_ostream & OS )
overrideprotectedvirtual

Process debug info and dump the correlation data.

Parameters
MaxWarningsthe maximum number of warnings to emit (0 = no limit)

Implements llvm::InstrProfCorrelator.

Definition at line 267 of file InstrProfCorrelator.cpp.

References correlateProfileDataImpl(), Data, llvm::make_error(), llvm::Error::success(), and llvm::unable_to_correlate_profile.

◆ get()

◆ getDataPointer()

template<class IntPtrT>
const RawInstrProf::ProfileData< IntPtrT > * llvm::InstrProfCorrelatorImpl< IntPtrT >::getDataPointer ( ) const
inline

Return a pointer to the underlying ProfileData vector that this class constructs.

Definition at line 138 of file InstrProfCorrelator.h.

References Data.

◆ getDataSize()

template<class IntPtrT>
size_t llvm::InstrProfCorrelatorImpl< IntPtrT >::getDataSize ( ) const
inline

Return the number of ProfileData elements.

Definition at line 143 of file InstrProfCorrelator.h.

References Data.

◆ maybeSwap()

template<class IntPtrT>
template<class T>
T llvm::InstrProfCorrelatorImpl< IntPtrT >::maybeSwap ( T Value) const
inlineprotected

Definition at line 166 of file InstrProfCorrelator.h.

References llvm::byteswap(), llvm::InstrProfCorrelator::Ctx, and T.

Referenced by addDataProbe().

Member Data Documentation

◆ Data


The documentation for this class was generated from the following files: