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.