LLVM API Documentation
#include <CallGraph.h>
Collaboration diagram for llvm::CallGraph:
Public Types | |
typedef FunctionMapTy::iterator | iterator |
typedef FunctionMapTy::const_iterator | const_iterator |
Public Member Functions | |
Module & | getModule () const |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
const CallGraphNode * | operator[] (const Function *F) const |
CallGraphNode * | operator[] (const Function *F) |
virtual CallGraphNode * | getExternalCallingNode () const |
virtual CallGraphNode * | getRoot () |
virtual const CallGraphNode * | getRoot () const |
Function * | removeFunctionFromModule (CallGraphNode *CGN) |
Function * | removeFunctionFromModule (Function *F) |
void | changeFunction (Function *OldF, Function *NewF) |
CallGraphNode * | getOrInsertFunction (const Function *F) |
virtual | ~CallGraph () |
void | initialize (Module &M) |
virtual void | print (std::ostream &o, const Module *M) const |
void | dump () const |
Static Public Attributes | |
static int | stub |
Protected Types | |
typedef std::map< const Function *, CallGraphNode * > | FunctionMapTy |
Protected Member Functions | |
CallGraph () | |
virtual void | destroy () |
Protected Attributes | |
Module * | Mod |
FunctionMapTy | FunctionMap |
Definition at line 68 of file CallGraph.h.
typedef std::map<const Function *, CallGraphNode *> llvm::CallGraph::FunctionMapTy [protected] |
Definition at line 72 of file CallGraph.h.
typedef FunctionMapTy::iterator llvm::CallGraph::iterator |
Definition at line 79 of file CallGraph.h.
typedef FunctionMapTy::const_iterator llvm::CallGraph::const_iterator |
Definition at line 80 of file CallGraph.h.
llvm::CallGraph::CallGraph | ( | ) | [inline, protected] |
Definition at line 145 of file CallGraph.h.
virtual llvm::CallGraph::~CallGraph | ( | ) | [inline, virtual] |
Module& llvm::CallGraph::getModule | ( | ) | const [inline] |
getModule - Return the module the call graph corresponds to.
Definition at line 84 of file CallGraph.h.
References Mod.
iterator llvm::CallGraph::begin | ( | ) | [inline] |
Definition at line 86 of file CallGraph.h.
References FunctionMap.
Referenced by llvm::Inliner::doFinalization(), llvm::GraphTraits< const CallGraph * >::nodes_begin(), llvm::GraphTraits< CallGraph * >::nodes_begin(), and print().
iterator llvm::CallGraph::end | ( | ) | [inline] |
Definition at line 87 of file CallGraph.h.
References FunctionMap.
Referenced by llvm::Inliner::doFinalization(), llvm::GraphTraits< const CallGraph * >::nodes_end(), llvm::GraphTraits< CallGraph * >::nodes_end(), and print().
const_iterator llvm::CallGraph::begin | ( | ) | const [inline] |
const_iterator llvm::CallGraph::end | ( | ) | const [inline] |
const CallGraphNode* llvm::CallGraph::operator[] | ( | const Function * | F | ) | const [inline] |
CallGraphNode* llvm::CallGraph::operator[] | ( | const Function * | F | ) | [inline] |
virtual CallGraphNode* llvm::CallGraph::getExternalCallingNode | ( | ) | const [inline, virtual] |
Definition at line 106 of file CallGraph.h.
Referenced by llvm::Inliner::doFinalization(), llvm::GraphTraits< const CallGraph * >::getEntryNode(), and llvm::GraphTraits< CallGraph * >::getEntryNode().
virtual CallGraphNode* llvm::CallGraph::getRoot | ( | ) | [inline, virtual] |
Definition at line 111 of file CallGraph.h.
virtual const CallGraphNode* llvm::CallGraph::getRoot | ( | ) | const [inline, virtual] |
Definition at line 112 of file CallGraph.h.
Function * CallGraph::removeFunctionFromModule | ( | CallGraphNode * | CGN | ) |
removeFunctionFromModule - Unlink the function from this module, returning it. Because this removes the function from the module, the call graph node is destroyed. This is only valid if the function does not call any other functions (ie, there are no edges in it's CGN). The easiest way to do this is to dropAllReferences before calling this.
Definition at line 223 of file CallGraph.cpp.
References llvm::CallGraphNode::CalledFunctions, F, FunctionMap, llvm::CallGraphNode::getFunction(), llvm::Module::getFunctionList(), and Mod.
Referenced by llvm::Inliner::doFinalization(), InlineCallIfPossible(), and removeFunctionFromModule().
changeFunction - This method changes the function associated with this CallGraphNode, for use by transformations that need to change the prototype of a Function (thus they must create a new Function and move the old code over).
Definition at line 238 of file CallGraph.cpp.
References llvm::CallGraphNode::F, and FunctionMap.
CallGraphNode * CallGraph::getOrInsertFunction | ( | const Function * | F | ) |
getOrInsertFunction - This method is identical to calling operator[], but it will insert a new CallGraphNode for the specified function if one does not already exist.
Definition at line 251 of file CallGraph.cpp.
References F, FunctionMap, and Mod.
Referenced by llvm::InlineFunction().
void CallGraph::initialize | ( | Module & | M | ) |
void CallGraph::print | ( | std::ostream & | o, | |
const Module * | M | |||
) | const [virtual] |
void CallGraph::dump | ( | ) | const |
void CallGraph::destroy | ( | ) | [protected, virtual] |
Definition at line 195 of file CallGraph.cpp.
References E, and FunctionMap.
Referenced by initialize(), and ~CallGraph().
Module* llvm::CallGraph::Mod [protected] |
Definition at line 70 of file CallGraph.h.
Referenced by getModule(), getOrInsertFunction(), initialize(), and removeFunctionFromModule().
FunctionMapTy llvm::CallGraph::FunctionMap [protected] |
Definition at line 73 of file CallGraph.h.
Referenced by begin(), changeFunction(), destroy(), end(), getOrInsertFunction(), operator[](), and removeFunctionFromModule().
int llvm::CallGraph::stub [static] |
Definition at line 159 of file CallGraph.h.