* Add a bunch of stuff for checking the integrity of the graph

* remove the isNodeDead method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5474 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-02-03 19:10:24 +00:00
parent 9a64084a84
commit f9962812d0
2 changed files with 54 additions and 4 deletions

View File

@ -180,8 +180,33 @@ public:
///
void mergeInGraph(DSCallSite &CS, const DSGraph &Graph, unsigned CloneFlags);
private:
bool isNodeDead(DSNode *N);
// Methods for checking to make sure graphs are well formed...
void AssertNodeInGraph(DSNode *N) const {
assert((!N || find(Nodes.begin(), Nodes.end(), N) != Nodes.end()) &&
"AssertNodeInGraph: Node is not in graph!");
}
void AssertNodeContainsGlobal(const DSNode *N, GlobalValue *GV) const {
assert(std::find(N->getGlobals().begin(), N->getGlobals().end(), GV) !=
N->getGlobals().end() && "Global value not in node!");
}
void AssertCallSiteInGraph(const DSCallSite &CS) const {
AssertNodeInGraph(CS.getCallee().getNode());
AssertNodeInGraph(CS.getRetVal().getNode());
for (unsigned j = 0, e = CS.getNumPtrArgs(); j != e; ++j)
AssertNodeInGraph(CS.getPtrArg(j).getNode());
}
void AssertCallNodesInGraph() const {
for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i)
AssertCallSiteInGraph(FunctionCalls[i]);
}
void AssertAuxCallNodesInGraph() const {
for (unsigned i = 0, e = AuxFunctionCalls.size(); i != e; ++i)
AssertCallSiteInGraph(AuxFunctionCalls[i]);
}
void AssertGraphOK() const;
public:
// removeTriviallyDeadNodes - After the graph has been constructed, this

View File

@ -180,8 +180,33 @@ public:
///
void mergeInGraph(DSCallSite &CS, const DSGraph &Graph, unsigned CloneFlags);
private:
bool isNodeDead(DSNode *N);
// Methods for checking to make sure graphs are well formed...
void AssertNodeInGraph(DSNode *N) const {
assert((!N || find(Nodes.begin(), Nodes.end(), N) != Nodes.end()) &&
"AssertNodeInGraph: Node is not in graph!");
}
void AssertNodeContainsGlobal(const DSNode *N, GlobalValue *GV) const {
assert(std::find(N->getGlobals().begin(), N->getGlobals().end(), GV) !=
N->getGlobals().end() && "Global value not in node!");
}
void AssertCallSiteInGraph(const DSCallSite &CS) const {
AssertNodeInGraph(CS.getCallee().getNode());
AssertNodeInGraph(CS.getRetVal().getNode());
for (unsigned j = 0, e = CS.getNumPtrArgs(); j != e; ++j)
AssertNodeInGraph(CS.getPtrArg(j).getNode());
}
void AssertCallNodesInGraph() const {
for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i)
AssertCallSiteInGraph(FunctionCalls[i]);
}
void AssertAuxCallNodesInGraph() const {
for (unsigned i = 0, e = AuxFunctionCalls.size(); i != e; ++i)
AssertCallSiteInGraph(AuxFunctionCalls[i]);
}
void AssertGraphOK() const;
public:
// removeTriviallyDeadNodes - After the graph has been constructed, this