[mlir][sparse] avoid slice rewriting when conditions are not met
authorAart Bik <ajcbik@google.com>
Fri, 21 Apr 2023 21:40:31 +0000 (14:40 -0700)
committerAart Bik <ajcbik@google.com>
Fri, 21 Apr 2023 23:09:08 +0000 (16:09 -0700)
Reviewed By: Peiming

Differential Revision: https://reviews.llvm.org/D148964

mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp

index 4e1e66d..c1cb092 100644 (file)
@@ -1165,11 +1165,9 @@ public:
     MLIRContext *ctx = op.getContext();
     auto srcEnc = getSparseTensorEncoding(op.getSourceType());
     auto dstEnc = getSparseTensorEncoding(op.getResult().getType());
-    if (!srcEnc && !dstEnc)
-      return failure();
-
     // TODO: We should check these in ExtractSliceOp::verify.
-    assert(srcEnc && dstEnc && dstEnc.isSlice());
+    if (!srcEnc || !dstEnc || !dstEnc.isSlice())
+      return failure();
     assert(srcEnc.getDimLevelType() == dstEnc.getDimLevelType());
     assert(srcEnc.getDimOrdering() == dstEnc.getDimOrdering());
     assert(srcEnc.getHigherOrdering() == dstEnc.getHigherOrdering());