Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Remarks/RemarkSerializer.cpp
35262 views
1
//===- RemarkSerializer.cpp -----------------------------------------------===//
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 tools for serializing remarks.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#include "llvm/Remarks/RemarkSerializer.h"
14
#include "llvm/Remarks/BitstreamRemarkSerializer.h"
15
#include "llvm/Remarks/YAMLRemarkSerializer.h"
16
17
using namespace llvm;
18
using namespace llvm::remarks;
19
20
Expected<std::unique_ptr<RemarkSerializer>>
21
remarks::createRemarkSerializer(Format RemarksFormat, SerializerMode Mode,
22
raw_ostream &OS) {
23
switch (RemarksFormat) {
24
case Format::Unknown:
25
return createStringError(std::errc::invalid_argument,
26
"Unknown remark serializer format.");
27
case Format::YAML:
28
return std::make_unique<YAMLRemarkSerializer>(OS, Mode);
29
case Format::YAMLStrTab:
30
return std::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode);
31
case Format::Bitstream:
32
return std::make_unique<BitstreamRemarkSerializer>(OS, Mode);
33
}
34
llvm_unreachable("Unknown remarks::Format enum");
35
}
36
37
Expected<std::unique_ptr<RemarkSerializer>>
38
remarks::createRemarkSerializer(Format RemarksFormat, SerializerMode Mode,
39
raw_ostream &OS, remarks::StringTable StrTab) {
40
switch (RemarksFormat) {
41
case Format::Unknown:
42
return createStringError(std::errc::invalid_argument,
43
"Unknown remark serializer format.");
44
case Format::YAML:
45
return std::make_unique<YAMLRemarkSerializer>(OS, Mode, std::move(StrTab));
46
case Format::YAMLStrTab:
47
return std::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode,
48
std::move(StrTab));
49
case Format::Bitstream:
50
return std::make_unique<BitstreamRemarkSerializer>(OS, Mode,
51
std::move(StrTab));
52
}
53
llvm_unreachable("Unknown remarks::Format enum");
54
}
55
56