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