LLVM  13.0.0git
FDRTraceWriter.h
Go to the documentation of this file.
1 //===- FDRTraceWriter.h - XRay FDR Trace Writer -----------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // Test a utility that can write out XRay FDR Mode formatted trace files.
10 //
11 //===----------------------------------------------------------------------===//
12 #ifndef LLVM_XRAY_FDRTRACEWRITER_H
13 #define LLVM_XRAY_FDRTRACEWRITER_H
14 
17 #include "llvm/XRay/FDRRecords.h"
18 #include "llvm/XRay/XRayRecord.h"
19 
20 namespace llvm {
21 namespace xray {
22 
23 /// The FDRTraceWriter allows us to hand-craft an XRay Flight Data Recorder
24 /// (FDR) mode log file. This is used primarily for testing, generating
25 /// sequences of FDR records that can be read/processed. It can also be used to
26 /// generate various kinds of execution traces without using the XRay runtime.
27 /// Note that this writer does not do any validation, but uses the types of
28 /// records defined in the FDRRecords.h file.
29 class FDRTraceWriter : public RecordVisitor {
30 public:
31  // Construct an FDRTraceWriter associated with an output stream.
32  explicit FDRTraceWriter(raw_ostream &O, const XRayFileHeader &H);
34 
35  Error visit(BufferExtents &) override;
36  Error visit(WallclockRecord &) override;
37  Error visit(NewCPUIDRecord &) override;
38  Error visit(TSCWrapRecord &) override;
39  Error visit(CustomEventRecord &) override;
40  Error visit(CallArgRecord &) override;
41  Error visit(PIDRecord &) override;
42  Error visit(NewBufferRecord &) override;
43  Error visit(EndBufferRecord &) override;
44  Error visit(FunctionRecord &) override;
45  Error visit(CustomEventRecordV5 &) override;
46  Error visit(TypedEventRecord &) override;
47 
48 private:
50 };
51 
52 } // namespace xray
53 } // namespace llvm
54 
55 #endif // LLVM_XRAY_FDRTRACEWRITER_H
llvm::xray::FDRTraceWriter::~FDRTraceWriter
~FDRTraceWriter()
Definition: FDRTraceWriter.cpp:77
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::xray::RecordVisitor
Definition: FDRRecords.h:399
llvm::xray::FunctionRecord
Definition: FDRRecords.h:372
llvm::xray::PIDRecord
Definition: FDRRecords.h:313
llvm::xray::FDRTraceWriter
The FDRTraceWriter allows us to hand-craft an XRay Flight Data Recorder (FDR) mode log file.
Definition: FDRTraceWriter.h:29
llvm::support::endian::Writer
Adapter to write values to a stream in a particular byte order.
Definition: EndianStream.h:52
llvm::xray::BufferExtents
Definition: FDRRecords.h:110
llvm::xray::NewCPUIDRecord
Definition: FDRRecords.h:158
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
llvm::xray::NewBufferRecord
Definition: FDRRecords.h:336
llvm::RISCVFenceField::O
@ O
Definition: RISCVBaseInfo.h:179
llvm::xray::EndBufferRecord
Definition: FDRRecords.h:359
llvm::xray::WallclockRecord
Definition: FDRRecords.h:133
llvm::xray::CallArgRecord
Definition: FDRRecords.h:291
llvm::xray::TypedEventRecord
Definition: FDRRecords.h:262
llvm::xray::TSCWrapRecord
Definition: FDRRecords.h:184
EndianStream.h
H
#define H(x, y, z)
Definition: MD5.cpp:58
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:157
llvm::xray::XRayFileHeader
XRay traces all have a header providing some top-matter information useful to help tools determine ho...
Definition: XRayRecord.h:27
llvm::xray::CustomEventRecord
Definition: FDRRecords.h:206
llvm::xray::CustomEventRecordV5
Definition: FDRRecords.h:235
llvm::xray::FDRTraceWriter::visit
Error visit(BufferExtents &) override
Definition: FDRTraceWriter.cpp:79
raw_ostream.h
FDRRecords.h
llvm::xray::FDRTraceWriter::FDRTraceWriter
FDRTraceWriter(raw_ostream &O, const XRayFileHeader &H)
Definition: FDRTraceWriter.cpp:59
XRayRecord.h