14 using namespace support;
21 for (
const FrameId &Id :
N.CallStack)
23 N.Info.serialize(Schema,
OS);
30 for (
const FrameId &Id : Frames)
37 const unsigned char *
Ptr) {
38 using namespace support;
43 const uint64_t NumNodes = endian::readNext<uint64_t, little, unaligned>(
Ptr);
47 endian::readNext<uint64_t, little, unaligned>(
Ptr);
48 for (
uint64_t J = 0; J < NumFrames; J++) {
49 const FrameId Id = endian::readNext<FrameId, little, unaligned>(
Ptr);
50 Node.CallStack.push_back(Id);
52 Node.Info.deserialize(Schema,
Ptr);
58 const uint64_t NumCtxs = endian::readNext<uint64_t, little, unaligned>(
Ptr);
59 for (
uint64_t J = 0; J < NumCtxs; J++) {
61 endian::readNext<uint64_t, little, unaligned>(
Ptr);
64 for (
uint64_t K = 0; K < NumFrames; K++) {
65 const FrameId Id = endian::readNext<FrameId, little, unaligned>(
Ptr);
68 Record.CallSites.push_back(Frames);
89 using namespace support;
91 const unsigned char *
Ptr = Buffer;
93 endian::readNext<uint64_t, little, unaligned>(
Ptr);
96 "memprof schema invalid");
100 for (
size_t I = 0;
I < NumSchemaIds;
I++) {
101 const uint64_t Tag = endian::readNext<uint64_t, little, unaligned>(
Ptr);
104 "memprof schema invalid");
106 Result.push_back(
static_cast<Meta>(
Tag));
This file defines the SmallVector class.
Tagged union holding either a T or a Error.
GUID getGUID() const
Return a 64-bit global unique ID constructed from global value name (i.e.
void reserve(size_type N)
void push_back(const T &Elt)
StringRef - Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
static StringRef getCanonicalFnName(const Function &F)
Return the canonical name for a function, taking into account suffix elision policy attributes.
Expected< MemProfSchema > readMemProfSchema(const unsigned char *&Buffer)
This is an optimization pass for GlobalISel generic memory operations.
llvm::SmallVector< IndexedAllocationInfo > AllocSites
void serialize(const MemProfSchema &Schema, raw_ostream &OS)
llvm::SmallVector< llvm::SmallVector< FrameId > > CallSites
static GlobalValue::GUID getGUID(const StringRef FunctionName)
static IndexedMemProfRecord deserialize(const MemProfSchema &Schema, const unsigned char *Buffer)
static constexpr size_t serializedSize()
Adapter to write values to a stream in a particular byte order.