| //===- xray-converter.h - XRay Trace Conversion ---------------------------===// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // Defines the TraceConverter class for turning binary traces into | |
| // human-readable text and vice versa. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H | |
| #define LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H | |
| #include "func-id-helper.h" | |
| #include "llvm/XRay/Trace.h" | |
| #include "llvm/XRay/XRayRecord.h" | |
| namespace llvm { | |
| namespace xray { | |
| class TraceConverter { | |
| FuncIdConversionHelper &FuncIdHelper; | |
| bool Symbolize; | |
| public: | |
| TraceConverter(FuncIdConversionHelper &FuncIdHelper, bool Symbolize = false) | |
| : FuncIdHelper(FuncIdHelper), Symbolize(Symbolize) {} | |
| void exportAsYAML(const Trace &Records, raw_ostream &OS); | |
| void exportAsRAWv1(const Trace &Records, raw_ostream &OS); | |
| /// For this conversion, the Function records within each thread are expected | |
| /// to be in sorted TSC order. The trace event format encodes stack traces, so | |
| /// the linear history is essential for correct output. | |
| void exportAsChromeTraceEventFormat(const Trace &Records, raw_ostream &OS); | |
| }; | |
| } // namespace xray | |
| } // namespace llvm | |
| #endif // LLVM_TOOLS_LLVM_XRAY_XRAY_CONVERTER_H |