diff options
Diffstat (limited to 'llvm/lib/Remarks/RemarkParser.cpp')
-rw-r--r-- | llvm/lib/Remarks/RemarkParser.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Remarks/RemarkParser.cpp b/llvm/lib/Remarks/RemarkParser.cpp index 98f65349065..600f415e9b5 100644 --- a/llvm/lib/Remarks/RemarkParser.cpp +++ b/llvm/lib/Remarks/RemarkParser.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Remarks/RemarkParser.h" +#include "BitstreamRemarkParser.h" #include "YAMLRemarkParser.h" #include "llvm-c/Remarks.h" #include "llvm/ADT/STLExtras.h" @@ -57,8 +58,7 @@ llvm::remarks::createRemarkParser(Format ParserFormat, StringRef Buf) { std::make_error_code(std::errc::invalid_argument), "The YAML with string table format requires a parsed string table."); case Format::Bitstream: - return createStringError(std::make_error_code(std::errc::invalid_argument), - "Parsing bitstream remarks is not supported."); + return std::make_unique<BitstreamRemarkParser>(Buf); case Format::Unknown: return createStringError(std::make_error_code(std::errc::invalid_argument), "Unknown remark parser format."); @@ -77,8 +77,7 @@ llvm::remarks::createRemarkParser(Format ParserFormat, StringRef Buf, case Format::YAMLStrTab: return std::make_unique<YAMLStrTabRemarkParser>(Buf, std::move(StrTab)); case Format::Bitstream: - return createStringError(std::make_error_code(std::errc::invalid_argument), - "Parsing bitstream remarks is not supported."); + return std::make_unique<BitstreamRemarkParser>(Buf, std::move(StrTab)); case Format::Unknown: return createStringError(std::make_error_code(std::errc::invalid_argument), "Unknown remark parser format."); @@ -96,8 +95,7 @@ llvm::remarks::createRemarkParserFromMeta(Format ParserFormat, StringRef Buf, case Format::YAMLStrTab: return createYAMLParserFromMeta(Buf, std::move(StrTab)); case Format::Bitstream: - return createStringError(std::make_error_code(std::errc::invalid_argument), - "Parsing bitstream remarks is not supported."); + return createBitstreamParserFromMeta(Buf, std::move(StrTab)); case Format::Unknown: return createStringError(std::make_error_code(std::errc::invalid_argument), "Unknown remark parser format."); @@ -132,6 +130,12 @@ extern "C" LLVMRemarkParserRef LLVMRemarkParserCreateYAML(const void *Buf, StringRef(static_cast<const char *>(Buf), Size))); } +extern "C" LLVMRemarkParserRef LLVMRemarkParserCreateBitstream(const void *Buf, + uint64_t Size) { + return wrap(new CParser(Format::Bitstream, + StringRef(static_cast<const char *>(Buf), Size))); +} + extern "C" LLVMRemarkEntryRef LLVMRemarkParserGetNext(LLVMRemarkParserRef Parser) { CParser &TheCParser = *unwrap(Parser); |