53template<
class GraphType>
177 return it->second.subNodes();
241 return GTraits::getNode(
_graph,
id);
246 return GTraits::getNodeID(node);
270 this->
rep(v) : this->
rep(w);
274 if (this->
rep(v) ==
v)
338 for (
NodeID node : candidates)
const NodeBS & subNodes() const
void addSubNodes(NodeID n)
void rep(NodeID n, NodeID r)
SCCDetection(const GraphType >)
void find(NodeSet &candidates)
NodeID repNode(NodeID n) const
get the rep node if not found return itself
GNODESCCInfoMap _NodeSCCAuxInfo
Map< NodeID, GNodeSCCInfo > GNODESCCInfoMap
bool isInCycle(NodeID n) const
whether the node is in a cycle
NodeID Node_Index(GNODE node) const
GNODE Node(NodeID id) const
Map< NodeID, NodeID > NodeToNodeMap
GNodeStack & topoNodeStack()
std::stack< NodeID > GNodeStack
SVF::GenericGraphTraits< GraphType > GTraits
Define the GTraits and node iterator for printing.
const NodeBS & getRepNodes() const
get all repNodeID
const NodeBS & subNodes(NodeID n) const
get all subnodes in one scc, if size is empty insert itself into the set
void setInSCC(NodeID n, bool v)
const GNODESCCInfoMap & GNodeSCCInfo() const
GTraits::nodes_iterator node_iterator
GTraits::ChildIteratorType child_iterator
void setVisited(NodeID n, bool v)
const GraphType & graph()
llvm::IRBuilder IRBuilder
typename GraphType::UnknownGraphTypeError NodeRef