9 #ifndef DIALECT_LINALG_TRANSFORMS_LINALGTRANSFORMS_H_ 10 #define DIALECT_LINALG_TRANSFORMS_LINALGTRANSFORMS_H_ 19 #include "llvm/ADT/STLExtras.h" 39 template <
typename OpTy>
42 consumerOp, consumedView, [](
Operation *op) {
return isa<OpTy>(op); });
64 StringRef linalgMarker,
74 template <
typename ConcreteOp>
78 template <
typename ConcreteOp>
94 StringRef linalgMarker);
104 #endif // DIALECT_LINALG_TRANSFORMS_LINALGTRANSFORMS_H_ Definition: InferTypeOpInterface.cpp:20
Definition: PatternMatch.h:260
Definition: Operation.h:27
LogicalResult tileLinalgOpAndSetMarker(PatternRewriter &rewriter, Operation *op, ArrayRef< int64_t > sizes, StringRef linalgMarker, ArrayRef< unsigned > permutation)
Definition: LinalgTransforms.cpp:43
bool isProducedByOpOfType(Operation *consumerOp, Value consumedView)
Definition: LinalgTransforms.h:40
SmallVector< Value, 0 > permuteGenericLinalgOp(PatternRewriter &rewriter, Operation *op, ArrayRef< unsigned > permutation, StringRef linalgMarker)
Definition: LinalgTransforms.cpp:224
LogicalResult promoteSubviewsLinalgOpPrecondition(Operation *op)
Promote std.subviews feeding linalg operations.
Definition: LinalgTransforms.cpp:260
LogicalResult permuteGenericLinalgOpPrecondition(Operation *op, ArrayRef< unsigned > permutation)
Definition: LinalgTransforms.cpp:209
LogicalResult tileAndFuseLinalgOpAndSetMarker(PatternRewriter &rewriter, Operation *op, ArrayRef< int64_t > sizes, ArrayRef< int64_t > operandIndicesToFuse, StringRef linalgMarker)
Definition: LinalgTransforms.cpp:55
Definition: LogicalResult.h:18
SmallVector< Value, 0 > vectorizeGenericLinalgOp(PatternRewriter &rewriter, Operation *op)
Definition: LinalgTransforms.cpp:181
SmallVector< Value, 0 > promoteSubviewsLinalgOp(PatternRewriter &rewriter, Operation *op)
Definition: LinalgTransforms.cpp:273
LogicalResult linalgOpToLoops(PatternRewriter &rewriter, Operation *op)
Emits a loop nest of loop.for with the proper body for op.
Definition: LinalgToLoops.cpp:560
LogicalResult linalgOpToAffineLoops(PatternRewriter &rewriter, Operation *op)
Emits a loop nest of affine.for with the proper body for op.
Definition: LinalgToLoops.cpp:568
LogicalResult vectorizeGenericLinalgOpPrecondition(Operation *op)
Rewrite a linalg.generic into a suitable vector.contraction op.
Definition: LinalgTransforms.cpp:160
bool isProducedByOpOfTypeImpl(Operation *consumerOp, Value consumedView, function_ref< bool(Operation *)> isaOpType)
Definition: LinalgTransforms.cpp:92