|
MLIR 23.0.0git
|
This iterator enumerates elements according to their dominance relationship. More...
#include "mlir/IR/Iterators.h"
Static Public Member Functions | |
| static Block & | makeIterable (Block &range) |
| static auto | makeIterable (Region ®ion) |
| static MutableArrayRef< Region > | makeIterable (Operation &range) |
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.
|
inlinestatic |
Definition at line 53 of file Iterators.h.
References mlir::ForwardIterator::makeIterable().
|
inlinestatic |
Definition at line 75 of file Iterators.h.
References mlir::ForwardIterator::makeIterable().
|
inlinestatic |
Definition at line 57 of file Iterators.h.
References mlir::Region::empty(), mlir::Region::front(), and mlir::mayHaveSSADominance().