[llvm] r225499 - Bitcode: Share logic for last instruction, NFC
Duncan P. N. Exon Smith
dexonsmith at apple.com
Thu Jan 8 18:51:45 PST 2015
Author: dexonsmith
Date: Thu Jan 8 20:51:45 2015
New Revision: 225499
URL: http://llvm.org/viewvc/llvm-project?rev=225499&view=rev
Log:
Bitcode: Share logic for last instruction, NFC
Share logic for getting the last instruction emitted.
Modified:
llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=225499&r1=225498&r2=225499&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Thu Jan 8 20:51:45 2015
@@ -2453,6 +2453,14 @@ std::error_code BitcodeReader::ParseFunc
unsigned CurBBNo = 0;
DebugLoc LastLoc;
+ auto getLastInstruction = [&]() -> Instruction * {
+ if (CurBB && !CurBB->empty())
+ return &CurBB->back();
+ else if (CurBBNo && FunctionBBs[CurBBNo - 1] &&
+ !FunctionBBs[CurBBNo - 1]->empty())
+ return &FunctionBBs[CurBBNo - 1]->back();
+ return nullptr;
+ };
// Read all the records.
SmallVector<uint64_t, 64> Record;
@@ -2545,14 +2553,7 @@ std::error_code BitcodeReader::ParseFunc
case bitc::FUNC_CODE_DEBUG_LOC_AGAIN: // DEBUG_LOC_AGAIN
// This record indicates that the last instruction is at the same
// location as the previous instruction with a location.
- I = nullptr;
-
- // Get the last instruction emitted.
- if (CurBB && !CurBB->empty())
- I = &CurBB->back();
- else if (CurBBNo && FunctionBBs[CurBBNo-1] &&
- !FunctionBBs[CurBBNo-1]->empty())
- I = &FunctionBBs[CurBBNo-1]->back();
+ I = getLastInstruction();
if (!I)
return Error(BitcodeError::InvalidRecord);
@@ -2561,12 +2562,7 @@ std::error_code BitcodeReader::ParseFunc
continue;
case bitc::FUNC_CODE_DEBUG_LOC_OLD: { // DEBUG_LOC_OLD: [line,col,scope,ia]
- I = nullptr; // Get the last instruction emitted.
- if (CurBB && !CurBB->empty())
- I = &CurBB->back();
- else if (CurBBNo && FunctionBBs[CurBBNo-1] &&
- !FunctionBBs[CurBBNo-1]->empty())
- I = &FunctionBBs[CurBBNo-1]->back();
+ I = getLastInstruction();
if (!I || Record.size() < 4)
return Error(BitcodeError::InvalidRecord);
More information about the llvm-commits
mailing list