13#ifndef LLVM_XRAY_FDRRECORDS_H
14#define LLVM_XRAY_FDRRECORDS_H
146 Seconds(S), Nanos(
N) {}
221 Size(S), TSC(T), CPU(
C), Data(
std::
move(
D)) {}
223 int32_t
size()
const {
return Size; }
251 int32_t
size()
const {
return Size; }
252 int32_t
delta()
const {
return Delta; }
279 int32_t
size()
const {
return Size; }
280 int32_t
delta()
const {
return Delta; }
327 int32_t
pid()
const {
return PID; }
350 int32_t
tid()
const {
return TID; }
378 static constexpr unsigned kFunctionRecordSize = 8;
427 : E(DE), OffsetPtr(
OP), Version(V) {}
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
void visit(MachineFunction &MF, MachineBasicBlock &Start, std::function< void(MachineBasicBlock *)> op)
Lightweight error class with error context and mandatory checking.
StringRef - Represent a constant reference to a string, i.e.
friend class RecordInitializer
static bool classof(const Record *R)
BufferExtents(uint64_t S)
friend class RecordInitializer
static bool classof(const Record *R)
CallArgRecord(uint64_t A)
friend class RecordInitializer
static bool classof(const Record *R)
CustomEventRecordV5(int32_t S, int32_t D, std::string P)
friend class RecordInitializer
static bool classof(const Record *R)
CustomEventRecord(uint64_t S, uint64_t T, uint16_t C, std::string D)
static bool classof(const Record *R)
friend class RecordInitializer
RecordTypes recordType() const
int32_t functionId() const
FunctionRecord(RecordTypes K, int32_t F, uint32_t D)
static bool classof(const Record *R)
NewBufferRecord(int32_t T)
friend class RecordInitializer
static bool classof(const Record *R)
friend class RecordInitializer
NewCPUIDRecord(uint16_t C, uint64_t T)
static bool classof(const Record *R)
friend class RecordInitializer
static bool classof(const Record *R)
static constexpr uint16_t DefaultVersion
RecordInitializer(DataExtractor &DE, uint64_t &OP)
RecordInitializer(DataExtractor &DE, uint64_t &OP, uint16_t V)
virtual Error visit(TSCWrapRecord &)=0
virtual Error visit(CallArgRecord &)=0
virtual Error visit(TypedEventRecord &)=0
virtual Error visit(CustomEventRecord &)=0
virtual Error visit(PIDRecord &)=0
virtual Error visit(WallclockRecord &)=0
virtual Error visit(FunctionRecord &)=0
virtual Error visit(NewBufferRecord &)=0
virtual ~RecordVisitor()=default
virtual Error visit(BufferExtents &)=0
virtual Error visit(CustomEventRecordV5 &)=0
virtual Error visit(NewCPUIDRecord &)=0
virtual Error visit(EndBufferRecord &)=0
static LLVM_ABI StringRef kindToString(RecordKind K)
Record(const Record &)=delete
@ RK_Metadata_BufferExtents
@ RK_Metadata_EndOfBuffer
@ RK_Metadata_WallClockTime
@ RK_Metadata_CustomEvent
@ RK_Metadata_LastMetadata
@ RK_Metadata_CustomEventV5
virtual Error apply(RecordVisitor &V)=0
Record & operator=(Record &&)=delete
virtual ~Record()=default
RecordKind getRecordType() const
Record & operator=(const Record &)=delete
friend class RecordInitializer
TSCWrapRecord(uint64_t B)
static bool classof(const Record *R)
friend class RecordInitializer
TypedEventRecord(int32_t S, int32_t D, uint16_t E, std::string P)
static bool classof(const Record *R)
uint16_t eventType() const
friend class RecordInitializer
static bool classof(const Record *R)
WallclockRecord(uint64_t S, uint32_t N)
@ C
The default llvm calling convention, compatible with C.
RecordTypes
Determines the supported types of records that could be seen in XRay traces.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.