Avoid creating duplicate CFG edges in the IfConversion pass.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 24 Jan 2013 23:59:08 +0000 (23:59 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 24 Jan 2013 23:59:08 +0000 (23:59 +0000)
Patch by Stefan Hepp.

llvm-svn: 173395

llvm/lib/CodeGen/IfConversion.cpp

index 3583a9b..9958d7d 100644 (file)
@@ -1557,7 +1557,7 @@ void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {
     if (Succ == FallThrough)
       continue;
     FromBBI.BB->removeSuccessor(Succ);
-    if (AddEdges)
+    if (AddEdges && !ToBBI.BB->isSuccessor(Succ))
       ToBBI.BB->addSuccessor(Succ);
   }