Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | List of all members
SVF::GenericGraphTraits< const SlicedThreadCallGraphView * > Struct Reference

Public Types

using NodeRef = SlicedCallGraphNodeRef
 
using EdgeRef = SlicedCallGraphEdgeRef
 
using nodes_iterator = SlicedCGNodeIter
 
using ChildIteratorType = SlicedCGChildIterImpl< true >
 
using ChildEdgeIteratorType = SlicedCGEdgeIterImpl< true >
 

Static Public Member Functions

static const CallGraphNodegetRawNode (NodeRef n)
 
static void getInEdges (const SlicedThreadCallGraphView *g, const CallGraphNode *n, std::vector< const CallGraphEdge * > &out)
 
static void getOutEdges (const SlicedThreadCallGraphView *g, const CallGraphNode *n, std::vector< const CallGraphEdge * > &out)
 
static void getDirectCalls (const SlicedThreadCallGraphView *g, const CallGraphEdge *e, std::vector< const CallICFGNode * > &out)
 
static void getIndirectCalls (const SlicedThreadCallGraphView *g, const CallGraphEdge *e, std::vector< const CallICFGNode * > &out)
 
static bool containsCallSite (const SlicedThreadCallGraphView *g, const CallGraphEdge *e, const CallICFGNode *callSite)
 
static void getCallees (const SlicedThreadCallGraphView *g, const CallICFGNode *callSite, CallGraph::FunctionSet &callees)
 
static void getForkEdges (const SlicedThreadCallGraphView *g, const CallICFGNode *callSite, std::vector< const CallGraphEdge * > &out)
 
static void getJoinEdges (const SlicedThreadCallGraphView *g, const CallICFGNode *callSite, std::vector< const CallGraphEdge * > &out)
 
static NodeRef getEntryNode (const SlicedThreadCallGraphView *)
 
static nodes_iterator nodes_begin (const SlicedThreadCallGraphView *v)
 
static nodes_iterator nodes_end (const SlicedThreadCallGraphView *v)
 
static ChildIteratorType child_begin (NodeRef n)
 
static ChildIteratorType child_end (NodeRef n)
 
static ChildIteratorType direct_child_begin (NodeRef n)
 
static ChildIteratorType direct_child_end (NodeRef n)
 
static ChildEdgeIteratorType child_edge_begin (NodeRef n)
 
static ChildEdgeIteratorType child_edge_end (NodeRef n)
 
static NodeRef edge_dest (const EdgeRef &e)
 
static unsigned graphSize (const SlicedThreadCallGraphView *v)
 
static unsigned getNodeID (NodeRef n)
 
static NodeRef getNode (const SlicedThreadCallGraphView *v, NodeID id)
 

Detailed Description

Definition at line 1424 of file SlicedGraphs.h.

Member Typedef Documentation

◆ ChildEdgeIteratorType

Definition at line 1430 of file SlicedGraphs.h.

◆ ChildIteratorType

Definition at line 1429 of file SlicedGraphs.h.

◆ EdgeRef

Definition at line 1427 of file SlicedGraphs.h.

◆ NodeRef

Definition at line 1426 of file SlicedGraphs.h.

◆ nodes_iterator

Definition at line 1428 of file SlicedGraphs.h.

Member Function Documentation

◆ child_begin()

Definition at line 1501 of file SlicedGraphs.h.

1502 {
1504 }
cJSON * n
Definition cJSON.cpp:2558
static SlicedCGEdgeIterImpl begin(const SlicedThreadCallGraphView *v, const CallGraphNode *n)

◆ child_edge_begin()

Definition at line 1518 of file SlicedGraphs.h.

1519 {
1520 return ChildEdgeIteratorType::begin(n.view, n.raw);
1521 }

◆ child_edge_end()

Definition at line 1522 of file SlicedGraphs.h.

1523 {
1524 return ChildEdgeIteratorType::end(n.view, n.raw);
1525 }
static SlicedCGEdgeIterImpl end(const SlicedThreadCallGraphView *v, const CallGraphNode *n)

◆ child_end()

Definition at line 1505 of file SlicedGraphs.h.

1506 {
1508 }

◆ containsCallSite()

Definition at line 1461 of file SlicedGraphs.h.

1464 {
1465 return g->containsCallSite(e, callSite);
1466 }
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ direct_child_begin()

Definition at line 1509 of file SlicedGraphs.h.

1510 {
1511 return child_begin(n);
1512 }

◆ direct_child_end()

Definition at line 1513 of file SlicedGraphs.h.

1514 {
1515 return child_end(n);
1516 }

◆ edge_dest()

Definition at line 1527 of file SlicedGraphs.h.

1528 {
1529 return e.dst;
1530 }

◆ getCallees()

Definition at line 1467 of file SlicedGraphs.h.

1470 {
1471 g->getCalleesOf(callSite, callees);
1472 }

◆ getDirectCalls()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getDirectCalls ( const SlicedThreadCallGraphView g,
const CallGraphEdge e,
std::vector< const CallICFGNode * > &  out 
)
inlinestatic

Definition at line 1449 of file SlicedGraphs.h.

1452 {
1453 g->getDirectCallsOf(e, out);
1454 }

◆ getEntryNode()

Definition at line 1487 of file SlicedGraphs.h.

1488 {
1489 return NodeRef{};
1490 }

◆ getForkEdges()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getForkEdges ( const SlicedThreadCallGraphView g,
const CallICFGNode callSite,
std::vector< const CallGraphEdge * > &  out 
)
inlinestatic

Definition at line 1473 of file SlicedGraphs.h.

1476 {
1477 g->getForkEdgesOf(callSite, out);
1478 }

◆ getIndirectCalls()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getIndirectCalls ( const SlicedThreadCallGraphView g,
const CallGraphEdge e,
std::vector< const CallICFGNode * > &  out 
)
inlinestatic

Definition at line 1455 of file SlicedGraphs.h.

1458 {
1459 g->getIndirectCallsOf(e, out);
1460 }

◆ getInEdges()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getInEdges ( const SlicedThreadCallGraphView g,
const CallGraphNode n,
std::vector< const CallGraphEdge * > &  out 
)
inlinestatic

Definition at line 1439 of file SlicedGraphs.h.

1441 {
1442 g->getInEdgesOf(n, out);
1443 }

◆ getJoinEdges()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getJoinEdges ( const SlicedThreadCallGraphView g,
const CallICFGNode callSite,
std::vector< const CallGraphEdge * > &  out 
)
inlinestatic

Definition at line 1479 of file SlicedGraphs.h.

1482 {
1483 g->getJoinEdgesOf(callSite, out);
1484 }

◆ getNode()

Definition at line 1540 of file SlicedGraphs.h.

1541 {
1542 const CallGraphNode* raw = v->getBackingCallGraph()->getGNode(id);
1543 return NodeRef{v, (raw != nullptr && v->isKeptNode(raw)) ? raw : nullptr};
1544 }
const char *const const char *const raw
Definition cJSON.h:270

◆ getNodeID()

Definition at line 1536 of file SlicedGraphs.h.

1537 {
1538 return n.raw->getId();
1539 }

◆ getOutEdges()

static void SVF::GenericGraphTraits< const SlicedThreadCallGraphView * >::getOutEdges ( const SlicedThreadCallGraphView g,
const CallGraphNode n,
std::vector< const CallGraphEdge * > &  out 
)
inlinestatic

Definition at line 1444 of file SlicedGraphs.h.

1446 {
1447 g->getOutEdgesOf(n, out);
1448 }

◆ getRawNode()

Definition at line 1432 of file SlicedGraphs.h.

1433 {
1434 return n.raw;
1435 }

◆ graphSize()

Definition at line 1532 of file SlicedGraphs.h.

1533 {
1534 return static_cast<unsigned>(v->getKeptNodes().size());
1535 }

◆ nodes_begin()

Definition at line 1492 of file SlicedGraphs.h.

1493 {
1494 return SlicedCGNodeIter(v, v->getKeptNodes().begin());
1495 }

◆ nodes_end()

Definition at line 1496 of file SlicedGraphs.h.

1497 {
1498 return SlicedCGNodeIter(v, v->getKeptNodes().end());
1499 }

The documentation for this struct was generated from the following file: