MLIR 22.0.0git
mlir::ReverseDominanceIterator< NoGraphRegions > Struct Template Reference

This iterator enumerates elements according to their reverse dominance relationship. More...

#include "mlir/IR/Iterators.h"

Static Public Member Functions

static constexpr auto makeIterable (Block &range)
static constexpr auto makeIterable (Operation &range)
static auto makeIterable (Region &region)

Detailed Description

template<bool NoGraphRegions = false>
struct mlir::ReverseDominanceIterator< NoGraphRegions >

This iterator enumerates elements according to their reverse dominance relationship.

Operations and regions are enumerated in "reverse" order. Blocks are enumerated according to their successor relationship, but post-order. I.e., a block is visited after its successors have been visited. Cycles in the block graph are broken in an unspecified way. Unreachable blocks are not enumerated. Blocks may not be erased during the traversal.

Note: If NoGraphRegions is set to "true", this iterator asserts that each visited region has SSA dominance.

Definition at line 85 of file Iterators.h.

Member Function Documentation

◆ makeIterable() [1/3]

template<bool NoGraphRegions = false>
constexpr auto mlir::ReverseDominanceIterator< NoGraphRegions >::makeIterable ( Block & range)
inlinestaticconstexpr

Definition at line 87 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [2/3]

template<bool NoGraphRegions = false>
constexpr auto mlir::ReverseDominanceIterator< NoGraphRegions >::makeIterable ( Operation & range)
inlinestaticconstexpr

Definition at line 91 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [3/3]

template<bool NoGraphRegions = false>
auto mlir::ReverseDominanceIterator< NoGraphRegions >::makeIterable ( Region & region)
inlinestatic

The documentation for this struct was generated from the following file: