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 AndricError BufferExtents::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)19*0b57cec5SDimitry AndricError WallclockRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)20*0b57cec5SDimitry AndricError NewCPUIDRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)21*0b57cec5SDimitry AndricError TSCWrapRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)22*0b57cec5SDimitry AndricError CustomEventRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)23*0b57cec5SDimitry AndricError CallArgRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)24*0b57cec5SDimitry AndricError PIDRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)25*0b57cec5SDimitry AndricError NewBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)26*0b57cec5SDimitry AndricError EndBufferRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)27*0b57cec5SDimitry AndricError FunctionRecord::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)28*0b57cec5SDimitry AndricError CustomEventRecordV5::apply(RecordVisitor &V) { return V.visit(*this); } apply(RecordVisitor & V)29*0b57cec5SDimitry AndricError TypedEventRecord::apply(RecordVisitor &V) { return V.visit(*this); } 30*0b57cec5SDimitry Andric kindToString(RecordKind K)31*0b57cec5SDimitry AndricStringRef 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