|
MLIR
22.0.0git
|
Rewrites a linalg::PackOp into a sequence of: More...
#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
Inheritance diagram for mlir::linalg::DecomposeOuterUnitDimsPackOpPattern:Public Member Functions | |
| LogicalResult | matchAndRewrite (linalg::PackOp packOp, PatternRewriter &rewriter) const override |
Public Member Functions inherited from mlir::OpRewritePattern< linalg::PackOp > | |
| OpRewritePattern (MLIRContext *context, PatternBenefit benefit=1, ArrayRef< StringRef > generatedNames={}) | |
| Patterns must specify the root operation name they match against, and can also specify the benefit of the pattern matching and a list of generated ops. More... | |
Public Member Functions inherited from mlir::detail::OpOrInterfaceRewritePatternBase< SourceOp > | |
| LogicalResult | matchAndRewrite (Operation *op, PatternRewriter &rewriter) const final |
| Wrapper around the RewritePattern method that passes the derived op type. More... | |
| virtual LogicalResult | matchAndRewrite (SourceOp op, PatternRewriter &rewriter) const =0 |
| Method that operates on the SourceOp type. More... | |
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 | |
Public Types inherited from mlir::OpRewritePattern< linalg::PackOp > | |
| using | Base = OpRewritePattern |
Type alias to allow derived classes to inherit constructors with using Base::Base;. More... | |
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::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... | |
Rewrites a linalg::PackOp into a sequence of:
Requires that all the tiled-outer-dims of the input linalg::PackOp are 1. Note that this constraint means that effectively exactly one tile is packed.
In addition, assumes that the un-tiled-outer-dims are not permuted.
Before:
After:
Definition at line 1694 of file Transforms.h.
|
override |
Definition at line 1135 of file Transforms.cpp.
References mlir::Builder::getIndexAttr(), getPackOpSourceOrPaddedSource(), mlir::getSimplifiedOfrAndStaticSizePair(), mlir::Value::getType(), innerDimsPos, mlir::RewriterBase::notifyMatchFailure(), outerDimsPerm, and mlir::RewriterBase::replaceOp().