Fix one more place where debug info affected
authorDale Johannesen <dalej@apple.com>
Fri, 13 Mar 2009 01:05:24 +0000 (01:05 +0000)
committerDale Johannesen <dalej@apple.com>
Fri, 13 Mar 2009 01:05:24 +0000 (01:05 +0000)
codegen (speculative execution).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66859 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/SimplifyCFG.cpp

index b8bac6da2febe80689db319b9b8a0ce5acc124c8..925e3e9e1f8aa5e7814f28adc442468e397c0f6a 100644 (file)
@@ -1069,9 +1069,12 @@ static bool SpeculativelyExecuteBB(BranchInst *BI, BasicBlock *BB1) {
   }
 
   // If we get here, we can hoist the instruction. Try to place it
-  // before the icmp instruction preceeding the conditional branch.
+  // before the icmp instruction preceding the conditional branch.
   BasicBlock::iterator InsertPos = BI;
-  if (InsertPos != BIParent->begin()) 
+  if (InsertPos != BIParent->begin())
+    --InsertPos;
+  // Skip debug info between condition and branch.
+  while (InsertPos != BIParent->begin() && isa<DbgInfoIntrinsic>(InsertPos))
     --InsertPos;
   if (InsertPos == BrCond && !isa<PHINode>(BrCond)) {
     SmallPtrSet<Instruction *, 4> BB1Insns;