[codegen] Add generic functions to skip debug values.
Summary: This commits moves skipDebugInstructionsForward and skipDebugInstructionsBackward from lib/CodeGen/IfConversion.cpp to include/llvm/CodeGen/MachineBasicBlock.h and updates some codgen files to use them. This refactoring was suggested in https://reviews.llvm.org/D27688 and I thought it's best to do the refactoring in a separate review, but I could also put both changes in a single review if that's preferred. Also, the names for the functions aren't the snappiest and I would be happy to rename them if anybody has suggestions. Reviewers: eli.friedman, iteratee, aprantl, MatzeB Subscribers: MatzeB, llvm-commits Differential Revision: https://reviews.llvm.org/D27782 llvm-svn: 289933
This commit is contained in:
@@ -191,10 +191,7 @@ MachineBasicBlock::instr_iterator MachineBasicBlock::getFirstInstrTerminator() {
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getFirstNonDebugInstr() {
|
||||
// Skip over begin-of-block dbg_value instructions.
|
||||
iterator I = begin(), E = end();
|
||||
while (I != E && I->isDebugValue())
|
||||
++I;
|
||||
return I;
|
||||
return skipDebugInstructionsForward(begin(), end());
|
||||
}
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getLastNonDebugInstr() {
|
||||
@@ -1140,17 +1137,11 @@ bool MachineBasicBlock::CorrectExtraCFGEdges(MachineBasicBlock *DestA,
|
||||
/// instructions. Return UnknownLoc if there is none.
|
||||
DebugLoc
|
||||
MachineBasicBlock::findDebugLoc(instr_iterator MBBI) {
|
||||
DebugLoc DL;
|
||||
instr_iterator E = instr_end();
|
||||
if (MBBI == E)
|
||||
return DL;
|
||||
|
||||
// Skip debug declarations, we don't want a DebugLoc from them.
|
||||
while (MBBI != E && MBBI->isDebugValue())
|
||||
MBBI++;
|
||||
if (MBBI != E)
|
||||
DL = MBBI->getDebugLoc();
|
||||
return DL;
|
||||
MBBI = skipDebugInstructionsForward(MBBI, instr_end());
|
||||
if (MBBI != instr_end())
|
||||
return MBBI->getDebugLoc();
|
||||
return {};
|
||||
}
|
||||
|
||||
/// Return probability of the edge from this block to MBB.
|
||||
|
||||
Reference in New Issue
Block a user