IndCallGraphMap is now a pointer to a new'd map.
authorChris Lattner <sabre@nondot.org>
Mon, 7 Feb 2005 16:09:15 +0000 (16:09 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 7 Feb 2005 16:09:15 +0000 (16:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20065 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/BottomUpClosure.cpp

index e3c8c49d4210d6f3e2352484a10176bc82189617..6d3c4b0a1a4d33de4a4d47bc66069404f711db4d 100644 (file)
@@ -40,6 +40,9 @@ bool BUDataStructures::runOnModule(Module &M) {
   GlobalsGraph = new DSGraph(LocalDSA.getGlobalsGraph());
   GlobalsGraph->setPrintAuxCalls();
 
+  IndCallGraphMap = new std::map<std::vector<Function*>,
+                           std::pair<DSGraph*, std::vector<DSNodeHandle> > >();
+
   std::vector<Function*> Stack;
   hash_map<Function*, unsigned> ValMap;
   unsigned NextID = 1;
@@ -64,11 +67,11 @@ bool BUDataStructures::runOnModule(Module &M) {
   // If we computed any temporary indcallgraphs, free them now.
   for (std::map<std::vector<Function*>,
          std::pair<DSGraph*, std::vector<DSNodeHandle> > >::iterator I =
-         IndCallGraphMap.begin(), E = IndCallGraphMap.end(); I != E; ++I) {
+         IndCallGraphMap->begin(), E = IndCallGraphMap->end(); I != E; ++I) {
     I->second.second.clear();  // Drop arg refs into the graph.
     delete I->second.first;
   }
-  IndCallGraphMap.clear();
+  delete IndCallGraphMap;
 
   // At the end of the bottom-up pass, the globals graph becomes complete.
   // FIXME: This is not the right way to do this, but it is sorta better than
@@ -340,7 +343,7 @@ void BUDataStructures::calculateGraph(DSGraph &Graph) {
         // See if we already computed a graph for this set of callees.
         std::sort(CalledFuncs.begin(), CalledFuncs.end());
         std::pair<DSGraph*, std::vector<DSNodeHandle> > &IndCallGraph =
-          IndCallGraphMap[CalledFuncs];
+          (*IndCallGraphMap)[CalledFuncs];
 
         if (IndCallGraph.first == 0) {
           std::vector<Function*>::iterator I = CalledFuncs.begin(),