MLIR 23.0.0git
mlir::ForwardDominanceIterator< SkipGraphRegion > Struct Template Reference

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

#include "mlir/IR/Iterators.h"

Static Public Member Functions

static BlockmakeIterable (Block &range)
static auto makeIterable (Region &region)
static MutableArrayRef< RegionmakeIterable (Operation &range)

Detailed Description

template<bool SkipGraphRegion = false>
struct mlir::ForwardDominanceIterator< SkipGraphRegion >

This iterator enumerates elements according to their dominance relationship.

Operations and regions are enumerated in "forward" order. Blocks are enumerated according to their successor relationship. 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. If set to "false" (the default), graph regions are visited but without dominance guarantees (i.e., defining ops are not guaranteed to be visited before their users).

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 52 of file Iterators.h.

Member Function Documentation

◆ makeIterable() [1/3]

template<bool SkipGraphRegion = false>
Block & mlir::ForwardDominanceIterator< SkipGraphRegion >::makeIterable ( Block & range)
inlinestatic

Definition at line 53 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [2/3]

template<bool SkipGraphRegion = false>
MutableArrayRef< Region > mlir::ForwardDominanceIterator< SkipGraphRegion >::makeIterable ( Operation & range)
inlinestatic

Definition at line 75 of file Iterators.h.

References mlir::ForwardIterator::makeIterable().

◆ makeIterable() [3/3]

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

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