#include "llvm/ProfileData/MemProf.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/Function.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/ProfileData/SampleProf.h"
#include "llvm/Support/BLAKE3.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/HashBuilder.h"
namespace llvm {
namespace memprof {
MemProfSchema getFullSchema() { … }
MemProfSchema getHotColdSchema() { … }
static size_t serializedSizeV0(const IndexedAllocationInfo &IAI,
const MemProfSchema &Schema) { … }
static size_t serializedSizeV2(const IndexedAllocationInfo &IAI,
const MemProfSchema &Schema) { … }
static size_t serializedSizeV3(const IndexedAllocationInfo &IAI,
const MemProfSchema &Schema) { … }
size_t IndexedAllocationInfo::serializedSize(const MemProfSchema &Schema,
IndexedVersion Version) const { … }
static size_t serializedSizeV0(const IndexedMemProfRecord &Record,
const MemProfSchema &Schema) { … }
static size_t serializedSizeV2(const IndexedMemProfRecord &Record,
const MemProfSchema &Schema) { … }
static size_t serializedSizeV3(const IndexedMemProfRecord &Record,
const MemProfSchema &Schema) { … }
size_t IndexedMemProfRecord::serializedSize(const MemProfSchema &Schema,
IndexedVersion Version) const { … }
static void serializeV0(const IndexedMemProfRecord &Record,
const MemProfSchema &Schema, raw_ostream &OS) { … }
static void serializeV2(const IndexedMemProfRecord &Record,
const MemProfSchema &Schema, raw_ostream &OS) { … }
static void serializeV3(
const IndexedMemProfRecord &Record, const MemProfSchema &Schema,
raw_ostream &OS,
llvm::DenseMap<CallStackId, LinearCallStackId> &MemProfCallStackIndexes) { … }
void IndexedMemProfRecord::serialize(
const MemProfSchema &Schema, raw_ostream &OS, IndexedVersion Version,
llvm::DenseMap<CallStackId, LinearCallStackId> *MemProfCallStackIndexes)
const { … }
static IndexedMemProfRecord deserializeV0(const MemProfSchema &Schema,
const unsigned char *Ptr) { … }
static IndexedMemProfRecord deserializeV2(const MemProfSchema &Schema,
const unsigned char *Ptr) { … }
static IndexedMemProfRecord deserializeV3(const MemProfSchema &Schema,
const unsigned char *Ptr) { … }
IndexedMemProfRecord
IndexedMemProfRecord::deserialize(const MemProfSchema &Schema,
const unsigned char *Ptr,
IndexedVersion Version) { … }
MemProfRecord IndexedMemProfRecord::toMemProfRecord(
llvm::function_ref<std::vector<Frame>(const CallStackId)> Callback) const { … }
GlobalValue::GUID IndexedMemProfRecord::getGUID(const StringRef FunctionName) { … }
Expected<MemProfSchema> readMemProfSchema(const unsigned char *&Buffer) { … }
CallStackId hashCallStack(ArrayRef<FrameId> CS) { … }
LinearCallStackId CallStackRadixTreeBuilder::encodeCallStack(
const llvm::SmallVector<FrameId> *CallStack,
const llvm::SmallVector<FrameId> *Prev,
const llvm::DenseMap<FrameId, LinearFrameId> &MemProfFrameIndexes) { … }
void CallStackRadixTreeBuilder::build(
llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>>
&&MemProfCallStackData,
const llvm::DenseMap<FrameId, LinearFrameId> &MemProfFrameIndexes,
llvm::DenseMap<FrameId, FrameStat> &FrameHistogram) { … }
llvm::DenseMap<FrameId, FrameStat>
computeFrameHistogram(llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>>
&MemProfCallStackData) { … }
void verifyIndexedMemProfRecord(const IndexedMemProfRecord &Record) { … }
void verifyFunctionProfileData(
const llvm::MapVector<GlobalValue::GUID, IndexedMemProfRecord>
&FunctionProfileData) { … }
}
}