xref: /llvm-project/llvm/lib/XRay/FDRRecords.cpp (revision 2946cd701067404b99c39fb29dc9c74bd7193eb3)
1a6c6343aSDean Michael Berris //===- FDRRecords.cpp -  XRay Flight Data Recorder Mode Records -----------===//
2a6c6343aSDean Michael Berris //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6a6c6343aSDean Michael Berris //
7a6c6343aSDean Michael Berris //===----------------------------------------------------------------------===//
8a6c6343aSDean Michael Berris //
9a6c6343aSDean Michael Berris // Define types and operations on these types that represent the different kinds
10a6c6343aSDean Michael Berris // of records we encounter in XRay flight data recorder mode traces.
11a6c6343aSDean Michael Berris //
12a6c6343aSDean Michael Berris //===----------------------------------------------------------------------===//
13a6c6343aSDean Michael Berris #include "llvm/XRay/FDRRecords.h"
14a6c6343aSDean Michael Berris 
15a6c6343aSDean Michael Berris namespace llvm {
16a6c6343aSDean Michael Berris namespace xray {
17a6c6343aSDean Michael Berris 
apply(RecordVisitor & V)18a6c6343aSDean Michael Berris Error BufferExtents::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)19a6c6343aSDean Michael Berris Error WallclockRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)20a6c6343aSDean Michael Berris Error NewCPUIDRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)21a6c6343aSDean Michael Berris Error TSCWrapRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)22a6c6343aSDean Michael Berris Error CustomEventRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)23a6c6343aSDean Michael Berris Error CallArgRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)24a6c6343aSDean Michael Berris Error PIDRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)25a6c6343aSDean Michael Berris Error NewBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)26a6c6343aSDean Michael Berris Error EndBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)27a6c6343aSDean Michael Berris Error FunctionRecord::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)2859439dd0SDean Michael Berris Error CustomEventRecordV5::apply(RecordVisitor &V) { return V.visit(*this); }
apply(RecordVisitor & V)2959439dd0SDean Michael Berris Error TypedEventRecord::apply(RecordVisitor &V) { return V.visit(*this); }
30a6c6343aSDean Michael Berris 
kindToString(RecordKind K)31da375a67SDean Michael Berris StringRef Record::kindToString(RecordKind K) {
32da375a67SDean Michael Berris   switch (K) {
33da375a67SDean Michael Berris   case RecordKind::RK_Metadata:
34da375a67SDean Michael Berris     return "Metadata";
35da375a67SDean Michael Berris   case RecordKind::RK_Metadata_BufferExtents:
36da375a67SDean Michael Berris     return "Metadata:BufferExtents";
37da375a67SDean Michael Berris   case RecordKind::RK_Metadata_WallClockTime:
38da375a67SDean Michael Berris     return "Metadata:WallClockTime";
39da375a67SDean Michael Berris   case RecordKind::RK_Metadata_NewCPUId:
40da375a67SDean Michael Berris     return "Metadata:NewCPUId";
41da375a67SDean Michael Berris   case RecordKind::RK_Metadata_TSCWrap:
42da375a67SDean Michael Berris     return "Metadata:TSCWrap";
43da375a67SDean Michael Berris   case RecordKind::RK_Metadata_CustomEvent:
44da375a67SDean Michael Berris     return "Metadata:CustomEvent";
45da375a67SDean Michael Berris   case RecordKind::RK_Metadata_CustomEventV5:
46da375a67SDean Michael Berris     return "Metadata:CustomEventV5";
47da375a67SDean Michael Berris   case RecordKind::RK_Metadata_CallArg:
48da375a67SDean Michael Berris     return "Metadata:CallArg";
49da375a67SDean Michael Berris   case RecordKind::RK_Metadata_PIDEntry:
50da375a67SDean Michael Berris     return "Metadata:PIDEntry";
51da375a67SDean Michael Berris   case RecordKind::RK_Metadata_NewBuffer:
52da375a67SDean Michael Berris     return "Metadata:NewBuffer";
53da375a67SDean Michael Berris   case RecordKind::RK_Metadata_EndOfBuffer:
54da375a67SDean Michael Berris     return "Metadata:EndOfBuffer";
55da375a67SDean Michael Berris   case RecordKind::RK_Metadata_TypedEvent:
56da375a67SDean Michael Berris     return "Metadata:TypedEvent";
57da375a67SDean Michael Berris   case RecordKind::RK_Metadata_LastMetadata:
58da375a67SDean Michael Berris     return "Metadata:LastMetadata";
59da375a67SDean Michael Berris   case RecordKind::RK_Function:
60da375a67SDean Michael Berris     return "Function";
61da375a67SDean Michael Berris   }
62da375a67SDean Michael Berris   return "Unknown";
63da375a67SDean Michael Berris }
64da375a67SDean Michael Berris 
65a6c6343aSDean Michael Berris } // namespace xray
66a6c6343aSDean Michael Berris } // namespace llvm
67