LLVM  8.0.1
FDRTraceWriter.h
Go to the documentation of this file.
1 //===- FDRTraceWriter.h - XRay FDR Trace Writer -----------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // Test a utility that can write out XRay FDR Mode formatted trace files.
11 //
12 //===----------------------------------------------------------------------===//
13 #ifndef LLVM_INCLUDE_LLVM_XRAY_FDRTRACEWRITER_H_
14 #define LLVM_INCLUDE_LLVM_XRAY_FDRTRACEWRITER_H_
15 
18 #include "llvm/XRay/FDRRecords.h"
19 #include "llvm/XRay/XRayRecord.h"
20 
21 namespace llvm {
22 namespace xray {
23 
24 /// The FDRTraceWriter allows us to hand-craft an XRay Flight Data Recorder
25 /// (FDR) mode log file. This is used primarily for testing, generating
26 /// sequences of FDR records that can be read/processed. It can also be used to
27 /// generate various kinds of execution traces without using the XRay runtime.
28 /// Note that this writer does not do any validation, but uses the types of
29 /// records defined in the FDRRecords.h file.
30 class FDRTraceWriter : public RecordVisitor {
31 public:
32  // Construct an FDRTraceWriter associated with an output stream.
33  explicit FDRTraceWriter(raw_ostream &O, const XRayFileHeader &H);
35 
36  Error visit(BufferExtents &) override;
37  Error visit(WallclockRecord &) override;
38  Error visit(NewCPUIDRecord &) override;
39  Error visit(TSCWrapRecord &) override;
40  Error visit(CustomEventRecord &) override;
41  Error visit(CallArgRecord &) override;
42  Error visit(PIDRecord &) override;
43  Error visit(NewBufferRecord &) override;
44  Error visit(EndBufferRecord &) override;
45  Error visit(FunctionRecord &) override;
46  Error visit(CustomEventRecordV5 &) override;
47  Error visit(TypedEventRecord &) override;
48 
49 private:
51 };
52 
53 } // namespace xray
54 } // namespace llvm
55 
56 #endif // LLVM_INCLUDE_LLVM_XRAY_FDRTRACEWRITER_H_
This class represents lattice values for constants.
Definition: AllocatorList.h:24
The FDRTraceWriter allows us to hand-craft an XRay Flight Data Recorder (FDR) mode log file...
Error visit(BufferExtents &) override
#define H(x, y, z)
Definition: MD5.cpp:57
FDRTraceWriter(raw_ostream &O, const XRayFileHeader &H)
Adapter to write values to a stream in a particular byte order.
Definition: EndianStream.h:52
Lightweight error class with error context and mandatory checking.
Definition: Error.h:158
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:46
XRay traces all have a header providing some top-matter information useful to help tools determine ho...
Definition: XRayRecord.h:28