[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