LLVM: llvm::scc_iterator< GraphT, GT > Class Template Reference (original) (raw)
Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG. More...
#include "[llvm/ADT/SCCIterator.h](SCCIterator%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| bool | isAtEnd () const |
| Direct loop termination test which is more efficient than comparison with end(). | |
| bool | operator== (const scc_iterator &x) const |
| scc_iterator & | operator++ () |
| reference | operator* () const |
| bool | hasCycle () const |
| Test if the current SCC has a cycle. | |
| void | ReplaceNode (NodeRef Old, NodeRef New) |
| This informs the scc_iterator that the specified Old node has been deleted, and New is to be used in its place. | |
| Public Member Functions inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
| DerivedT | operator+ (DifferenceTypeT n) const |
| DerivedT | operator- (DifferenceTypeT n) const |
| DerivedT & | operator++ () |
| DerivedT | operator++ (int) |
| DerivedT & | operator-- () |
| DerivedT | operator-- (int) |
| bool | operator!= (const DerivedT &RHS) const |
| bool | operator> (const DerivedT &RHS) const |
| bool | operator<= (const DerivedT &RHS) const |
| bool | operator>= (const DerivedT &RHS) const |
| PointerProxy | operator-> () const |
| ReferenceProxy | operator[] (DifferenceTypeT n) const |
| Additional Inherited Members | |
|---|---|
| Public Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
| using | iterator_category = IteratorCategoryT |
| using | value_type = T |
| using | difference_type = DifferenceTypeT |
| using | pointer = PointerT |
| using | reference = ReferenceT |
| Protected Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
| enum | { IsRandomAccess, IsBidirectional } |
template<class GraphT, class GT = GraphTraits>
class llvm::scc_iterator< GraphT, GT >
Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG.
This is implemented using Tarjan's DFS algorithm using an internal stack to build up a vector of nodes in a particular SCC. Note that it is a forward iterator and thus you cannot backtrack or re-visit nodes.
Definition at line 47 of file SCCIterator.h.
◆ begin()
template<class GraphT, class GT = GraphTraits>
◆ end()
template<class GraphT, class GT = GraphTraits>
◆ hasCycle()
Test if the current SCC has a cycle.
If the SCC has more than one node, this is trivially true. If not, it may still contain a cycle if the node has an edge back to itself.
Definition at line 220 of file SCCIterator.h.
◆ isAtEnd()
template<class GraphT, class GT = GraphTraits>
◆ operator*()
template<class GraphT, class GT = GraphTraits>
◆ operator++()
template<class GraphT, class GT = GraphTraits>
◆ operator==()
template<class GraphT, class GT = GraphTraits>
◆ ReplaceNode()
template<class GraphT, class GT = GraphTraits>
The documentation for this class was generated from the following file:
- include/llvm/ADT/SCCIterator.h