[PATCH] D70940: Add debug output to MipsDelaySlotFiller pass
Phabricator via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 4 03:39:25 PST 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0cc4b959851e: Add debug output to MipsDelaySlotFiller pass (authored by Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70940/new/
https://reviews.llvm.org/D70940
Files:
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
Index: llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
===================================================================
--- llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+++ llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
@@ -612,12 +612,18 @@
if (MipsCompactBranchPolicy.getValue() != CB_Always ||
!TII->getEquivalentCompactForm(I)) {
if (searchBackward(MBB, *I)) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": found instruction for delay slot"
+ " in backwards search.\n");
Filled = true;
} else if (I->isTerminator()) {
if (searchSuccBBs(MBB, I)) {
Filled = true;
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": found instruction for delay slot"
+ " in successor BB search.\n");
}
} else if (searchForward(MBB, I)) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": found instruction for delay slot"
+ " in forwards search.\n");
Filled = true;
}
}
@@ -662,6 +668,8 @@
}
// Bundle the NOP to the instruction with the delay slot.
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE << ": could not fill delay slot for ";
+ I->dump());
BuildMI(MBB, std::next(I), I->getDebugLoc(), TII->get(Mips::NOP));
MIBundleBuilder(MBB, I, std::next(I, 2));
++FilledSlots;
@@ -679,13 +687,19 @@
for (IterTy I = Begin; I != End;) {
IterTy CurrI = I;
++I;
-
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": checking instruction: "; CurrI->dump());
// skip debug value
- if (CurrI->isDebugInstr())
+ if (CurrI->isDebugInstr()) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": ignoring debug instruction: ";
+ CurrI->dump());
continue;
+ }
- if (terminateSearch(*CurrI))
+ if (terminateSearch(*CurrI)) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": should terminate search: ";
+ CurrI->dump());
break;
+ }
assert((!CurrI->isCall() && !CurrI->isReturn() && !CurrI->isBranch()) &&
"Cannot put calls, returns or branches in delay slot.");
@@ -731,6 +745,9 @@
continue;
Filler = CurrI;
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": found instruction for delay slot: ";
+ CurrI->dump());
+
return true;
}
@@ -751,8 +768,11 @@
MachineBasicBlock::iterator SlotI = Slot;
if (!searchRange(MBB, ++SlotI.getReverse(), MBB.rend(), RegDU, MemDU, Slot,
- Filler))
+ Filler)) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": could not find instruction for delay "
+ "slot using backwards search.\n");
return false;
+ }
MBB.splice(std::next(SlotI), &MBB, Filler.getReverse());
MIBundleBuilder(MBB, SlotI, std::next(SlotI, 2));
@@ -772,8 +792,11 @@
RegDU.setCallerSaved(*Slot);
- if (!searchRange(MBB, std::next(Slot), MBB.end(), RegDU, NM, Slot, Filler))
+ if (!searchRange(MBB, std::next(Slot), MBB.end(), RegDU, NM, Slot, Filler)) {
+ LLVM_DEBUG(dbgs() << DEBUG_TYPE ": could not find instruction for delay "
+ "slot using forwards search.\n");
return false;
+ }
MBB.splice(std::next(Slot), &MBB, Filler);
MIBundleBuilder(MBB, Slot, std::next(Slot, 2));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70940.232073.patch
Type: text/x-patch
Size: 3353 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191204/5f60e188/attachment.bin>
More information about the llvm-commits
mailing list