MLIR
17.0.0git
|
Linalg padding pattern. More...
#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
Public Member Functions | |
LinalgPaddingPattern (MLIRContext *context, LinalgPaddingOptions options=LinalgPaddingOptions(), PatternBenefit benefit=1) | |
Linalg padding pattern. More... | |
FailureOr< LinalgOp > | returningMatchAndRewrite (LinalgOp op, PatternRewriter &rewriter) const |
matchAndRewrite implementation that returns the significant transformed pieces of IR. More... | |
LogicalResult | matchAndRewrite (LinalgOp op, PatternRewriter &rewriter) const override |
![]() | |
OpInterfaceRewritePattern (MLIRContext *context, PatternBenefit benefit=1) | |
![]() | |
void | rewrite (Operation *op, PatternRewriter &rewriter) const final |
Wrappers around the RewritePattern methods that pass the derived op type. More... | |
LogicalResult | match (Operation *op) const final |
Attempt to match against code rooted at the specified operation, which is the same operation code as getRootKind(). More... | |
LogicalResult | matchAndRewrite (Operation *op, PatternRewriter &rewriter) const final |
Attempt to match against code rooted at the specified operation, which is the same operation code as getRootKind(). More... | |
virtual void | rewrite (SourceOp op, PatternRewriter &rewriter) const |
Rewrite and Match methods that operate on the SourceOp type. More... | |
virtual LogicalResult | match (SourceOp op) const |
virtual LogicalResult | matchAndRewrite (SourceOp op, PatternRewriter &rewriter) const |
![]() | |
virtual | ~RewritePattern ()=default |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
Linalg padding pattern.
Apply the padding
transformation as a pattern. See padding
for more details.
Definition at line 735 of file Transforms.h.
mlir::linalg::LinalgPaddingPattern::LinalgPaddingPattern | ( | MLIRContext * | context, |
LinalgPaddingOptions | options = LinalgPaddingOptions() , |
||
PatternBenefit | benefit = 1 |
||
) |
Linalg padding pattern.
Definition at line 246 of file Transforms.cpp.
|
inlineoverride |
Definition at line 745 of file Transforms.h.
References returningMatchAndRewrite().
FailureOr< LinalgOp > mlir::linalg::LinalgPaddingPattern::returningMatchAndRewrite | ( | LinalgOp | op, |
PatternRewriter & | rewriter | ||
) | const |
matchAndRewrite
implementation that returns the significant transformed pieces of IR.
Definition at line 252 of file Transforms.cpp.
References mlir::detail::enumerate(), mlir::failed(), mlir::failure(), mlir::IROperand< DerivedT, IRValueT >::get(), mlir::Value::getDefiningOp(), mlir::linalg::hoistPaddingOnTensors(), options, mlir::RewriterBase::replaceOp(), and mlir::linalg::rewriteAsPaddedOp().
Referenced by matchAndRewrite().