LLVM 22.0.0git
YAMLRemarkSerializer.h
Go to the documentation of this file.
1//===-- YAMLRemarkSerializer.h - YAML Remark serialization ---*- 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// This file provides an interface for serializing remarks to YAML.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_REMARKS_YAMLREMARKSERIALIZER_H
14#define LLVM_REMARKS_YAMLREMARKSERIALIZER_H
15
19#include <optional>
20
21namespace llvm {
22namespace remarks {
23
24/// Serialize the remarks to YAML. One remark entry looks like this:
25/// --- !<TYPE>
26/// Pass: <PASSNAME>
27/// Name: <REMARKNAME>
28/// DebugLoc: { File: <SOURCEFILENAME>, Line: <SOURCELINE>,
29/// Column: <SOURCECOLUMN> }
30/// Function: <FUNCTIONNAME>
31/// Args:
32/// - <KEY>: <VALUE>
33/// DebugLoc: { File: <FILE>, Line: <LINE>, Column: <COL> }
34/// ...
36 /// The YAML streamer.
38
41
42 void emit(const Remark &Remark) override;
43 std::unique_ptr<MetaSerializer>
44 metaSerializer(raw_ostream &OS, StringRef ExternalFilename) override;
45
46 static bool classof(const RemarkSerializer *S) {
47 return S->SerializerFormat == Format::YAML;
48 }
49};
50
59
60} // end namespace remarks
61} // end namespace llvm
62
63#endif // LLVM_REMARKS_YAMLREMARKSERIALIZER_H
#define LLVM_ABI
Definition Compiler.h:213
StringRef - Represent a constant reference to a string, i.e.
Definition StringRef.h:55
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition raw_ostream.h:53
The Output class is used to generate a yaml document from in-memory structs and vectors.
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & OS
The open raw_ostream that the metadata is emitted to.
Format SerializerFormat
The format of the serializer.
RemarkSerializer(Format SerializerFormat, raw_ostream &OS)
raw_ostream & OS
The open raw_ostream that the remark diagnostics are emitted to.
A remark type used for both emission and parsing.
Definition Remark.h:98
The string table used for serializing remarks.
YAMLMetaSerializer(raw_ostream &OS, StringRef ExternalFilename)
static bool classof(const RemarkSerializer *S)
void emit(const Remark &Remark) override
Emit a remark to the stream.
yaml::Output YAMLOutput
The YAML streamer.
std::unique_ptr< MetaSerializer > metaSerializer(raw_ostream &OS, StringRef ExternalFilename) override
Return the corresponding metadata serializer.