[llvm] b12a864 - Bitcode: Use Expected<T>::takeError() and moveInto() more, NFC
Duncan P. N. Exon Smith via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 25 16:04:26 PDT 2021
Author: Duncan P. N. Exon Smith
Date: 2021-10-25T16:03:40-07:00
New Revision: b12a864c2930acc6f71e3bf248b663470d356db5
URL: https://github.com/llvm/llvm-project/commit/b12a864c2930acc6f71e3bf248b663470d356db5
DIFF: https://github.com/llvm/llvm-project/commit/b12a864c2930acc6f71e3bf248b663470d356db5.diff
LOG: Bitcode: Use Expected<T>::takeError() and moveInto() more, NFC
Avoid naming some Expected<T> values in the Bitcode reader by using
takeError() and moveInto() more often. This follows the smaller set of
changes included in 2410fb4616b2c08bbaddd44e6c11da8285fbd1d3.
Added:
Modified:
llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Reader/MetadataLoader.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
index 7777c5d9b1dcd..2723105b092f6 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
@@ -529,10 +529,9 @@ Error BitcodeAnalyzer::decodeMetadataStringsBlob(StringRef Indent,
if (R.AtEndOfStream())
return reportError("bad length");
- Expected<uint32_t> MaybeSize = R.ReadVBR(6);
- if (!MaybeSize)
- return MaybeSize.takeError();
- uint32_t Size = MaybeSize.get();
+ uint32_t Size;
+ if (Error E = R.ReadVBR(6).moveInto(Size))
+ return E;
if (Strings.size() < Size)
return reportError("truncated chars");
@@ -555,11 +554,8 @@ BitcodeAnalyzer::BitcodeAnalyzer(StringRef Buffer,
Error BitcodeAnalyzer::analyze(Optional<BCDumpOptions> O,
Optional<StringRef> CheckHash) {
- Expected<CurStreamTypeType> MaybeType = analyzeHeader(O, Stream);
- if (!MaybeType)
- return MaybeType.takeError();
- else
- CurStreamType = *MaybeType;
+ if (Error E = analyzeHeader(O, Stream).moveInto(CurStreamType))
+ return E;
Stream.setBlockInfo(&BlockInfo);
@@ -567,9 +563,8 @@ Error BitcodeAnalyzer::analyze(Optional<BCDumpOptions> O,
// The block info must be a top-level block.
if (BlockInfoStream) {
BitstreamCursor BlockInfoCursor(*BlockInfoStream);
- Expected<CurStreamTypeType> H = analyzeHeader(O, BlockInfoCursor);
- if (!H)
- return H.takeError();
+ if (Error E = analyzeHeader(O, BlockInfoCursor).takeError())
+ return E;
while (!BlockInfoCursor.AtEndOfStream()) {
Expected<unsigned> MaybeCode = BlockInfoCursor.ReadCode();
@@ -582,12 +577,11 @@ Error BitcodeAnalyzer::analyze(Optional<BCDumpOptions> O,
if (!MaybeBlockID)
return MaybeBlockID.takeError();
if (MaybeBlockID.get() == bitc::BLOCKINFO_BLOCK_ID) {
- Expected<Optional<BitstreamBlockInfo>> MaybeNewBlockInfo =
- BlockInfoCursor.ReadBlockInfoBlock(/*ReadBlockInfoNames=*/true);
- if (!MaybeNewBlockInfo)
- return MaybeNewBlockInfo.takeError();
- Optional<BitstreamBlockInfo> NewBlockInfo =
- std::move(MaybeNewBlockInfo.get());
+ Optional<BitstreamBlockInfo> NewBlockInfo;
+ if (Error E =
+ BlockInfoCursor.ReadBlockInfoBlock(/*ReadBlockInfoNames=*/true)
+ .moveInto(NewBlockInfo))
+ return E;
if (!NewBlockInfo)
return reportError("Malformed BlockInfoBlock in block info file");
BlockInfo = std::move(*NewBlockInfo);
@@ -746,12 +740,10 @@ Error BitcodeAnalyzer::parseBlock(unsigned BlockID, unsigned IndentLevel,
if (BlockID == bitc::BLOCKINFO_BLOCK_ID) {
if (O && !O->DumpBlockinfo)
O->OS << Indent << "<BLOCKINFO_BLOCK/>\n";
- Expected<Optional<BitstreamBlockInfo>> MaybeNewBlockInfo =
- Stream.ReadBlockInfoBlock(/*ReadBlockInfoNames=*/true);
- if (!MaybeNewBlockInfo)
- return MaybeNewBlockInfo.takeError();
- Optional<BitstreamBlockInfo> NewBlockInfo =
- std::move(MaybeNewBlockInfo.get());
+ Optional<BitstreamBlockInfo> NewBlockInfo;
+ if (Error E = Stream.ReadBlockInfoBlock(/*ReadBlockInfoNames=*/true)
+ .moveInto(NewBlockInfo))
+ return E;
if (!NewBlockInfo)
return reportError("Malformed BlockInfoBlock");
BlockInfo = std::move(*NewBlockInfo);
@@ -796,11 +788,10 @@ Error BitcodeAnalyzer::parseBlock(unsigned BlockID, unsigned IndentLevel,
uint64_t RecordStartBit = Stream.GetCurrentBitNo();
- Expected<BitstreamEntry> MaybeEntry =
- Stream.advance(BitstreamCursor::AF_DontAutoprocessAbbrevs);
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E = Stream.advance(BitstreamCursor::AF_DontAutoprocessAbbrevs)
+ .moveInto(Entry))
+ return E;
switch (Entry.Kind) {
case BitstreamEntry::Error:
@@ -847,10 +838,9 @@ Error BitcodeAnalyzer::parseBlock(unsigned BlockID, unsigned IndentLevel,
StringRef Blob;
uint64_t CurrentRecordPos = Stream.GetCurrentBitNo();
- Expected<unsigned> MaybeCode = Stream.readRecord(Entry.ID, Record, &Blob);
- if (!MaybeCode)
- return MaybeCode.takeError();
- unsigned Code = MaybeCode.get();
+ unsigned Code;
+ if (Error E = Stream.readRecord(Entry.ID, Record, &Blob).moveInto(Code))
+ return E;
// Increment the # occurrences of this code.
if (BlockStats.CodeFreq.size() <= Code)
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 301145939904a..9ba76022e6549 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -241,10 +241,9 @@ static Expected<std::string> readIdentificationCode(BitstreamCursor &Stream) {
return std::move(Err);
continue;
case BitstreamEntry::Record:
- if (Expected<unsigned> Skipped = Stream.skipRecord(Entry.ID))
- continue;
- else
- return Skipped.takeError();
+ if (Error E = Stream.skipRecord(Entry.ID).takeError())
+ return std::move(E);
+ continue;
}
}
}
@@ -320,10 +319,9 @@ static Expected<bool> hasObjCCategory(BitstreamCursor &Stream) {
continue;
case BitstreamEntry::Record:
- if (Expected<unsigned> Skipped = Stream.skipRecord(Entry.ID))
- continue;
- else
- return Skipped.takeError();
+ if (Error E = Stream.skipRecord(Entry.ID).takeError())
+ return std::move(E);
+ continue;
}
}
}
@@ -6772,10 +6770,9 @@ llvm::getBitcodeFileContents(MemoryBufferRef Buffer) {
continue;
}
case BitstreamEntry::Record:
- if (Expected<unsigned> StreamFailed = Stream.skipRecord(Entry.ID))
- continue;
- else
- return StreamFailed.takeError();
+ if (Error E = Stream.skipRecord(Entry.ID).takeError())
+ return std::move(E);
+ continue;
}
}
}
@@ -6798,12 +6795,9 @@ BitcodeModule::getModuleImpl(LLVMContext &Context, bool MaterializeAll,
if (IdentificationBit != -1ull) {
if (Error JumpFailed = Stream.JumpToBit(IdentificationBit))
return std::move(JumpFailed);
- Expected<std::string> ProducerIdentificationOrErr =
- readIdentificationBlock(Stream);
- if (!ProducerIdentificationOrErr)
- return ProducerIdentificationOrErr.takeError();
-
- ProducerIdentification = *ProducerIdentificationOrErr;
+ if (Error E =
+ readIdentificationBlock(Stream).moveInto(ProducerIdentification))
+ return std::move(E);
}
if (Error JumpFailed = Stream.JumpToBit(ModuleBit))
@@ -6877,10 +6871,9 @@ static Expected<bool> getEnableSplitLTOUnitFlag(BitstreamCursor &Stream,
SmallVector<uint64_t, 64> Record;
while (true) {
- Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks();
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry))
+ return std::move(E);
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
@@ -6925,10 +6918,9 @@ Expected<BitcodeLTOInfo> BitcodeModule::getLTOInfo() {
return std::move(Err);
while (true) {
- Expected<llvm::BitstreamEntry> MaybeEntry = Stream.advance();
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- llvm::BitstreamEntry Entry = MaybeEntry.get();
+ llvm::BitstreamEntry Entry;
+ if (Error E = Stream.advance().moveInto(Entry))
+ return std::move(E);
switch (Entry.Kind) {
case BitstreamEntry::Error:
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index a2b495e6f7549..15e2386b508de 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -697,11 +697,12 @@ MetadataLoader::MetadataLoaderImpl::lazyLoadModuleMetadataBlock() {
// Get the abbrevs, and preload record positions to make them lazy-loadable.
while (true) {
uint64_t SavedPos = IndexCursor.GetCurrentBitNo();
- Expected<BitstreamEntry> MaybeEntry = IndexCursor.advanceSkippingSubblocks(
- BitstreamCursor::AF_DontPopBlockAtEnd);
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E =
+ IndexCursor
+ .advanceSkippingSubblocks(BitstreamCursor::AF_DontPopBlockAtEnd)
+ .moveInto(Entry))
+ return std::move(E);
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
@@ -714,10 +715,9 @@ MetadataLoader::MetadataLoaderImpl::lazyLoadModuleMetadataBlock() {
// The interesting case.
++NumMDRecordLoaded;
uint64_t CurrentPos = IndexCursor.GetCurrentBitNo();
- Expected<unsigned> MaybeCode = IndexCursor.skipRecord(Entry.ID);
- if (!MaybeCode)
- return MaybeCode.takeError();
- unsigned Code = MaybeCode.get();
+ unsigned Code;
+ if (Error E = IndexCursor.skipRecord(Entry.ID).moveInto(Code))
+ return std::move(E);
switch (Code) {
case bitc::METADATA_STRINGS: {
// Rewind and parse the strings.
@@ -904,11 +904,12 @@ Expected<bool> MetadataLoader::MetadataLoaderImpl::loadGlobalDeclAttachments() {
if (Error Err = TempCursor.JumpToBit(GlobalDeclAttachmentPos))
return std::move(Err);
while (true) {
- Expected<BitstreamEntry> MaybeEntry = TempCursor.advanceSkippingSubblocks(
- BitstreamCursor::AF_DontPopBlockAtEnd);
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E =
+ TempCursor
+ .advanceSkippingSubblocks(BitstreamCursor::AF_DontPopBlockAtEnd)
+ .moveInto(Entry))
+ return std::move(E);
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
@@ -1024,10 +1025,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadata(bool ModuleLevel) {
// Read all the records.
while (true) {
- Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks();
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry))
+ return E;
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
@@ -1081,12 +1081,11 @@ void MetadataLoader::MetadataLoaderImpl::lazyLoadOneMetadata(
GlobalMetadataBitPosIndex[ID - MDStringRef.size()]))
report_fatal_error("lazyLoadOneMetadata failed jumping: " +
Twine(toString(std::move(Err))));
- Expected<BitstreamEntry> MaybeEntry = IndexCursor.advanceSkippingSubblocks();
- if (!MaybeEntry)
+ BitstreamEntry Entry;
+ if (Error E = IndexCursor.advanceSkippingSubblocks().moveInto(Entry))
// FIXME this drops the error on the floor.
report_fatal_error("lazyLoadOneMetadata failed advanceSkippingSubblocks: " +
- Twine(toString(MaybeEntry.takeError())));
- BitstreamEntry Entry = MaybeEntry.get();
+ Twine(toString(std::move(E))));
++NumMDRecordLoaded;
if (Expected<unsigned> MaybeCode =
IndexCursor.readRecord(Entry.ID, Record, &Blob)) {
@@ -1193,10 +1192,8 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
// Read name of the named metadata.
SmallString<8> Name(Record.begin(), Record.end());
Record.clear();
- Expected<unsigned> MaybeCode = Stream.ReadCode();
- if (!MaybeCode)
- return MaybeCode.takeError();
- Code = MaybeCode.get();
+ if (Error E = Stream.ReadCode().moveInto(Code))
+ return E;
++NumMDRecordLoaded;
if (Expected<unsigned> MaybeNextBitCode = Stream.readRecord(Code, Record)) {
@@ -2147,10 +2144,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataStrings(
if (R.AtEndOfStream())
return error("Invalid record: metadata strings bad length");
- Expected<uint32_t> MaybeSize = R.ReadVBR(6);
- if (!MaybeSize)
- return MaybeSize.takeError();
- uint32_t Size = MaybeSize.get();
+ uint32_t Size;
+ if (Error E = R.ReadVBR(6).moveInto(Size))
+ return E;
if (Strings.size() < Size)
return error("Invalid record: metadata strings truncated chars");
@@ -2187,10 +2183,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment(
PlaceholderQueue Placeholders;
while (true) {
- Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks();
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry))
+ return E;
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
@@ -2291,10 +2286,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadataKinds() {
// Read all the records.
while (true) {
- Expected<BitstreamEntry> MaybeEntry = Stream.advanceSkippingSubblocks();
- if (!MaybeEntry)
- return MaybeEntry.takeError();
- BitstreamEntry Entry = MaybeEntry.get();
+ BitstreamEntry Entry;
+ if (Error E = Stream.advanceSkippingSubblocks().moveInto(Entry))
+ return E;
switch (Entry.Kind) {
case BitstreamEntry::SubBlock: // Handled for us already.
More information about the llvm-commits
mailing list