Clean up DSGraph::removeDeadNodes interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4660 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 630ec5f..f1fce0f 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -981,10 +981,7 @@
// from the caller's graph entirely. This is only appropriate to use when
// inlining graphs.
//
-void DSGraph::removeDeadNodes(bool KeepAllGlobals, bool KeepCalls) {
- assert((!KeepAllGlobals || KeepCalls) && // FIXME: This should be an enum!
- "KeepAllGlobals without KeepCalls is meaningless");
-
+void DSGraph::removeDeadNodes(bool KeepAllGlobals) {
// Reduce the amount of work we have to do...
removeTriviallyDeadNodes(KeepAllGlobals);
@@ -994,19 +991,17 @@
std::set<DSNode*> Alive;
// If KeepCalls, mark all nodes reachable by call nodes as alive...
- if (KeepCalls) {
- for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i) {
- for (unsigned j = 0, e = FunctionCalls[i].getNumPtrArgs(); j != e; ++j)
- markAlive(FunctionCalls[i].getPtrArg(j).getNode(), Alive);
- markAlive(FunctionCalls[i].getRetVal().getNode(), Alive);
- markAlive(FunctionCalls[i].getCallee().getNode(), Alive);
- }
- for (unsigned i = 0, e = AuxFunctionCalls.size(); i != e; ++i) {
- for (unsigned j = 0, e = AuxFunctionCalls[i].getNumPtrArgs(); j != e; ++j)
- markAlive(AuxFunctionCalls[i].getPtrArg(j).getNode(), Alive);
- markAlive(AuxFunctionCalls[i].getRetVal().getNode(), Alive);
- markAlive(AuxFunctionCalls[i].getCallee().getNode(), Alive);
- }
+ for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i) {
+ for (unsigned j = 0, e = FunctionCalls[i].getNumPtrArgs(); j != e; ++j)
+ markAlive(FunctionCalls[i].getPtrArg(j).getNode(), Alive);
+ markAlive(FunctionCalls[i].getRetVal().getNode(), Alive);
+ markAlive(FunctionCalls[i].getCallee().getNode(), Alive);
+ }
+ for (unsigned i = 0, e = AuxFunctionCalls.size(); i != e; ++i) {
+ for (unsigned j = 0, e = AuxFunctionCalls[i].getNumPtrArgs(); j != e; ++j)
+ markAlive(AuxFunctionCalls[i].getPtrArg(j).getNode(), Alive);
+ markAlive(AuxFunctionCalls[i].getRetVal().getNode(), Alive);
+ markAlive(AuxFunctionCalls[i].getCallee().getNode(), Alive);
}
// Mark all nodes reachable by scalar nodes as alive...
@@ -1022,7 +1017,7 @@
// Of course, if KeepAllGlobals is specified, they would be live already.
if (!KeepAllGlobals)
- markGlobalsAlive(*this, Alive, !KeepCalls);
+ markGlobalsAlive(*this, Alive, false);
// Loop over all unreachable nodes, dropping their references...
vector<DSNode*> DeadNodes;
@@ -1157,7 +1152,7 @@
if (CloneCalls)
GlobalsGraph->cloneCalls(Graph);
- GlobalsGraph->removeDeadNodes(/*KeepAllGlobals*/ true, /*KeepCalls*/ true);
+ GlobalsGraph->removeDeadNodes(/*KeepAllGlobals*/ true);
#endif
}