44 typedef ConstraintEdge::ConstraintEdgeSetTy::iterator
iterator;
325 if (SVFUtil::isa<GepCGEdge>(
outEdge))
338 if (SVFUtil::isa<GepCGEdge>(
inEdge))
386 virtual const std::string
toString()
const;
GenericNode< ConstraintNode, ConstraintEdge >::GEdgeSetTy ConstraintEdgeSetTy
Constraint edge type.
const ConstraintEdge::ConstraintEdgeSetTy & getAddrInEdges() const
const_iterator incomingLoadsEnd() const
bool isPWCNode() const
Whether a node involves in PWC, if so, all its points-to elements should become field-insensitive.
ConstraintEdge::ConstraintEdgeSetTy copyOutEdges
const_iterator outgoingLoadsEnd() const
bool isdirectEdge(ConstraintEdge::ConstraintEdgeK kind)
Direct and Indirect SVFIR edges.
bool addOutgoingStoreEdge(StoreCGEdge *outEdge)
const_iterator incomingAddrsBegin() const
ConstraintEdge::ConstraintEdgeSetTy::iterator iterator
iterator directInEdgeEnd()
void addIncomingStoreEdge(StoreCGEdge *inEdge)
ConstraintEdge::ConstraintEdgeSetTy addressInEdges
all incoming address edge of this node
void addOutgoingCopyEdge(CopyCGEdge *outEdge)
bool removeOutgoingStoreEdge(StoreCGEdge *outEdge)
bool removeIncomingStoreEdge(StoreCGEdge *inEdge)
bool addOutgoingDirectEdge(ConstraintEdge *outEdge)
ConstraintEdge::ConstraintEdgeSetTy & outgoingAddrEdges()
ConstraintEdge::ConstraintEdgeSetTy & incomingAddrEdges()
const ConstraintEdge::ConstraintEdgeSetTy & getStoreInEdges() const
bool addIncomingDirectEdge(ConstraintEdge *inEdge)
const ConstraintEdge::ConstraintEdgeSetTy & getGepOutEdges() const
static bool classof(const ConstraintNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
ConstraintEdge::ConstraintEdgeSetTy gepInEdges
ConstraintEdge::ConstraintEdgeSetTy copyInEdges
const ConstraintEdge::ConstraintEdgeSetTy & getDirectInEdges() const
Return constraint edges.
ConstraintEdge::ConstraintEdgeSetTy directInEdges
ConstraintEdge::ConstraintEdgeSetTy gepOutEdges
const_iterator incomingStoresBegin() const
bool removeIncomingAddrEdge(AddrCGEdge *inEdge)
friend OutStream & operator<<(OutStream &o, const ConstraintNode &node)
Overloading operator << for dumping node.
virtual const std::string toString() const
const_iterator outgoingStoresEnd() const
const ConstraintEdge::ConstraintEdgeSetTy & getStoreOutEdges() const
bool removeOutgoingDirectEdge(ConstraintEdge *outEdge)
bool removeIncomingDirectEdge(ConstraintEdge *inEdge)
const ConstraintEdge::ConstraintEdgeSetTy & getLoadInEdges() const
bool removeOutgoingLoadEdge(LoadCGEdge *outEdge)
const_iterator incomingLoadsBegin() const
static bool classof(const GenericICFGNodeTy *node)
const_iterator outgoingAddrsBegin() const
ConstraintEdge::ConstraintEdgeSetTy loadOutEdges
all outgoing load edge of this node
NodeBS strides
For stride-based field representation.
bool isIndirectEdge(ConstraintEdge::ConstraintEdgeK kind)
ConstraintEdge::ConstraintEdgeSetTy storeOutEdges
all outgoing store edge of this node
const_iterator incomingStoresEnd() const
const ConstraintEdge::ConstraintEdgeSetTy & getGepInEdges() const
iterator directInEdgeBegin()
const_iterator outgoingStoresBegin() const
void addIncomingLoadEdge(LoadCGEdge *inEdge)
bool removeIncomingLoadEdge(LoadCGEdge *inEdge)
ConstraintEdge::ConstraintEdgeSetTy storeInEdges
all incoming store edge of this node
iterator directOutEdgeEnd()
bool addOutgoingLoadEdge(LoadCGEdge *outEdge)
void addIncomingGepEdge(GepCGEdge *inEdge)
ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator
bool removeOutgoingAddrEdge(AddrCGEdge *outEdge)
Remove constraint graph edges.
void addOutgoingGepEdge(GepCGEdge *outEdge)
const ConstraintEdge::ConstraintEdgeSetTy & getLoadOutEdges() const
static bool classof(const SVFBaseNode *node)
const ConstraintEdge::ConstraintEdgeSetTy & getCopyOutEdges() const
const_iterator outgoingAddrsEnd() const
void addIncomingCopyEdge(CopyCGEdge *inEdge)
Add constraint graph edges.
const ConstraintEdge::ConstraintEdgeSetTy & getDirectOutEdges() const
const ConstraintEdge::ConstraintEdgeSetTy & getCopyInEdges() const
iterator directOutEdgeBegin()
Iterators.
const_iterator incomingAddrsEnd() const
void addIncomingAddrEdge(AddrCGEdge *inEdge)
ConstraintEdge::ConstraintEdgeSetTy addressOutEdges
all outgoing address edge of this node
void addOutgoingAddrEdge(AddrCGEdge *outEdge)
const_iterator outgoingLoadsBegin() const
ConstraintEdge::ConstraintEdgeSetTy loadInEdges
all incoming load edge of this node
const ConstraintEdge::ConstraintEdgeSetTy & getAddrOutEdges() const
ConstraintEdge::ConstraintEdgeSetTy directOutEdges
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.
GenericNode< ConstraintNode, ConstraintEdge > GenericConsNodeTy
llvm::IRBuilder IRBuilder