[Mlir-commits] [mlir] [mlir][fold-memref-alias-ops] Add support for folding memref.expand_shape involving dynamic dims (PR #89093)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Apr 22 23:00:30 PDT 2024


================
@@ -63,39 +63,99 @@ resolveSourceIndicesExpandShape(Location loc, PatternRewriter &rewriter,
                                 memref::ExpandShapeOp expandShapeOp,
                                 ValueRange indices,
                                 SmallVectorImpl<Value> &sourceIndices) {
-  // The below implementation uses computeSuffixProduct method, which only
-  // allows int64_t values (i.e., static shape). Bail out if it has dynamic
-  // shapes.
-  if (!expandShapeOp.getResultType().hasStaticShape())
-    return failure();
-
+  // Record the rewriter context for constructing ops later.
   MLIRContext *ctx = rewriter.getContext();
+
+  // Record result type to get result dimensions for calulating suffix product
+  // later.
+  ShapedType resultType = expandShapeOp.getResultType();
+
+  // Traverse all reassociation groups to determine the appropriate indice
+  // corresponding to each one of them post op folding.
----------------
MaheshRavishankar wrote:

I think all the logic here would be much simplified with https://github.com/llvm/llvm-project/commit/e095d978ba476c9624b4e72776089ea7301fa657 (it got reverted due to a bot failure, but should land soon enough). Maybe worth waiting for that?

https://github.com/llvm/llvm-project/pull/89093


More information about the Mlir-commits mailing list