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 BerrisError BufferExtents::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)19a6c6343aSDean Michael BerrisError WallclockRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)20a6c6343aSDean Michael BerrisError NewCPUIDRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)21a6c6343aSDean Michael BerrisError TSCWrapRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)22a6c6343aSDean Michael BerrisError CustomEventRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)23a6c6343aSDean Michael BerrisError CallArgRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)24a6c6343aSDean Michael BerrisError PIDRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)25a6c6343aSDean Michael BerrisError NewBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)26a6c6343aSDean Michael BerrisError EndBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)27a6c6343aSDean Michael BerrisError FunctionRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)2859439dd0SDean Michael BerrisError CustomEventRecordV5::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)2959439dd0SDean Michael BerrisError TypedEventRecord::apply(RecordVisitor &V) { return V.visit(*this); } 30a6c6343aSDean Michael Berris kindToString(RecordKind K)31da375a67SDean Michael BerrisStringRef 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