Skip to content

Commit cbdad4d

Browse files
authored
[flang] Review usage of auto in Lower/Runtime.cpp (#1298)
1 parent d32839c commit cbdad4d

File tree

1 file changed

+55
-47
lines changed

1 file changed

+55
-47
lines changed

flang/lib/Lower/Runtime.cpp

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ static void noRuntimeSupport(mlir::Location loc, llvm::StringRef stmt) {
3737
/// terminating the current basic block with an unreachable op.
3838
static void genUnreachable(fir::FirOpBuilder &builder, mlir::Location loc) {
3939
builder.create<fir::UnreachableOp>(loc);
40-
auto *newBlock = builder.getBlock()->splitBlock(builder.getInsertionPoint());
40+
mlir::Block *newBlock =
41+
builder.getBlock()->splitBlock(builder.getInsertionPoint());
4142
builder.setInsertionPointToStart(newBlock);
4243
}
4344

@@ -48,8 +49,8 @@ static void genUnreachable(fir::FirOpBuilder &builder, mlir::Location loc) {
4849
void Fortran::lower::genStopStatement(
4950
Fortran::lower::AbstractConverter &converter,
5051
const Fortran::parser::StopStmt &stmt) {
51-
auto &builder = converter.getFirOpBuilder();
52-
auto loc = converter.getCurrentLocation();
52+
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
53+
mlir::Location loc = converter.getCurrentLocation();
5354
Fortran::lower::StatementContext stmtCtx;
5455
llvm::SmallVector<mlir::Value> operands;
5556
mlir::FuncOp callee;
@@ -76,7 +77,8 @@ void Fortran::lower::genStopStatement(
7677
callee = fir::runtime::getRuntimeFunc<mkRTKey(StopStatement)>(
7778
loc, builder);
7879
calleeType = callee.getType();
79-
auto cast = builder.createConvert(loc, calleeType.getInput(0), x);
80+
mlir::Value cast =
81+
builder.createConvert(loc, calleeType.getInput(0), x);
8082
operands.push_back(cast);
8183
},
8284
[&](auto) {
@@ -101,7 +103,7 @@ void Fortran::lower::genStopStatement(
101103
std::get<std::optional<Fortran::parser::ScalarLogicalExpr>>(stmt.t)) {
102104
auto expr = Fortran::semantics::GetExpr(*quiet);
103105
assert(expr && "failed getting typed expression");
104-
auto q = fir::getBase(converter.genExprValue(*expr, stmtCtx));
106+
mlir::Value q = fir::getBase(converter.genExprValue(*expr, stmtCtx));
105107
operands.push_back(
106108
builder.createConvert(loc, calleeType.getInput(operands.size()), q));
107109
} else {
@@ -115,9 +117,9 @@ void Fortran::lower::genStopStatement(
115117

116118
void Fortran::lower::genFailImageStatement(
117119
Fortran::lower::AbstractConverter &converter) {
118-
auto &builder = converter.getFirOpBuilder();
119-
auto loc = converter.getCurrentLocation();
120-
auto callee =
120+
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
121+
mlir::Location loc = converter.getCurrentLocation();
122+
mlir::FuncOp callee =
121123
fir::runtime::getRuntimeFunc<mkRTKey(FailImageStatement)>(loc, builder);
122124
builder.create<fir::CallOp>(loc, callee, llvm::None);
123125
genUnreachable(builder, loc);
@@ -182,9 +184,9 @@ void Fortran::lower::genSyncTeamStatement(
182184
void Fortran::lower::genPauseStatement(
183185
Fortran::lower::AbstractConverter &converter,
184186
const Fortran::parser::PauseStmt &) {
185-
auto &builder = converter.getFirOpBuilder();
186-
auto loc = converter.getCurrentLocation();
187-
auto callee =
187+
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
188+
mlir::Location loc = converter.getCurrentLocation();
189+
mlir::FuncOp callee =
188190
fir::runtime::getRuntimeFunc<mkRTKey(PauseStatement)>(loc, builder);
189191
builder.create<fir::CallOp>(loc, callee, llvm::None);
190192
}
@@ -193,16 +195,18 @@ mlir::Value Fortran::lower::genAssociated(fir::FirOpBuilder &builder,
193195
mlir::Location loc,
194196
mlir::Value pointer,
195197
mlir::Value target) {
196-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(PointerIsAssociatedWith)>(
197-
loc, builder);
198-
auto args = fir::runtime::createArguments(builder, loc, func.getType(),
199-
pointer, target);
198+
mlir::FuncOp func =
199+
fir::runtime::getRuntimeFunc<mkRTKey(PointerIsAssociatedWith)>(loc,
200+
builder);
201+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
202+
builder, loc, func.getType(), pointer, target);
200203
return builder.create<fir::CallOp>(loc, func, args).getResult(0);
201204
}
202205

203206
mlir::Value Fortran::lower::genCpuTime(fir::FirOpBuilder &builder,
204207
mlir::Location loc) {
205-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(CpuTime)>(loc, builder);
208+
mlir::FuncOp func =
209+
fir::runtime::getRuntimeFunc<mkRTKey(CpuTime)>(loc, builder);
206210
return builder.create<fir::CallOp>(loc, func, llvm::None).getResult(0);
207211
}
208212

@@ -212,9 +216,9 @@ void Fortran::lower::genDateAndTime(fir::FirOpBuilder &builder,
212216
llvm::Optional<fir::CharBoxValue> time,
213217
llvm::Optional<fir::CharBoxValue> zone,
214218
mlir::Value values) {
215-
auto callee =
219+
mlir::FuncOp callee =
216220
fir::runtime::getRuntimeFunc<mkRTKey(DateAndTime)>(loc, builder);
217-
auto funcTy = callee.getType();
221+
mlir::FunctionType funcTy = callee.getType();
218222
mlir::Type idxTy = builder.getIndexType();
219223
mlir::Value zero;
220224
auto splitArg = [&](llvm::Optional<fir::CharBoxValue> arg,
@@ -239,11 +243,11 @@ void Fortran::lower::genDateAndTime(fir::FirOpBuilder &builder,
239243
mlir::Value zoneLen;
240244
splitArg(zone, zoneBuffer, zoneLen);
241245

242-
auto sourceFile = fir::factory::locationToFilename(builder, loc);
243-
auto sourceLine =
246+
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
247+
mlir::Value sourceLine =
244248
fir::factory::locationToLineNo(builder, loc, funcTy.getInput(7));
245249

246-
auto args = fir::runtime::createArguments(
250+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
247251
builder, loc, funcTy, dateBuffer, dateLen, timeBuffer, timeLen,
248252
zoneBuffer, zoneLen, sourceFile, sourceLine, values);
249253
builder.create<fir::CallOp>(loc, callee, args);
@@ -252,21 +256,23 @@ void Fortran::lower::genDateAndTime(fir::FirOpBuilder &builder,
252256
void Fortran::lower::genRandomInit(fir::FirOpBuilder &builder,
253257
mlir::Location loc, mlir::Value repeatable,
254258
mlir::Value imageDistinct) {
255-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(RandomInit)>(loc, builder);
256-
auto args = fir::runtime::createArguments(builder, loc, func.getType(),
257-
repeatable, imageDistinct);
259+
mlir::FuncOp func =
260+
fir::runtime::getRuntimeFunc<mkRTKey(RandomInit)>(loc, builder);
261+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
262+
builder, loc, func.getType(), repeatable, imageDistinct);
258263
builder.create<fir::CallOp>(loc, func, args);
259264
}
260265

261266
void Fortran::lower::genRandomNumber(fir::FirOpBuilder &builder,
262267
mlir::Location loc, mlir::Value harvest) {
263-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(RandomNumber)>(loc, builder);
264-
auto funcTy = func.getType();
265-
auto sourceFile = fir::factory::locationToFilename(builder, loc);
266-
auto sourceLine =
268+
mlir::FuncOp func =
269+
fir::runtime::getRuntimeFunc<mkRTKey(RandomNumber)>(loc, builder);
270+
mlir::FunctionType funcTy = func.getType();
271+
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
272+
mlir::Value sourceLine =
267273
fir::factory::locationToLineNo(builder, loc, funcTy.getInput(2));
268-
auto args = fir::runtime::createArguments(builder, loc, funcTy, harvest,
269-
sourceFile, sourceLine);
274+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
275+
builder, loc, funcTy, harvest, sourceFile, sourceLine);
270276
builder.create<fir::CallOp>(loc, func, args);
271277
}
272278

@@ -294,12 +300,12 @@ void Fortran::lower::genRandomSeed(fir::FirOpBuilder &builder,
294300
default:
295301
llvm::report_fatal_error("invalid RANDOM_SEED argument index");
296302
}
297-
auto funcTy = func.getType();
298-
auto sourceFile = fir::factory::locationToFilename(builder, loc);
299-
auto sourceLine =
303+
mlir::FunctionType funcTy = func.getType();
304+
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
305+
mlir::Value sourceLine =
300306
fir::factory::locationToLineNo(builder, loc, funcTy.getInput(2));
301-
auto args = fir::runtime::createArguments(builder, loc, funcTy, argBox,
302-
sourceFile, sourceLine);
307+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
308+
builder, loc, funcTy, argBox, sourceFile, sourceLine);
303309
builder.create<fir::CallOp>(loc, func, args);
304310
}
305311

@@ -308,12 +314,13 @@ void Fortran::lower::genTransfer(fir::FirOpBuilder &builder, mlir::Location loc,
308314
mlir::Value resultBox, mlir::Value sourceBox,
309315
mlir::Value moldBox) {
310316

311-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(Transfer)>(loc, builder);
312-
auto fTy = func.getType();
313-
auto sourceFile = fir::factory::locationToFilename(builder, loc);
314-
auto sourceLine =
317+
mlir::FuncOp func =
318+
fir::runtime::getRuntimeFunc<mkRTKey(Transfer)>(loc, builder);
319+
mlir::FunctionType fTy = func.getType();
320+
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
321+
mlir::Value sourceLine =
315322
fir::factory::locationToLineNo(builder, loc, fTy.getInput(4));
316-
auto args = fir::runtime::createArguments(
323+
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
317324
builder, loc, fTy, resultBox, sourceBox, moldBox, sourceFile, sourceLine);
318325
builder.create<fir::CallOp>(loc, func, args);
319326
}
@@ -323,12 +330,13 @@ void Fortran::lower::genTransferSize(fir::FirOpBuilder &builder,
323330
mlir::Location loc, mlir::Value resultBox,
324331
mlir::Value sourceBox, mlir::Value moldBox,
325332
mlir::Value size) {
326-
auto func = fir::runtime::getRuntimeFunc<mkRTKey(TransferSize)>(loc, builder);
327-
auto fTy = func.getType();
328-
auto sourceFile = fir::factory::locationToFilename(builder, loc);
329-
auto sourceLine =
333+
mlir::FuncOp func =
334+
fir::runtime::getRuntimeFunc<mkRTKey(TransferSize)>(loc, builder);
335+
mlir::FunctionType fTy = func.getType();
336+
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
337+
mlir::Value sourceLine =
330338
fir::factory::locationToLineNo(builder, loc, fTy.getInput(4));
331-
auto args =
339+
llvm::SmallVector<mlir::Value> args =
332340
fir::runtime::createArguments(builder, loc, fTy, resultBox, sourceBox,
333341
moldBox, sourceFile, sourceLine, size);
334342
builder.create<fir::CallOp>(loc, func, args);
@@ -340,12 +348,12 @@ void Fortran::lower::genSystemClock(fir::FirOpBuilder &builder,
340348
mlir::Location loc, mlir::Value count,
341349
mlir::Value rate, mlir::Value max) {
342350
auto makeCall = [&](mlir::FuncOp func, mlir::Value arg) {
343-
auto kindTy = func.getType().getInput(0);
351+
mlir::Type kindTy = func.getType().getInput(0);
344352
int integerKind = 8;
345353
if (auto intType =
346354
fir::unwrapRefType(arg.getType()).dyn_cast<mlir::IntegerType>())
347355
integerKind = intType.getWidth() / 8;
348-
auto kind = builder.createIntegerConstant(loc, kindTy, integerKind);
356+
mlir::Value kind = builder.createIntegerConstant(loc, kindTy, integerKind);
349357
mlir::Value res =
350358
builder.create<fir::CallOp>(loc, func, mlir::ValueRange{kind})
351359
.getResult(0);

0 commit comments

Comments
 (0)