diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp
index b590444..813fad2 100644
--- a/lib/CodeGen/MachineBasicBlock.cpp
+++ b/lib/CodeGen/MachineBasicBlock.cpp
@@ -155,22 +155,11 @@
 }
 
 MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
-  iterator B = begin(), I = end();
-  iterator Term = I;
-  while (I != B) {
-    --I;
-    // Ignore any debug values after the first terminator.
-    if (I->isDebugValue())
-      continue;
-    // Stop once we see a non-debug non-terminator.
-    if (!I->getDesc().isTerminator())
-      break;
-    // Earliest terminator so far.
-    Term = I;
-  }
-  // Return the first terminator, or end().
-  // Everything after Term is terminators and debug values.
-  return Term;
+  iterator I = end();
+  while (I != begin() && (--I)->getDesc().isTerminator())
+    ; /*noop */
+  if (I != end() && !I->getDesc().isTerminator()) ++I;
+  return I;
 }
 
 void MachineBasicBlock::dump() const {
diff --git a/lib/CodeGen/PHIElimination.cpp b/lib/CodeGen/PHIElimination.cpp
index 81ae361..923fa21 100644
--- a/lib/CodeGen/PHIElimination.cpp
+++ b/lib/CodeGen/PHIElimination.cpp
@@ -339,8 +339,6 @@
 #ifndef NDEBUG
         for (MachineBasicBlock::iterator TI = llvm::next(Term);
              TI != opBlock.end(); ++TI) {
-          if (TI->isDebugValue())
-            continue;
           assert(!TI->readsRegister(SrcReg) &&
                  "Terminator instructions cannot use virtual registers unless"
                  "they are the first terminator in a block!");
