aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis/CallGraph.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-03-06 17:59:45 +0000
committerChris Lattner <sabre@nondot.org>2002-03-06 17:59:45 +0000
commitbf4bf53dfd447614a2f4178791a1f6cbd76d8137 (patch)
treef96912ea86ad262ebbc8e0fc079c67c4dd543a19 /include/llvm/Analysis/CallGraph.h
parent70d12b037b76b7d04dc1c40a2283d117cdb48245 (diff)
downloadexternal_llvm-bf4bf53dfd447614a2f4178791a1f6cbd76d8137.zip
external_llvm-bf4bf53dfd447614a2f4178791a1f6cbd76d8137.tar.gz
external_llvm-bf4bf53dfd447614a2f4178791a1f6cbd76d8137.tar.bz2
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
Diffstat (limited to 'include/llvm/Analysis/CallGraph.h')
-rw-r--r--include/llvm/Analysis/CallGraph.h33
1 files changed, 26 insertions, 7 deletions
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<CallGraphNode*> 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<const CallGraph*> :
};
-// 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