[Mlir-commits] [mlir] a3f4259 - [mlir][linalg] Include InitTensorOp in tiling canonicalization
Lei Zhang
llvmlistbot at llvm.org
Fri Oct 1 11:17:23 PDT 2021
Author: Lei Zhang
Date: 2021-10-01T14:13:19-04:00
New Revision: a3f425946d33d605c142ef39edf522d9455a4fe5
URL: https://github.com/llvm/llvm-project/commit/a3f425946d33d605c142ef39edf522d9455a4fe5
DIFF: https://github.com/llvm/llvm-project/commit/a3f425946d33d605c142ef39edf522d9455a4fe5.diff
LOG: [mlir][linalg] Include InitTensorOp in tiling canonicalization
Tiling can create dim ops and those dim ops can take `InitTensorOp`
as input. Including it in the tiling canonicalization patterns
allows us to fold those dim ops away.
Also sorted the existing ops along the way.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D110876
Added:
Modified:
mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
index 30ea1ed3bd6f..cb5c3b0ce47d 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
@@ -475,16 +475,22 @@ void mlir::linalg::populateLinalgTilingCanonicalizationPatterns(
AffineForOp::getCanonicalizationPatterns(patterns, ctx);
AffineMinOp::getCanonicalizationPatterns(patterns, ctx);
AffineMaxOp::getCanonicalizationPatterns(patterns, ctx);
+ ConstantIndexOp::getCanonicalizationPatterns(patterns, ctx);
+
+ memref::SubViewOp::getCanonicalizationPatterns(patterns, ctx);
+ memref::ViewOp::getCanonicalizationPatterns(patterns, ctx);
+
scf::ForOp::getCanonicalizationPatterns(patterns, ctx);
scf::ParallelOp::getCanonicalizationPatterns(patterns, ctx);
- ConstantIndexOp::getCanonicalizationPatterns(patterns, ctx);
+
+ tensor::CastOp::getCanonicalizationPatterns(patterns, ctx);
tensor::ExtractSliceOp::getCanonicalizationPatterns(patterns, ctx);
tensor::InsertSliceOp::getCanonicalizationPatterns(patterns, ctx);
- memref::SubViewOp::getCanonicalizationPatterns(patterns, ctx);
- tensor::CastOp::getCanonicalizationPatterns(patterns, ctx);
- memref::ViewOp::getCanonicalizationPatterns(patterns, ctx);
+
+ InitTensorOp::getCanonicalizationPatterns(patterns, ctx);
PadTensorOp::getCanonicalizationPatterns(patterns, ctx);
ctx->getLoadedDialect<LinalgDialect>()->getCanonicalizationPatterns(patterns);
+
CanonicalizationPatternList<
#define GET_OP_LIST
#include "mlir/Dialect/Linalg/IR/LinalgStructuredOps.cpp.inc"
More information about the Mlir-commits
mailing list