[Mlir-commits] [mlir] 5167c36 - [mlir][sparse] Misc code cleanup

wren romano llvmlistbot at llvm.org
Wed Oct 13 16:39:36 PDT 2021


Author: wren romano
Date: 2021-10-13T16:39:29-07:00
New Revision: 5167c36ab41c09703e0811bc982c0cdac2900320

URL: https://github.com/llvm/llvm-project/commit/5167c36ab41c09703e0811bc982c0cdac2900320
DIFF: https://github.com/llvm/llvm-project/commit/5167c36ab41c09703e0811bc982c0cdac2900320.diff

LOG: [mlir][sparse] Misc code cleanup

Depends On D111763

Reviewed By: aartbik

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

Added: 
    

Modified: 
    mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
index c4f5f4dccef0..f19db7d072a3 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
@@ -189,7 +189,7 @@ static Value genNewCall(ConversionPatternRewriter &rewriter, Operation *op,
   params.push_back(constantI64(rewriter, loc, secInd));
   params.push_back(constantI64(rewriter, loc, primary));
   // User action and pointer.
-  Type pTp = LLVM::LLVMPointerType::get(IntegerType::get(op->getContext(), 8));
+  Type pTp = LLVM::LLVMPointerType::get(rewriter.getI8Type());
   if (!ptr)
     ptr = rewriter.create<LLVM::NullOp>(loc, pTp);
   params.push_back(constantI32(rewriter, loc, action));
@@ -226,9 +226,8 @@ static Value genIsNonzero(ConversionPatternRewriter &rewriter, Location loc,
 ///    if (tensor[ivs]!=0) {
 ///      ind = ivs
 static Value genIndexAndValueForDense(ConversionPatternRewriter &rewriter,
-                                      Operation *op, Value tensor, Value ind,
+                                      Location loc, Value tensor, Value ind,
                                       ValueRange ivs) {
-  Location loc = op->getLoc();
   Value val = rewriter.create<tensor::ExtractOp>(loc, tensor, ivs);
   Value cond = genIsNonzero(rewriter, loc, val);
   scf::IfOp ifOp = rewriter.create<scf::IfOp>(loc, cond, /*else*/ false);
@@ -270,7 +269,7 @@ static void genAddEltCall(ConversionPatternRewriter &rewriter, Operation *op,
   params.push_back(val);
   params.push_back(ind);
   params.push_back(perm);
-  Type pTp = LLVM::LLVMPointerType::get(IntegerType::get(op->getContext(), 8));
+  Type pTp = LLVM::LLVMPointerType::get(rewriter.getI8Type());
   rewriter.create<CallOp>(
       loc, pTp, getFunc(op, name, pTp, params, /*emitCInterface=*/true),
       params);
@@ -279,11 +278,10 @@ static void genAddEltCall(ConversionPatternRewriter &rewriter, Operation *op,
 /// If the tensor is a sparse constant, generates and returns the pair of
 /// the constants for the indices and the values.
 static Optional<std::pair<Value, Value>>
-genSplitSparseConstant(ConversionPatternRewriter &rewriter, ConvertOp op,
+genSplitSparseConstant(ConversionPatternRewriter &rewriter, Location loc,
                        Value tensor) {
   if (auto constOp = tensor.getDefiningOp<arith::ConstantOp>()) {
     if (auto attr = constOp.value().dyn_cast<SparseElementsAttr>()) {
-      Location loc = op->getLoc();
       DenseElementsAttr indicesAttr = attr.getIndices();
       Value indices = rewriter.create<arith::ConstantOp>(loc, indicesAttr);
       DenseElementsAttr valuesAttr = attr.getValues();
@@ -297,10 +295,9 @@ genSplitSparseConstant(ConversionPatternRewriter &rewriter, ConvertOp op,
 /// Generates the code to copy the index at indices[ivs] to ind, and return
 /// the value at value[ivs].
 static Value genIndexAndValueForSparse(ConversionPatternRewriter &rewriter,
-                                       Operation *op, Value indices,
+                                       Location loc, Value indices,
                                        Value values, Value ind, ValueRange ivs,
                                        unsigned rank) {
-  Location loc = op->getLoc();
   for (unsigned i = 0; i < rank; i++) {
     Value idx = constantIndex(rewriter, loc, i);
     Value val = rewriter.create<tensor::ExtractOp>(loc, indices,
@@ -449,7 +446,7 @@ class SparseTensorConvertConverter : public OpConversionPattern<ConvertOp> {
     SmallVector<Value> st;
     Value zero = constantIndex(rewriter, loc, 0);
     Value one = constantIndex(rewriter, loc, 1);
-    auto indicesValues = genSplitSparseConstant(rewriter, op, src);
+    auto indicesValues = genSplitSparseConstant(rewriter, loc, src);
     bool isCOOConstant = indicesValues.hasValue();
     Value indices;
     Value values;
@@ -474,10 +471,10 @@ class SparseTensorConvertConverter : public OpConversionPattern<ConvertOp> {
             ValueRange args) -> scf::ValueVector {
           Value val;
           if (isCOOConstant)
-            val = genIndexAndValueForSparse(rewriter, op, indices, values, ind,
+            val = genIndexAndValueForSparse(rewriter, loc, indices, values, ind,
                                             ivs, rank);
           else
-            val = genIndexAndValueForDense(rewriter, op, src, ind, ivs);
+            val = genIndexAndValueForDense(rewriter, loc, src, ind, ivs);
           genAddEltCall(rewriter, op, eltType, ptr, val, ind, perm);
           return {};
         });


        


More information about the Mlir-commits mailing list