Line data Source code
1 : //===- RecordPrinter.h - FDR Record Printer -------------------------------===//
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 : // An implementation of the RecordVisitor which prints an individual record's
11 : // data in an adhoc format, suitable for human inspection.
12 : //
13 : //===----------------------------------------------------------------------===//
14 : #ifndef LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H_
15 : #define LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H_
16 :
17 : #include "llvm/Support/raw_ostream.h"
18 : #include "llvm/XRay/FDRRecords.h"
19 :
20 : namespace llvm {
21 : namespace xray {
22 :
23 5 : class RecordPrinter : public RecordVisitor {
24 : raw_ostream &OS;
25 : std::string Delim;
26 :
27 : public:
28 : explicit RecordPrinter(raw_ostream &O, std::string D)
29 15 : : RecordVisitor(), OS(O), Delim(std::move(D)) {}
30 :
31 15 : explicit RecordPrinter(raw_ostream &O) : RecordPrinter(O, ""){};
32 :
33 : Error visit(BufferExtents &) override;
34 : Error visit(WallclockRecord &) override;
35 : Error visit(NewCPUIDRecord &) override;
36 : Error visit(TSCWrapRecord &) override;
37 : Error visit(CustomEventRecord &) override;
38 : Error visit(CallArgRecord &) override;
39 : Error visit(PIDRecord &) override;
40 : Error visit(NewBufferRecord &) override;
41 : Error visit(EndBufferRecord &) override;
42 : Error visit(FunctionRecord &) override;
43 : };
44 :
45 : } // namespace xray
46 : } // namespace llvm
47 :
48 : #endif // LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H
|