diff options
Diffstat (limited to 'lib/Transforms')
-rw-r--r-- | lib/Transforms/IPO/GlobalDCE.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index d69a998..4edfb39 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -29,9 +29,10 @@ static bool RemoveUnreachableFunctions(Module &M, CallGraph &CallGraph) { std::vector<CallGraphNode*> FunctionsToDelete; // Track unused functions for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) { CallGraphNode *N = CallGraph[I]; + if (!ReachableNodes.count(N)) { // Not reachable?? I->dropAllReferences(); - N->removeAllCalledMethods(); + N->removeAllCalledFunctions(); FunctionsToDelete.push_back(N); ++NumRemoved; } @@ -45,7 +46,7 @@ static bool RemoveUnreachableFunctions(Module &M, CallGraph &CallGraph) { // for (std::vector<CallGraphNode*>::iterator I = FunctionsToDelete.begin(), E = FunctionsToDelete.end(); I != E; ++I) - delete CallGraph.removeMethodFromModule(*I); + delete CallGraph.removeFunctionFromModule(*I); return true; } |