| MLIR
    22.0.0git
    | 
Folds a tensor.cast op into a consuming DestinationStyleOpInterface op if the tensor.cast has source that is more static than the consuming op.  
 More...
 Inheritance diagram for FoldTensorCastProducerOp:
 Inheritance diagram for FoldTensorCastProducerOp:| Public Member Functions | |
| LogicalResult | matchAndRewrite (DestinationStyleOpInterface op, PatternRewriter &rewriter) const override | 
|  Public Member Functions inherited from mlir::OpInterfaceRewritePattern< DestinationStyleOpInterface > | |
| OpInterfaceRewritePattern (MLIRContext *context, PatternBenefit benefit=1) | |
|  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::OpInterfaceRewritePattern< DestinationStyleOpInterface > | |
| using | Base = OpInterfaceRewritePattern | 
| 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... | |
Folds a tensor.cast op into a consuming DestinationStyleOpInterface op if the tensor.cast has source that is more static than the consuming op. 
Example:
folds into:
TODO: Move the pattern to a proper place, so all other DestinationStyleOp can add the pattern to their canonicalizers.
Definition at line 4084 of file TensorOps.cpp.
| 
 | inlineoverride | 
Definition at line 4089 of file TensorOps.cpp.
References mlir::clone(), foldTensorCastPrecondition(), mlir::Builder::getType(), mlir::tensor::getUpdatedOperandsAfterCastOpFolding(), and mlir::RewriterBase::replaceOp().