summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Remarks
diff options
context:
space:
mode:
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>2019-07-26 20:54:44 +0000
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>2019-07-26 20:54:44 +0000
commitcdc74e219782ba36b8e8d2ae60adedbca449574f (patch)
tree8295c18db61f0e59233e6b92bbb02dfacb5ba4d6 /llvm/lib/Remarks
parentc0fc24bb8e0745c7c80157f0e41386d7087e842e (diff)
downloadbcm5719-llvm-cdc74e219782ba36b8e8d2ae60adedbca449574f.tar.gz
bcm5719-llvm-cdc74e219782ba36b8e8d2ae60adedbca449574f.zip
Revert "[Remarks] Support parsing remark metadata in the YAML remark parser"
This reverts r367148. Seems to fail on http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fuzzer/builds/27768. llvm-svn: 367151
Diffstat (limited to 'llvm/lib/Remarks')
-rw-r--r--llvm/lib/Remarks/RemarkParser.cpp15
-rw-r--r--llvm/lib/Remarks/YAMLRemarkParser.cpp105
-rw-r--r--llvm/lib/Remarks/YAMLRemarkParser.h9
3 files changed, 0 insertions, 129 deletions
diff --git a/llvm/lib/Remarks/RemarkParser.cpp b/llvm/lib/Remarks/RemarkParser.cpp
index 1ff9cf626b6..e7f174ce02c 100644
--- a/llvm/lib/Remarks/RemarkParser.cpp
+++ b/llvm/lib/Remarks/RemarkParser.cpp
@@ -80,21 +80,6 @@ llvm::remarks::createRemarkParser(Format ParserFormat, StringRef Buf,
llvm_unreachable("unhandled ParseFormat");
}
-Expected<std::unique_ptr<RemarkParser>>
-llvm::remarks::createRemarkParserFromMeta(Format ParserFormat, StringRef Buf,
- Optional<ParsedStringTable> StrTab) {
- switch (ParserFormat) {
- // Depending on the metadata, the format can be either yaml or yaml-strtab,
- // regardless of the input argument.
- case Format::YAML:
- case Format::YAMLStrTab:
- return createYAMLParserFromMeta(Buf, std::move(StrTab));
- case Format::Unknown:
- return createStringError(std::make_error_code(std::errc::invalid_argument),
- "Unknown remark parser format.");
- }
-}
-
// Wrapper that holds the state needed to interact with the C API.
struct CParser {
std::unique_ptr<RemarkParser> TheParser;
diff --git a/llvm/lib/Remarks/YAMLRemarkParser.cpp b/llvm/lib/Remarks/YAMLRemarkParser.cpp
index fdd059c7037..f677bfc04ce 100644
--- a/llvm/lib/Remarks/YAMLRemarkParser.cpp
+++ b/llvm/lib/Remarks/YAMLRemarkParser.cpp
@@ -14,7 +14,6 @@
#include "YAMLRemarkParser.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Remarks/RemarkParser.h"
-#include "llvm/Support/Endian.h"
using namespace llvm;
using namespace llvm::remarks;
@@ -55,110 +54,6 @@ static SourceMgr setupSM(std::string &LastErrorMessage) {
return SM;
}
-// Parse the magic number. This function returns true if this represents remark
-// metadata, false otherwise.
-static Expected<bool> parseMagic(StringRef &Buf) {
- if (!Buf.consume_front(remarks::Magic))
- return false;
-
- if (Buf.size() < 1 || !Buf.consume_front(StringRef("\0", 1)))
- return createStringError(std::errc::illegal_byte_sequence,
- "Expecting \\0 after magic number.");
- return true;
-}
-
-static Expected<uint64_t> parseVersion(StringRef &Buf) {
- if (Buf.size() < sizeof(uint64_t))
- return createStringError(std::errc::illegal_byte_sequence,
- "Expecting version number.");
-
- uint64_t Version =
- support::endian::read<uint64_t, support::little, support::unaligned>(
- Buf.data());
- if (Version != remarks::Version)
- return createStringError(
- std::errc::illegal_byte_sequence,
- "Mismatching remark version. Got %u, expected %u.", Version,
- remarks::Version);
- Buf = Buf.drop_front(sizeof(uint64_t));
- return Version;
-}
-
-static Expected<uint64_t> parseStrTabSize(StringRef &Buf) {
- if (Buf.size() < sizeof(uint64_t))
- return createStringError(std::errc::illegal_byte_sequence,
- "Expecting string table size.");
- uint64_t StrTabSize =
- support::endian::read<uint64_t, support::little, support::unaligned>(
- Buf.data());
- Buf = Buf.drop_front(sizeof(uint64_t));
- return StrTabSize;
-}
-
-static Expected<ParsedStringTable> parseStrTab(StringRef &Buf,
- uint64_t StrTabSize) {
- if (Buf.size() < StrTabSize)
- return createStringError(std::errc::illegal_byte_sequence,
- "Expecting string table.");
-
- // Attach the string table to the parser.
- ParsedStringTable Result(StringRef(Buf.data(), StrTabSize));
- Buf = Buf.drop_front(StrTabSize);
- return Result;
-}
-
-Expected<std::unique_ptr<YAMLRemarkParser>>
-remarks::createYAMLParserFromMeta(StringRef Buf,
- Optional<ParsedStringTable> StrTab) {
- // We now have a magic number. The metadata has to be correct.
- Expected<bool> isMeta = parseMagic(Buf);
- if (!isMeta)
- return isMeta.takeError();
- // If it's not recognized as metadata, roll back.
- std::unique_ptr<MemoryBuffer> SeparateBuf;
- if (*isMeta) {
- Expected<uint64_t> Version = parseVersion(Buf);
- if (!Version)
- return Version.takeError();
-
- Expected<uint64_t> StrTabSize = parseStrTabSize(Buf);
- if (!StrTabSize)
- return StrTabSize.takeError();
-
- // If the size of string table is not 0, try to build one.
- if (*StrTabSize != 0) {
- if (StrTab)
- return createStringError(std::errc::illegal_byte_sequence,
- "String table already provided.");
- Expected<ParsedStringTable> MaybeStrTab = parseStrTab(Buf, *StrTabSize);
- if (!MaybeStrTab)
- return MaybeStrTab.takeError();
- StrTab = std::move(*MaybeStrTab);
- }
- // If it starts with "---", there is no external file.
- if (!Buf.startswith("---")) {
- // At this point, we expect Buf to contain the external file path.
- // Try to open the file and start parsing from there.
- ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
- MemoryBuffer::getFile(Buf);
- if (std::error_code EC = BufferOrErr.getError())
- return errorCodeToError(EC);
-
- // Keep the buffer alive.
- SeparateBuf = std::move(*BufferOrErr);
- Buf = SeparateBuf->getBuffer();
- }
- }
-
- std::unique_ptr<YAMLRemarkParser> Result =
- StrTab
- ? llvm::make_unique<YAMLStrTabRemarkParser>(Buf, std::move(*StrTab))
- : llvm::make_unique<YAMLRemarkParser>(Buf);
- if (SeparateBuf)
- Result->SeparateBuf = std::move(SeparateBuf);
- return std::move(Result);
-}
-
YAMLRemarkParser::YAMLRemarkParser(StringRef Buf)
: YAMLRemarkParser(Buf, None) {}
diff --git a/llvm/lib/Remarks/YAMLRemarkParser.h b/llvm/lib/Remarks/YAMLRemarkParser.h
index ff03abbb576..e8f0edc50f4 100644
--- a/llvm/lib/Remarks/YAMLRemarkParser.h
+++ b/llvm/lib/Remarks/YAMLRemarkParser.h
@@ -18,7 +18,6 @@
#include "llvm/Remarks/Remark.h"
#include "llvm/Remarks/RemarkParser.h"
#include "llvm/Support/Error.h"
-#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/YAMLTraits.h"
@@ -59,9 +58,6 @@ struct YAMLRemarkParser : public RemarkParser {
yaml::Stream Stream;
/// Iterator in the YAML stream.
yaml::document_iterator YAMLIt;
- /// If we parse remark metadata in separate mode, we need to open a new file
- /// and parse that.
- std::unique_ptr<MemoryBuffer> SeparateBuf;
YAMLRemarkParser(StringRef Buf);
@@ -108,11 +104,6 @@ protected:
/// Parse one value to a string.
Expected<StringRef> parseStr(yaml::KeyValueNode &Node) override;
};
-
-Expected<std::unique_ptr<YAMLRemarkParser>>
-createYAMLParserFromMeta(StringRef Buf,
- Optional<ParsedStringTable> StrTab = None);
-
} // end namespace remarks
} // end namespace llvm
OpenPOWER on IntegriCloud