MLIR
20.0.0git
|
This trait is supposed to be attached to Transform dialect operations that can be standalone top-level transforms. More...
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
Public Member Functions | |
Block * | getBodyBlock (unsigned region=0) |
Returns the single block of the given region. More... | |
void | getPotentialTopLevelEffects (SmallVectorImpl< MemoryEffects::EffectInstance > &effects) |
Populates effects with side effects implied by this trait. More... | |
LogicalResult | mapBlockArguments (TransformState &state, Region ®ion) |
Sets up the mapping between the entry block of the given region of this op and the relevant list of Payload IR operations in the given state. More... | |
LogicalResult | mapBlockArguments (TransformState &state) |
Static Public Member Functions | |
static LogicalResult | verifyTrait (Operation *op) |
Verifies that op satisfies the invariants of this trait. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from mlir::OpTrait::TraitBase< OpTy, PossibleTopLevelTransformOpTrait > | |
Operation * | getOperation () |
Return the ultimate Operation being worked on. More... | |
This trait is supposed to be attached to Transform dialect operations that can be standalone top-level transforms.
Such operations typically contain other Transform dialect operations that can be executed following some control flow logic specific to the current operation. The operations with this trait are expected to have at least one single-block region with at least one argument of type implementing TransformHandleTypeInterface. The operations are also expected to be valid without operands, in which case they are considered top-level, and with one or more arguments, in which case they are considered nested. Top-level operations have the block argument of the entry block in the Transform IR correspond to the root operation of Payload IR. Nested operations have the block argument of the entry block in the Transform IR correspond to a list of Payload IR operations mapped to the first operand of the Transform IR operation. The operation must implement TransformOpInterface.
Definition at line 1144 of file TransformInterfaces.h.
|
inline |
Returns the single block of the given region.
Definition at line 1154 of file TransformInterfaces.h.
References mlir::Region::front(), mlir::OpTrait::TraitBase< OpTy, PossibleTopLevelTransformOpTrait >::getOperation(), and mlir::Operation::getRegion().
Referenced by mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::getPotentialTopLevelEffects().
|
inline |
Populates effects
with side effects implied by this trait.
Definition at line 1159 of file TransformInterfaces.h.
References mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::getBodyBlock(), mlir::OpTrait::TraitBase< OpTy, PossibleTopLevelTransformOpTrait >::getOperation(), and mlir::transform::detail::getPotentialTopLevelEffects().
|
inline |
Definition at line 1175 of file TransformInterfaces.h.
|
inline |
Sets up the mapping between the entry block of the given region of this op and the relevant list of Payload IR operations in the given state.
The state is expected to be already scoped at the region of this operation.
Definition at line 1169 of file TransformInterfaces.h.
|
inlinestatic |
Verifies that op
satisfies the invariants of this trait.
Not expected to be called directly.
Definition at line 1149 of file TransformInterfaces.h.
References mlir::transform::detail::verifyPossibleTopLevelTransformOpTrait().