@@ -71,7 +71,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
71
71
mlir::Value isPresent;
72
72
if (isOptional)
73
73
isPresent =
74
- builder. create < fir::IsPresentOp>( loc, builder.getI1Type (), rawInput);
74
+ fir::IsPresentOp::create (builder, loc, builder.getI1Type (), rawInput);
75
75
76
76
if (auto boxTy = mlir::dyn_cast<fir::BaseBoxType>(
77
77
fir::unwrapRefType (symAddr.getType ()))) {
@@ -82,7 +82,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
82
82
// if branches.
83
83
if (unwrapFirBox && mlir::isa<fir::ReferenceType>(symAddr.getType ()) &&
84
84
!isOptional) {
85
- mlir::Value addr = builder. create < fir::LoadOp>( loc, symAddr);
85
+ mlir::Value addr = fir::LoadOp::create (builder, loc, symAddr);
86
86
return AddrAndBoundsInfo (addr, rawInput, isPresent, boxTy);
87
87
}
88
88
@@ -94,7 +94,7 @@ inline AddrAndBoundsInfo getDataOperandBaseAddr(fir::FirOpBuilder &builder,
94
94
if (auto boxCharType = mlir::dyn_cast<fir::BoxCharType>(
95
95
fir::unwrapRefType ((symAddr.getType ())))) {
96
96
if (!isOptional && mlir::isa<fir::ReferenceType>(symAddr.getType ())) {
97
- mlir::Value boxChar = builder. create < fir::LoadOp>( loc, symAddr);
97
+ mlir::Value boxChar = fir::LoadOp::create (builder, loc, symAddr);
98
98
return AddrAndBoundsInfo (boxChar, rawInput, isPresent);
99
99
}
100
100
}
@@ -117,10 +117,10 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
117
117
mlir::Value baseLb =
118
118
fir::factory::readLowerBound (builder, loc, dataExv, dim, one);
119
119
auto dimInfo =
120
- builder. create < fir::BoxDimsOp>( loc, idxTy, idxTy, idxTy, box, d);
120
+ fir::BoxDimsOp::create (builder, loc, idxTy, idxTy, idxTy, box, d);
121
121
mlir::Value lb = builder.createIntegerConstant (loc, idxTy, 0 );
122
122
mlir::Value ub =
123
- builder. create < mlir::arith::SubIOp>( loc, dimInfo.getExtent (), one);
123
+ mlir::arith::SubIOp::create (builder, loc, dimInfo.getExtent (), one);
124
124
if (dim == 0 ) // First stride is the element size.
125
125
byteStride = dimInfo.getByteStride ();
126
126
if (collectValuesOnly) {
@@ -130,13 +130,14 @@ gatherBoundsOrBoundValues(fir::FirOpBuilder &builder, mlir::Location loc,
130
130
values.push_back (byteStride);
131
131
values.push_back (baseLb);
132
132
} else {
133
- mlir::Value bound = builder.create <BoundsOp>(
134
- loc, boundTy, lb, ub, dimInfo.getExtent (), byteStride, true , baseLb);
133
+ mlir::Value bound =
134
+ BoundsOp::create (builder, loc, boundTy, lb, ub, dimInfo.getExtent (),
135
+ byteStride, true , baseLb);
135
136
values.push_back (bound);
136
137
}
137
138
// Compute the stride for the next dimension.
138
- byteStride = builder. create < mlir::arith::MulIOp>( loc, byteStride,
139
- dimInfo.getExtent ());
139
+ byteStride = mlir::arith::MulIOp::create (builder, loc, byteStride,
140
+ dimInfo.getExtent ());
140
141
}
141
142
return values;
142
143
}
@@ -162,46 +163,46 @@ genBoundsOpFromBoxChar(fir::FirOpBuilder &builder, mlir::Location loc,
162
163
.genThen ([&]() {
163
164
mlir::Value boxChar =
164
165
fir::isa_ref_type (info.addr .getType ())
165
- ? builder. create < fir::LoadOp>( loc, info.addr )
166
+ ? fir::LoadOp::create (builder, loc, info.addr )
166
167
: info.addr ;
167
168
fir::BoxCharType boxCharType =
168
169
mlir::cast<fir::BoxCharType>(boxChar.getType ());
169
170
mlir::Type refType = builder.getRefType (boxCharType.getEleTy ());
170
- auto unboxed = builder. create < fir::UnboxCharOp>(
171
- loc, refType, lenType, boxChar);
171
+ auto unboxed = fir::UnboxCharOp::create (builder, loc, refType,
172
+ lenType, boxChar);
172
173
mlir::SmallVector<mlir::Value> results = {unboxed.getResult (1 ),
173
174
one};
174
- builder. create < fir::ResultOp>( loc, results);
175
+ fir::ResultOp::create (builder, loc, results);
175
176
})
176
177
.genElse ([&]() {
177
178
mlir::SmallVector<mlir::Value> results = {zero, zero};
178
- builder. create < fir::ResultOp>( loc, results);
179
+ fir::ResultOp::create (builder, loc, results);
179
180
})
180
181
.getResults ();
181
182
return {ifRes[0 ], ifRes[1 ]};
182
183
}
183
184
// We have already established that info.addr.getType() is a boxchar
184
185
// or a boxchar address. If an address, load the boxchar.
185
186
mlir::Value boxChar = fir::isa_ref_type (info.addr .getType ())
186
- ? builder. create < fir::LoadOp>( loc, info.addr )
187
+ ? fir::LoadOp::create (builder, loc, info.addr )
187
188
: info.addr ;
188
189
fir::BoxCharType boxCharType =
189
190
mlir::cast<fir::BoxCharType>(boxChar.getType ());
190
191
mlir::Type refType = builder.getRefType (boxCharType.getEleTy ());
191
192
auto unboxed =
192
- builder. create < fir::UnboxCharOp>( loc, refType, lenType, boxChar);
193
+ fir::UnboxCharOp::create (builder, loc, refType, lenType, boxChar);
193
194
return {unboxed.getResult (1 ), one};
194
195
}();
195
196
196
- mlir::Value ub = builder. create < mlir::arith::SubIOp>( loc, extent, one);
197
+ mlir::Value ub = mlir::arith::SubIOp::create (builder, loc, extent, one);
197
198
mlir::Type boundTy = builder.getType <BoundsType>();
198
- return builder. create < BoundsOp>( loc, boundTy,
199
- /* lower_bound=*/ zero,
200
- /* upper_bound=*/ ub,
201
- /* extent=*/ extent,
202
- /* stride=*/ stride,
203
- /* stride_in_bytes=*/ true ,
204
- /* start_idx=*/ zero);
199
+ return BoundsOp::create (builder, loc, boundTy,
200
+ /* lower_bound=*/ zero,
201
+ /* upper_bound=*/ ub,
202
+ /* extent=*/ extent,
203
+ /* stride=*/ stride,
204
+ /* stride_in_bytes=*/ true ,
205
+ /* start_idx=*/ zero);
205
206
}
206
207
207
208
// / Generate the bounds operation from the descriptor information.
@@ -230,12 +231,12 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
230
231
mlir::Value box =
231
232
!fir::isBoxAddress (info.addr .getType ())
232
233
? info.addr
233
- : builder. create < fir::LoadOp>( loc, info.addr );
234
+ : fir::LoadOp::create (builder, loc, info.addr );
234
235
llvm::SmallVector<mlir::Value> boundValues =
235
236
gatherBoundsOrBoundValues<BoundsOp, BoundsType>(
236
237
builder, loc, dataExv, box,
237
238
/* collectValuesOnly=*/ true );
238
- builder. create < fir::ResultOp>( loc, boundValues);
239
+ fir::ResultOp::create (builder, loc, boundValues);
239
240
})
240
241
.genElse ([&] {
241
242
// Box is not present. Populate bound values with default values.
@@ -249,21 +250,21 @@ genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
249
250
boundValues.push_back (zero); // byteStride
250
251
boundValues.push_back (zero); // baseLb
251
252
}
252
- builder. create < fir::ResultOp>( loc, boundValues);
253
+ fir::ResultOp::create (builder, loc, boundValues);
253
254
})
254
255
.getResults ();
255
256
// Create the bound operations outside the if-then-else with the if op
256
257
// results.
257
258
for (unsigned i = 0 ; i < ifRes.size (); i += nbValuesPerBound) {
258
- mlir::Value bound = builder. create <BoundsOp>(
259
- loc, boundTy, ifRes[i], ifRes[i + 1 ], ifRes[i + 2 ], ifRes[i + 3 ],
260
- true , ifRes[i + 4 ]);
259
+ mlir::Value bound =
260
+ BoundsOp::create (builder, loc, boundTy, ifRes[i], ifRes[i + 1 ],
261
+ ifRes[i + 2 ], ifRes[i + 3 ], true , ifRes[i + 4 ]);
261
262
bounds.push_back (bound);
262
263
}
263
264
} else {
264
265
mlir::Value box = !fir::isBoxAddress (info.addr .getType ())
265
266
? info.addr
266
- : builder. create < fir::LoadOp>( loc, info.addr );
267
+ : fir::LoadOp::create (builder, loc, info.addr );
267
268
bounds = gatherBoundsOrBoundValues<BoundsOp, BoundsType>(builder, loc,
268
269
dataExv, box);
269
270
}
@@ -299,7 +300,7 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
299
300
ub = lb;
300
301
} else {
301
302
// ub = extent - 1
302
- ub = builder. create < mlir::arith::SubIOp>( loc, extent, one);
303
+ ub = mlir::arith::SubIOp::create (builder, loc, extent, one);
303
304
}
304
305
mlir::Value stride = one;
305
306
if (strideIncludeLowerExtent) {
@@ -308,8 +309,8 @@ genBaseBoundsOps(fir::FirOpBuilder &builder, mlir::Location loc,
308
309
loc, cumulativeExtent, extent);
309
310
}
310
311
311
- mlir::Value bound = builder. create < BoundsOp>( loc, boundTy, lb, ub, extent,
312
- stride, false , baseLb);
312
+ mlir::Value bound = BoundsOp::create (builder, loc, boundTy, lb, ub, extent,
313
+ stride, false , baseLb);
313
314
bounds.push_back (bound);
314
315
}
315
316
return bounds;
0 commit comments