forked from OSchip/llvm-project
Allow the call graph to be called from analyze naturally with print implemented
llvm-svn: 4517
This commit is contained in:
parent
a20fabc7ec
commit
b9d55473b5
|
@ -137,6 +137,12 @@ public:
|
|||
destroy();
|
||||
}
|
||||
|
||||
/// Print the types found in the module. If the optional Module parameter is
|
||||
/// passed in, then the types are printed symbolically if possible, using the
|
||||
/// symbol table from the module.
|
||||
///
|
||||
void print(std::ostream &o, const Module *M) const;
|
||||
|
||||
private:
|
||||
//===---------------------------------------------------------------------
|
||||
// Implementation of CallGraph construction
|
||||
|
@ -250,21 +256,4 @@ template<> struct GraphTraits<const CallGraph*> :
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Printing support for Call Graphs
|
||||
//
|
||||
|
||||
// Stuff for printing out a callgraph...
|
||||
|
||||
void WriteToOutput(const CallGraph &, std::ostream &o);
|
||||
inline std::ostream &operator <<(std::ostream &o, const CallGraph &CG) {
|
||||
WriteToOutput(CG, o); return o;
|
||||
}
|
||||
|
||||
void WriteToOutput(const CallGraphNode *, std::ostream &o);
|
||||
inline std::ostream &operator <<(std::ostream &o, const CallGraphNode *CGN) {
|
||||
WriteToOutput(CGN, o); return o;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -130,8 +130,7 @@ void CallGraph::destroy() {
|
|||
FunctionMap.clear();
|
||||
}
|
||||
|
||||
|
||||
void WriteToOutput(const CallGraphNode *CGN, std::ostream &o) {
|
||||
static void WriteToOutput(const CallGraphNode *CGN, std::ostream &o) {
|
||||
if (CGN->getFunction())
|
||||
o << "Call graph node for function: '"
|
||||
<< CGN->getFunction()->getName() <<"'\n";
|
||||
|
@ -146,11 +145,11 @@ void WriteToOutput(const CallGraphNode *CGN, std::ostream &o) {
|
|||
o << "\n";
|
||||
}
|
||||
|
||||
void WriteToOutput(const CallGraph &CG, std::ostream &o) {
|
||||
o << "CallGraph Root is:\n" << CG.getRoot();
|
||||
void CallGraph::print(std::ostream &o, const Module *M) const {
|
||||
o << "CallGraph Root is:\n" << getRoot();
|
||||
|
||||
for (CallGraph::const_iterator I = CG.begin(), E = CG.end(); I != E; ++I)
|
||||
o << I->second;
|
||||
for (CallGraph::const_iterator I = begin(), E = end(); I != E; ++I)
|
||||
WriteToOutput(I->second, o);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue