Result.reset(new RawInstrProfReader64(std::move(Buffer)));
else if (RawInstrProfReader32::hasFormat(*Buffer))
Result.reset(new RawInstrProfReader32(std::move(Buffer)));
- else if (TextInstrProfReader::hasFormat(*Buffer))
- Result.reset(new TextInstrProfReader(std::move(Buffer)));
else
- return instrprof_error::unrecognized_format;
+ Result.reset(new TextInstrProfReader(std::move(Buffer)));
// Initialize the reader and return the result.
if (std::error_code EC = initializeReader(*Result))
*this = InstrProfIterator();
}
-bool TextInstrProfReader::hasFormat(const MemoryBuffer &Buffer) {
- // Verify that this really looks like plain ASCII text by checking a
- // 'reasonable' number of characters (up to profile magic size).
- size_t count = std::min(Buffer.getBufferSize(), sizeof(uint64_t));
- StringRef buffer = Buffer.getBufferStart();
- return count == 0 || std::all_of(buffer.begin(), buffer.begin() + count,
- [](char c) { return ::isprint(c) || ::isspace(c); });
-}
-
std::error_code TextInstrProfReader::readNextRecord(InstrProfRecord &Record) {
// Skip empty lines and comments.
while (!Line.is_at_end() && (Line->empty() || Line->startswith("#")))