Skip to content

Commit c46be1a

Browse files
committed
[mlir][NFC] update flang/Optimizer/Transforms create APIs (11/n) (llvm#149687)
See llvm#147168 for more info.
1 parent b7e332d commit c46be1a

22 files changed

+333
-333
lines changed

flang/lib/Optimizer/Transforms/AbstractResult.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class CallConversion : public mlir::OpRewritePattern<Op> {
137137
auto buffer = saveResult.getMemref();
138138
mlir::Value arg = buffer;
139139
if (mustEmboxResult(result.getType(), shouldBoxResult))
140-
arg = rewriter.create<fir::EmboxOp>(
140+
arg = fir::EmboxOp::create(rewriter,
141141
loc, argType, buffer, saveResult.getShape(), /*slice*/ mlir::Value{},
142142
saveResult.getTypeparams());
143143

@@ -155,7 +155,7 @@ class CallConversion : public mlir::OpRewritePattern<Op> {
155155
if (!isResultBuiltinCPtr)
156156
newOperands.emplace_back(arg);
157157
newOperands.append(op.getOperands().begin(), op.getOperands().end());
158-
newOp = rewriter.create<fir::CallOp>(loc, *op.getCallee(),
158+
newOp = fir::CallOp::create(rewriter, loc, *op.getCallee(),
159159
newResultTypes, newOperands);
160160
} else {
161161
// Indirect calls.
@@ -169,12 +169,12 @@ class CallConversion : public mlir::OpRewritePattern<Op> {
169169

170170
llvm::SmallVector<mlir::Value> newOperands;
171171
newOperands.push_back(
172-
rewriter.create<fir::ConvertOp>(loc, newFuncTy, op.getOperand(0)));
172+
fir::ConvertOp::create(rewriter, loc, newFuncTy, op.getOperand(0)));
173173
if (!isResultBuiltinCPtr)
174174
newOperands.push_back(arg);
175175
newOperands.append(op.getOperands().begin() + 1,
176176
op.getOperands().end());
177-
newOp = rewriter.create<fir::CallOp>(loc, mlir::SymbolRefAttr{},
177+
newOp = fir::CallOp::create(rewriter, loc, mlir::SymbolRefAttr{},
178178
newResultTypes, newOperands);
179179
}
180180
}
@@ -191,7 +191,7 @@ class CallConversion : public mlir::OpRewritePattern<Op> {
191191
passArgPos =
192192
rewriter.getI32IntegerAttr(*op.getPassArgPos() + passArgShift);
193193
// TODO: propagate argument and result attributes (need to be shifted).
194-
newOp = rewriter.create<fir::DispatchOp>(
194+
newOp = fir::DispatchOp::create(rewriter,
195195
loc, newResultTypes, rewriter.getStringAttr(op.getMethod()),
196196
op.getOperands()[0], newOperands, passArgPos,
197197
/*arg_attrs=*/nullptr, /*res_attrs=*/nullptr,
@@ -280,7 +280,7 @@ processReturnLikeOp(OpTy ret, mlir::Value newArg,
280280
// register pass, this is possible for fir.box results, or fir.record
281281
// with no length parameters. Simply store the result in the result
282282
// storage. at the return point.
283-
rewriter.create<fir::StoreOp>(loc, resultValue, newArg);
283+
fir::StoreOp::create(rewriter, loc, resultValue, newArg);
284284
rewriter.replaceOpWithNewOp<OpTy>(ret);
285285
}
286286
// Delete result old local storage if unused.
@@ -337,7 +337,7 @@ class AddrOfOpConversion : public mlir::OpRewritePattern<fir::AddrOfOp> {
337337
newFuncTy = getCPtrFunctionType(oldFuncTy);
338338
else
339339
newFuncTy = getNewFunctionType(oldFuncTy, shouldBoxResult);
340-
auto newAddrOf = rewriter.create<fir::AddrOfOp>(addrOf.getLoc(), newFuncTy,
340+
auto newAddrOf = fir::AddrOfOp::create(rewriter, addrOf.getLoc(), newFuncTy,
341341
addrOf.getSymbol());
342342
// Rather than converting all op a function pointer might transit through
343343
// (e.g calls, stores, loads, converts...), cast new type to the abstract
@@ -397,7 +397,7 @@ class AbstractResultOpt
397397
if (mustEmboxResult(resultType, shouldBoxResult)) {
398398
auto bufferType = fir::ReferenceType::get(resultType);
399399
rewriter.setInsertionPointToStart(&func.front());
400-
newArg = rewriter.create<fir::BoxAddrOp>(loc, bufferType, newArg);
400+
newArg = fir::BoxAddrOp::create(rewriter, loc, bufferType, newArg);
401401
}
402402
patterns.insert<ReturnOpConversion>(context, newArg);
403403
target.addDynamicallyLegalOp<mlir::func::ReturnOp>(

flang/lib/Optimizer/Transforms/AffineDemotion.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class AffineLoadConversion
6060
if (!maybeExpandedMap)
6161
return failure();
6262

63-
auto coorOp = rewriter.create<fir::CoordinateOp>(
63+
auto coorOp = fir::CoordinateOp::create(rewriter,
6464
op.getLoc(), fir::ReferenceType::get(op.getResult().getType()),
6565
adaptor.getMemref(), *maybeExpandedMap);
6666

@@ -83,7 +83,7 @@ class AffineStoreConversion
8383
if (!maybeExpandedMap)
8484
return failure();
8585

86-
auto coorOp = rewriter.create<fir::CoordinateOp>(
86+
auto coorOp = fir::CoordinateOp::create(rewriter,
8787
op.getLoc(), fir::ReferenceType::get(op.getValueToStore().getType()),
8888
adaptor.getMemref(), *maybeExpandedMap);
8989
rewriter.replaceOpWithNewOp<fir::StoreOp>(op, adaptor.getValue(),

flang/lib/Optimizer/Transforms/AffinePromotion.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ static mlir::Type coordinateArrayElement(fir::ArrayCoorOp op) {
366366
static void populateIndexArgs(fir::ArrayCoorOp acoOp, fir::ShapeOp shape,
367367
SmallVectorImpl<mlir::Value> &indexArgs,
368368
mlir::PatternRewriter &rewriter) {
369-
auto one = rewriter.create<mlir::arith::ConstantOp>(
369+
auto one = mlir::arith::ConstantOp::create(rewriter,
370370
acoOp.getLoc(), rewriter.getIndexType(), rewriter.getIndexAttr(1));
371371
auto extents = shape.getExtents();
372372
for (auto i = extents.begin(); i < extents.end(); i++) {
@@ -379,7 +379,7 @@ static void populateIndexArgs(fir::ArrayCoorOp acoOp, fir::ShapeOp shape,
379379
static void populateIndexArgs(fir::ArrayCoorOp acoOp, fir::ShapeShiftOp shape,
380380
SmallVectorImpl<mlir::Value> &indexArgs,
381381
mlir::PatternRewriter &rewriter) {
382-
auto one = rewriter.create<mlir::arith::ConstantOp>(
382+
auto one = mlir::arith::ConstantOp::create(rewriter,
383383
acoOp.getLoc(), rewriter.getIndexType(), rewriter.getIndexAttr(1));
384384
auto extents = shape.getPairs();
385385
for (auto i = extents.begin(); i < extents.end();) {
@@ -422,12 +422,12 @@ createAffineOps(mlir::Value arrayRef, mlir::PatternRewriter &rewriter) {
422422

423423
populateIndexArgs(acoOp, indexArgs, rewriter);
424424

425-
auto affineApply = rewriter.create<affine::AffineApplyOp>(
425+
auto affineApply = affine::AffineApplyOp::create(rewriter,
426426
acoOp.getLoc(), affineMap, indexArgs);
427427
auto arrayElementType = coordinateArrayElement(acoOp);
428428
auto newType =
429429
mlir::MemRefType::get({mlir::ShapedType::kDynamic}, arrayElementType);
430-
auto arrayConvert = rewriter.create<fir::ConvertOp>(acoOp.getLoc(), newType,
430+
auto arrayConvert = fir::ConvertOp::create(rewriter, acoOp.getLoc(), newType,
431431
acoOp.getMemref());
432432
return std::make_pair(affineApply, arrayConvert);
433433
}
@@ -495,7 +495,7 @@ class AffineLoopConversion : public mlir::OpRewritePattern<fir::DoLoopOp> {
495495
affineFor.getRegionIterArgs());
496496
if (!results.empty()) {
497497
rewriter.setInsertionPointToEnd(affineFor.getBody());
498-
rewriter.create<affine::AffineYieldOp>(resultOp->getLoc(), results);
498+
affine::AffineYieldOp::create(rewriter, resultOp->getLoc(), results);
499499
}
500500
rewriter.finalizeOpModification(affineFor.getOperation());
501501

@@ -525,7 +525,7 @@ class AffineLoopConversion : public mlir::OpRewritePattern<fir::DoLoopOp> {
525525
std::pair<affine::AffineForOp, mlir::Value>
526526
positiveConstantStep(fir::DoLoopOp op, int64_t step,
527527
mlir::PatternRewriter &rewriter) const {
528-
auto affineFor = rewriter.create<affine::AffineForOp>(
528+
auto affineFor = affine::AffineForOp::create(rewriter,
529529
op.getLoc(), ValueRange(op.getLowerBound()),
530530
mlir::AffineMap::get(0, 1,
531531
mlir::getAffineSymbolExpr(0, op.getContext())),
@@ -543,23 +543,23 @@ class AffineLoopConversion : public mlir::OpRewritePattern<fir::DoLoopOp> {
543543
auto step = mlir::getAffineSymbolExpr(2, op.getContext());
544544
mlir::AffineMap upperBoundMap = mlir::AffineMap::get(
545545
0, 3, (upperBound - lowerBound + step).floorDiv(step));
546-
auto genericUpperBound = rewriter.create<affine::AffineApplyOp>(
546+
auto genericUpperBound = affine::AffineApplyOp::create(rewriter,
547547
op.getLoc(), upperBoundMap,
548548
ValueRange({op.getLowerBound(), op.getUpperBound(), op.getStep()}));
549549
auto actualIndexMap = mlir::AffineMap::get(
550550
1, 2,
551551
(lowerBound + mlir::getAffineDimExpr(0, op.getContext())) *
552552
mlir::getAffineSymbolExpr(1, op.getContext()));
553553

554-
auto affineFor = rewriter.create<affine::AffineForOp>(
554+
auto affineFor = affine::AffineForOp::create(rewriter,
555555
op.getLoc(), ValueRange(),
556556
AffineMap::getConstantMap(0, op.getContext()),
557557
genericUpperBound.getResult(),
558558
mlir::AffineMap::get(0, 1,
559559
1 + mlir::getAffineSymbolExpr(0, op.getContext())),
560560
1, op.getIterOperands());
561561
rewriter.setInsertionPointToStart(affineFor.getBody());
562-
auto actualIndex = rewriter.create<affine::AffineApplyOp>(
562+
auto actualIndex = affine::AffineApplyOp::create(rewriter,
563563
op.getLoc(), actualIndexMap,
564564
ValueRange(
565565
{affineFor.getInductionVar(), op.getLowerBound(), op.getStep()}));
@@ -588,7 +588,7 @@ class AffineIfConversion : public mlir::OpRewritePattern<fir::IfOp> {
588588
<< "AffineIfConversion: couldn't calculate affine condition\n";);
589589
return failure();
590590
}
591-
auto affineIf = rewriter.create<affine::AffineIfOp>(
591+
auto affineIf = affine::AffineIfOp::create(rewriter,
592592
op.getLoc(), affineCondition.getIntegerSet(),
593593
affineCondition.getAffineArgs(), !op.getElseRegion().empty());
594594
rewriter.startOpModification(affineIf);

flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ static bool getAdjustedExtents(mlir::Location loc,
856856
auto idxTy = rewriter.getIndexType();
857857
if (isAssumedSize(result)) {
858858
// Use slice information to compute the extent of the column.
859-
auto one = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 1);
859+
auto one = mlir::arith::ConstantIndexOp::create(rewriter, loc, 1);
860860
mlir::Value size = one;
861861
if (mlir::Value sliceArg = arrLoad.getSlice()) {
862862
if (auto sliceOp =
@@ -896,14 +896,14 @@ static mlir::Value getOrReadExtentsAndShapeOp(
896896
mlir::cast<SequenceType>(dyn_cast_ptrOrBoxEleTy(boxTy)).getDimension();
897897
auto idxTy = rewriter.getIndexType();
898898
for (decltype(rank) dim = 0; dim < rank; ++dim) {
899-
auto dimVal = rewriter.create<mlir::arith::ConstantIndexOp>(loc, dim);
900-
auto dimInfo = rewriter.create<BoxDimsOp>(loc, idxTy, idxTy, idxTy,
899+
auto dimVal = mlir::arith::ConstantIndexOp::create(rewriter, loc, dim);
900+
auto dimInfo = BoxDimsOp::create(rewriter, loc, idxTy, idxTy, idxTy,
901901
arrLoad.getMemref(), dimVal);
902902
result.emplace_back(dimInfo.getResult(1));
903903
}
904904
if (!arrLoad.getShape()) {
905905
auto shapeType = ShapeType::get(rewriter.getContext(), rank);
906-
return rewriter.create<ShapeOp>(loc, shapeType, result);
906+
return ShapeOp::create(rewriter, loc, shapeType, result);
907907
}
908908
auto shiftOp = arrLoad.getShape().getDefiningOp<ShiftOp>();
909909
auto shapeShiftType = ShapeShiftType::get(rewriter.getContext(), rank);
@@ -912,7 +912,7 @@ static mlir::Value getOrReadExtentsAndShapeOp(
912912
shapeShiftOperands.push_back(lb);
913913
shapeShiftOperands.push_back(extent);
914914
}
915-
return rewriter.create<ShapeShiftOp>(loc, shapeShiftType,
915+
return ShapeShiftOp::create(rewriter, loc, shapeShiftType,
916916
shapeShiftOperands);
917917
}
918918
copyUsingSlice =
@@ -952,12 +952,12 @@ static mlir::Value genCoorOp(mlir::PatternRewriter &rewriter,
952952
auto module = load->getParentOfType<mlir::ModuleOp>();
953953
FirOpBuilder builder(rewriter, module);
954954
auto typeparams = getTypeParamsIfRawData(loc, builder, load, alloc.getType());
955-
mlir::Value result = rewriter.create<ArrayCoorOp>(
955+
mlir::Value result = ArrayCoorOp::create(rewriter,
956956
loc, eleTy, alloc, shape, slice,
957957
llvm::ArrayRef<mlir::Value>{originated}.take_front(dimension),
958958
typeparams);
959959
if (dimension < originated.size())
960-
result = rewriter.create<fir::CoordinateOp>(
960+
result = fir::CoordinateOp::create(rewriter,
961961
loc, resTy, result,
962962
llvm::ArrayRef<mlir::Value>{originated}.drop_front(dimension));
963963
return result;
@@ -971,12 +971,12 @@ static mlir::Value getCharacterLen(mlir::Location loc, FirOpBuilder &builder,
971971
// The loaded array is an emboxed value. Get the CHARACTER length from
972972
// the box value.
973973
auto eleSzInBytes =
974-
builder.create<BoxEleSizeOp>(loc, charLenTy, load.getMemref());
974+
BoxEleSizeOp::create(builder, loc, charLenTy, load.getMemref());
975975
auto kindSize =
976976
builder.getKindMap().getCharacterBitsize(charTy.getFKind());
977977
auto kindByteSize =
978978
builder.createIntegerConstant(loc, charLenTy, kindSize / 8);
979-
return builder.create<mlir::arith::DivSIOp>(loc, eleSzInBytes,
979+
return mlir::arith::DivSIOp::create(builder, loc, eleSzInBytes,
980980
kindByteSize);
981981
}
982982
// The loaded array is a (set of) unboxed values. If the CHARACTER's
@@ -1003,24 +1003,24 @@ void genArrayCopy(mlir::Location loc, mlir::PatternRewriter &rewriter,
10031003
auto idxTy = rewriter.getIndexType();
10041004
// Build loop nest from column to row.
10051005
for (auto sh : llvm::reverse(extents)) {
1006-
auto ubi = rewriter.create<ConvertOp>(loc, idxTy, sh);
1007-
auto zero = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 0);
1008-
auto one = rewriter.create<mlir::arith::ConstantIndexOp>(loc, 1);
1009-
auto ub = rewriter.create<mlir::arith::SubIOp>(loc, idxTy, ubi, one);
1010-
auto loop = rewriter.create<DoLoopOp>(loc, zero, ub, one);
1006+
auto ubi = ConvertOp::create(rewriter, loc, idxTy, sh);
1007+
auto zero = mlir::arith::ConstantIndexOp::create(rewriter, loc, 0);
1008+
auto one = mlir::arith::ConstantIndexOp::create(rewriter, loc, 1);
1009+
auto ub = mlir::arith::SubIOp::create(rewriter, loc, idxTy, ubi, one);
1010+
auto loop = DoLoopOp::create(rewriter, loc, zero, ub, one);
10111011
rewriter.setInsertionPointToStart(loop.getBody());
10121012
indices.push_back(loop.getInductionVar());
10131013
}
10141014
// Reverse the indices so they are in column-major order.
10151015
std::reverse(indices.begin(), indices.end());
10161016
auto module = arrLoad->getParentOfType<mlir::ModuleOp>();
10171017
FirOpBuilder builder(rewriter, module);
1018-
auto fromAddr = rewriter.create<ArrayCoorOp>(
1018+
auto fromAddr = ArrayCoorOp::create(rewriter,
10191019
loc, getEleTy(src.getType()), src, shapeOp,
10201020
CopyIn && copyUsingSlice ? sliceOp : mlir::Value{},
10211021
factory::originateIndices(loc, rewriter, src.getType(), shapeOp, indices),
10221022
getTypeParamsIfRawData(loc, builder, arrLoad, src.getType()));
1023-
auto toAddr = rewriter.create<ArrayCoorOp>(
1023+
auto toAddr = ArrayCoorOp::create(rewriter,
10241024
loc, getEleTy(dst.getType()), dst, shapeOp,
10251025
!CopyIn && copyUsingSlice ? sliceOp : mlir::Value{},
10261026
factory::originateIndices(loc, rewriter, dst.getType(), shapeOp, indices),
@@ -1093,14 +1093,14 @@ allocateArrayTemp(mlir::Location loc, mlir::PatternRewriter &rewriter,
10931093
findNonconstantExtents(baseType, extents);
10941094
llvm::SmallVector<mlir::Value> typeParams =
10951095
genArrayLoadTypeParameters(loc, rewriter, load);
1096-
mlir::Value allocmem = rewriter.create<AllocMemOp>(
1096+
mlir::Value allocmem = AllocMemOp::create(rewriter,
10971097
loc, dyn_cast_ptrOrBoxEleTy(baseType), typeParams, nonconstantExtents);
10981098
mlir::Type eleType =
10991099
fir::unwrapSequenceType(fir::unwrapPassByRefType(baseType));
11001100
if (fir::isRecordWithAllocatableMember(eleType)) {
11011101
// The allocatable component descriptors need to be set to a clean
11021102
// deallocated status before anything is done with them.
1103-
mlir::Value box = rewriter.create<fir::EmboxOp>(
1103+
mlir::Value box = fir::EmboxOp::create(rewriter,
11041104
loc, fir::BoxType::get(allocmem.getType()), allocmem, shape,
11051105
/*slice=*/mlir::Value{}, typeParams);
11061106
auto module = load->getParentOfType<mlir::ModuleOp>();
@@ -1111,12 +1111,12 @@ allocateArrayTemp(mlir::Location loc, mlir::PatternRewriter &rewriter,
11111111
auto cleanup = [=](mlir::PatternRewriter &r) {
11121112
FirOpBuilder builder(r, module);
11131113
runtime::genDerivedTypeDestroy(builder, loc, box);
1114-
r.create<FreeMemOp>(loc, allocmem);
1114+
FreeMemOp::create(r, loc, allocmem);
11151115
};
11161116
return {allocmem, cleanup};
11171117
}
11181118
auto cleanup = [=](mlir::PatternRewriter &r) {
1119-
r.create<FreeMemOp>(loc, allocmem);
1119+
FreeMemOp::create(r, loc, allocmem);
11201120
};
11211121
return {allocmem, cleanup};
11221122
}
@@ -1257,7 +1257,7 @@ class ArrayUpdateConversion : public ArrayUpdateConversionBase<ArrayUpdateOp> {
12571257
if (auto inEleTy = dyn_cast_ptrEleTy(input.getType())) {
12581258
emitFatalError(loc, "array_update on references not supported");
12591259
} else {
1260-
rewriter.create<fir::StoreOp>(loc, input, coor);
1260+
fir::StoreOp::create(rewriter, loc, input, coor);
12611261
}
12621262
};
12631263
auto lhsEltRefType = toRefType(update.getMerge().getType());
@@ -1368,7 +1368,7 @@ class ArrayAmendConversion : public mlir::OpRewritePattern<ArrayAmendOp> {
13681368
auto *op = amend.getOperation();
13691369
rewriter.setInsertionPoint(op);
13701370
auto loc = amend.getLoc();
1371-
auto undef = rewriter.create<UndefOp>(loc, amend.getType());
1371+
auto undef = UndefOp::create(rewriter, loc, amend.getType());
13721372
rewriter.replaceOp(amend, undef.getResult());
13731373
return mlir::success();
13741374
}

flang/lib/Optimizer/Transforms/AssumedRankOpConversion.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class ReboxAssumedRankConv
8888
(fir::isPolymorphicType(oldBoxType) ||
8989
(newEleType != oldBoxType.unwrapInnerType())) &&
9090
!fir::isPolymorphicType(newBoxType)) {
91-
newDtype = builder.create<fir::TypeDescOp>(
91+
newDtype = fir::TypeDescOp::create(builder,
9292
loc, mlir::TypeAttr::get(newDerivedType));
9393
} else {
9494
newDtype = builder.createNullConstant(loc);
@@ -103,7 +103,7 @@ class ReboxAssumedRankConv
103103
rebox.getBox(), newDtype,
104104
newAttribute, lowerBoundModifier);
105105

106-
mlir::Value descValue = builder.create<fir::LoadOp>(loc, tempDesc);
106+
mlir::Value descValue = fir::LoadOp::create(builder, loc, tempDesc);
107107
mlir::Value castDesc = builder.createConvert(loc, newBoxType, descValue);
108108
rewriter.replaceOp(rebox, castDesc);
109109
return mlir::success();

0 commit comments

Comments
 (0)