diff options
author | Chris Lattner <sabre@nondot.org> | 2002-11-04 00:21:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-11-04 00:21:19 +0000 |
commit | 16500158223d4147ae97513bf698d5f321b15889 (patch) | |
tree | f1443b813c3025f07afe4ab083302490be7fe50b | |
parent | c875f023d41f60efc79647e9c2dd44ab0c8c03ca (diff) | |
download | llvm-16500158223d4147ae97513bf698d5f321b15889.tar.gz llvm-16500158223d4147ae97513bf698d5f321b15889.tar.bz2 llvm-16500158223d4147ae97513bf698d5f321b15889.tar.xz |
Allow the call graph to be called from analyze naturally with print implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4517 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/CallGraph.h | 23 | ||||
-rw-r--r-- | lib/Analysis/IPA/CallGraph.cpp | 11 |
2 files changed, 11 insertions, 23 deletions
diff --git a/include/llvm/Analysis/CallGraph.h b/include/llvm/Analysis/CallGraph.h index 3c9106cec2..740709d29f 100644 --- a/include/llvm/Analysis/CallGraph.h +++ b/include/llvm/Analysis/CallGraph.h @@ -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 diff --git a/lib/Analysis/IPA/CallGraph.cpp b/lib/Analysis/IPA/CallGraph.cpp index 5c4b5d81f7..2c26f8dbb2 100644 --- a/lib/Analysis/IPA/CallGraph.cpp +++ b/lib/Analysis/IPA/CallGraph.cpp @@ -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); } |