blob: 5f0a3ee298eb203a2095b17300bd2121992645db [file] [log] [blame]
Dean Michael Berris6e1f0662017-01-10 02:38:11 +00001//===- xray-converter.h - XRay Trace Conversion ---------------------------===//
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// Defines the TraceConverter class for turning binary traces into
11// human-readable text and vice versa.
12//
13//===----------------------------------------------------------------------===//
14#ifndef LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H
15#define LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H
16
17#include "func-id-helper.h"
Dean Michael Berris14cdbca2017-01-11 06:39:09 +000018#include "llvm/XRay/Trace.h"
Keith Wyssed2657e2017-11-07 00:28:28 +000019#include "llvm/XRay/XRayRecord.h"
Dean Michael Berris6e1f0662017-01-10 02:38:11 +000020
21namespace llvm {
22namespace xray {
23
24class TraceConverter {
25 FuncIdConversionHelper &FuncIdHelper;
26 bool Symbolize;
27
28public:
29 TraceConverter(FuncIdConversionHelper &FuncIdHelper, bool Symbolize = false)
30 : FuncIdHelper(FuncIdHelper), Symbolize(Symbolize) {}
31
Dean Michael Berris14cdbca2017-01-11 06:39:09 +000032 void exportAsYAML(const Trace &Records, raw_ostream &OS);
33 void exportAsRAWv1(const Trace &Records, raw_ostream &OS);
Keith Wyssed2657e2017-11-07 00:28:28 +000034
35 /// For this conversion, the Function records within each thread are expected
36 /// to be in sorted TSC order. The trace event format encodes stack traces, so
37 /// the linear history is essential for correct output.
38 void exportAsChromeTraceEventFormat(const Trace &Records, raw_ostream &OS);
Dean Michael Berris6e1f0662017-01-10 02:38:11 +000039};
40
41} // namespace xray
42} // namespace llvm
43
44#endif // LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H