mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
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
This commit is contained in:
parent
70d12b037b
commit
bf4bf53dfd
@ -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
|
||||
|
@ -77,18 +77,4 @@ inline std::ostream &operator <<(std::ostream &o, const InductionVariable &IV) {
|
||||
WriteToOutput(IV, o); return o;
|
||||
}
|
||||
|
||||
// Stuff for printing out a callgraph...
|
||||
class CallGraph;
|
||||
class CallGraphNode;
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user