cache result of operator*
authorGabor Greif <ggreif@gmail.com>
Fri, 9 Jul 2010 15:25:42 +0000 (15:25 +0000)
committerGabor Greif <ggreif@gmail.com>
Fri, 9 Jul 2010 15:25:42 +0000 (15:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107975 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/BreakCriticalEdges.cpp

index 8c25ad139b94e5865a5f1f4e698e96a60e3e01d6..d1b0e86f49861e27648c34d9eec47fc068fbb338 100644 (file)
@@ -277,11 +277,13 @@ BasicBlock *llvm::SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,
         OtherPreds.push_back(PN->getIncomingBlock(i));
   } else {
     for (pred_iterator I = pred_begin(DestBB), E = pred_end(DestBB);
-         I != E; ++I)
-      if (*I != NewBB)
-        OtherPreds.push_back(*I);
+         I != E; ++I) {
+      BasicBlock *P = *I;
+      if (P != NewBB)
+          OtherPreds.push_back(P);
+    }
   }
-  
+
   bool NewBBDominatesDestBB = true;
   
   // Should we update DominatorTree information?