[llvm-commits] [llvm] r169083 [1/2] - in /llvm/trunk: lib/Transforms/IPO/GlobalOpt.cpp lib/VMCore/PassManager.cpp test/Transforms/GlobalOpt/big-memory-footprint.ll

Zhou Sheng zhousheng00 at gmail.com
Sat Dec 1 02:54:29 PST 2012


Author: sheng
Date: Sat Dec  1 04:54:28 2012
New Revision: 169083

URL: http://llvm.org/viewvc/llvm-project?rev=169083&view=rev
Log:
Revert previous check in r168581, r169079 as they are still in code review status.

Removed:
    llvm/trunk/test/Transforms/GlobalOpt/big-memory-footprint.ll
Modified:
    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
    llvm/trunk/lib/VMCore/PassManager.cpp

Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=169083&r1=169082&r2=169083&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Sat Dec  1 04:54:28 2012
@@ -36,7 +36,6 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/SetVector.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/STLExtras.h"
 #include <algorithm>
@@ -2399,8 +2398,7 @@
 /// initializer.  This returns 'Init' modified to reflect 'Val' stored into it.
 /// At this point, the GEP operands of Addr [0, OpNo) have been stepped into.
 static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
-                                   ConstantExpr *Addr, unsigned OpNo,
-                                   SetVector<Constant*>& Obsolete) {
+                                   ConstantExpr *Addr, unsigned OpNo) {
   // Base case of the recursion.
   if (OpNo == Addr->getNumOperands()) {
     assert(Val->getType() == Init->getType() && "Type mismatch!");
@@ -2417,9 +2415,7 @@
     ConstantInt *CU = cast<ConstantInt>(Addr->getOperand(OpNo));
     unsigned Idx = CU->getZExtValue();
     assert(Idx < STy->getNumElements() && "Struct index out of range!");
-    if (Elts[Idx]->getType()->isAggregateType())
-      Obsolete.insert(Elts[Idx]);
-    Elts[Idx] = EvaluateStoreInto(Elts[Idx], Val, Addr, OpNo+1, Obsolete);
+    Elts[Idx] = EvaluateStoreInto(Elts[Idx], Val, Addr, OpNo+1);
 
     // Return the modified struct.
     return ConstantStruct::get(STy, Elts);
@@ -2439,11 +2435,8 @@
     Elts.push_back(Init->getAggregateElement(i));
 
   assert(CI->getZExtValue() < NumElts);
-  Constant *OrigElem = Elts[CI->getZExtValue()];
-  if (OrigElem->getType()->isAggregateType())
-    Obsolete.insert(OrigElem);
   Elts[CI->getZExtValue()] =
-    EvaluateStoreInto(OrigElem, Val, Addr, OpNo+1, Obsolete);
+    EvaluateStoreInto(Elts[CI->getZExtValue()], Val, Addr, OpNo+1);
 
   if (Init->getType()->isArrayTy())
     return ConstantArray::get(cast<ArrayType>(InitTy), Elts);
@@ -2459,20 +2452,9 @@
     return;
   }
 
-  // Collect obsolete constants created in previous CommitValueTo() invoke.
-  SetVector<Constant*> Obsolete;
   ConstantExpr *CE = cast<ConstantExpr>(Addr);
   GlobalVariable *GV = cast<GlobalVariable>(CE->getOperand(0));
-  Constant *OrigInit = GV->getInitializer();
-  if (OrigInit->getType()->isAggregateType())
-    Obsolete.insert(OrigInit);
-  Constant *Init = EvaluateStoreInto(OrigInit, Val, CE, 2, Obsolete);
-  GV->setInitializer(Init);
-
-  for (unsigned i = 0; i < Obsolete.size(); ++i) {
-    if (Obsolete[i]->use_empty())
-      Obsolete[i]->destroyConstant();
-  }
+  GV->setInitializer(EvaluateStoreInto(GV->getInitializer(), Val, CE, 2));
 }
 
 namespace {

Modified: llvm/trunk/lib/VMCore/PassManager.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/PassManager.cpp?rev=169083&r1=169082&r2=169083&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/PassManager.cpp (original)
+++ llvm/trunk/lib/VMCore/PassManager.cpp Sat Dec  1 04:54:28 2012
@@ -1640,18 +1640,6 @@
 
     OnTheFlyManagers[P] = FPP;
   }
-
-  // If RequiredPass is an analysis pass and it is available then do not
-  // generate the analysis again. Stale analysis info should not be
-  // available at this point.
-  const PassInfo *PI =
-    PassRegistry::getPassRegistry()->getPassInfo(RequiredPass->getPassID());
-  if (PI && PI->isAnalysis() && 
-      FPP->getTopLevelManager()->findAnalysisPass(RequiredPass->getPassID())) {
-    delete RequiredPass;
-    return;
-  }
-
   FPP->add(RequiredPass);
 
   // Register P as the last user of RequiredPass.





More information about the llvm-commits mailing list