Skip to content

Commit 2f53125

Browse files
authored
[mlir][NFC] update mlir/Dialect create APIs (15/n) (#149921)
See #147168 for more info.
1 parent 1031f14 commit 2f53125

23 files changed

+553
-542
lines changed

mlir/lib/Dialect/ArmSME/IR/Utils.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,21 @@ scf::ForOp createLoopOverTileSlices(
7575
PatternRewriter &rewriter, Location loc, Value initTile,
7676
std::function<Value(OpBuilder &, Location, Value, Value)> makeLoopBody) {
7777
OpBuilder::InsertionGuard g(rewriter);
78-
auto step = rewriter.create<arith::ConstantIndexOp>(loc, 1);
79-
auto minTileSlices = rewriter.create<arith::ConstantIndexOp>(
80-
loc, llvm::cast<VectorType>(initTile.getType()).getDimSize(0));
78+
auto step = arith::ConstantIndexOp::create(rewriter, loc, 1);
79+
auto minTileSlices = arith::ConstantIndexOp::create(
80+
rewriter, loc, llvm::cast<VectorType>(initTile.getType()).getDimSize(0));
8181
auto vscale =
82-
rewriter.create<vector::VectorScaleOp>(loc, rewriter.getIndexType());
83-
auto lowerBound = rewriter.create<arith::ConstantIndexOp>(loc, 0);
82+
vector::VectorScaleOp::create(rewriter, loc, rewriter.getIndexType());
83+
auto lowerBound = arith::ConstantIndexOp::create(rewriter, loc, 0);
8484
auto numTileSlices =
85-
rewriter.create<arith::MulIOp>(loc, minTileSlices, vscale);
86-
auto forOp = rewriter.create<scf::ForOp>(loc, lowerBound, numTileSlices, step,
87-
ValueRange{initTile});
85+
arith::MulIOp::create(rewriter, loc, minTileSlices, vscale);
86+
auto forOp = scf::ForOp::create(rewriter, loc, lowerBound, numTileSlices,
87+
step, ValueRange{initTile});
8888
rewriter.setInsertionPointToStart(forOp.getBody());
8989
Value nextTile =
9090
makeLoopBody(rewriter, loc, /*tileSliceIndex=*/forOp.getInductionVar(),
9191
/*currentTile=*/forOp.getRegionIterArg(0));
92-
rewriter.create<scf::YieldOp>(loc, nextTile);
92+
scf::YieldOp::create(rewriter, loc, nextTile);
9393
return forOp;
9494
}
9595

mlir/lib/Dialect/ArmSME/Transforms/OuterProductFusion.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class OuterProductFusion2Way
136136

137137
auto loc = op.getLoc();
138138
auto packInputs = [&](Value lhs, Value rhs) {
139-
return rewriter.create<vector::InterleaveOp>(loc, lhs, rhs);
139+
return vector::InterleaveOp::create(rewriter, loc, lhs, rhs);
140140
};
141141

142142
auto lhs = packInputs(op1.getLhs().getDefiningOp()->getOperand(0),
@@ -284,7 +284,7 @@ class OuterProductFusion4Way
284284

285285
auto loc = op.getLoc();
286286
auto packInputs = [&](Value lhs, Value rhs) {
287-
return rewriter.create<vector::InterleaveOp>(loc, lhs, rhs);
287+
return vector::InterleaveOp::create(rewriter, loc, lhs, rhs);
288288
};
289289

290290
auto lhs0 = packInputs(op1.getLhs().getDefiningOp()->getOperand(0),
@@ -456,8 +456,8 @@ struct SwapVectorExtractOfArithExtend
456456
Value extendSource = extendOp->getOperand(0);
457457

458458
// Create new extract from source of extend.
459-
Value newExtract = rewriter.create<vector::ExtractOp>(
460-
loc, extendSource, extractOp.getMixedPosition());
459+
Value newExtract = vector::ExtractOp::create(rewriter, loc, extendSource,
460+
extractOp.getMixedPosition());
461461

462462
// Extend new extract to original result type.
463463
Operation *newExtend =
@@ -503,8 +503,9 @@ struct SwapVectorScalableExtractOfArithExtend
503503
// Create new extract from source of extend.
504504
VectorType extractResultVectorType =
505505
resultType.clone(extendSourceVectorType.getElementType());
506-
Value newExtract = rewriter.create<vector::ScalableExtractOp>(
507-
loc, extractResultVectorType, extendSource, extractOp.getPos());
506+
Value newExtract = vector::ScalableExtractOp::create(
507+
rewriter, loc, extractResultVectorType, extendSource,
508+
extractOp.getPos());
508509

509510
// Extend new extract to original result type.
510511
Operation *newExtend =

mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ void splitCondBranches(IRRewriter &rewriter, FunctionOpInterface function) {
210210

211211
auto insertJump = [&](Location loc, Block *source, Block *dest, auto args) {
212212
rewriter.setInsertionPointToEnd(source);
213-
rewriter.create<cf::BranchOp>(loc, dest, args);
213+
cf::BranchOp::create(rewriter, loc, dest, args);
214214
};
215215

216216
for (auto condBranch : worklist) {
@@ -253,7 +253,7 @@ void insertCopiesAtBranches(IRRewriter &rewriter,
253253
for (OpOperand &operand : terminator->getOpOperands()) {
254254
if (isValidSMETileVectorType(operand.get().getType())) {
255255
auto copy =
256-
rewriter.create<CopyTileOp>(terminator->getLoc(), operand.get());
256+
CopyTileOp::create(rewriter, terminator->getLoc(), operand.get());
257257
rewriter.modifyOpInPlace(terminator, [&] { operand.assign(copy); });
258258
}
259259
}

mlir/lib/Dialect/ArmSME/Transforms/VectorLegalization.cpp

Lines changed: 91 additions & 88 deletions
Large diffs are not rendered by default.

mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ struct SvboolConversionOpLowering : public ConvertOpToLLVMPattern<Op> {
8787
VectorType sourceType = source.getType();
8888
VectorType resultType = convertOp.getResult().getType();
8989

90-
Value result = rewriter.create<arith::ConstantOp>(
91-
loc, resultType, rewriter.getZeroAttr(resultType));
90+
Value result = arith::ConstantOp::create(rewriter, loc, resultType,
91+
rewriter.getZeroAttr(resultType));
9292

9393
// We want to iterate over the input vector in steps of the trailing
9494
// dimension. So this creates tile shape where all leading dimensions are 1,
@@ -100,15 +100,15 @@ struct SvboolConversionOpLowering : public ConvertOpToLLVMPattern<Op> {
100100
for (SmallVector<int64_t> index :
101101
StaticTileOffsetRange(sourceType.getShape(), tileShape)) {
102102
auto extractOrInsertPosition = ArrayRef(index).drop_back();
103-
auto sourceVector = rewriter.create<vector::ExtractOp>(
104-
loc, source, extractOrInsertPosition);
103+
auto sourceVector = vector::ExtractOp::create(rewriter, loc, source,
104+
extractOrInsertPosition);
105105
VectorType convertedType =
106106
VectorType::Builder(llvm::cast<VectorType>(sourceVector.getType()))
107107
.setDim(0, resultType.getShape().back());
108108
auto convertedVector =
109-
rewriter.create<IntrOp>(loc, TypeRange{convertedType}, sourceVector);
110-
result = rewriter.create<vector::InsertOp>(loc, convertedVector, result,
111-
extractOrInsertPosition);
109+
IntrOp::create(rewriter, loc, TypeRange{convertedType}, sourceVector);
110+
result = vector::InsertOp::create(rewriter, loc, convertedVector, result,
111+
extractOrInsertPosition);
112112
}
113113

114114
rewriter.replaceOp(convertOp, result);
@@ -135,12 +135,12 @@ struct PselOpLowering : public ConvertOpToLLVMPattern<PselOp> {
135135
ConversionPatternRewriter &rewriter) const override {
136136
auto svboolType = VectorType::get(16, rewriter.getI1Type(), true);
137137
auto loc = pselOp.getLoc();
138-
auto svboolP1 = rewriter.create<ConvertToSvboolIntrOp>(loc, svboolType,
139-
adaptor.getP1());
140-
auto indexI32 = rewriter.create<arith::IndexCastOp>(
141-
loc, rewriter.getI32Type(), pselOp.getIndex());
142-
auto pselIntr = rewriter.create<PselIntrOp>(loc, svboolType, svboolP1,
143-
pselOp.getP2(), indexI32);
138+
auto svboolP1 = ConvertToSvboolIntrOp::create(rewriter, loc, svboolType,
139+
adaptor.getP1());
140+
auto indexI32 = arith::IndexCastOp::create(
141+
rewriter, loc, rewriter.getI32Type(), pselOp.getIndex());
142+
auto pselIntr = PselIntrOp::create(rewriter, loc, svboolType, svboolP1,
143+
pselOp.getP2(), indexI32);
144144
rewriter.replaceOpWithNewOp<ConvertFromSvboolIntrOp>(
145145
pselOp, adaptor.getP1().getType(), pselIntr);
146146
return success();
@@ -174,7 +174,7 @@ struct CreateMaskOpLowering
174174
"not SVE predicate-sized");
175175

176176
auto loc = createMaskOp.getLoc();
177-
auto zero = rewriter.create<LLVM::ZeroOp>(loc, rewriter.getI64Type());
177+
auto zero = LLVM::ZeroOp::create(rewriter, loc, rewriter.getI64Type());
178178
rewriter.replaceOpWithNewOp<WhileLTIntrOp>(createMaskOp, maskType, zero,
179179
adaptor.getOperands()[0]);
180180
return success();

mlir/lib/Dialect/ArmSVE/Transforms/LegalizeVectorStorage.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ void replaceOpWithUnrealizedConversion(PatternRewriter &rewriter, TOp op,
7171
TLegalizerCallback callback) {
7272
replaceOpWithLegalizedOp(rewriter, op, [&](TOp newOp) {
7373
// Mark our `unrealized_conversion_casts` with a pass label.
74-
return rewriter.create<UnrealizedConversionCastOp>(
75-
op.getLoc(), TypeRange{op.getResult().getType()},
74+
return UnrealizedConversionCastOp::create(
75+
rewriter, op.getLoc(), TypeRange{op.getResult().getType()},
7676
ValueRange{callback(newOp)},
7777
NamedAttribute(rewriter.getStringAttr(kSVELegalizerTag),
7878
rewriter.getUnitAttr()));
@@ -239,8 +239,8 @@ struct LegalizeSVEMaskStoreConversion
239239

240240
auto legalMaskType = widenScalableMaskTypeToSvbool(
241241
llvm::cast<VectorType>(valueToStore.getType()));
242-
auto convertToSvbool = rewriter.create<arm_sve::ConvertToSvboolOp>(
243-
loc, legalMaskType, valueToStore);
242+
auto convertToSvbool = arm_sve::ConvertToSvboolOp::create(
243+
rewriter, loc, legalMaskType, valueToStore);
244244
// Replace this store with a conversion to a storable svbool mask [1],
245245
// followed by a wider store.
246246
replaceOpWithLegalizedOp(rewriter, storeOp,
@@ -290,8 +290,8 @@ struct LegalizeSVEMaskLoadConversion : public OpRewritePattern<memref::LoadOp> {
290290
replaceOpWithLegalizedOp(rewriter, loadOp, [&](memref::LoadOp newLoadOp) {
291291
newLoadOp.setMemRef(*legalMemref);
292292
newLoadOp.getResult().setType(legalMaskType);
293-
return rewriter.create<arm_sve::ConvertFromSvboolOp>(
294-
loc, loadedMask.getType(), newLoadOp);
293+
return arm_sve::ConvertFromSvboolOp::create(
294+
rewriter, loc, loadedMask.getType(), newLoadOp);
295295
});
296296

297297
return success();
@@ -408,8 +408,8 @@ struct LegalizeTransferRead : public OpRewritePattern<vector::TransferReadOp> {
408408
reassoc.back().push_back(i);
409409
if (!memref::CollapseShapeOp::isGuaranteedCollapsible(memTy, reassoc))
410410
return failure();
411-
Value collapsedMem = rewriter.create<memref::CollapseShapeOp>(
412-
readOp.getLoc(), readOp.getBase(), reassoc);
411+
Value collapsedMem = memref::CollapseShapeOp::create(
412+
rewriter, readOp.getLoc(), readOp.getBase(), reassoc);
413413

414414
// Get a vector type with collapsed trailing dimensions.
415415
SmallVector<int64_t> shape(origVT.getShape());
@@ -424,14 +424,14 @@ struct LegalizeTransferRead : public OpRewritePattern<vector::TransferReadOp> {
424424
auto indices = readOp.getIndices().drop_back(numCollapseDims - 1);
425425

426426
// Create the new `transfer_read`.
427-
auto newReadOp = rewriter.create<vector::TransferReadOp>(
428-
readOp.getLoc(), collapsedVT, collapsedMem, indices,
427+
auto newReadOp = vector::TransferReadOp::create(
428+
rewriter, readOp.getLoc(), collapsedVT, collapsedMem, indices,
429429
readOp.getPadding(),
430430
ArrayRef<bool>(origInBounds).drop_back(numCollapseDims - 1));
431431

432432
// Cast back to the original vector type.
433-
auto toOrigShape = rewriter.create<vector::ShapeCastOp>(readOp.getLoc(),
434-
origVT, newReadOp);
433+
auto toOrigShape = vector::ShapeCastOp::create(rewriter, readOp.getLoc(),
434+
origVT, newReadOp);
435435

436436
rewriter.replaceOp(readOp, toOrigShape);
437437
return success();

mlir/lib/Dialect/Async/IR/Async.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ void ExecuteOp::build(OpBuilder &builder, OperationState &result,
9797
// expected result is empty. Otherwise, leave this to the caller
9898
// because we don't know which values to return from the execute op.
9999
if (resultTypes.empty() && !bodyBuilder) {
100-
builder.create<async::YieldOp>(result.location, ValueRange());
100+
async::YieldOp::create(builder, result.location, ValueRange());
101101
} else if (bodyBuilder) {
102102
bodyBuilder(builder, result.location, bodyBlock->getArguments());
103103
}

0 commit comments

Comments
 (0)