LLVM 19.0.0git
|
Classes | |
struct | AllocationInfo |
class | CallStack |
Helper class to iterate through stack ids in both metadata (memprof MIB and callsite) and the corresponding ThinLTO summary data structures (CallsiteInfo and MIBInfo). More... | |
class | CallStackLookupTrait |
class | CallStackTrie |
Class to build a trie of call stack contexts for a particular profiled allocation call, along with their associated allocation types. More... | |
class | CallStackWriterTrait |
struct | Frame |
class | FrameLookupTrait |
class | FrameWriterTrait |
struct | IndexedAllocationInfo |
struct | IndexedMemProfRecord |
class | MemProfReader |
struct | MemProfRecord |
struct | PortableMemInfoBlock |
class | RawMemProfReader |
class | RecordLookupTrait |
class | RecordWriterTrait |
Typedefs | |
using | MemProfSchema = llvm::SmallVector< Meta, static_cast< int >(Meta::Size)> |
using | FrameId = uint64_t |
using | CallStackId = uint64_t |
using | CallStackMap = llvm::DenseMap< uint64_t, llvm::SmallVector< uint64_t > > |
Enumerations | |
enum | IndexedVersion : uint64_t { Version0 = 0 , Version1 = 1 , Version2 = 2 } |
enum class | Meta : uint64_t { Start = 0 , MIBEntryDef , Size } |
Variables | |
constexpr uint64_t | MinimumSupportedVersion = Version0 |
constexpr uint64_t | MaximumSupportedVersion = Version2 |
using llvm::memprof::CallStackId = typedef uint64_t |
using llvm::memprof::CallStackMap = typedef llvm::DenseMap<uint64_t, llvm::SmallVector<uint64_t> > |
Definition at line 136 of file MemProfReader.h.
using llvm::memprof::FrameId = typedef uint64_t |
using llvm::memprof::MemProfSchema = typedef llvm::SmallVector<Meta, static_cast<int>(Meta::Size)> |
|
strong |
MDNode * llvm::memprof::buildCallstackMetadata | ( | ArrayRef< uint64_t > | CallStack, |
LLVMContext & | Ctx | ||
) |
Build callstack metadata from the provided list of call stack ids.
Returns the resulting metadata node.
Definition at line 65 of file MemoryProfileInfo.cpp.
References llvm::MDNode::get(), llvm::ValueAsMetadata::get(), and llvm::Type::getInt64Ty().
Referenced by addCallsiteMetadata(), and createMIBNode().
|
static |
Definition at line 145 of file MemProf.cpp.
References hashCallStack(), I, Ptr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::memprof::PortableMemInfoBlock::serializedSize().
Referenced by llvm::memprof::IndexedMemProfRecord::deserialize().
|
static |
Definition at line 189 of file MemProf.cpp.
References I, Ptr, and llvm::memprof::PortableMemInfoBlock::serializedSize().
Referenced by llvm::memprof::IndexedMemProfRecord::deserialize().
AllocationType llvm::memprof::getAllocType | ( | uint64_t | TotalLifetimeAccessDensity, |
uint64_t | AllocCount, | ||
uint64_t | TotalLifetime | ||
) |
Return the allocation type for a given set of memory profile values.
Definition at line 44 of file MemoryProfileInfo.cpp.
References MemProfAveLifetimeColdThreshold, MemProfLifetimeAccessDensityColdThreshold, and MemProfMinAveLifetimeAccessDensityHotThreshold.
Referenced by addCallStack().
std::string llvm::memprof::getAllocTypeAttributeString | ( | AllocationType | Type | ) |
Returns the string to use in attributes with the given type.
Definition at line 97 of file MemoryProfileInfo.cpp.
References assert(), and llvm_unreachable.
Referenced by addAllocTypeAttribute(), and createMIBNode().
AllocationType llvm::memprof::getMIBAllocType | ( | const MDNode * | MIB | ) |
Returns the allocation type from an MIB metadata node.
Definition at line 82 of file MemoryProfileInfo.cpp.
References assert(), llvm::MDNode::getNumOperands(), and llvm::MDNode::getOperand().
Referenced by llvm::memprof::CallStackTrie::addCallStack(), and computeFunctionSummary().
Returns the stack node from an MIB metadata node.
Definition at line 76 of file MemoryProfileInfo.cpp.
References assert(), llvm::MDNode::getNumOperands(), and llvm::MDNode::getOperand().
Referenced by llvm::memprof::CallStackTrie::addCallStack(), computeFunctionSummary(), and propagateMemProfHelper().
CallStackId llvm::memprof::hashCallStack | ( | ArrayRef< FrameId > | CS | ) |
Definition at line 292 of file MemProf.cpp.
References llvm::HashBuilder< HasherT, Endianness >::add(), F, llvm::HashBuilderBase< HasherT >::final(), and llvm::little.
Referenced by deserializeV0(), llvm::memprof::MemProfReader::MemProfReader(), and verifyIndexedMemProfRecord().
bool llvm::memprof::hasSingleAllocType | ( | uint8_t | AllocTypes | ) |
True if the AllocTypes bitmask contains just a single type.
Definition at line 121 of file MemoryProfileInfo.cpp.
References assert(), and llvm::popcount().
Referenced by llvm::memprof::CallStackTrie::buildAndAttachMIBMetadata().
Expected< MemProfSchema > llvm::memprof::readMemProfSchema | ( | const unsigned char *& | Buffer | ) |
Definition at line 266 of file MemProf.cpp.
References I, llvm::malformed, Ptr, and Size.
Referenced by llvm::IndexedMemProfReader::deserialize().
|
static |
Definition at line 13 of file MemProf.cpp.
References llvm::memprof::IndexedAllocationInfo::CallStack, llvm::memprof::PortableMemInfoBlock::serializedSize(), and Size.
Referenced by llvm::memprof::IndexedAllocationInfo::serializedSize(), and llvm::memprof::IndexedMemProfRecord::serializedSize().
|
static |
Definition at line 47 of file MemProf.cpp.
|
static |
Definition at line 25 of file MemProf.cpp.
References llvm::memprof::PortableMemInfoBlock::serializedSize(), and Size.
Referenced by llvm::memprof::IndexedAllocationInfo::serializedSize(), and llvm::memprof::IndexedMemProfRecord::serializedSize().
|
static |
Definition at line 64 of file MemProf.cpp.
|
static |
Definition at line 90 of file MemProf.cpp.
References llvm::little, N, and OS.
Referenced by llvm::memprof::IndexedMemProfRecord::serialize().
|
static |
Definition at line 113 of file MemProf.cpp.
References llvm::little, N, and OS.
Referenced by llvm::memprof::IndexedMemProfRecord::serialize().
void llvm::memprof::verifyFunctionProfileData | ( | const llvm::MapVector< GlobalValue::GUID, IndexedMemProfRecord > & | FunctionProfileData | ) |
Definition at line 310 of file MemProf.cpp.
References verifyIndexedMemProfRecord().
void llvm::memprof::verifyIndexedMemProfRecord | ( | const IndexedMemProfRecord & | Record | ) |
Definition at line 303 of file MemProf.cpp.
References assert(), and hashCallStack().
Referenced by verifyFunctionProfileData().
Definition at line 32 of file MemProf.h.
Referenced by llvm::IndexedMemProfReader::deserialize(), and writeMemProf().
Definition at line 31 of file MemProf.h.
Referenced by llvm::IndexedMemProfReader::deserialize(), and writeMemProf().