OSDN Git Service

Fix r114632. Return if the only terminator is an unconditional branch after the redun...
authorEvan Cheng <evan.cheng@apple.com>
Thu, 23 Sep 2010 19:42:03 +0000 (19:42 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 23 Sep 2010 19:42:03 +0000 (19:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114688 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMBaseInstrInfo.cpp

index 7786de2..a0f0c39 100644 (file)
@@ -284,9 +284,11 @@ ARMBaseInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
       LastInst->eraseFromParent();
       LastInst = SecondLastInst;
       LastOpc = LastInst->getOpcode();
-      if (I == MBB.begin() || !isUnpredicatedTerminator(--I))
-        break;
-      else {
+      if (I == MBB.begin() || !isUnpredicatedTerminator(--I)) {
+        // Return now the only terminator is an unconditional branch.
+        TBB = LastInst->getOperand(0).getMBB();
+        return false;
+      } else {
         SecondLastInst = I;
         SecondLastOpc = SecondLastInst->getOpcode();
       }