[llvm-commits] [llvm] r141152 - /llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
Akira Hatanaka
ahatanaka at mips.com
Tue Oct 4 18:57:49 PDT 2011
Author: ahatanak
Date: Tue Oct 4 20:57:46 2011
New Revision: 141152
URL: http://llvm.org/viewvc/llvm-project?rev=141152&view=rev
Log:
Clean up Filler::findDelayInstr.
Modified:
llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
Modified: llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp?rev=141152&r1=141151&r2=141152&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp Tue Oct 4 20:57:46 2011
@@ -128,10 +128,6 @@
MachineBasicBlock::iterator &Filler) {
SmallSet<unsigned, 32> RegDefs;
SmallSet<unsigned, 32> RegUses;
- bool sawLoad = false;
- bool sawStore = false;
-
- MachineBasicBlock::iterator I = slot;
// Call's delay filler can def some of call's uses.
if (slot->getDesc().isCall())
@@ -139,22 +135,21 @@
else
insertDefsUses(slot, RegDefs, RegUses);
- bool done = false;
-
- while (!done) {
- done = (I == MBB.begin());
-
- if (!done)
- --I;
+ bool sawLoad = false;
+ bool sawStore = false;
+ for (MachineBasicBlock::reverse_iterator I(slot); I != MBB.rend(); ++I) {
// skip debug value
if (I->isDebugValue())
continue;
+ // Convert to forward iterator.
+ MachineBasicBlock::iterator FI(next(I).base());
+
if (I->hasUnmodeledSideEffects()
|| I->isInlineAsm()
|| I->isLabel()
- || I == LastFiller
+ || FI == LastFiller
|| I->getDesc().isPseudo()
//
// Should not allow:
@@ -163,12 +158,12 @@
)
break;
- if (delayHasHazard(I, sawLoad, sawStore, RegDefs, RegUses)) {
- insertDefsUses(I, RegDefs, RegUses);
+ if (delayHasHazard(FI, sawLoad, sawStore, RegDefs, RegUses)) {
+ insertDefsUses(FI, RegDefs, RegUses);
continue;
}
- Filler = I;
+ Filler = FI;
return true;
}
More information about the llvm-commits
mailing list