LLVM: llvm::RNSuccIterator< NodeRef, BlockT, RegionT (original) (raw)
Hierarchical RegionNode successor iterator. More...
#include "[llvm/Analysis/RegionIterator.h](RegionIterator%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | iterator_category = std::forward_iterator_tag |
| using | value_type = NodeRef |
| using | difference_type = std::ptrdiff_t |
| using | pointer = value_type * |
| using | reference = value_type & |
| using | Self = RNSuccIterator<NodeRef, BlockT, RegionT> |
| Public Member Functions | |
|---|---|
| RNSuccIterator (NodeRef node) | |
| Create begin iterator of a RegionNode. | |
| RNSuccIterator (NodeRef node, bool) | |
| Create an end iterator. | |
| bool | operator== (const Self &x) const |
| bool | operator!= (const Self &x) const |
| value_type | operator* () const |
| Self & | operator++ () |
| Self | operator++ (int) |
template<class NodeRef, class BlockT, class RegionT>
class llvm::RNSuccIterator< NodeRef, BlockT, RegionT >
Hierarchical RegionNode successor iterator.
This iterator iterates over all successors of a RegionNode.
For a BasicBlock RegionNode it skips all BasicBlocks that are not part of the parent Region. Furthermore for BasicBlocks that start a subregion, a RegionNode representing the subregion is returned.
For a subregion RegionNode there is just one successor. The RegionNode representing the exit of the subregion.
Definition at line 38 of file RegionIterator.h.
◆ difference_type
template<class NodeRef, class BlockT, class RegionT>
◆ iterator_category
template<class NodeRef, class BlockT, class RegionT>
using llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::iterator_category = std::forward_iterator_tag
◆ pointer
template<class NodeRef, class BlockT, class RegionT>
◆ reference
template<class NodeRef, class BlockT, class RegionT>
◆ Self
template<class NodeRef, class BlockT, class RegionT>
◆ value_type
template<class NodeRef, class BlockT, class RegionT>
template<class NodeRef, class BlockT, class RegionT>
◆ RNSuccIterator() [2/2]
template<class NodeRef, class BlockT, class RegionT>
◆ operator!=()
template<class NodeRef, class BlockT, class RegionT>
◆ operator*()
template<class NodeRef, class BlockT, class RegionT>
◆ operator++() [1/2]
template<class NodeRef, class BlockT, class RegionT>
◆ operator++() [2/2]
template<class NodeRef, class BlockT, class RegionT>
◆ operator==()
template<class NodeRef, class BlockT, class RegionT>
The documentation for this class was generated from the following file:
- include/llvm/Analysis/RegionIterator.h