1 //===-- llvm/Remarks/RemarkFormat.h - The format of remarks -----*- 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 defines utilities to deal with the format of remarks. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_REMARKS_REMARK_FORMAT_H 14 #define LLVM_REMARKS_REMARK_FORMAT_H 15 16 #include "llvm/ADT/StringRef.h" 17 #include "llvm/Support/Error.h" 18 19 namespace llvm { 20 namespace remarks { 21 22 constexpr StringLiteral Magic("REMARKS"); 23 24 /// The format used for serializing/deserializing remarks. 25 enum class Format { Unknown, YAML, YAMLStrTab, Bitstream }; 26 27 /// Parse and validate a string for the remark format. 28 Expected<Format> parseFormat(StringRef FormatStr); 29 30 /// Parse and validate a magic number to a remark format. 31 Expected<Format> magicToFormat(StringRef Magic); 32 33 } // end namespace remarks 34 } // end namespace llvm 35 36 #endif /* LLVM_REMARKS_REMARK_FORMAT_H */ 37