|
MLIR
22.0.0git
|
OpInterfaceConversionPattern is a wrapper around ConversionPattern that allows for matching and rewriting against an instance of an OpInterface class as opposed to a raw Operation. More...
#include "mlir/Transforms/DialectConversion.h"
Inheritance diagram for mlir::OpInterfaceConversionPattern< SourceOp >:Public Types | |
| using | Base = OpInterfaceConversionPattern |
Type alias to allow derived classes to inherit constructors with using Base::Base;. More... | |
Public Types inherited from mlir::ConversionPattern | |
| using | OpAdaptor = ArrayRef< Value > |
| using | OneToNOpAdaptor = ArrayRef< ValueRange > |
Public Member Functions | |
| OpInterfaceConversionPattern (MLIRContext *context, PatternBenefit benefit=1) | |
| OpInterfaceConversionPattern (const TypeConverter &typeConverter, MLIRContext *context, PatternBenefit benefit=1) | |
| LogicalResult | matchAndRewrite (Operation *op, ArrayRef< Value > operands, ConversionPatternRewriter &rewriter) const final |
| Wrappers around the ConversionPattern methods that pass the derived op type. More... | |
| LogicalResult | matchAndRewrite (Operation *op, ArrayRef< ValueRange > operands, ConversionPatternRewriter &rewriter) const final |
| Hook for derived classes to implement combined matching and rewriting. More... | |
| virtual LogicalResult | matchAndRewrite (SourceOp op, ArrayRef< Value > operands, ConversionPatternRewriter &rewriter) const |
| Methods that operate on the SourceOp type. More... | |
| virtual LogicalResult | matchAndRewrite (SourceOp op, ArrayRef< ValueRange > operands, ConversionPatternRewriter &rewriter) const |
Public Member Functions inherited from mlir::ConversionPattern | |
| LogicalResult | matchAndRewrite (Operation *op, PatternRewriter &rewriter) const final |
| Attempt to match and rewrite the IR root at the specified operation. More... | |
| const TypeConverter * | getTypeConverter () const |
| Return the type converter held by this pattern, or nullptr if the pattern does not require type conversion. More... | |
| template<typename ConverterTy > | |
| std::enable_if_t< std::is_base_of< TypeConverter, ConverterTy >::value, const ConverterTy * > | getTypeConverter () const |
Public Member Functions inherited from mlir::RewritePattern | |
| virtual | ~RewritePattern ()=default |
Public Member Functions inherited from mlir::Pattern | |
| ArrayRef< OperationName > | getGeneratedOps () const |
| Return a list of operations that may be generated when rewriting an operation instance with this pattern. More... | |
| std::optional< OperationName > | getRootKind () const |
| Return the root node that this pattern matches. More... | |
| std::optional< TypeID > | getRootInterfaceID () const |
| Return the interface ID used to match the root operation of this pattern. More... | |
| std::optional< TypeID > | getRootTraitID () const |
| Return the trait ID used to match the root operation of this pattern. More... | |
| PatternBenefit | getBenefit () const |
| Return the benefit (the inverse of "cost") of matching this pattern. More... | |
| bool | hasBoundedRewriteRecursion () const |
| Returns true if this pattern is known to result in recursive application, i.e. More... | |
| MLIRContext * | getContext () const |
| Return the MLIRContext used to create this pattern. More... | |
| StringRef | getDebugName () const |
| Return a readable name for this pattern. More... | |
| void | setDebugName (StringRef name) |
| Set the human readable debug name used for this pattern. More... | |
| ArrayRef< StringRef > | getDebugLabels () const |
| Return the set of debug labels attached to this pattern. More... | |
| void | addDebugLabels (ArrayRef< StringRef > labels) |
| Add the provided debug labels to this pattern. More... | |
| void | addDebugLabels (StringRef label) |
Additional Inherited Members | |
Static Public Member Functions inherited from mlir::RewritePattern | |
| template<typename T , typename... Args> | |
| static std::unique_ptr< T > | create (Args &&...args) |
This method provides a convenient interface for creating and initializing derived rewrite patterns of the given type T. More... | |
Protected Member Functions inherited from mlir::ConversionPattern | |
| template<typename... Args> | |
| ConversionPattern (const TypeConverter &typeConverter, Args &&...args) | |
| Construct a conversion pattern with the given converter, and forward the remaining arguments to RewritePattern. More... | |
| FailureOr< SmallVector< Value > > | getOneToOneAdaptorOperands (ArrayRef< ValueRange > operands) const |
| Given an array of value ranges, which are the inputs to a 1:N adaptor, try to extract the single value of each range to construct a the inputs for a 1:1 adaptor. More... | |
Protected Member Functions inherited from mlir::RewritePattern | |
| Pattern (StringRef rootName, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Inherit the base constructors from Pattern. More... | |
| Pattern (MatchAnyOpTypeTag tag, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Inherit the base constructors from Pattern. More... | |
| Pattern (MatchInterfaceOpTypeTag tag, TypeID interfaceID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Inherit the base constructors from Pattern. More... | |
| Pattern (MatchTraitOpTypeTag tag, TypeID traitID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Inherit the base constructors from Pattern. More... | |
Protected Member Functions inherited from mlir::Pattern | |
| Pattern (StringRef rootName, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
| Construct a pattern with a certain benefit that matches the operation with the given root name. More... | |
| Pattern (MatchAnyOpTypeTag tag, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
| Construct a pattern that may match any operation type. More... | |
| Pattern (MatchInterfaceOpTypeTag tag, TypeID interfaceID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Construct a pattern that may match any operation that implements the interface defined by the provided interfaceID. More... | |
| Pattern (MatchTraitOpTypeTag tag, TypeID traitID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) | |
Construct a pattern that may match any operation that implements the trait defined by the provided traitID. More... | |
| void | setHasBoundedRewriteRecursion (bool hasBoundedRecursionArg=true) |
| Set the flag detailing if this pattern has bounded rewrite recursion or not. More... | |
Static Protected Member Functions inherited from mlir::ConversionPattern | |
| template<typename SelfPattern , typename SourceOp > | |
| static LogicalResult | dispatchTo1To1 (const SelfPattern &self, SourceOp op, ArrayRef< ValueRange > operands, ConversionPatternRewriter &rewriter) |
| Overloaded method used to dispatch to the 1:1 'matchAndRewrite' method if possible and emit diagnostic with a failure return value otherwise. More... | |
| template<typename SelfPattern , typename SourceOp > | |
| static LogicalResult | dispatchTo1To1 (const SelfPattern &self, SourceOp op, typename SourceOp::template GenericAdaptor< ArrayRef< ValueRange >> adaptor, ConversionPatternRewriter &rewriter) |
| Same as above, but accepts an adaptor as operand. More... | |
Protected Attributes inherited from mlir::ConversionPattern | |
| const TypeConverter * | typeConverter = nullptr |
| An optional type converter for use by this pattern. More... | |
OpInterfaceConversionPattern is a wrapper around ConversionPattern that allows for matching and rewriting against an instance of an OpInterface class as opposed to a raw Operation.
Definition at line 738 of file DialectConversion.h.
| using mlir::OpInterfaceConversionPattern< SourceOp >::Base = OpInterfaceConversionPattern |
Type alias to allow derived classes to inherit constructors with using Base::Base;.
Definition at line 742 of file DialectConversion.h.
|
inline |
Definition at line 744 of file DialectConversion.h.
|
inline |
Definition at line 747 of file DialectConversion.h.
|
inlinefinalvirtual |
Wrappers around the ConversionPattern methods that pass the derived op type.
Reimplemented from mlir::ConversionPattern.
Definition at line 755 of file DialectConversion.h.
References mlir::OpInterfaceConversionPattern< SourceOp >::matchAndRewrite().
Referenced by mlir::OpInterfaceConversionPattern< SourceOp >::matchAndRewrite().
|
inlinefinalvirtual |
Hook for derived classes to implement combined matching and rewriting.
This overload supports 1:N replacements.
Reimplemented from mlir::ConversionPattern.
Definition at line 760 of file DialectConversion.h.
References mlir::OpInterfaceConversionPattern< SourceOp >::matchAndRewrite().
|
inlinevirtual |
Methods that operate on the SourceOp type.
One of these must be overridden by the derived pattern class.
Definition at line 768 of file DialectConversion.h.
|
inlinevirtual |
Definition at line 773 of file DialectConversion.h.
References mlir::ConversionPattern::dispatchTo1To1().