Class CallGraph#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Type#

Class Documentation#

class CallGraph : public DGraph#

CallGraph is a DGraph (directed graph) with enhanced nodes and edges.

Each node corresponds to a function definition or reference (or both). Each node contains a list of places where it is defined or referenced.

Public Types

enum EdgeType#

Values:

enumerator NORMAL_EDGE#

Public Functions

CallGraph(IRInterface &_ir, IRProcIterator *fi, const SymHandle &name)#
virtual ~CallGraph()#
inline Node *Entry()#
inline Node *Exit()#
inline IRInterface &GetIRInterface()#
void dump(std::ostream &os)#
inline const SymHandle &subprog_name()#
class CallGraphException : public Exception#

Public Functions

inline void report(std::ostream &os) const#
class Edge : public DGraph::Edge#

Public Functions

Edge(Node *n1, Node *n2, EdgeType type)#
inline virtual ~Edge()#
inline EdgeType getType()#
virtual void dump(std::ostream &os)#
class Node : public DGraph::Node#

Public Functions

inline Node()#
inline Node(SymHandle s)#
inline virtual ~Node()#
inline unsigned int getID()#
inline bool IsDefined()#
inline bool IsUsed()#
inline ProcHandle GetDef()#
virtual void dump(std::ostream &os)#
void shortdump(CallGraph *cgraph, std::ostream &os)#
void longdump(CallGraph *cgraph, std::ostream &os)#
inline void add_def(ProcHandle h)#
inline void add_use(ExprHandle h)#

Friends

friend class CallGraph::NodeUsesIterator
class NodeUsesIterator : public Iterator#

Public Functions

inline NodeUsesIterator(Node *node_)#
inline ~NodeUsesIterator()#
inline virtual void operator++()#
inline virtual operator bool()#
inline operator ExprHandle()#