LLVM API Documentation

llvm::CallGraphNode Class Reference

#include <CallGraph.h>

Collaboration diagram for llvm::CallGraphNode:
[legend]

List of all members.

Public Types

typedef std::vector< CallRecord > CalledFunctionsVector
typedef std::vector
< CallRecord >::iterator 
iterator
typedef std::vector
< CallRecord >::const_iterator 
const_iterator

Public Member Functions

Function * getFunction () const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
bool empty () const
unsigned size () const
CallGraphNode * operator[] (unsigned i) const
void dump () const
void print (std::ostream &OS) const
void print (std::ostream *OS) const
void removeAllCalledFunctions ()
void addCalledFunction (CallSite CS, CallGraphNode *M)
void removeCallEdgeFor (CallSite CS)
void removeAnyCallEdgeTo (CallGraphNode *Callee)
void removeOneAbstractEdgeTo (CallGraphNode *Callee)
void replaceCallSite (CallSite Old, CallSite New)
 CallGraphNode (Function *f)

Friends

class CallGraph


Detailed Description

Definition at line 170 of file CallGraph.h.


Member Typedef Documentation

typedef std::vector<CallRecord> llvm::CallGraphNode::CalledFunctionsVector

Definition at line 177 of file CallGraph.h.

typedef std::vector<CallRecord>::iterator llvm::CallGraphNode::iterator

Definition at line 183 of file CallGraph.h.

typedef std::vector<CallRecord>::const_iterator llvm::CallGraphNode::const_iterator

Definition at line 184 of file CallGraph.h.


Constructor & Destructor Documentation

llvm::CallGraphNode::CallGraphNode ( Function *  f  )  [inline]

Definition at line 247 of file CallGraph.h.


Member Function Documentation

Function* llvm::CallGraphNode::getFunction (  )  const [inline]

iterator llvm::CallGraphNode::begin (  )  [inline]

iterator llvm::CallGraphNode::end (  )  [inline]

const_iterator llvm::CallGraphNode::begin (  )  const [inline]

Definition at line 191 of file CallGraph.h.

const_iterator llvm::CallGraphNode::end (  )  const [inline]

Definition at line 192 of file CallGraph.h.

bool llvm::CallGraphNode::empty (  )  const [inline]

Definition at line 193 of file CallGraph.h.

unsigned llvm::CallGraphNode::size (  )  const [inline]

Definition at line 194 of file CallGraph.h.

CallGraphNode* llvm::CallGraphNode::operator[] ( unsigned  i  )  const [inline]

Definition at line 198 of file CallGraph.h.

void CallGraphNode::dump (  )  const

dump - Print out this call graph node.

Definition at line 258 of file CallGraph.cpp.

References llvm::cerr(), and print().

void CallGraphNode::print ( std::ostream &  OS  )  const

Definition at line 244 of file CallGraph.cpp.

References begin(), E, end(), FI, llvm::GCFunctionInfo::getFunction(), getFunction(), and llvm::Value::getName().

Referenced by dump(), and print().

void llvm::CallGraphNode::print ( std::ostream *  OS  )  const [inline]

Definition at line 206 of file CallGraph.h.

References print().

void llvm::CallGraphNode::removeAllCalledFunctions (  )  [inline]

removeAllCalledFunctions - As the name implies, this removes all edges from this CallGraphNode to any functions it calls.

Definition at line 215 of file CallGraph.h.

Referenced by InlineCallIfPossible(), and llvm::Inliner::removeDeadFunctions().

void llvm::CallGraphNode::addCalledFunction ( CallSite  CS,
CallGraphNode *  M 
) [inline]

addCalledFunction - Add a function to the list of functions called by this one.

Definition at line 221 of file CallGraph.h.

Referenced by llvm::InlineFunction(), and UpdateCallGraphAfterInlining().

void CallGraphNode::removeCallEdgeFor ( CallSite  CS  ) 

removeCallEdgeFor - This method removes the edge in the node for the specified call site. Note that this method takes linear time, so it should be used sparingly.

removeCallEdgeFor - This method removes the edge in the node for the specified call site. Note that this method takes linear time, so it should be used sparingly.

Definition at line 263 of file CallGraph.cpp.

Referenced by UpdateCallGraphAfterInlining().

void CallGraphNode::removeAnyCallEdgeTo ( CallGraphNode *  Callee  ) 

removeAnyCallEdgeTo - This method removes all call edges from this node to the specified callee function. This takes more time to execute than removeCallEdgeTo, so it should not be used unless necessary.

Definition at line 277 of file CallGraph.cpp.

References second.

Referenced by llvm::Inliner::removeDeadFunctions().

void CallGraphNode::removeOneAbstractEdgeTo ( CallGraphNode *  Callee  ) 

removeOneAbstractEdgeTo - Remove one edge associated with a null callsite from this node to the specified callee function.

removeOneAbstractEdgeTo - Remove one edge associated with a null callsite from this node to the specified callee function.

Definition at line 288 of file CallGraph.cpp.

void CallGraphNode::replaceCallSite ( CallSite  Old,
CallSite  New 
)

replaceCallSite - Make the edge in the node for Old CallSite be for New CallSite instead. Note that this method takes linear time, so it should be used sparingly.

replaceCallSite - Make the edge in the node for Old CallSite be for New CallSite instead. Note that this method takes linear time, so it should be used sparingly.

Definition at line 302 of file CallGraph.cpp.


Friends And Related Function Documentation

friend class CallGraph [friend]

Definition at line 244 of file CallGraph.h.


The documentation for this class was generated from the following files: