[mlir][linalg] Add option to generate rank-reducing slices in DropUnitDims
This change extends the `ReplaceUnitExtents` pattern so that users can choose between of two strategies for generating rank reductions: * CollapseShapeOp / ExpandShapeOp (was already implemented but code was cleaned up; default strategy) * rank-reducing ExtractSliceOp / InsertSliceOp Also add helper functions to the memref dialect that we already have on the tensor dialect: `getMixedSizes`, `createCanonicalRankReducingSubViewOp`, `rankReduceIfNeeded`. We are using ReassociationIndices instead of ReassoicationExprs in many other places and this makes the code easier to read. Also adding a new test case (that also passed before). Differential Revision: https://reviews.llvm.org/D139947
Loading
Please sign in to comment