OSDN Git Service

Rewrite loop to suit Chris' preference.
authorDale Johannesen <dalej@apple.com>
Wed, 10 Feb 2010 01:31:26 +0000 (01:31 +0000)
committerDale Johannesen <dalej@apple.com>
Wed, 10 Feb 2010 01:31:26 +0000 (01:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95749 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveIntervalAnalysis.cpp

index efc050e..432409a 100644 (file)
@@ -611,23 +611,26 @@ void LiveIntervals::handleLiveInRegister(MachineBasicBlock *MBB,
 
   MachineBasicBlock::iterator E = MBB->end();  
   while (mi != E) {
-    if (!mi->isDebugValue()) {
-      if (mi->killsRegister(interval.reg, tri_)) {
-        DEBUG(dbgs() << " killed");
-        end = baseIndex.getDefIndex();
-        SeenDefUse = true;
-        break;
-      } else if (mi->modifiesRegister(interval.reg, tri_)) {
-        // Another instruction redefines the register before it is ever read.
-        // Then the register is essentially dead at the instruction that defines
-        // it. Hence its interval is:
-        // [defSlot(def), defSlot(def)+1)
-        DEBUG(dbgs() << " dead");
-        end = start.getStoreIndex();
-        SeenDefUse = true;
-        break;
-      }
+    if (mi->isDebugValue()) {
+      ++mi;
+      continue;
+    }
+    if (mi->killsRegister(interval.reg, tri_)) {
+      DEBUG(dbgs() << " killed");
+      end = baseIndex.getDefIndex();
+      SeenDefUse = true;
+      break;
+    } else if (mi->modifiesRegister(interval.reg, tri_)) {
+      // Another instruction redefines the register before it is ever read.
+      // Then the register is essentially dead at the instruction that defines
+      // it. Hence its interval is:
+      // [defSlot(def), defSlot(def)+1)
+      DEBUG(dbgs() << " dead");
+      end = start.getStoreIndex();
+      SeenDefUse = true;
+      break;
     }
+
     ++mi;
     if (mi != E && !mi->isDebugValue()) {
       baseIndex = indexes_->getNextNonNullIndex(baseIndex);