diff --git a/mlir/lib/Dialect/AMX/IR/AMXDialect.cpp b/mlir/lib/Dialect/AMX/IR/AMXDialect.cpp index 748ff1edbfeb2..6f3110cdf00ef 100644 --- a/mlir/lib/Dialect/AMX/IR/AMXDialect.cpp +++ b/mlir/lib/Dialect/AMX/IR/AMXDialect.cpp @@ -96,9 +96,8 @@ static Value getStride(Location loc, MemRefType mType, Value base, MemRefDescriptor memrefDescriptor(base); auto attr = rewriter.getI64IntegerAttr(bytes); Value scale = LLVM::ConstantOp::create(rewriter, loc, llvmInt64Type, attr); - return rewriter - .create(loc, llvmInt64Type, scale, - memrefDescriptor.stride(rewriter, loc, preLast)) + return LLVM::MulOp::create(rewriter, loc, llvmInt64Type, scale, + memrefDescriptor.stride(rewriter, loc, preLast)) .getResult(); } // Use direct constant for static stride. diff --git a/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp b/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp index 994d48505d24f..f7b0b87085f3d 100644 --- a/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp +++ b/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp @@ -688,8 +688,8 @@ FailureOr bufferization::getBuffer(RewriterBase &rewriter, Value value, if (failed(bufferType)) return failure(); ensureToBufferOpIsValid(value, *bufferType); - return rewriter - .create(value.getLoc(), *bufferType, value) + return bufferization::ToBufferOp::create(rewriter, value.getLoc(), + *bufferType, value) .getResult(); } @@ -772,9 +772,8 @@ FailureOr BufferizationOptions::createAlloc(OpBuilder &b, Location loc, // Default bufferallocation via AllocOp. if (bufferAlignment != 0) - return b - .create(loc, type, dynShape, - b.getI64IntegerAttr(bufferAlignment)) + return memref::AllocOp::create(b, loc, type, dynShape, + b.getI64IntegerAttr(bufferAlignment)) .getResult(); return memref::AllocOp::create(b, loc, type, dynShape).getResult(); } diff --git a/mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp b/mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp index f0d65b04ee447..e9ad13f7ebfc6 100644 --- a/mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp +++ b/mlir/lib/Dialect/Bufferization/Transforms/LowerDeallocations.cpp @@ -482,10 +482,10 @@ func::FuncOp mlir::bufferization::buildDeallocationLibraryFunction( // Build the first for loop that computes aliasing with retained // memrefs. - Value noRetainAlias = - builder - .create( - loc, c0, toRetainSize, c1, trueValue, + Value + noRetainAlias = + scf::ForOp::create( + builder, loc, c0, toRetainSize, c1, trueValue, [&](OpBuilder &builder, Location loc, Value i, ValueRange iterArgs) { Value retainValue = memref::LoadOp::create( @@ -512,14 +512,14 @@ func::FuncOp mlir::bufferization::buildDeallocationLibraryFunction( builder, loc, iterArgs[0], doesntAlias); scf::YieldOp::create(builder, loc, yieldValue); }) - .getResult(0); + .getResult(0); // Build the second for loop that adds aliasing with previously // deallocated memrefs. - Value noAlias = - builder - .create( - loc, c0, outerIter, c1, noRetainAlias, + Value + noAlias = + scf::ForOp::create( + builder, loc, c0, outerIter, c1, noRetainAlias, [&](OpBuilder &builder, Location loc, Value i, ValueRange iterArgs) { Value prevDeallocValue = memref::LoadOp::create( @@ -531,7 +531,7 @@ func::FuncOp mlir::bufferization::buildDeallocationLibraryFunction( builder, loc, iterArgs[0], doesntAlias); scf::YieldOp::create(builder, loc, yieldValue); }) - .getResult(0); + .getResult(0); Value shouldDealoc = arith::AndIOp::create(builder, loc, noAlias, cond); memref::StoreOp::create(builder, loc, shouldDealoc, deallocCondsMemref, diff --git a/mlir/lib/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation.cpp b/mlir/lib/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation.cpp index 64c178dfe76d8..725fa2429ce5b 100644 --- a/mlir/lib/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation.cpp +++ b/mlir/lib/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation.cpp @@ -750,17 +750,16 @@ Value BufferDeallocation::materializeMemrefWithGuaranteedOwnership( // Insert a runtime check and only clone if we still don't have ownership at // runtime. - Value maybeClone = builder - .create( - memref.getLoc(), condition, - [&](OpBuilder &builder, Location loc) { - scf::YieldOp::create(builder, loc, newMemref); - }, - [&](OpBuilder &builder, Location loc) { - Value clone = bufferization::CloneOp::create( - builder, loc, newMemref); - scf::YieldOp::create(builder, loc, clone); - }) + Value maybeClone = scf::IfOp::create( + builder, memref.getLoc(), condition, + [&](OpBuilder &builder, Location loc) { + scf::YieldOp::create(builder, loc, newMemref); + }, + [&](OpBuilder &builder, Location loc) { + Value clone = bufferization::CloneOp::create( + builder, loc, newMemref); + scf::YieldOp::create(builder, loc, clone); + }) .getResult(0); Value trueVal = buildBoolValue(builder, memref.getLoc(), true); state.updateOwnership(maybeClone, trueVal); diff --git a/mlir/lib/Dialect/GPU/Transforms/ShuffleRewriter.cpp b/mlir/lib/Dialect/GPU/Transforms/ShuffleRewriter.cpp index d88f4d56d9009..8e05436155b4c 100644 --- a/mlir/lib/Dialect/GPU/Transforms/ShuffleRewriter.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/ShuffleRewriter.cpp @@ -60,14 +60,12 @@ struct GpuShuffleRewriter : public OpRewritePattern { // Shuffle the values. ValueRange loRes = - rewriter - .create(op.getLoc(), lo, op.getOffset(), - op.getWidth(), op.getMode()) + gpu::ShuffleOp::create(rewriter, op.getLoc(), lo, op.getOffset(), + op.getWidth(), op.getMode()) .getResults(); ValueRange hiRes = - rewriter - .create(op.getLoc(), hi, op.getOffset(), - op.getWidth(), op.getMode()) + gpu::ShuffleOp::create(rewriter, op.getLoc(), hi, op.getOffset(), + op.getWidth(), op.getMode()) .getResults(); // Convert lo back to i64. diff --git a/mlir/lib/Dialect/GPU/Transforms/SubgroupReduceLowering.cpp b/mlir/lib/Dialect/GPU/Transforms/SubgroupReduceLowering.cpp index b9e2dd5b19a6f..b45fdf34e78e1 100644 --- a/mlir/lib/Dialect/GPU/Transforms/SubgroupReduceLowering.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/SubgroupReduceLowering.cpp @@ -197,10 +197,9 @@ Value createSubgroupShuffleReduction(OpBuilder &builder, Location loc, // Parallel reduction using butterfly shuffles. for (unsigned i = ci.clusterStride; i < ci.clusterStride * ci.clusterSize; i <<= 1) { - Value shuffled = builder - .create(loc, packFn(laneVal), i, - /*width=*/ci.subgroupSize, - /*mode=*/gpu::ShuffleMode::XOR) + Value shuffled = gpu::ShuffleOp::create(builder, loc, packFn(laneVal), i, + /*width=*/ci.subgroupSize, + /*mode=*/gpu::ShuffleMode::XOR) .getShuffleResult(); laneVal = vector::makeArithReduction(builder, loc, gpu::convertReductionKind(mode), diff --git a/mlir/lib/Dialect/MemRef/Transforms/IndependenceTransforms.cpp b/mlir/lib/Dialect/MemRef/Transforms/IndependenceTransforms.cpp index 66c1aa6bf3fe1..d5e2b97e501e6 100644 --- a/mlir/lib/Dialect/MemRef/Transforms/IndependenceTransforms.cpp +++ b/mlir/lib/Dialect/MemRef/Transforms/IndependenceTransforms.cpp @@ -56,9 +56,8 @@ FailureOr memref::buildIndependentOp(OpBuilder &b, // Create a memref::SubViewOp. SmallVector offsets(newSizes.size(), b.getIndexAttr(0)); SmallVector strides(newSizes.size(), b.getIndexAttr(1)); - return b - .create(loc, newAllocaOp, offsets, allocaOp.getMixedSizes(), - strides) + return SubViewOp::create(b, loc, newAllocaOp, offsets, + allocaOp.getMixedSizes(), strides) .getResult(); } diff --git a/mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp b/mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp index 1f03e9ae8d6a1..d3a77c026379e 100644 --- a/mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp +++ b/mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp @@ -185,9 +185,8 @@ struct CopyOpInterface int64_t dim) -> Value { return type.isDynamicDim(dim) ? DimOp::create(builder, loc, memRef, dim).getResult() - : builder - .create(loc, - type.getDimSize(dim)) + : arith::ConstantIndexOp::create(builder, loc, + type.getDimSize(dim)) .getResult(); }; Value sourceDim = getDimSize(copyOp.getSource(), rankedSourceType, i); diff --git a/mlir/lib/Dialect/Quant/Transforms/LowerQuantOps.cpp b/mlir/lib/Dialect/Quant/Transforms/LowerQuantOps.cpp index 58cd160948f7f..9e37bc5163f71 100644 --- a/mlir/lib/Dialect/Quant/Transforms/LowerQuantOps.cpp +++ b/mlir/lib/Dialect/Quant/Transforms/LowerQuantOps.cpp @@ -148,16 +148,14 @@ flattenUnrankedTensorAroundAxis(OpBuilder &builder, Location loc, Value input, auto axisValue = arith::ConstantIndexOp::create(builder, loc, axis); auto axisNextValue = arith::ConstantIndexOp::create(builder, loc, axis + 1); auto shapeLeft = - builder - .create(loc, TypeRange{shapeType, shapeType}, - inputShape, axisValue) + shape::SplitAtOp::create(builder, loc, TypeRange{shapeType, shapeType}, + inputShape, axisValue) .getResult(0); auto sizeLeft = shape::NumElementsOp::create(builder, loc, indexType, shapeLeft); auto shapeRight = - builder - .create(loc, TypeRange{shapeType, shapeType}, - inputShape, axisNextValue) + shape::SplitAtOp::create(builder, loc, TypeRange{shapeType, shapeType}, + inputShape, axisNextValue) .getResult(1); auto sizeRight = shape::NumElementsOp::create(builder, loc, indexType, shapeRight); @@ -557,25 +555,24 @@ Value convertPerChannelRanked(OpBuilder &builder, Location loc, Operation *op, SmallVector indexingMaps{ builder.getMultiDimIdentityMap(inputRank), channelAxisAffineMap, channelAxisAffineMap, builder.getMultiDimIdentityMap(inputRank)}; - auto result = builder - .create( - loc, - init.getType(), // resultType - ValueRange{input, scales, zeroPoints}, // inputs - ValueRange{init}, // outputs - indexingMaps, iteratorTypes, - [&](OpBuilder &builder, Location loc, ValueRange args) { - assert(args.size() == 4); - auto input = args[0]; - auto scale = args[1]; - auto zeroPoint = args[2]; - - auto result = - convertRanked(builder, loc, op, input, {}, scale, - zeroPoint, quantizedType); - - linalg::YieldOp::create(builder, loc, result); - }) + auto result = linalg::GenericOp::create( + builder, loc, + init.getType(), // resultType + ValueRange{input, scales, zeroPoints}, // inputs + ValueRange{init}, // outputs + indexingMaps, iteratorTypes, + [&](OpBuilder &builder, Location loc, ValueRange args) { + assert(args.size() == 4); + auto input = args[0]; + auto scale = args[1]; + auto zeroPoint = args[2]; + + auto result = + convertRanked(builder, loc, op, input, {}, scale, + zeroPoint, quantizedType); + + linalg::YieldOp::create(builder, loc, result); + }) .getResult(0); return result; @@ -660,25 +657,24 @@ Value convertSubChannel(OpBuilder &builder, Location loc, Operation *op, SmallVector indexingMaps{ builder.getMultiDimIdentityMap(inputRank), affineMap, affineMap, builder.getMultiDimIdentityMap(inputRank)}; - auto result = builder - .create( - loc, - init.getType(), // resultType - ValueRange{input, scales, zeroPoints}, // inputs - ValueRange{init}, // outputs - indexingMaps, iteratorTypes, - [&](OpBuilder &builder, Location loc, ValueRange args) { - assert(args.size() == 4); - auto input = args[0]; - auto scale = args[1]; - auto zeroPoint = args[2]; - - auto result = - convertRanked(builder, loc, op, input, {}, scale, - zeroPoint, quantizedType); - - linalg::YieldOp::create(builder, loc, result); - }) + auto result = linalg::GenericOp::create( + builder, loc, + init.getType(), // resultType + ValueRange{input, scales, zeroPoints}, // inputs + ValueRange{init}, // outputs + indexingMaps, iteratorTypes, + [&](OpBuilder &builder, Location loc, ValueRange args) { + assert(args.size() == 4); + auto input = args[0]; + auto scale = args[1]; + auto zeroPoint = args[2]; + + auto result = + convertRanked(builder, loc, op, input, {}, scale, + zeroPoint, quantizedType); + + linalg::YieldOp::create(builder, loc, result); + }) .getResult(0); return result; diff --git a/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp index 64c4d607e3fb9..f8799c52e8797 100644 --- a/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp +++ b/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp @@ -497,10 +497,10 @@ getBbArgReplacements(RewriterBase &rewriter, Block::BlockArgListType bbArgs, size_t idx = it.index(); Value val = it.value(); if (tensorIndices.contains(idx)) { - result.push_back(rewriter - .create( - val.getLoc(), oldBbArgs[idx].getType(), val) - .getResult()); + result.push_back( + bufferization::ToTensorOp::create(rewriter, val.getLoc(), + oldBbArgs[idx].getType(), val) + .getResult()); } else { result.push_back(val); } diff --git a/mlir/lib/Dialect/SCF/Utils/Utils.cpp b/mlir/lib/Dialect/SCF/Utils/Utils.cpp index 5b0c60415a6c4..57317951d609c 100644 --- a/mlir/lib/Dialect/SCF/Utils/Utils.cpp +++ b/mlir/lib/Dialect/SCF/Utils/Utils.cpp @@ -827,9 +827,8 @@ static Value getProductOfIntsOrIndexes(RewriterBase &rewriter, Location loc, productOf = v; } if (!productOf) { - productOf = rewriter - .create( - loc, rewriter.getOneAttr(getType(values.front()))) + productOf = arith::ConstantOp::create( + rewriter, loc, rewriter.getOneAttr(getType(values.front()))) .getResult(); } return productOf.value(); diff --git a/mlir/lib/Dialect/Shape/IR/Shape.cpp b/mlir/lib/Dialect/Shape/IR/Shape.cpp index e24f0f87e781d..5ba828918c22a 100644 --- a/mlir/lib/Dialect/Shape/IR/Shape.cpp +++ b/mlir/lib/Dialect/Shape/IR/Shape.cpp @@ -1702,9 +1702,8 @@ struct ShapeOfOpToConstShapeOp : public OpRewritePattern { return failure(); Location loc = op.getLoc(); Value constShape = - rewriter - .create(loc, - rewriter.getIndexTensorAttr(type.getShape())) + ConstShapeOp::create(rewriter, loc, + rewriter.getIndexTensorAttr(type.getShape())) .getResult(); if (constShape.getType() != op.getResult().getType()) constShape = tensor::CastOp::create(rewriter, loc, diff --git a/mlir/lib/Dialect/Shard/Transforms/Partition.cpp b/mlir/lib/Dialect/Shard/Transforms/Partition.cpp index 5fe55669c90db..3e3d4768853e5 100644 --- a/mlir/lib/Dialect/Shard/Transforms/Partition.cpp +++ b/mlir/lib/Dialect/Shard/Transforms/Partition.cpp @@ -70,10 +70,8 @@ splitLastAxisInResharding(ImplicitLocOpBuilder &builder, TypedValue sourceShard, GridOp grid, int64_t splitTensorAxis, GridAxis splitGridAxis) { TypedValue targetShard = cast>( - builder - .create(sourceShard, grid, - ArrayRef(splitGridAxis), - splitTensorAxis) + AllSliceOp::create(builder, sourceShard, grid, + ArrayRef(splitGridAxis), splitTensorAxis) .getResult()); Sharding targetSharding = targetShardingInSplitLastAxis( builder.getContext(), sourceSharding, splitTensorAxis, splitGridAxis); @@ -420,16 +418,15 @@ tryUpdateHaloInResharding(ImplicitLocOpBuilder &builder, GridOp grid, // Finally update the halo. auto updateHaloResult = - builder - .create( - sourceShard.getLoc(), - RankedTensorType::get(outShape, - sourceShard.getType().getElementType()), - initOprnd, grid.getSymName(), - GridAxesArrayAttr::get(builder.getContext(), - sourceSharding.getSplitAxes()), - targetSharding.getDynamicHaloSizes(), - targetSharding.getStaticHaloSizes()) + UpdateHaloOp::create( + builder, sourceShard.getLoc(), + RankedTensorType::get(outShape, + sourceShard.getType().getElementType()), + initOprnd, grid.getSymName(), + GridAxesArrayAttr::get(builder.getContext(), + sourceSharding.getSplitAxes()), + targetSharding.getDynamicHaloSizes(), + targetSharding.getStaticHaloSizes()) .getResult(); return std::make_tuple(cast>(updateHaloResult), targetSharding); diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp index a52872dd093d8..3b4140edd1641 100644 --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp @@ -931,10 +931,9 @@ createQuickSort(OpBuilder &builder, ModuleOp module, func::FuncOp func, FlatSymbolRefAttr partitionFunc = getMangledSortHelperFunc( builder, func, {IndexType::get(context)}, kPartitionFuncNamePrefix, xPerm, ny, args.drop_back(nTrailingP), createPartitionFunc); - Value p = builder - .create(loc, partitionFunc, - TypeRange{IndexType::get(context)}, - args.drop_back(nTrailingP)) + Value p = func::CallOp::create(builder, loc, partitionFunc, + TypeRange{IndexType::get(context)}, + args.drop_back(nTrailingP)) .getResult(0); Value lenLow = arith::SubIOp::create(builder, loc, p, lo); @@ -1028,9 +1027,8 @@ static void createSortStableFunc(OpBuilder &builder, ModuleOp module, FlatSymbolRefAttr searchFunc = getMangledSortHelperFunc( builder, func, {IndexType::get(context)}, kBinarySearchFuncNamePrefix, xPerm, ny, operands, createBinarySearchFunc); - Value p = builder - .create(loc, searchFunc, TypeRange{c1.getType()}, - operands) + Value p = func::CallOp::create(builder, loc, searchFunc, + TypeRange{c1.getType()}, operands) .getResult(0); // Move the value at data[i] to a temporary location. diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp index a317abd6c560b..0bd1d34c3504b 100644 --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp @@ -98,10 +98,10 @@ static Value genLaunchGPUFunc(OpBuilder &builder, gpu::GPUFuncOp gpuFunc, Value numT = constantIndex(builder, loc, numThreads); gpu::KernelDim3 gridSize = {one, one, one}; gpu::KernelDim3 blckSize = {numT, one, one}; - return builder - .create(loc, gpuFunc, gridSize, blckSize, - /*dynSharedMemSz*/ none, args, - builder.getType(), tokens) + return gpu::LaunchFuncOp::create(builder, loc, gpuFunc, gridSize, blckSize, + /*dynSharedMemSz*/ none, args, + builder.getType(), + tokens) .getAsyncToken(); } @@ -1168,7 +1168,7 @@ struct ForallRewriter : public OpRewritePattern { using OpRewritePattern::OpRewritePattern; ForallRewriter(MLIRContext *context, unsigned nT) - : OpRewritePattern(context), numThreads(nT){}; + : OpRewritePattern(context), numThreads(nT) {}; LogicalResult matchAndRewrite(scf::ParallelOp forallOp, PatternRewriter &rewriter) const override { diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseIterationToScf.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseIterationToScf.cpp index dfb127444e281..9cd489653a0f3 100644 --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseIterationToScf.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseIterationToScf.cpp @@ -443,8 +443,8 @@ mlir::SparseIterationTypeConverter::SparseIterationTypeConverter() { addSourceMaterialization([](OpBuilder &builder, IterSpaceType spTp, ValueRange inputs, Location loc) -> Value { - return builder - .create(loc, TypeRange(spTp), inputs) + return UnrealizedConversionCastOp::create(builder, loc, TypeRange(spTp), + inputs) .getResult(0); }); } diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp index 70795e2eb211b..7a26cd301eb99 100644 --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp @@ -412,13 +412,13 @@ static Value genSliceToSize(OpBuilder &builder, Location loc, Value mem, if (memTp.getRank() > 1) return mem; // Truncate linear memrefs to given size. - return builder - .create( - loc, MemRefType::get({ShapedType::kDynamic}, memTp.getElementType()), - mem, ValueRange{}, ValueRange{sz}, ValueRange{}, - ArrayRef{0}, // static offset - ArrayRef{ShapedType::kDynamic}, // dynamic size - ArrayRef{1}) // static stride + return memref::SubViewOp::create( + builder, loc, + MemRefType::get({ShapedType::kDynamic}, memTp.getElementType()), + mem, ValueRange{}, ValueRange{sz}, ValueRange{}, + ArrayRef{0}, // static offset + ArrayRef{ShapedType::kDynamic}, // dynamic size + ArrayRef{1}) // static stride .getResult(); } @@ -449,7 +449,7 @@ class SparseInsertGenerator public: SparseInsertGenerator(TensorType rtp, TypeRange retTypes, ValueRange params, bool genCall) - : FuncCallOrInlineGenerator(retTypes, params, genCall), rtp(rtp){}; + : FuncCallOrInlineGenerator(retTypes, params, genCall), rtp(rtp) {}; /// Generates code along an insertion path without the need for a "cursor". /// This current insertion strategy comes at the expense of some testing diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp index b444ac5ba1285..79f4e7f67ab9d 100644 --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp @@ -904,9 +904,8 @@ struct TensorReshapeRewriter : public OpRewritePattern { dstTp->withoutDimToLvl(), !srcTp->isAllOrdered() || !srcTp->isIdentity() || !dstTp->isIdentity()); SmallVector dynSizes; - Value buffer = rewriter - .create(loc, bufferTp, dynSizes, Value(), - nnz, Attribute()) + Value buffer = AllocTensorOp::create(rewriter, loc, bufferTp, dynSizes, + Value(), nnz, Attribute()) .getResult(); // Convert src coordinates to dst coordinates by first collapsing it to 1D @@ -1013,9 +1012,8 @@ struct Sparse2SparseReshapeRewriter : public OpRewritePattern { !srcTp.isAllOrdered() || !srcTp.isIdentity() || !dstTp.isIdentity()); Value buffer = - rewriter - .create(loc, bufferTp, dstDynSizes, Value(), - /*sizeHint=*/nnz, Attribute()) + AllocTensorOp::create(rewriter, loc, bufferTp, dstDynSizes, Value(), + /*sizeHint=*/nnz, Attribute()) .getResult(); // Implement the sparse2sparse reshape as follows: diff --git a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp index bc11e567fa2d8..c3356c1e4b9d8 100644 --- a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp @@ -784,8 +784,8 @@ struct PadOpInterface auto toValue = [&](OpFoldResult ofr) { if (auto value = dyn_cast(ofr)) return value; - return rewriter - .create(loc, *getConstantIntValue(ofr)) + return arith::ConstantIndexOp::create(rewriter, loc, + *getConstantIntValue(ofr)) .getResult(); }; @@ -919,9 +919,8 @@ struct ReshapeOpInterface auto memrefType = MemRefType::get( srcType.getShape(), srcType.getElementType(), AffineMap(), cast(srcBuffer->getType()).getMemorySpace()); - srcBuffer = rewriter - .create( - op->getLoc(), memrefType, *tensorAlloc) + srcBuffer = bufferization::ToBufferOp::create(rewriter, op->getLoc(), + memrefType, *tensorAlloc) .getResult(); } diff --git a/mlir/lib/Dialect/Tensor/Transforms/IndependenceTransforms.cpp b/mlir/lib/Dialect/Tensor/Transforms/IndependenceTransforms.cpp index 43d9d704a29ff..9fd27d328694e 100644 --- a/mlir/lib/Dialect/Tensor/Transforms/IndependenceTransforms.cpp +++ b/mlir/lib/Dialect/Tensor/Transforms/IndependenceTransforms.cpp @@ -130,8 +130,7 @@ FailureOr tensor::buildIndependentOp(OpBuilder &b, // Create a tensor::ExtractSliceOp. SmallVector offsets(newSizes.size(), b.getIndexAttr(0)); SmallVector strides(newSizes.size(), b.getIndexAttr(1)); - return b - .create(loc, newEmptyOp, offsets, emptyOp.getMixedSizes(), - strides) + return ExtractSliceOp::create(b, loc, newEmptyOp, offsets, + emptyOp.getMixedSizes(), strides) .getResult(); } diff --git a/mlir/lib/Dialect/Tensor/Transforms/ReshapePatterns.cpp b/mlir/lib/Dialect/Tensor/Transforms/ReshapePatterns.cpp index e0af2f77d44b8..2ec23e1fb35ce 100644 --- a/mlir/lib/Dialect/Tensor/Transforms/ReshapePatterns.cpp +++ b/mlir/lib/Dialect/Tensor/Transforms/ReshapePatterns.cpp @@ -385,10 +385,9 @@ struct BubbleUpExpandShapeThroughExtractSlice return getValueOrCreateConstantIndexOp(rewriter, loc, ofr); }); OpFoldResult collapsedOffset = - rewriter - .create(loc, offsetVals, - reassocGroupSizes, - /*disjoint=*/true) + affine::AffineLinearizeIndexOp::create(rewriter, loc, offsetVals, + reassocGroupSizes, + /*disjoint=*/true) .getResult(); collapsedOffsets.push_back(collapsedOffset); collapsedSizes.push_back(collapsedSize); diff --git a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp index 1ad2c806cc39e..6d2cbb5539e14 100644 --- a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp +++ b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp @@ -707,9 +707,8 @@ struct ConcatSliceOptimization : public OpRewritePattern { auto size_op = getTosaConstShape(rewriter, sliceOp.getLoc(), sliceSizes); replaceWithSlice = - rewriter - .create(sliceOp.getLoc(), sliceOp.getType(), - input, start_op, size_op) + tosa::SliceOp::create(rewriter, sliceOp.getLoc(), sliceOp.getType(), + input, start_op, size_op) .getResult(); break; } diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp index 9474299a39582..0bec0da3f4320 100644 --- a/mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp +++ b/mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp @@ -81,9 +81,8 @@ struct DepthwiseConv2DIsMul : public OpRewritePattern { dyn_cast(input.getType()).getElementType()); auto revisedInputShapeValue = getTosaConstShape(rewriter, op.getLoc(), revisedInputShape); - input = rewriter - .create(op.getLoc(), inputType, input, - revisedInputShapeValue) + input = tosa::ReshapeOp::create(rewriter, op.getLoc(), inputType, input, + revisedInputShapeValue) .getResult(); Type resultETy = resultType.getElementType(); @@ -162,9 +161,8 @@ struct DepthwiseConv2DIsMul : public OpRewritePattern { shiftType, rewriter.getIntegerAttr(shiftElementType, 0)); Value constZero = tosa::ConstOp::create(rewriter, op.getLoc(), shiftType, shiftZeroAttr); - Value mulValue = rewriter - .create(op.getLoc(), mulShapeType, input, - weight, constZero) + Value mulValue = tosa::MulOp::create(rewriter, op.getLoc(), mulShapeType, + input, weight, constZero) .getResult(); // Reshape output to [N, H, W, C * M].