LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::DSCallSite Class Reference

#include <DSSupport.h>

Collaboration diagram for llvm::DSCallSite:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DSCallSite (CallSite CS, const DSNodeHandle &rv, DSNode *Callee, std::vector< DSNodeHandle > &Args)
 DSCallSite (CallSite CS, const DSNodeHandle &rv, Function *Callee, std::vector< DSNodeHandle > &Args)
 DSCallSite (const DSCallSite &DSCS)
template<typename MapTy>
 DSCallSite (const DSCallSite &FromCall, MapTy &NodeMap)
const DSCallSiteoperator= (const DSCallSite &RHS)
bool isDirectCall () const
bool isIndirectCall () const
FunctiongetCaller () const
CallSite getCallSite () const
DSNodeHandlegetRetVal ()
const DSNodeHandlegetRetVal () const
DSNodegetCalleeNode () const
FunctiongetCalleeFunc () const
unsigned getNumPtrArgs () const
DSNodeHandlegetPtrArg (unsigned i)
const DSNodeHandlegetPtrArg (unsigned i) const
void swap (DSCallSite &CS)
void mergeWith (DSCallSite &CS)
void markReachableNodes (hash_set< DSNode * > &Nodes)
bool operator< (const DSCallSite &CS) const
bool operator== (const DSCallSite &CS) const

Detailed Description

DSCallSite - Representation of a call site via its call instruction, the DSNode handle for the callee function (or function pointer), and the DSNode handles for the function arguments.

Definition at line 155 of file DSSupport.h.


Constructor & Destructor Documentation

llvm::DSCallSite::DSCallSite CallSite  CS,
const DSNodeHandle rv,
DSNode Callee,
std::vector< DSNodeHandle > &  Args
[inline]
 

Constructor. Note - This ctor destroys the argument vector passed in. On exit, the argument vector is empty.

Definition at line 191 of file DSSupport.h.

llvm::DSCallSite::DSCallSite CallSite  CS,
const DSNodeHandle rv,
Function Callee,
std::vector< DSNodeHandle > &  Args
[inline]
 

Definition at line 197 of file DSSupport.h.

llvm::DSCallSite::DSCallSite const DSCallSite DSCS  )  [inline]
 

Definition at line 204 of file DSSupport.h.

template<typename MapTy>
llvm::DSCallSite::DSCallSite const DSCallSite FromCall,
MapTy &  NodeMap
[inline]
 

Mapping copy constructor - This constructor takes a preexisting call site to copy plus a map that specifies how the links should be transformed. This is useful when moving a call site from one graph to another.

Definition at line 213 of file DSSupport.h.

References CallArgs, CalleeF, CalleeN, RetVal, and Site.


Member Function Documentation

Function* llvm::DSCallSite::getCalleeFunc  )  const [inline]
 

Definition at line 250 of file DSSupport.h.

References llvm::DSNodeHandle::getNode().

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), and removeIdenticalCalls().

DSNode* llvm::DSCallSite::getCalleeNode  )  const [inline]
 

Definition at line 247 of file DSSupport.h.

References llvm::DSNodeHandle::getNode().

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSGraph::AssertCallSiteInGraph(), CallSiteUsesAliveArgs(), markReachableNodes(), and removeIdenticalCalls().

Function & DSCallSite::getCaller  )  const
 

Definition at line 1039 of file DataStructure.cpp.

References llvm::CallSite::getInstruction(), llvm::BasicBlock::getParent(), and llvm::Instruction::getParent().

CallSite llvm::DSCallSite::getCallSite  )  const [inline]
 

Definition at line 243 of file DSSupport.h.

unsigned llvm::DSCallSite::getNumPtrArgs  )  const [inline]
 

Definition at line 254 of file DSSupport.h.

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSGraph::AssertCallSiteInGraph(), CallSiteUsesAliveArgs(), markIncomplete(), markReachableNodes(), llvm::ReachabilityCloner::mergeCallSite(), llvm::DSGraph::mergeInGraph(), mergeWith(), PathExistsToClonedNode(), removeIdenticalCalls(), and llvm::TDDataStructures::runOnModule().

const DSNodeHandle& llvm::DSCallSite::getPtrArg unsigned  i  )  const [inline]
 

Definition at line 260 of file DSSupport.h.

DSNodeHandle& llvm::DSCallSite::getPtrArg unsigned  i  )  [inline]
 

Definition at line 256 of file DSSupport.h.

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSGraph::AssertCallSiteInGraph(), CallSiteUsesAliveArgs(), markIncomplete(), markReachableNodes(), llvm::ReachabilityCloner::mergeCallSite(), llvm::DSGraph::mergeInGraph(), mergeWith(), PathExistsToClonedNode(), removeIdenticalCalls(), and llvm::TDDataStructures::runOnModule().

const DSNodeHandle& llvm::DSCallSite::getRetVal  )  const [inline]
 

Definition at line 245 of file DSSupport.h.

DSNodeHandle& llvm::DSCallSite::getRetVal  )  [inline]
 

Definition at line 244 of file DSSupport.h.

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSGraph::AssertCallSiteInGraph(), CallSiteUsesAliveArgs(), markIncomplete(), markReachableNodes(), llvm::ReachabilityCloner::mergeCallSite(), llvm::DSGraph::mergeInGraph(), mergeWith(), PathExistsToClonedNode(), and removeIdenticalCalls().

bool llvm::DSCallSite::isDirectCall  )  const [inline]
 

isDirectCall - Return true if this call site is a direct call of the function specified by getCalleeFunc. If not, it is an indirect call to the node specified by getCalleeNode.

Definition at line 237 of file DSSupport.h.

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), isIndirectCall(), operator<(), and removeIdenticalCalls().

bool llvm::DSCallSite::isIndirectCall  )  const [inline]
 

Definition at line 238 of file DSSupport.h.

References isDirectCall().

Referenced by llvm::DOTGraphTraits< const DSGraph * >::addCustomGraphFeatures(), llvm::DSGraph::AssertCallSiteInGraph(), CallSiteUsesAliveArgs(), markReachableNodes(), operator<(), and removeIdenticalCalls().

void DSCallSite::markReachableNodes hash_set< DSNode * > &  Nodes  ) 
 

markReachableNodes - This method recursively traverses the specified DSNodes, marking any nodes which are reachable. All reachable nodes it adds to the set, which allows it to only traverse visited nodes once.

Definition at line 1701 of file DataStructure.cpp.

References getCalleeNode(), llvm::DSNodeHandle::getNode(), getNumPtrArgs(), getPtrArg(), getRetVal(), isIndirectCall(), and llvm::DSNode::markReachableNodes().

void llvm::DSCallSite::mergeWith DSCallSite CS  )  [inline]
 

mergeWith - Merge the return value and parameters of the these two call sites.

Definition at line 278 of file DSSupport.h.

References getNumPtrArgs(), getPtrArg(), getRetVal(), and llvm::DSNodeHandle::mergeWith().

Referenced by removeIdenticalCalls().

bool llvm::DSCallSite::operator< const DSCallSite CS  )  const [inline]
 

Definition at line 293 of file DSSupport.h.

References CallArgs, CalleeF, CalleeN, isDirectCall(), isIndirectCall(), and RetVal.

const DSCallSite& llvm::DSCallSite::operator= const DSCallSite RHS  )  [inline]
 

Definition at line 224 of file DSSupport.h.

References CallArgs, CalleeF, CalleeN, RetVal, and Site.

bool llvm::DSCallSite::operator== const DSCallSite CS  )  const [inline]
 

Definition at line 308 of file DSSupport.h.

References CallArgs, CalleeF, CalleeN, and RetVal.

void llvm::DSCallSite::swap DSCallSite CS  )  [inline]
 

Definition at line 265 of file DSSupport.h.

References CallArgs, CalleeF, CalleeN, RetVal, and Site.


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