Static Value-Flow Analysis
|
#include <ThreadCallGraph.h>
Additional Inherited Members | |
Public Attributes inherited from SVF::GenericGraph< NodeTy, EdgeTy > | |
u32_t | edgeNum |
total num of node | |
u32_t | nodeNum |
total num of edge | |
Protected Member Functions inherited from SVF::PTACallGraph | |
void | destroy () |
Clean up memory. | |
CallSiteID | addCallSite (const CallICFGNode *cs, const SVFFunction *callee) |
Add CallSiteID. | |
void | addEdge (PTACallGraphEdge *edge) |
Add call graph edge. | |
Protected Attributes inherited from SVF::PTACallGraph | |
FunToCallGraphNodeMap | funToCallGraphNodeMap |
Call Graph node map. | |
CallInstToCallGraphEdgesMap | callinstToCallGraphEdgesMap |
Map a call instruction to its corresponding call edges. | |
NodeID | callGraphNodeNum |
u32_t | numOfResolvedIndCallEdge |
CGEK | kind |
Protected Attributes inherited from SVF::GenericGraph< NodeTy, EdgeTy > | |
IDToNodeMapTy | IDToNodeMap |
node map | |
Thread sensitive call graph
Definition at line 160 of file ThreadCallGraph.h.
Definition at line 168 of file ThreadCallGraph.h.
Definition at line 170 of file ThreadCallGraph.h.
Definition at line 172 of file ThreadCallGraph.h.
Definition at line 165 of file ThreadCallGraph.h.
Definition at line 166 of file ThreadCallGraph.h.
Definition at line 167 of file ThreadCallGraph.h.
Definition at line 164 of file ThreadCallGraph.h.
Definition at line 169 of file ThreadCallGraph.h.
Definition at line 171 of file ThreadCallGraph.h.
Constructor.
Constructor
Definition at line 43 of file ThreadCallGraph.cpp.
|
delete |
|
inlinevirtual |
bool ThreadCallGraph::addDirectForkEdge | ( | const CallICFGNode * | cs | ) |
Add direct/indirect thread fork edges.
Add direct fork edges
Definition at line 126 of file ThreadCallGraph.cpp.
void ThreadCallGraph::addDirectJoinEdge | ( | const CallICFGNode * | cs, |
const CallSiteSet & | forkset | ||
) |
Add thread join edges.
Add direct fork edges As join edge is a special return which is back to join site(s) rather than its fork site A ThreadJoinEdge is created from the functions where join sites reside in to the start routine function But we don't invoke addEdge() method to add the edge to src and dst, otherwise it makes a scc cycle
Definition at line 182 of file ThreadCallGraph.cpp.
|
inline |
Add fork sites which directly or indirectly create a thread.
Definition at line 333 of file ThreadCallGraph.h.
|
inline |
map call instruction to its PTACallGraphEdge map
Definition at line 383 of file ThreadCallGraph.h.
bool ThreadCallGraph::addIndirectForkEdge | ( | const CallICFGNode * | cs, |
const SVFFunction * | calleefun | ||
) |
Add indirect fork edge to update call graph
Definition at line 154 of file ThreadCallGraph.cpp.
|
inline |
Definition at line 338 of file ThreadCallGraph.h.
|
inline |
Definition at line 343 of file ThreadCallGraph.h.
|
inline |
map call instruction to its PTACallGraphEdge map
Definition at line 363 of file ThreadCallGraph.h.
|
inline |
map call instruction to its PTACallGraphEdge map
Definition at line 373 of file ThreadCallGraph.h.
|
inlinestatic |
Definition at line 190 of file ThreadCallGraph.h.
|
inlinestatic |
|
inline |
Fork sites iterators.
Definition at line 275 of file ThreadCallGraph.h.
|
inline |
Definition at line 279 of file ThreadCallGraph.h.
|
inline |
Definition at line 210 of file ThreadCallGraph.h.
|
inline |
Definition at line 216 of file ThreadCallGraph.h.
|
inline |
Definition at line 230 of file ThreadCallGraph.h.
|
inline |
Definition at line 236 of file ThreadCallGraph.h.
|
inline |
Definition at line 242 of file ThreadCallGraph.h.
|
inline |
Num of fork/join sites.
Definition at line 311 of file ThreadCallGraph.h.
|
inline |
Definition at line 315 of file ThreadCallGraph.h.
|
inline |
Definition at line 319 of file ThreadCallGraph.h.
|
inline |
|
inline |
Get call graph edge via call instruction.
whether this call instruction has a valid call graph edge
Definition at line 205 of file ThreadCallGraph.h.
|
inline |
has thread join edge
Definition at line 393 of file ThreadCallGraph.h.
|
inline |
Get call graph edge via call instruction.
whether this call instruction has a valid call graph edge
Definition at line 226 of file ThreadCallGraph.h.
|
inline |
Whether a callsite is a fork or join or hare_parallel_for
Definition at line 259 of file ThreadCallGraph.h.
|
inline |
Definition at line 263 of file ThreadCallGraph.h.
|
inline |
Definition at line 267 of file ThreadCallGraph.h.
|
inline |
Join sites iterators.
Definition at line 287 of file ThreadCallGraph.h.
|
inline |
Definition at line 291 of file ThreadCallGraph.h.
|
inline |
hare_parallel_for sites iterators
Definition at line 299 of file ThreadCallGraph.h.
|
inline |
Definition at line 303 of file ThreadCallGraph.h.
void ThreadCallGraph::updateCallGraph | ( | PointerAnalysis * | pta | ) |
Update call graph using pointer results.
Definition at line 57 of file ThreadCallGraph.cpp.
void ThreadCallGraph::updateJoinEdge | ( | PointerAnalysis * | pta | ) |
Update join edge using pointer analysis results.
Update join edge using pointer analysis results
Definition at line 102 of file ThreadCallGraph.cpp.
|
private |
Map a call instruction to its corresponding hare_parallel_for edges.
Definition at line 413 of file ThreadCallGraph.h.
|
private |
Map a call instruction to its corresponding fork edges.
Definition at line 411 of file ThreadCallGraph.h.
|
private |
Map a call instruction to its corresponding join edges.
Definition at line 412 of file ThreadCallGraph.h.
|
private |
all thread fork sites
Definition at line 408 of file ThreadCallGraph.h.
|
private |
all thread fork sites
Definition at line 409 of file ThreadCallGraph.h.
|
private |
all parallel for sites
Definition at line 410 of file ThreadCallGraph.h.
|
private |
Thread API.
Definition at line 407 of file ThreadCallGraph.h.