MLIR 23.0.0git
mlir::ReverseDominanceIterator< SkipGraphRegion > 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 SkipGraphRegion = false>
struct mlir::ReverseDominanceIterator< SkipGraphRegion >

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 SkipGraphRegion is set to "true", graph regions (regions without SSA dominance) are silently skipped during the traversal.

Regions of unregistered ops are always treated as SSACFG regions (i.e., they are visited even when SkipGraphRegion=true), because mayHaveSSADominance returns true for unregistered ops.

Definition at line 94 of file Iterators.h.

Member Function Documentation

◆ makeIterable() [1/3]

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

Definition at line 96 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [2/3]

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

Definition at line 100 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [3/3]

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

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