mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-21 03:05:26 -04:00
[DebugInfo] Examine all uses of isDebugValue() for debug instructions.
Because we create a new kind of debug instruction, DBG_LABEL, we need to check all passes which use isDebugValue() to check MachineInstr is debug instruction or not. When expelling debug instructions, we should expel both DBG_VALUE and DBG_LABEL. So, I create a new function, isDebugInstr(), in MachineInstr to check whether the MachineInstr is debug instruction or not. This patch has no new test case. I have run regression test and there is no difference in regression test. Differential Revision: https://reviews.llvm.org/D45342 Patch by Hsiangkai Wang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331844 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -174,7 +174,7 @@ MachineBasicBlock::SkipPHIsLabelsAndDebug(MachineBasicBlock::iterator I) {
|
||||
const TargetInstrInfo *TII = getParent()->getSubtarget().getInstrInfo();
|
||||
|
||||
iterator E = end();
|
||||
while (I != E && (I->isPHI() || I->isPosition() || I->isDebugValue() ||
|
||||
while (I != E && (I->isPHI() || I->isPosition() || I->isDebugInstr() ||
|
||||
TII->isBasicBlockPrologue(*I)))
|
||||
++I;
|
||||
// FIXME: This needs to change if we wish to bundle labels / dbg_values
|
||||
@@ -187,7 +187,7 @@ MachineBasicBlock::SkipPHIsLabelsAndDebug(MachineBasicBlock::iterator I) {
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
|
||||
iterator B = begin(), E = end(), I = E;
|
||||
while (I != B && ((--I)->isTerminator() || I->isDebugValue()))
|
||||
while (I != B && ((--I)->isTerminator() || I->isDebugInstr()))
|
||||
; /*noop */
|
||||
while (I != E && !I->isTerminator())
|
||||
++I;
|
||||
@@ -196,7 +196,7 @@ MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
|
||||
|
||||
MachineBasicBlock::instr_iterator MachineBasicBlock::getFirstInstrTerminator() {
|
||||
instr_iterator B = instr_begin(), E = instr_end(), I = E;
|
||||
while (I != B && ((--I)->isTerminator() || I->isDebugValue()))
|
||||
while (I != B && ((--I)->isTerminator() || I->isDebugInstr()))
|
||||
; /*noop */
|
||||
while (I != E && !I->isTerminator())
|
||||
++I;
|
||||
@@ -214,7 +214,7 @@ MachineBasicBlock::iterator MachineBasicBlock::getLastNonDebugInstr() {
|
||||
while (I != B) {
|
||||
--I;
|
||||
// Return instruction that starts a bundle.
|
||||
if (I->isDebugValue() || I->isInsideBundle())
|
||||
if (I->isDebugInstr() || I->isInsideBundle())
|
||||
continue;
|
||||
return I;
|
||||
}
|
||||
@@ -1271,7 +1271,7 @@ DebugLoc MachineBasicBlock::findPrevDebugLoc(instr_iterator MBBI) {
|
||||
if (MBBI == instr_begin()) return {};
|
||||
// Skip debug declarations, we don't want a DebugLoc from them.
|
||||
MBBI = skipDebugInstructionsBackward(std::prev(MBBI), instr_begin());
|
||||
if (!MBBI->isDebugValue()) return MBBI->getDebugLoc();
|
||||
if (!MBBI->isDebugInstr()) return MBBI->getDebugLoc();
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user