[mlir][sparse] implements sparse_tensor.reinterpret_map (#70388)

This commit is contained in:
Peiming Liu
2023-10-26 16:00:32 -07:00
committed by GitHub
parent 56b99f05fa
commit ef222988b4
4 changed files with 51 additions and 4 deletions

View File

@@ -725,6 +725,18 @@ public:
}
};
class SparseReMapConverter : public OpConversionPattern<ReinterpretMapOp> {
public:
using OpConversionPattern::OpConversionPattern;
LogicalResult
matchAndRewrite(ReinterpretMapOp op, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
// Simply fold the operation.
rewriter.replaceOp(op, adaptor.getSource());
return success();
}
};
/// Sparse codegen rule for the alloc operator.
/// TODO(springerm): remove when bufferization.alloc_tensor is gone
class SparseTensorAllocConverter
@@ -1564,7 +1576,7 @@ void mlir::populateSparseTensorCodegenPatterns(
SparseCastConverter, SparseExtractSliceConverter,
SparseTensorLoadConverter, SparseExpandConverter,
SparseCompressConverter, SparseInsertConverter,
SparseReorderCOOConverter,
SparseReorderCOOConverter, SparseReMapConverter,
SparseSliceGetterOpConverter<ToSliceOffsetOp,
StorageSpecifierKind::DimOffset>,
SparseSliceGetterOpConverter<ToSliceStrideOp,