LLVM: include/llvm/XRay/FDRRecords.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_XRAY_FDRRECORDS_H
14#define LLVM_XRAY_FDRRECORDS_H
15
17#include
18#include
19
25
27
30
32public:
49
51
52private:
53 const RecordKind T;
54
55public:
61
63
64
65
67
69};
70
72public:
86
87protected:
90
91private:
93
94public:
96
101
103
105};
106
107
108
109
113
114public:
118
123
125
127
131};
132
137
138public:
142
146 Seconds(S), Nanos(N) {}
147
150
152
156};
157
162
163public:
167
172
174
176
178
182};
183
187
188public:
192
196
198
200
204};
205
207 int32_t Size = 0;
210 std::string Data{};
212
213public:
217
221 Size(S), TSC(T), CPU(C), Data(std::move(D)) {}
222
223 int32_t size() const { return Size; }
227
229
233};
234
236 int32_t Size = 0;
237 int32_t Delta = 0;
238 std::string Data{};
240
241public:
245
250
251 int32_t size() const { return Size; }
252 int32_t delta() const { return Delta; }
254
256
260};
261
263 int32_t Size = 0;
264 int32_t Delta = 0;
266 std::string Data{};
268
269public:
273
278
279 int32_t size() const { return Size; }
280 int32_t delta() const { return Delta; }
283
285
289};
290
294
295public:
299
303
305
307
311};
312
314 int32_t PID = 0;
316
317public:
321
326
327 int32_t pid() const { return PID; }
328
330
334};
335
337 int32_t TID = 0;
339
340public:
344
349
350 int32_t tid() const { return TID; }
351
353
357};
358
371
374 int32_t FuncId = 0;
377
378 static constexpr unsigned kFunctionRecordSize = 8;
379
380public:
382
385
386
387
391
393
397};
398
417
422
423public:
425
427 : E(DE), OffsetPtr(OP), Version(V) {}
428
431
444};
445
446}
447
448#endif
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.
Definition FDRRecords.h:110
friend class RecordInitializer
Definition FDRRecords.h:112
BufferExtents()
Definition FDRRecords.h:115
uint64_t size() const
Definition FDRRecords.h:124
static bool classof(const Record *R)
Definition FDRRecords.h:128
BufferExtents(uint64_t S)
Definition FDRRecords.h:119
Definition FDRRecords.h:291
friend class RecordInitializer
Definition FDRRecords.h:293
static bool classof(const Record *R)
Definition FDRRecords.h:308
CallArgRecord(uint64_t A)
Definition FDRRecords.h:300
CallArgRecord()
Definition FDRRecords.h:296
uint64_t arg() const
Definition FDRRecords.h:304
Definition FDRRecords.h:235
friend class RecordInitializer
Definition FDRRecords.h:239
StringRef data() const
Definition FDRRecords.h:253
static bool classof(const Record *R)
Definition FDRRecords.h:257
CustomEventRecordV5(int32_t S, int32_t D, std::string P)
Definition FDRRecords.h:246
int32_t size() const
Definition FDRRecords.h:251
CustomEventRecordV5()
Definition FDRRecords.h:242
int32_t delta() const
Definition FDRRecords.h:252
Definition FDRRecords.h:206
friend class RecordInitializer
Definition FDRRecords.h:211
static bool classof(const Record *R)
Definition FDRRecords.h:230
StringRef data() const
Definition FDRRecords.h:226
int32_t size() const
Definition FDRRecords.h:223
uint16_t cpu() const
Definition FDRRecords.h:225
CustomEventRecord()
Definition FDRRecords.h:214
CustomEventRecord(uint64_t S, uint64_t T, uint16_t C, std::string D)
Definition FDRRecords.h:218
uint64_t tsc() const
Definition FDRRecords.h:224
Definition FDRRecords.h:359
EndBufferRecord()
Definition FDRRecords.h:361
static bool classof(const Record *R)
Definition FDRRecords.h:367
Definition FDRRecords.h:372
friend class RecordInitializer
Definition FDRRecords.h:376
RecordTypes recordType() const
Definition FDRRecords.h:388
uint32_t delta() const
Definition FDRRecords.h:390
int32_t functionId() const
Definition FDRRecords.h:389
FunctionRecord(RecordTypes K, int32_t F, uint32_t D)
Definition FDRRecords.h:383
static bool classof(const Record *R)
Definition FDRRecords.h:394
FunctionRecord()
Definition FDRRecords.h:381
Definition FDRRecords.h:336
NewBufferRecord(int32_t T)
Definition FDRRecords.h:345
friend class RecordInitializer
Definition FDRRecords.h:338
static bool classof(const Record *R)
Definition FDRRecords.h:354
int32_t tid() const
Definition FDRRecords.h:350
NewBufferRecord()
Definition FDRRecords.h:341
Definition FDRRecords.h:158
uint64_t tsc() const
Definition FDRRecords.h:175
uint16_t cpuid() const
Definition FDRRecords.h:173
friend class RecordInitializer
Definition FDRRecords.h:161
NewCPUIDRecord()
Definition FDRRecords.h:164
NewCPUIDRecord(uint16_t C, uint64_t T)
Definition FDRRecords.h:168
static bool classof(const Record *R)
Definition FDRRecords.h:179
Definition FDRRecords.h:313
friend class RecordInitializer
Definition FDRRecords.h:315
static bool classof(const Record *R)
Definition FDRRecords.h:331
PIDRecord()
Definition FDRRecords.h:318
int32_t pid() const
Definition FDRRecords.h:327
PIDRecord(int32_t P)
Definition FDRRecords.h:322
Definition FDRRecords.h:418
static constexpr uint16_t DefaultVersion
Definition FDRRecords.h:424
RecordInitializer(DataExtractor &DE, uint64_t &OP)
Definition FDRRecords.h:429
RecordInitializer(DataExtractor &DE, uint64_t &OP, uint16_t V)
Definition FDRRecords.h:426
Definition FDRRecords.h:399
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
Definition FDRRecords.h:31
static LLVM_ABI StringRef kindToString(RecordKind K)
Record(const Record &)=delete
RecordKind
Definition FDRRecords.h:33
@ RK_Metadata_CallArg
Definition FDRRecords.h:41
@ RK_Metadata_BufferExtents
Definition FDRRecords.h:35
@ RK_Metadata_EndOfBuffer
Definition FDRRecords.h:44
@ RK_Metadata_TSCWrap
Definition FDRRecords.h:38
@ RK_Metadata_WallClockTime
Definition FDRRecords.h:36
@ RK_Metadata_TypedEvent
Definition FDRRecords.h:45
@ RK_Metadata_CustomEvent
Definition FDRRecords.h:39
@ RK_Metadata
Definition FDRRecords.h:34
@ RK_Metadata_LastMetadata
Definition FDRRecords.h:46
@ RK_Metadata_CustomEventV5
Definition FDRRecords.h:40
@ RK_Metadata_NewBuffer
Definition FDRRecords.h:43
@ RK_Function
Definition FDRRecords.h:47
@ RK_Metadata_PIDEntry
Definition FDRRecords.h:42
@ RK_Metadata_NewCPUId
Definition FDRRecords.h:37
virtual Error apply(RecordVisitor &V)=0
Record & operator=(Record &&)=delete
virtual ~Record()=default
RecordKind getRecordType() const
Definition FDRRecords.h:62
Record(RecordKind T)
Definition FDRRecords.h:60
Record & operator=(const Record &)=delete
Definition FDRRecords.h:184
friend class RecordInitializer
Definition FDRRecords.h:186
TSCWrapRecord(uint64_t B)
Definition FDRRecords.h:193
TSCWrapRecord()
Definition FDRRecords.h:189
uint64_t tsc() const
Definition FDRRecords.h:197
static bool classof(const Record *R)
Definition FDRRecords.h:201
Definition FDRRecords.h:262
friend class RecordInitializer
Definition FDRRecords.h:267
int32_t delta() const
Definition FDRRecords.h:280
TypedEventRecord(int32_t S, int32_t D, uint16_t E, std::string P)
Definition FDRRecords.h:274
int32_t size() const
Definition FDRRecords.h:279
static bool classof(const Record *R)
Definition FDRRecords.h:286
StringRef data() const
Definition FDRRecords.h:282
uint16_t eventType() const
Definition FDRRecords.h:281
TypedEventRecord()
Definition FDRRecords.h:270
Definition FDRRecords.h:133
uint64_t seconds() const
Definition FDRRecords.h:148
friend class RecordInitializer
Definition FDRRecords.h:136
uint32_t nanos() const
Definition FDRRecords.h:149
static bool classof(const Record *R)
Definition FDRRecords.h:153
WallclockRecord()
Definition FDRRecords.h:139
WallclockRecord(uint64_t S, uint32_t N)
Definition FDRRecords.h:143
@ 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.