@@ -46,7 +46,7 @@ static void genObjectList(const Fortran::parser::AccObjectList &objectList,
46
46
operands.push_back (converter.getSymbolAddress (details->symbol ()));
47
47
}
48
48
};
49
- for (const auto &accObject : objectList.v ) {
49
+ for (const Fortran::parser::AccObject &accObject : objectList.v ) {
50
50
std::visit (Fortran::common::visitors{
51
51
[&](const Fortran::parser::Designator &designator) {
52
52
if (const auto *name =
@@ -106,7 +106,7 @@ static Op createRegionOp(fir::FirOpBuilder &builder, mlir::Location loc,
106
106
llvm::ArrayRef<mlir::Type> argTy;
107
107
Op op = builder.create <Op>(loc, argTy, operands);
108
108
builder.createBlock (&op.getRegion ());
109
- auto &block = op.getRegion ().back ();
109
+ mlir::Block &block = op.getRegion ().back ();
110
110
builder.setInsertionPointToStart (&block);
111
111
builder.create <Terminator>(loc);
112
112
@@ -156,7 +156,7 @@ static void genDeviceTypeClause(
156
156
operands.push_back (expr);
157
157
}
158
158
} else {
159
- auto &firOpBuilder = converter.getFirOpBuilder ();
159
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
160
160
// * was passed as value and will be represented as a special constant.
161
161
mlir::Value star = firOpBuilder.createIntegerConstant (
162
162
converter.getCurrentLocation (), firOpBuilder.getIndexType (), starCst);
@@ -168,7 +168,7 @@ static void genIfClause(Fortran::lower::AbstractConverter &converter,
168
168
const Fortran::parser::AccClause::If *ifClause,
169
169
mlir::Value &ifCond,
170
170
Fortran::lower::StatementContext &stmtCtx) {
171
- auto &firOpBuilder = converter.getFirOpBuilder ();
171
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
172
172
Value cond = fir::getBase (converter.genExprValue (
173
173
*Fortran::semantics::GetExpr (ifClause->v ), stmtCtx));
174
174
ifCond = firOpBuilder.createConvert (converter.getCurrentLocation (),
@@ -204,8 +204,8 @@ static void genWaitClause(Fortran::lower::AbstractConverter &converter,
204
204
static mlir::acc::LoopOp
205
205
createLoopOp (Fortran::lower::AbstractConverter &converter,
206
206
const Fortran::parser::AccClauseList &accClauseList) {
207
- auto &firOpBuilder = converter.getFirOpBuilder ();
208
- auto currentLocation = converter.getCurrentLocation ();
207
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
208
+ mlir::Location currentLocation = converter.getCurrentLocation ();
209
209
Fortran::lower::StatementContext stmtCtx;
210
210
211
211
mlir::Value workerNum;
@@ -215,7 +215,7 @@ createLoopOp(Fortran::lower::AbstractConverter &converter,
215
215
SmallVector<mlir::Value, 2 > tileOperands, privateOperands, reductionOperands;
216
216
std::int64_t executionMapping = mlir::acc::OpenACCExecMapping::NONE;
217
217
218
- for (const auto &clause : accClauseList.v ) {
218
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
219
219
if (const auto *gangClause =
220
220
std::get_if<Fortran::parser::AccClause::Gang>(&clause.u )) {
221
221
if (gangClause->v ) {
@@ -302,11 +302,12 @@ createLoopOp(Fortran::lower::AbstractConverter &converter,
302
302
firOpBuilder.getI64IntegerAttr (executionMapping));
303
303
304
304
// Lower clauses mapped to attributes
305
- for (const auto &clause : accClauseList.v ) {
305
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
306
306
if (const auto *collapseClause =
307
307
std::get_if<Fortran::parser::AccClause::Collapse>(&clause.u )) {
308
308
const auto *expr = Fortran::semantics::GetExpr (collapseClause->v );
309
- const auto collapseValue = Fortran::evaluate::ToInt64 (*expr);
309
+ const std::optional<int64_t > collapseValue =
310
+ Fortran::evaluate::ToInt64 (*expr);
310
311
if (collapseValue) {
311
312
loopOp->setAttr (mlir::acc::LoopOp::getCollapseAttrName (),
312
313
firOpBuilder.getI64IntegerAttr (*collapseValue));
@@ -367,14 +368,14 @@ createParallelOp(Fortran::lower::AbstractConverter &converter,
367
368
bool addWaitAttr = false ;
368
369
bool addSelfAttr = false ;
369
370
370
- auto &firOpBuilder = converter.getFirOpBuilder ();
371
- auto currentLocation = converter.getCurrentLocation ();
371
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
372
+ mlir::Location currentLocation = converter.getCurrentLocation ();
372
373
Fortran::lower::StatementContext stmtCtx;
373
374
374
375
// Lower clauses values mapped to operands.
375
376
// Keep track of each group of operands separatly as clauses can appear
376
377
// more than once.
377
- for (const auto &clause : accClauseList.v ) {
378
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
378
379
if (const auto *asyncClause =
379
380
std::get_if<Fortran::parser::AccClause::Async>(&clause.u )) {
380
381
genAsyncClause (converter, asyncClause, async, addAsyncAttr, stmtCtx);
@@ -407,7 +408,7 @@ createParallelOp(Fortran::lower::AbstractConverter &converter,
407
408
std::get_if<std::optional<Fortran::parser::ScalarLogicalExpr>>(
408
409
&accSelfClause.u )) {
409
410
if (*optCondition) {
410
- auto cond = fir::getBase (converter.genExprValue (
411
+ mlir::Value cond = fir::getBase (converter.genExprValue (
411
412
*Fortran::semantics::GetExpr (*optCondition), stmtCtx));
412
413
selfCond = firOpBuilder.createConvert (currentLocation,
413
414
firOpBuilder.getI1Type (), cond);
@@ -503,7 +504,8 @@ createParallelOp(Fortran::lower::AbstractConverter &converter,
503
504
addOperands (operands, operandSegments, privateOperands);
504
505
addOperands (operands, operandSegments, firstprivateOperands);
505
506
506
- auto parallelOp = createRegionOp<mlir::acc::ParallelOp, mlir::acc::YieldOp>(
507
+ mlir::acc::ParallelOp parallelOp =
508
+ createRegionOp<mlir::acc::ParallelOp, mlir::acc::YieldOp>(
507
509
firOpBuilder, currentLocation, operands, operandSegments);
508
510
509
511
if (addAsyncAttr)
@@ -533,14 +535,14 @@ static void genACCDataOp(Fortran::lower::AbstractConverter &converter,
533
535
createOperands, createZeroOperands, noCreateOperands, presentOperands,
534
536
deviceptrOperands, attachOperands;
535
537
536
- auto &firOpBuilder = converter.getFirOpBuilder ();
537
- auto currentLocation = converter.getCurrentLocation ();
538
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
539
+ mlir::Location currentLocation = converter.getCurrentLocation ();
538
540
Fortran::lower::StatementContext stmtCtx;
539
541
540
542
// Lower clauses values mapped to operands.
541
543
// Keep track of each group of operands separatly as clauses can appear
542
544
// more than once.
543
- for (const auto &clause : accClauseList.v ) {
545
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
544
546
if (const auto *ifClause =
545
547
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
546
548
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -667,14 +669,14 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
667
669
bool addAsyncAttr = false ;
668
670
bool addWaitAttr = false ;
669
671
670
- auto &firOpBuilder = converter.getFirOpBuilder ();
671
- auto currentLocation = converter.getCurrentLocation ();
672
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
673
+ mlir::Location currentLocation = converter.getCurrentLocation ();
672
674
Fortran::lower::StatementContext stmtCtx;
673
675
674
676
// Lower clauses values mapped to operands.
675
677
// Keep track of each group of operands separatly as clauses can appear
676
678
// more than once.
677
- for (const auto &clause : accClauseList.v ) {
679
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
678
680
if (const auto *ifClause =
679
681
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
680
682
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -719,7 +721,7 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
719
721
addOperands (operands, operandSegments, createZeroOperands);
720
722
addOperands (operands, operandSegments, attachOperands);
721
723
722
- auto enterDataOp = createSimpleOp<mlir::acc::EnterDataOp>(
724
+ mlir::acc::EnterDataOp enterDataOp = createSimpleOp<mlir::acc::EnterDataOp>(
723
725
firOpBuilder, currentLocation, operands, operandSegments);
724
726
725
727
if (addAsyncAttr)
@@ -742,14 +744,14 @@ genACCExitDataOp(Fortran::lower::AbstractConverter &converter,
742
744
bool addWaitAttr = false ;
743
745
bool addFinalizeAttr = false ;
744
746
745
- auto &firOpBuilder = converter.getFirOpBuilder ();
746
- auto currentLocation = converter.getCurrentLocation ();
747
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
748
+ mlir::Location currentLocation = converter.getCurrentLocation ();
747
749
Fortran::lower::StatementContext stmtCtx;
748
750
749
751
// Lower clauses values mapped to operands.
750
752
// Keep track of each group of operands separatly as clauses can appear
751
753
// more than once.
752
- for (const auto &clause : accClauseList.v ) {
754
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
753
755
if (const auto *ifClause =
754
756
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
755
757
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -790,7 +792,7 @@ genACCExitDataOp(Fortran::lower::AbstractConverter &converter,
790
792
addOperands (operands, operandSegments, deleteOperands);
791
793
addOperands (operands, operandSegments, detachOperands);
792
794
793
- auto exitDataOp = createSimpleOp<mlir::acc::ExitDataOp>(
795
+ mlir::acc::ExitDataOp exitDataOp = createSimpleOp<mlir::acc::ExitDataOp>(
794
796
firOpBuilder, currentLocation, operands, operandSegments);
795
797
796
798
if (addAsyncAttr)
@@ -808,14 +810,14 @@ genACCInitShutdownOp(Fortran::lower::AbstractConverter &converter,
808
810
mlir::Value ifCond, deviceNum;
809
811
SmallVector<mlir::Value, 2 > deviceTypeOperands;
810
812
811
- auto &firOpBuilder = converter.getFirOpBuilder ();
812
- auto currentLocation = converter.getCurrentLocation ();
813
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
814
+ mlir::Location currentLocation = converter.getCurrentLocation ();
813
815
Fortran::lower::StatementContext stmtCtx;
814
816
815
817
// Lower clauses values mapped to operands.
816
818
// Keep track of each group of operands separatly as clauses can appear
817
819
// more than once.
818
- for (const auto &clause : accClauseList.v ) {
820
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
819
821
if (const auto *ifClause =
820
822
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
821
823
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -856,14 +858,14 @@ genACCUpdateOp(Fortran::lower::AbstractConverter &converter,
856
858
bool addWaitAttr = false ;
857
859
bool addIfPresentAttr = false ;
858
860
859
- auto &firOpBuilder = converter.getFirOpBuilder ();
860
- auto currentLocation = converter.getCurrentLocation ();
861
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
862
+ mlir::Location currentLocation = converter.getCurrentLocation ();
861
863
Fortran::lower::StatementContext stmtCtx;
862
864
863
865
// Lower clauses values mapped to operands.
864
866
// Keep track of each group of operands separatly as clauses can appear
865
867
// more than once.
866
- for (const auto &clause : accClauseList.v ) {
868
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
867
869
if (const auto *ifClause =
868
870
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
869
871
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -899,7 +901,7 @@ genACCUpdateOp(Fortran::lower::AbstractConverter &converter,
899
901
addOperands (operands, operandSegments, hostOperands);
900
902
addOperands (operands, operandSegments, deviceOperands);
901
903
902
- auto updateOp = createSimpleOp<mlir::acc::UpdateOp>(
904
+ mlir::acc::UpdateOp updateOp = createSimpleOp<mlir::acc::UpdateOp>(
903
905
firOpBuilder, currentLocation, operands, operandSegments);
904
906
905
907
if (addAsyncAttr)
@@ -952,8 +954,8 @@ static void genACC(Fortran::lower::AbstractConverter &converter,
952
954
// represent the clause.
953
955
bool addAsyncAttr = false ;
954
956
955
- auto &firOpBuilder = converter.getFirOpBuilder ();
956
- auto currentLocation = converter.getCurrentLocation ();
957
+ fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder ();
958
+ mlir::Location currentLocation = converter.getCurrentLocation ();
957
959
Fortran::lower::StatementContext stmtCtx;
958
960
959
961
if (waitArgument) { // wait has a value.
@@ -976,7 +978,7 @@ static void genACC(Fortran::lower::AbstractConverter &converter,
976
978
// Lower clauses values mapped to operands.
977
979
// Keep track of each group of operands separatly as clauses can appear
978
980
// more than once.
979
- for (const auto &clause : accClauseList.v ) {
981
+ for (const Fortran::parser::AccClause &clause : accClauseList.v ) {
980
982
if (const auto *ifClause =
981
983
std::get_if<Fortran::parser::AccClause::If>(&clause.u )) {
982
984
genIfClause (converter, ifClause, ifCond, stmtCtx);
@@ -994,7 +996,7 @@ static void genACC(Fortran::lower::AbstractConverter &converter,
994
996
addOperand (operands, operandSegments, waitDevnum);
995
997
addOperand (operands, operandSegments, ifCond);
996
998
997
- auto waitOp = createSimpleOp<mlir::acc::WaitOp>(firOpBuilder, currentLocation,
999
+ mlir::acc::WaitOp waitOp = createSimpleOp<mlir::acc::WaitOp>(firOpBuilder, currentLocation,
998
1000
operands, operandSegments);
999
1001
1000
1002
if (addAsyncAttr)
0 commit comments