Revert invalid r60393. It causes llvm-gcc bootstrap fails in release builds.
authorAnton Korobeynikov <asl@math.spbu.ru>
Fri, 5 Dec 2008 19:38:49 +0000 (19:38 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Fri, 5 Dec 2008 19:38:49 +0000 (19:38 +0000)
See PR3160 for details

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

lib/Transforms/Scalar/GVN.cpp

index 385de02322f1881ce8af3c5612111219ef0b9bfb..6e0296d2106ffde4e5d034befec1dd5de9186241 100644 (file)
@@ -1484,7 +1484,6 @@ bool GVN::performPRE(Function& F) {
         
       if (isCriticalEdge(PREPred->getTerminator(), succNum)) {
         toSplit.push_back(std::make_pair(PREPred->getTerminator(), succNum));
-        Changed = true;
         continue;
       }
       
@@ -1547,14 +1546,10 @@ bool GVN::performPRE(Function& F) {
   }
   
   for (SmallVector<std::pair<TerminatorInst*, unsigned>, 4>::iterator
-       I = toSplit.begin(), E = toSplit.end(); I != E; ++I) {
+       I = toSplit.begin(), E = toSplit.end(); I != E; ++I)
     SplitCriticalEdge(I->first, I->second, this);
-    BasicBlock* NewBlock = I->first->getSuccessor(I->second);
-    localAvail[NewBlock] =
-             new ValueNumberScope(localAvail[I->first->getParent()]);
-  }
   
-  return Changed;
+  return Changed || toSplit.size();
 }
 
 // iterateOnFunction - Executes one iteration of GVN