86 typedef std::map <GrammarBase::Symbol, CFLEdge::CFLEdgeSetTy>
CFLEdgeDataTy;
GEdgeKind getEdgeKindWithMask() const
CFLEdge(CFLNode *s, CFLNode *d, GEdgeFlag k=0)
~CFLEdge() override=default
GenericNode< CFLNode, CFLEdge >::GEdgeSetTy CFLEdgeSetTy
GEdgeKind getEdgeKind() const
GEdgeKind getEdgeAttri() const
GenericNode< CFLNode, CFLEdge >::GEdgeSetTy CFLEdgeSet
const CFLEdgeSet & getCFLEdges() const
virtual void addCFLNode(NodeID id, CFLNode *node)
Kind getStartKind() const
~CFLGraph() override=default
virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
void dump(const std::string &filename)
virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
bool addIngoingEdge(CFLEdge *inEdge)
bool addOutEdgeWithKind(CFLEdge *outEdge, GrammarBase::Symbol s)
bool addInEdgeWithKind(CFLEdge *inEdge, GrammarBase::Symbol s)
static bool classof(const CFLNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
CFLEdgeDataTy outCFLEdges
const CFLEdge::CFLEdgeSetTy & getOutEdgeWithTy(GrammarBase::Symbol s)
bool removeCFLInEdge(CFLEdge *inEdge)
const CFLEdge::CFLEdgeSetTy & getInEdgeWithTy(GrammarBase::Symbol s)
bool addOutgoingEdge(CFLEdge *OutEdge)
bool removeCFLOutEdge(CFLEdge *outEdge)
~CFLNode() override=default
static bool classof(const GenericICFGNodeTy *node)
std::map< GrammarBase::Symbol, CFLEdge::CFLEdgeSetTy > CFLEdgeDataTy
Different Kind(label) associated edges set.
static bool classof(const SVFBaseNode *node)
CFLNode(NodeID i=0, GNodeK k=CFLNodeKd)
GEdgeKind getEdgeKindWithoutMask() const
static constexpr u64_t EdgeKindMask
static constexpr unsigned char EdgeKindMaskBits
We use the lower 8 bits to denote edge kind.
OrderedSet< EdgeType *, typename EdgeType::equalGEdge > GEdgeSetTy
Edge kind.
u32_t removeOutgoingEdge(EdgeType *edge)
bool addIncomingEdge(EdgeType *inEdge)
Add incoming and outgoing edges.
u32_t removeIncomingEdge(EdgeType *edge)
bool addOutgoingEdge(EdgeType *outEdge)
GNodeK getNodeKind() const
Get node kind.
GenericEdge< CFLNode > GenericCFLEdgeTy
GenericNode< CFLNode, CFLEdge > GenericCFLNodeTy
GenericGraph< CFLNode, CFLEdge > GenericCFLGraphTy
Edge-labeled graph for CFL Reachability analysis.
llvm::IRBuilder IRBuilder