//===- RemarkConvert.cpp -------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Convert remarks from bitstream to yaml and the other way around. // //===----------------------------------------------------------------------===// #include "RemarkUtilHelpers.h" #include "RemarkUtilRegistry.h" usingnamespacellvm; usingnamespaceremarks; usingnamespacellvm::remarkutil; extern ExitOnError ExitOnErr; static cl::SubCommand YAML2Bitstream("yaml2bitstream", "Convert YAML remarks to bitstream remarks"); static cl::SubCommand Bitstream2YAML("bitstream2yaml", "Convert bitstream remarks to YAML remarks"); yaml2bitstream // namespace yaml2bitstream bitstream2yaml // namespace bitstream2yaml namespace yaml2bitstream { /// Parses all remarks in the input YAML file. /// \p [out] ParsedRemarks - Filled with remarks parsed from the input file. /// \p [out] StrTab - A string table populated for later remark serialization. /// \returns Error::success() if all remarks were successfully parsed, and an /// Error otherwise. static Error tryParseRemarksFromYAMLFile(std::vector<std::unique_ptr<Remark>> &ParsedRemarks, StringTable &StrTab) { … } /// Reserialize a list of parsed YAML remarks into bitstream remarks. /// \p ParsedRemarks - A list of remarks. /// \p StrTab - The string table for the remarks. /// \returns Error::success() on success. static Error tryReserializeYAML2Bitstream( const std::vector<std::unique_ptr<Remark>> &ParsedRemarks, StringTable &StrTab) { … } /// Parse YAML remarks and reserialize as bitstream remarks. /// \returns Error::success() on success, and an Error otherwise. static Error tryYAML2Bitstream() { … } } // namespace yaml2bitstream namespace bitstream2yaml { /// Parse bitstream remarks and reserialize as YAML remarks. /// \returns An Error if reserialization fails, or Error::success() on success. static Error tryBitstream2YAML() { … } } // namespace bitstream2yaml static CommandRegistration Bitstream2YamlReg(&Bitstream2YAML, bitstream2yaml::tryBitstream2YAML); static CommandRegistration Yaml2Bitstream(&YAML2Bitstream, yaml2bitstream::tryYAML2Bitstream);