69    virtual const std::string 
toString() 
const;
 
 
  100    virtual const std::string 
toString() 
const;
 
 
  195        return it->second.begin();
 
 
  201        return it->second.end();
 
 
  215        return it->second.begin();
 
 
  221        return it->second.end();
 
 
  229                if((*jit)->getDstNode() == 
routine)
 
 
  380            JoinEdgeSet::const_iterator 
jit = 
it->second.find(&
joinEdge);
 
  381            if(
jit!=
it->second.end())
 
 
 
CallInstToCallGraphEdgesMap callinstToCallGraphEdgesMap
Map a call instruction to its corresponding call edges.
 
OrderedSet< EdgeType *, typename EdgeType::equalGEdge > GEdgeSetTy
Edge kind.
 
GenericNode< CallGraphNode, HareParForEdge >::GEdgeSetTy ParForEdgeSet
 
HareParForEdge(CallGraphNode *s, CallGraphNode *d, CallSiteID csId)
Constructor.
 
virtual ~HareParForEdge()
Destructor.
 
static bool classof(const HareParForEdge *)
ClassOf.
 
static bool classof(const CallGraphEdge *edge)
 
bool isForksite(const CallICFGNode *csInst)
 
CallSiteSet::const_iterator forksitesEnd() const
 
CallSiteSet::const_iterator parForSitesBegin() const
hare_parallel_for sites iterators
 
bool addDirectForkEdge(const CallICFGNode *cs)
Add direct/indirect thread fork edges.
 
Set< CallSiteSet * > CtxSet
 
CallSiteSet::const_iterator forksitesBegin() const
Fork sites iterators.
 
CallInstToParForEdgesMap callinstToHareParForEdgesMap
Map a call instruction to its corresponding hare_parallel_for edges.
 
void updateJoinEdge(PointerAnalysis *pta)
Update join edge using pointer analysis results.
 
static bool classof(const ThreadCallGraph *)
ClassOf.
 
CallSiteSet::const_iterator joinsitesEnd() const
 
CallSiteSet::const_iterator parForSitesEnd() const
 
bool addForksite(const CallICFGNode *cs)
Add fork sites which directly or indirectly create a thread.
 
Set< const CallICFGNode * > InstSet
 
bool hasThreadJoinEdge(const CallICFGNode *cs) const
Get call graph edge via call instruction.
 
bool addParForSite(const CallICFGNode *cs)
 
CallSiteSet forksites
all thread fork sites
 
CallSiteSet parForSites
all parallel for sites
 
void addThreadJoinEdgeSetMap(const CallICFGNode *cs, ThreadJoinEdge *edge)
map call instruction to its PTACallGraphEdge map
 
u32_t getNumOfJoinsite() const
 
bool addJoinsite(const CallICFGNode *cs)
 
virtual ~ThreadCallGraph()
Destructor.
 
CallInstToForkEdgesMap callinstToThreadForkEdgesMap
Map a call instruction to its corresponding fork edges.
 
JoinEdgeSet::const_iterator getJoinEdgeEnd(const CallICFGNode *cs) const
 
ForkEdgeSet::const_iterator getForkEdgeEnd(const CallICFGNode *cs) const
 
ForkEdgeSet::const_iterator getForkEdgeBegin(const CallICFGNode *cs) const
 
void addDirectJoinEdge(const CallICFGNode *cs, const CallSiteSet &forksite)
Add thread join edges.
 
bool addIndirectForkEdge(const CallICFGNode *cs, const FunObjVar *callee)
 
bool hasThreadForkEdge(const CallICFGNode *cs) const
Get call graph edge via call instruction.
 
CallSiteSet::const_iterator joinsitesBegin() const
Join sites iterators.
 
ThreadJoinEdge * hasThreadJoinEdge(const CallICFGNode *call, CallGraphNode *joinFunNode, CallGraphNode *threadRoutineFunNode, CallSiteID csId) const
has thread join edge
 
ThreadForkEdge::ForkEdgeSet ForkEdgeSet
 
u32_t getNumOfForksite() const
Num of fork/join sites.
 
ThreadAPI * getThreadAPI() const
Thread API.
 
ThreadJoinEdge::JoinEdgeSet JoinEdgeSet
 
CallSiteSet joinsites
all thread fork sites
 
void addHareParForEdgeSetMap(const CallICFGNode *cs, HareParForEdge *edge)
map call instruction to its PTACallGraphEdge map
 
void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *edge)
map call instruction to its PTACallGraphEdge map
 
Map< const CallICFGNode *, JoinEdgeSet > CallInstToJoinEdgesMap
 
Map< const CallICFGNode *, ParForEdgeSet > CallInstToParForEdgesMap
 
HareParForEdge::ParForEdgeSet ParForEdgeSet
 
bool isJoinsite(const CallICFGNode *csInst)
 
static bool classof(const CallGraph *g)
 
ThreadCallGraph(ThreadCallGraph &cg)=delete
 
u32_t getNumOfParForSite() const
 
bool isParForSite(const CallICFGNode *csInst)
 
void updateCallGraph(PointerAnalysis *pta)
Update call graph using pointer results.
 
Map< const CallICFGNode *, ForkEdgeSet > CallInstToForkEdgesMap
 
ThreadAPI * tdAPI
Thread API.
 
CallInstToJoinEdgesMap callinstToThreadJoinEdgesMap
Map a call instruction to its corresponding join edges.
 
void getJoinSites(const CallGraphNode *routine, InstSet &csSet)
 
JoinEdgeSet::const_iterator getJoinEdgeBegin(const CallICFGNode *cs) const
 
static bool classof(const ThreadForkEdge *)
ClassOf.
 
virtual ~ThreadForkEdge()
Destructor.
 
ThreadForkEdge(CallGraphNode *s, CallGraphNode *d, CallSiteID csId)
Constructor.
 
static bool classof(const CallGraphEdge *edge)
 
GenericNode< CallGraphNode, ThreadForkEdge >::GEdgeSetTy ForkEdgeSet
 
virtual const std::string toString() const
 
virtual ~ThreadJoinEdge()
Destructor.
 
static bool classof(const ThreadJoinEdge *)
 
virtual const std::string toString() const
 
static bool classof(const CallGraphEdge *edge)
 
ThreadJoinEdge(CallGraphNode *s, CallGraphNode *d, CallSiteID csId)
Constructor.
 
GenericNode< CallGraphNode, ThreadJoinEdge >::GEdgeSetTy JoinEdgeSet
 
llvm::IRBuilder IRBuilder