MLIR
20.0.0git
|
Converts elementwise unary, binary and ternary standard operations to SPIR-V operations. More...
#include "Conversion/SPIRVCommon/Pattern.h"
Public Member Functions | |
LogicalResult | matchAndRewrite (Op op, typename Op::Adaptor adaptor, ConversionPatternRewriter &rewriter) const override |
Public Member Functions inherited from mlir::OpConversionPattern< Op > | |
OpConversionPattern (MLIRContext *context, PatternBenefit benefit=1) | |
OpConversionPattern (const TypeConverter &typeConverter, MLIRContext *context, PatternBenefit benefit=1) | |
LogicalResult | match (Operation *op) const final |
Wrappers around the ConversionPattern methods that pass the derived op type. More... | |
virtual LogicalResult | match (Op op) const |
Rewrite and Match methods that operate on the SourceOp type. More... | |
void | rewrite (Operation *op, ArrayRef< Value > operands, ConversionPatternRewriter &rewriter) const final |
Hook for derived classes to implement rewriting. More... | |
void | rewrite (Operation *op, ArrayRef< ValueRange > operands, ConversionPatternRewriter &rewriter) const final |
virtual void | rewrite (Op op, OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const |
virtual void | rewrite (Op op, OneToNOpAdaptor adaptor, ConversionPatternRewriter &rewriter) const |
LogicalResult | matchAndRewrite (Operation *op, ArrayRef< Value > operands, ConversionPatternRewriter &rewriter) const final |
Hook for derived classes to implement combined matching and rewriting. 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 (Op op, OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const |
virtual LogicalResult | matchAndRewrite (Op op, OneToNOpAdaptor adaptor, 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 |
virtual void | rewrite (Operation *op, PatternRewriter &rewriter) const |
Rewrite the IR rooted at the specified operation with the result of this pattern, generating any new operations with the specified builder. More... | |
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 | |
Public Types inherited from mlir::OpConversionPattern< Op > | |
using | OpAdaptor = typename SourceOp::Adaptor |
using | OneToNOpAdaptor = typename SourceOp::template GenericAdaptor< ArrayRef< ValueRange > > |
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... | |
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... | |
Protected Attributes inherited from mlir::ConversionPattern | |
const TypeConverter * | typeConverter = nullptr |
An optional type converter for use by this pattern. More... | |
Converts elementwise unary, binary and ternary standard operations to SPIR-V operations.
|
inlineoverride |
Definition at line 27 of file Pattern.h.
References mlir::TypeConverter::convertType(), mlir::OpState::dump(), mlir::OpState::emitError(), mlir::getElementTypeOrSelf(), mlir::OpState::getLoc(), mlir::ConversionPattern::getTypeConverter(), mlir::Type::isIndex(), and mlir::RewriterBase::notifyMatchFailure().