From bf4bf53dfd447614a2f4178791a1f6cbd76d8137 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 6 Mar 2002 17:59:45 +0000 Subject: Move callgraph printing out of writer.h into callgraph.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1824 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/CallGraph.h | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'include/llvm/Analysis/CallGraph.h') diff --git a/include/llvm/Analysis/CallGraph.h b/include/llvm/Analysis/CallGraph.h index a249465..38f26b3 100644 --- a/include/llvm/Analysis/CallGraph.h +++ b/include/llvm/Analysis/CallGraph.h @@ -20,8 +20,11 @@ #include "llvm/Pass.h" class Method; class Module; - class CallGraph; + +//===----------------------------------------------------------------------===// +// CallGraphNode class definition +// class CallGraphNode { Method *Meth; std::vector CalledMethods; @@ -59,6 +62,9 @@ private: // Stuff to construct the node, used by CallGraph }; +//===----------------------------------------------------------------------===// +// CallGraph class definition +// class CallGraph : public Pass { Module *Mod; // The module this call graph represents @@ -140,7 +146,10 @@ private: // Implementation of CallGraph construction }; - +//===----------------------------------------------------------------------===// +// GraphTraits specializations for call graphs so that they can be treated as +// graphs by the generic graph algorithms... +// // Provide graph traits for tranversing call graphs using standard graph // traversals. @@ -177,10 +186,20 @@ template<> struct GraphTraits : }; -// Checks if a method contains any call instructions. -// Note that this uses the call graph only if one is provided. -// It does not build the call graph. -// -bool isLeafMethod(const Method* method, const CallGraph *callGraph = 0); +//===----------------------------------------------------------------------===// +// 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 -- cgit v1.1