MLIR  20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
mlir::transform::PossibleTopLevelTransformOpTrait< OpTy > Class Template Reference

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"

+ Inheritance diagram for mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >:

Public Member Functions

BlockgetBodyBlock (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 &region)
 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 >
OperationgetOperation ()
 Return the ultimate Operation being worked on. More...
 

Detailed Description

template<typename OpTy>
class mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >

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.

Member Function Documentation

◆ getBodyBlock()

template<typename OpTy >
Block* mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::getBodyBlock ( unsigned  region = 0)
inline

◆ getPotentialTopLevelEffects()

template<typename OpTy >
void mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::getPotentialTopLevelEffects ( SmallVectorImpl< MemoryEffects::EffectInstance > &  effects)
inline

◆ mapBlockArguments() [1/2]

template<typename OpTy >
LogicalResult mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::mapBlockArguments ( TransformState state)
inline

Definition at line 1175 of file TransformInterfaces.h.

◆ mapBlockArguments() [2/2]

template<typename OpTy >
LogicalResult mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::mapBlockArguments ( TransformState state,
Region region 
)
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.

◆ verifyTrait()

template<typename OpTy >
static LogicalResult mlir::transform::PossibleTopLevelTransformOpTrait< OpTy >::verifyTrait ( Operation op)
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().


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