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.

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

lib/CodeGen/IfConversion.cpp

index 3583a9b71b3be637d4c02662f87c24f3cba695e4..9958d7daada889fb4e37821a9ff21dbb58231794 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);
   }