MLIR  20.0.0git
Static Public Member Functions | List of all members
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>
static 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>
static 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>
static auto mlir::ReverseDominanceIterator< NoGraphRegions >::makeIterable ( Region region)
inlinestatic

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