[Mlir-commits] [mlir] Makslevental/update create 3n (PR #149687)
Maksim Levental
llvmlistbot at llvm.org
Sat Jul 19 16:41:12 PDT 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/149687
>From 1863ce919b0a458ffc47e77f21d82116da194b42 Mon Sep 17 00:00:00 2001
From: max <maksim.levental at gmail.com>
Date: Sat, 19 Jul 2025 19:39:03 -0400
Subject: [PATCH] [mlir] update include create APIs (3/n)
See https://github.com/llvm/llvm-project/pull/147168 for more info.
---
.../mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h | 2 +-
mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h | 4 ++--
.../include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td | 2 +-
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td | 4 ++--
.../include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h | 2 +-
mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h | 4 ++--
mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h | 2 +-
mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h | 6 +++---
mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h | 6 +++---
mlir/include/mlir/IR/Builders.h | 2 +-
mlir/include/mlir/Interfaces/ViewLikeInterface.h | 2 +-
mlir/include/mlir/Parser/Parser.h | 2 +-
12 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
index 6245f88db3d19..bb7f688e712eb 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
@@ -651,7 +651,7 @@ void replaceOpWithBufferizedValues(RewriterBase &rewriter, Operation *op,
template <typename OpTy, typename... Args>
OpTy replaceOpWithNewBufferizedOp(RewriterBase &rewriter, Operation *op,
Args &&...args) {
- auto newOp = rewriter.create<OpTy>(op->getLoc(), std::forward<Args>(args)...);
+ auto newOp = OpTy::create(rewriter, op->getLoc(), std::forward<Args>(args)...);
replaceOpWithBufferizedValues(rewriter, op, newOp->getResults());
return newOp;
}
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
index 596c470ef6d23..a2409f2796b94 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
@@ -148,14 +148,14 @@ struct BufferResultsToOutParamsOpts {
/// Default memref.alloc is used
AllocationFn allocationFn = [](OpBuilder &builder, Location loc,
MemRefType type) {
- return builder.create<memref::AllocOp>(loc, type).getResult();
+ return memref::AllocOp::create(builder, loc, type).getResult();
};
/// Memcpy function; used to create a copy between two memrefs.
/// Default memref.copy is used.
MemCpyFn memCpyFn = [](OpBuilder &builder, Location loc, Value from,
Value to) {
- builder.create<memref::CopyOp>(loc, from, to);
+ memref::CopyOp::create(builder, loc, from, to);
return success();
};
diff --git a/mlir/include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td b/mlir/include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td
index df5a2448bd779..e98b94b5b3052 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.td
@@ -114,7 +114,7 @@ def BasicPtxBuilderOpInterface : OpInterface<"BasicPtxBuilderInterface"> {
/*methodBody=*/"",
/*defaultImpl=*/ [{
mlir::Operation* op = $_op;
- return rewriter.create<LLVM::ConstantOp>(
+ return LLVM::ConstantOp::create(rewriter,
op->getLoc(), rewriter.getIntegerType(32), val);
}]
>,
diff --git a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
index 7bbc56f549c0b..ca0cc03acd7ad 100644
--- a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
+++ b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
@@ -454,7 +454,7 @@ def TransposeOp : LinalgStructuredBase_Op<"transpose", [
static void regionBuilder(mlir::ImplicitLocOpBuilder &b, mlir::Block &block,
mlir::ArrayRef<mlir::NamedAttribute>, function_ref<InFlightDiagnostic()> emitError) {
OpBuilder::InsertionGuard guard(b);
- b.create<linalg::YieldOp>(b.getLoc(), block.getArgument(0));
+ linalg::YieldOp::create(b, b.getLoc(), block.getArgument(0));
}
static std::function<void(mlir::ImplicitLocOpBuilder &, mlir::Block &,
@@ -528,7 +528,7 @@ def BroadcastOp : LinalgStructuredBase_Op<"broadcast", [
mlir::ArrayRef<mlir::NamedAttribute>,
function_ref<InFlightDiagnostic()> emitError) {
OpBuilder::InsertionGuard guard(b);
- b.create<linalg::YieldOp>(b.getLoc(), block.getArgument(0));
+ linalg::YieldOp::create(b, b.getLoc(), block.getArgument(0));
}
static std::function<void(mlir::ImplicitLocOpBuilder &, mlir::Block &,
diff --git a/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h b/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
index 620fd7c63146d..59da8ba6c8daa 100644
--- a/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
+++ b/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
@@ -131,7 +131,7 @@ class SparseTensorType {
/// ambiguity whenever passing a `SparseTensorType` directly to a
/// function which is overloaded to accept either `Type` or `TypeRange`.
/// In particular, this includes `RewriterBase::replaceOpWithNewOp<OpTy>`
- /// and `OpBuilder::create<OpTy>` whenever the `OpTy::build` is overloaded
+ /// and `OpBuilder::$2::create($1, OpTy>` whenever the `OpTy::build` is overloaded
/// thus. This happens because the `TypeRange<T>(T&&)` ctor is implicit
/// as well, and there's no SFINAE we can add to this method that would
/// block subsequent application of that ctor. The only way to fix the
diff --git a/mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h b/mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
index 6f3b0916a7a60..cdcd099ec7d22 100644
--- a/mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
+++ b/mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
@@ -70,7 +70,7 @@ checkHasDynamicBatchDims(PatternRewriter &rewriter, Op op,
}
dynamicDims.push_back(
- rewriter.create<tensor::DimOp>(op->getLoc(), params[0], 0));
+ tensor::DimOp::create(rewriter, op->getLoc(), params[0], 0));
return dynamicDims;
}
@@ -91,7 +91,7 @@ namespace {
template <typename TosaOp, typename... Args>
TosaOp createOpAndInferShape(ImplicitLocOpBuilder &builder, Type resultTy,
Args &&...args) {
- auto op = builder.create<TosaOp>(resultTy, args...);
+ auto op = TosaOp::create(builder, resultTy, args...);
InferShapedTypeOpInterface shapeInterface =
dyn_cast<InferShapedTypeOpInterface>(op.getOperation());
diff --git a/mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h b/mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h
index bdd8713037eea..9d9a934cdfd5e 100644
--- a/mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h
+++ b/mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h
@@ -47,7 +47,7 @@ Value getConstTensorInt(OpBuilder &builder, Location loc,
mlir::RankedTensorType const_type =
RankedTensorType::get({count}, element_type);
mlir::DenseElementsAttr const_attr = DenseElementsAttr::get(const_type, vec);
- auto const_op = builder.create<tosa::ConstOp>(loc, const_type, const_attr);
+ auto const_op = tosa::ConstOp::create(builder, loc, const_type, const_attr);
return const_op.getResult();
}
diff --git a/mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h b/mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
index 704e39e908841..817442e6514a7 100644
--- a/mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
+++ b/mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
@@ -332,11 +332,11 @@ struct ComposeCollapseOfExpandOp : public OpRewritePattern<CollapseOpTy> {
// the first dynamic size.
Value result = dynamicSizes[0];
for (Value v : llvm::drop_begin(dynamicSizes))
- result = rewriter.create<arith::MulIOp>(loc, result, v);
+ result = arith::MulIOp::create(rewriter, loc, result, v);
if (numStaticElems != 1) {
- result = rewriter.create<arith::MulIOp>(
+ result = arith::MulIOp::create(rewriter,
loc, result,
- rewriter.create<arith::ConstantIndexOp>(loc, numStaticElems));
+ arith::ConstantIndexOp::create(rewriter, loc, numStaticElems));
}
newOutputShape.push_back(result);
}
diff --git a/mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h b/mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
index cc8421b23a074..387ec99a8f672 100644
--- a/mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
+++ b/mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
@@ -118,9 +118,9 @@ inline auto makeVscaleConstantBuilder(PatternRewriter &rewriter, Location loc) {
Value vscale = nullptr;
return [loc, vscale, &rewriter](int64_t multiplier) mutable {
if (!vscale)
- vscale = rewriter.create<vector::VectorScaleOp>(loc);
- return rewriter.create<arith::MulIOp>(
- loc, vscale, rewriter.create<arith::ConstantIndexOp>(loc, multiplier));
+ vscale = vector::VectorScaleOp::create(rewriter, loc);
+ return arith::MulIOp::create(rewriter,
+ loc, vscale, arith::ConstantIndexOp::create(rewriter, loc, multiplier));
};
}
diff --git a/mlir/include/mlir/IR/Builders.h b/mlir/include/mlir/IR/Builders.h
index 5a2520b48a7b3..b7de2b4a5b37e 100644
--- a/mlir/include/mlir/IR/Builders.h
+++ b/mlir/include/mlir/IR/Builders.h
@@ -552,7 +552,7 @@ class OpBuilder : public Builder {
template <typename OpTy, typename... Args>
std::enable_if_t<OpTy::template hasTrait<OpTrait::ZeroResults>(), OpTy>
createOrFold(Location location, Args &&...args) {
- auto op = create<OpTy>(location, std::forward<Args>(args)...);
+ auto op = OpTy::create(location, std::forward<Args>(args)...);
SmallVector<Value, 0> unused;
(void)tryFold(op.getOperation(), unused);
diff --git a/mlir/include/mlir/Interfaces/ViewLikeInterface.h b/mlir/include/mlir/Interfaces/ViewLikeInterface.h
index 14427a97a5502..9601c4c73b3fd 100644
--- a/mlir/include/mlir/Interfaces/ViewLikeInterface.h
+++ b/mlir/include/mlir/Interfaces/ViewLikeInterface.h
@@ -109,7 +109,7 @@ class OpWithOffsetSizesAndStridesConstantArgumentFolder final
// Create the new op in canonical form.
auto newOp =
- rewriter.create<OpType>(op.getLoc(), resultType, op.getSource(),
+ OpType::create(rewriter, op.getLoc(), resultType, op.getSource(),
mixedOffsets, mixedSizes, mixedStrides);
CastOpFunc()(rewriter, op, newOp);
diff --git a/mlir/include/mlir/Parser/Parser.h b/mlir/include/mlir/Parser/Parser.h
index 828760fcbefa9..8a8cfb9090143 100644
--- a/mlir/include/mlir/Parser/Parser.h
+++ b/mlir/include/mlir/Parser/Parser.h
@@ -64,7 +64,7 @@ inline OwningOpRef<ContainerOpT> constructContainerOpForParserIfNecessary(
"block that has an implicit terminator or does not require one");
OpBuilder builder(context);
- ContainerOpT op = builder.create<ContainerOpT>(sourceFileLoc);
+ ContainerOpT op = ContainerOpT::create(builder, sourceFileLoc);
OwningOpRef<ContainerOpT> opRef(op);
assert(op->getNumRegions() == 1 &&
llvm::hasSingleElement(op->getRegion(0)) &&
More information about the Mlir-commits
mailing list