|
MLIR
22.0.0git
|
This class represents a successor of a region. More...
#include "mlir/Interfaces/ControlFlowInterfaces.h"
Public Member Functions | |
| RegionSuccessor (Region *region, Block::BlockArgListType regionInputs={}) | |
| Initialize a successor that branches to another region of the parent operation. More... | |
| RegionSuccessor (Operation *successorOp, Operation::result_range results) | |
| Initialize a successor that branches back to/out of the parent operation. More... | |
| Region * | getSuccessor () const |
| Return the given region successor. More... | |
| bool | isParent () const |
| Return true if the successor is the parent operation. More... | |
| ValueRange | getSuccessorInputs () const |
| Return the inputs to the successor that are remapped by the exit values of the current region. More... | |
| bool | operator== (RegionSuccessor rhs) const |
Friends | |
| bool | operator!= (RegionSuccessor lhs, RegionSuccessor rhs) |
This class represents a successor of a region.
A region successor can either be another region, or the parent operation. If the successor is a region, this class represents the destination region, as well as a set of arguments from that region that will be populated when control flows into the region. If the successor is the parent operation, this class represents an optional set of results that will be populated when control returns to the parent operation.
This interface assumes that the values from the current region that are used to populate the successor inputs are the operands of the return-like terminator operations in the blocks within this region.
Definition at line 190 of file ControlFlowInterfaces.h.
|
inline |
Initialize a successor that branches to another region of the parent operation.
TODO: the default value for the regionInputs is somehow broken. A region successor should have its input correctly set.
Definition at line 196 of file ControlFlowInterfaces.h.
|
inline |
Initialize a successor that branches back to/out of the parent operation.
The target must be one of the recursive parent operations.
Definition at line 202 of file ControlFlowInterfaces.h.
|
inline |
Return the given region successor.
Returns nullptr if the successor is the parent operation.
Definition at line 209 of file ControlFlowInterfaces.h.
Referenced by getRegionPredecessorOperands(), mlir::operator<<(), printRegionEdgeName(), and mlir::dataflow::IntegerRangeAnalysis::visitNonControlFlowArguments().
|
inline |
Return the inputs to the successor that are remapped by the exit values of the current region.
Definition at line 216 of file ControlFlowInterfaces.h.
Referenced by mlir::operator<<(), and mlir::dataflow::SparseForwardDataFlowAnalysis< StateT >::visitNonControlFlowArguments().
|
inline |
Return true if the successor is the parent operation.
Definition at line 212 of file ControlFlowInterfaces.h.
Referenced by mlir::operator<<().
|
inline |
Definition at line 218 of file ControlFlowInterfaces.h.
|
friend |
Definition at line 222 of file ControlFlowInterfaces.h.