Path: blob/main/contrib/llvm-project/llvm/lib/Remarks/RemarkSerializer.cpp
35262 views
//===- RemarkSerializer.cpp -----------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file provides tools for serializing remarks.9//10//===----------------------------------------------------------------------===//1112#include "llvm/Remarks/RemarkSerializer.h"13#include "llvm/Remarks/BitstreamRemarkSerializer.h"14#include "llvm/Remarks/YAMLRemarkSerializer.h"1516using namespace llvm;17using namespace llvm::remarks;1819Expected<std::unique_ptr<RemarkSerializer>>20remarks::createRemarkSerializer(Format RemarksFormat, SerializerMode Mode,21raw_ostream &OS) {22switch (RemarksFormat) {23case Format::Unknown:24return createStringError(std::errc::invalid_argument,25"Unknown remark serializer format.");26case Format::YAML:27return std::make_unique<YAMLRemarkSerializer>(OS, Mode);28case Format::YAMLStrTab:29return std::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode);30case Format::Bitstream:31return std::make_unique<BitstreamRemarkSerializer>(OS, Mode);32}33llvm_unreachable("Unknown remarks::Format enum");34}3536Expected<std::unique_ptr<RemarkSerializer>>37remarks::createRemarkSerializer(Format RemarksFormat, SerializerMode Mode,38raw_ostream &OS, remarks::StringTable StrTab) {39switch (RemarksFormat) {40case Format::Unknown:41return createStringError(std::errc::invalid_argument,42"Unknown remark serializer format.");43case Format::YAML:44return std::make_unique<YAMLRemarkSerializer>(OS, Mode, std::move(StrTab));45case Format::YAMLStrTab:46return std::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode,47std::move(StrTab));48case Format::Bitstream:49return std::make_unique<BitstreamRemarkSerializer>(OS, Mode,50std::move(StrTab));51}52llvm_unreachable("Unknown remarks::Format enum");53}545556