diff options
Diffstat (limited to 'llvm/lib/Remarks/RemarkFormat.cpp')
| -rw-r--r-- | llvm/lib/Remarks/RemarkFormat.cpp | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/llvm/lib/Remarks/RemarkFormat.cpp b/llvm/lib/Remarks/RemarkFormat.cpp index f2d0331ec6a8..5006421a3c63 100644 --- a/llvm/lib/Remarks/RemarkFormat.cpp +++ b/llvm/lib/Remarks/RemarkFormat.cpp @@ -12,6 +12,7 @@  #include "llvm/Remarks/RemarkFormat.h"  #include "llvm/ADT/StringSwitch.h" +#include "llvm/Remarks/BitstreamRemarkContainer.h"  using namespace llvm;  using namespace llvm::remarks; @@ -30,3 +31,17 @@ Expected<Format> llvm::remarks::parseFormat(StringRef FormatStr) {    return Result;  } + +Expected<Format> llvm::remarks::magicToFormat(StringRef MagicStr) { +  auto Result = +      StringSwitch<Format>(MagicStr) +          .StartsWith("--- ", Format::YAML) // This is only an assumption. +          .StartsWith(remarks::Magic, Format::YAMLStrTab) +          .StartsWith(remarks::ContainerMagic, Format::Bitstream) +          .Default(Format::Unknown); + +  if (Result == Format::Unknown) +    return createStringError(std::make_error_code(std::errc::invalid_argument), +                             "Unknown remark magic: '%s'", MagicStr.data()); +  return Result; +} | 
