In the TD pass, don't iterate over the scalar map to find the globals, iterate over
authorChris Lattner <sabre@nondot.org>
Wed, 28 Jan 2004 03:07:30 +0000 (03:07 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 28 Jan 2004 03:07:30 +0000 (03:07 +0000)
the globals directly.  This doesn't save any substantial time, however, because the
globals graph only contains globals!

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

lib/Analysis/DataStructure/TopDownClosure.cpp

index 01dec2978d1c34e69b914034cc2e25be134ade06..67ea400dced7e6324ccc839838cc92cc21b41ad1 100644 (file)
@@ -62,10 +62,9 @@ bool TDDataStructures::run(Module &M) {
   // globals graph.
   const DSGraph::ScalarMapTy &GGSM = GlobalsGraph->getScalarMap();
   hash_set<DSNode*> Visited;
-  for (DSGraph::ScalarMapTy::const_iterator I = GGSM.begin(), E = GGSM.end();
+  for (DSScalarMap::global_iterator I = GGSM.global_begin(), E = GGSM.global_end();
        I != E; ++I)
-    if (isa<GlobalValue>(I->first))
-      markReachableFunctionsExternallyAccessible(I->second.getNode(), Visited);
+    markReachableFunctionsExternallyAccessible(GGSM.find(*I)->second.getNode(), Visited);
 
   // Loop over unresolved call nodes.  Any functions passed into (but not
   // returned!) from unresolvable call nodes may be invoked outside of the