@@ -1389,16 +1389,16 @@ mlir::Type getTypeFromBounds(llvm::SmallVector<mlir::Value> &bounds,
1389
1389
}
1390
1390
1391
1391
template <typename RecipeOp>
1392
- static void
1393
- genPrivatizations ( const Fortran::parser::AccObjectList &objectList,
1394
- Fortran::lower::AbstractConverter &converter,
1395
- Fortran::semantics::SemanticsContext &semanticsContext,
1396
- Fortran::lower::StatementContext &stmtCtx,
1397
- llvm::SmallVectorImpl<mlir::Value> &dataOperands,
1398
- llvm::SmallVector<mlir::Attribute> &privatizations ,
1399
- llvm::ArrayRef<mlir::Value> async,
1400
- llvm::ArrayRef<mlir::Attribute> asyncDeviceTypes,
1401
- llvm::ArrayRef<mlir::Attribute> asyncOnlyDeviceTypes) {
1392
+ static void genPrivatizationRecipes (
1393
+ const Fortran::parser::AccObjectList &objectList,
1394
+ Fortran::lower::AbstractConverter &converter,
1395
+ Fortran::semantics::SemanticsContext &semanticsContext,
1396
+ Fortran::lower::StatementContext &stmtCtx,
1397
+ llvm::SmallVectorImpl<mlir::Value> &dataOperands,
1398
+ llvm::SmallVector<mlir::Attribute> &privatizationRecipes ,
1399
+ llvm::ArrayRef<mlir::Value> async,
1400
+ llvm::ArrayRef<mlir::Attribute> asyncDeviceTypes,
1401
+ llvm::ArrayRef<mlir::Attribute> asyncOnlyDeviceTypes) {
1402
1402
fir::FirOpBuilder &builder = converter.getFirOpBuilder ();
1403
1403
Fortran::evaluate::ExpressionAnalyzer ea{semanticsContext};
1404
1404
for (const auto &accObject : objectList.v ) {
@@ -1445,7 +1445,7 @@ genPrivatizations(const Fortran::parser::AccObjectList &objectList,
1445
1445
/* unwrapBoxAddr=*/ true );
1446
1446
dataOperands.push_back (op.getAccVar ());
1447
1447
}
1448
- privatizations .push_back (mlir::SymbolRefAttr::get (
1448
+ privatizationRecipes .push_back (mlir::SymbolRefAttr::get (
1449
1449
builder.getContext (), recipe.getSymName ().str ()));
1450
1450
}
1451
1451
}
@@ -2083,15 +2083,15 @@ mlir::Type getTypeFromIvTypeSize(fir::FirOpBuilder &builder,
2083
2083
return builder.getIntegerType (ivTypeSize * 8 );
2084
2084
}
2085
2085
2086
- static void privatizeIv (Fortran::lower::AbstractConverter &converter,
2087
- const Fortran::semantics::Symbol &sym ,
2088
- mlir::Location loc,
2089
- llvm::SmallVector<mlir::Type> &ivTypes,
2090
- llvm::SmallVector<mlir::Location> &ivLocs,
2091
- llvm::SmallVector<mlir::Value> &privateOperands,
2092
- llvm::SmallVector<mlir::Value> &ivPrivate,
2093
- llvm::SmallVector<mlir::Attribute> &privatizations ,
2094
- bool isDoConcurrent = false ) {
2086
+ static void
2087
+ privatizeIv ( Fortran::lower::AbstractConverter &converter ,
2088
+ const Fortran::semantics::Symbol &sym, mlir::Location loc,
2089
+ llvm::SmallVector<mlir::Type> &ivTypes,
2090
+ llvm::SmallVector<mlir::Location> &ivLocs,
2091
+ llvm::SmallVector<mlir::Value> &privateOperands,
2092
+ llvm::SmallVector<mlir::Value> &ivPrivate,
2093
+ llvm::SmallVector<mlir::Attribute> &privatizationRecipes ,
2094
+ bool isDoConcurrent = false ) {
2095
2095
fir::FirOpBuilder &builder = converter.getFirOpBuilder ();
2096
2096
2097
2097
mlir::Type ivTy = getTypeFromIvTypeSize (builder, sym);
@@ -2131,7 +2131,7 @@ static void privatizeIv(Fortran::lower::AbstractConverter &converter,
2131
2131
privateOp = op.getOperation ();
2132
2132
2133
2133
privateOperands.push_back (op.getAccVar ());
2134
- privatizations .push_back (mlir::SymbolRefAttr::get (
2134
+ privatizationRecipes .push_back (mlir::SymbolRefAttr::get (
2135
2135
builder.getContext (), recipe.getSymName ().str ()));
2136
2136
}
2137
2137
@@ -2161,7 +2161,7 @@ static mlir::acc::LoopOp createLoopOp(
2161
2161
llvm::SmallVector<mlir::Value> tileOperands, privateOperands, ivPrivate,
2162
2162
reductionOperands, cacheOperands, vectorOperands, workerNumOperands,
2163
2163
gangOperands, lowerbounds, upperbounds, steps;
2164
- llvm::SmallVector<mlir::Attribute> privatizations , reductionRecipes;
2164
+ llvm::SmallVector<mlir::Attribute> privatizationRecipes , reductionRecipes;
2165
2165
llvm::SmallVector<int32_t > tileOperandsSegments, gangOperandsSegments;
2166
2166
llvm::SmallVector<int64_t > collapseValues;
2167
2167
@@ -2282,9 +2282,9 @@ static mlir::acc::LoopOp createLoopOp(
2282
2282
} else if (const auto *privateClause =
2283
2283
std::get_if<Fortran::parser::AccClause::Private>(
2284
2284
&clause.u )) {
2285
- genPrivatizations <mlir::acc::PrivateRecipeOp>(
2285
+ genPrivatizationRecipes <mlir::acc::PrivateRecipeOp>(
2286
2286
privateClause->v , converter, semanticsContext, stmtCtx,
2287
- privateOperands, privatizations , /* async=*/ {},
2287
+ privateOperands, privatizationRecipes , /* async=*/ {},
2288
2288
/* asyncDeviceTypes=*/ {}, /* asyncOnlyDeviceTypes=*/ {});
2289
2289
} else if (const auto *reductionClause =
2290
2290
std::get_if<Fortran::parser::AccClause::Reduction>(
@@ -2368,7 +2368,8 @@ static mlir::acc::LoopOp createLoopOp(
2368
2368
2369
2369
const auto &name = std::get<Fortran::parser::Name>(control.t );
2370
2370
privatizeIv (converter, *name.symbol , currentLocation, ivTypes, ivLocs,
2371
- privateOperands, ivPrivate, privatizations, isDoConcurrent);
2371
+ privateOperands, ivPrivate, privatizationRecipes,
2372
+ isDoConcurrent);
2372
2373
2373
2374
inclusiveBounds.push_back (true );
2374
2375
}
@@ -2405,7 +2406,7 @@ static mlir::acc::LoopOp createLoopOp(
2405
2406
Fortran::semantics::Symbol &ivSym =
2406
2407
bounds->name .thing .symbol ->GetUltimate ();
2407
2408
privatizeIv (converter, ivSym, currentLocation, ivTypes, ivLocs,
2408
- privateOperands, ivPrivate, privatizations );
2409
+ privateOperands, ivPrivate, privatizationRecipes );
2409
2410
2410
2411
inclusiveBounds.push_back (true );
2411
2412
@@ -2484,9 +2485,9 @@ static mlir::acc::LoopOp createLoopOp(
2484
2485
if (!autoDeviceTypes.empty ())
2485
2486
loopOp.setAuto_Attr (builder.getArrayAttr (autoDeviceTypes));
2486
2487
2487
- if (!privatizations .empty ())
2488
- loopOp.setPrivatizationsAttr (
2489
- mlir::ArrayAttr::get (builder.getContext (), privatizations ));
2488
+ if (!privatizationRecipes .empty ())
2489
+ loopOp.setPrivatizationRecipesAttr (
2490
+ mlir::ArrayAttr::get (builder.getContext (), privatizationRecipes ));
2490
2491
2491
2492
if (!reductionRecipes.empty ())
2492
2493
loopOp.setReductionRecipesAttr (
@@ -2613,8 +2614,8 @@ static Op createComputeOp(
2613
2614
2614
2615
llvm::SmallVector<mlir::Value> reductionOperands, privateOperands,
2615
2616
firstprivateOperands;
2616
- llvm::SmallVector<mlir::Attribute> privatizations, firstPrivatizations ,
2617
- reductionRecipes;
2617
+ llvm::SmallVector<mlir::Attribute> privatizationRecipes ,
2618
+ firstPrivatizationRecipes, reductionRecipes;
2618
2619
2619
2620
// Self clause has optional values but can be present with
2620
2621
// no value as well. When there is no value, the op has an attribute to
@@ -2820,17 +2821,17 @@ static Op createComputeOp(
2820
2821
std::get_if<Fortran::parser::AccClause::Private>(
2821
2822
&clause.u )) {
2822
2823
if (!combinedConstructs)
2823
- genPrivatizations <mlir::acc::PrivateRecipeOp>(
2824
+ genPrivatizationRecipes <mlir::acc::PrivateRecipeOp>(
2824
2825
privateClause->v , converter, semanticsContext, stmtCtx,
2825
- privateOperands, privatizations , async, asyncDeviceTypes,
2826
+ privateOperands, privatizationRecipes , async, asyncDeviceTypes,
2826
2827
asyncOnlyDeviceTypes);
2827
2828
} else if (const auto *firstprivateClause =
2828
2829
std::get_if<Fortran::parser::AccClause::Firstprivate>(
2829
2830
&clause.u )) {
2830
- genPrivatizations <mlir::acc::FirstprivateRecipeOp>(
2831
+ genPrivatizationRecipes <mlir::acc::FirstprivateRecipeOp>(
2831
2832
firstprivateClause->v , converter, semanticsContext, stmtCtx,
2832
- firstprivateOperands, firstPrivatizations , async, asyncDeviceTypes ,
2833
- asyncOnlyDeviceTypes);
2833
+ firstprivateOperands, firstPrivatizationRecipes , async,
2834
+ asyncDeviceTypes, asyncOnlyDeviceTypes);
2834
2835
} else if (const auto *reductionClause =
2835
2836
std::get_if<Fortran::parser::AccClause::Reduction>(
2836
2837
&clause.u )) {
@@ -2934,15 +2935,15 @@ static Op createComputeOp(
2934
2935
computeOp.setWaitOnlyAttr (builder.getArrayAttr (waitOnlyDeviceTypes));
2935
2936
2936
2937
if constexpr (!std::is_same_v<Op, mlir::acc::KernelsOp>) {
2937
- if (!privatizations .empty ())
2938
- computeOp.setPrivatizationsAttr (
2939
- mlir::ArrayAttr::get (builder.getContext (), privatizations ));
2938
+ if (!privatizationRecipes .empty ())
2939
+ computeOp.setPrivatizationRecipesAttr (
2940
+ mlir::ArrayAttr::get (builder.getContext (), privatizationRecipes ));
2940
2941
if (!reductionRecipes.empty ())
2941
2942
computeOp.setReductionRecipesAttr (
2942
2943
mlir::ArrayAttr::get (builder.getContext (), reductionRecipes));
2943
- if (!firstPrivatizations .empty ())
2944
- computeOp.setFirstprivatizationsAttr (
2945
- mlir::ArrayAttr::get ( builder.getContext (), firstPrivatizations ));
2944
+ if (!firstPrivatizationRecipes .empty ())
2945
+ computeOp.setFirstprivatizationRecipesAttr ( mlir::ArrayAttr::get (
2946
+ builder.getContext (), firstPrivatizationRecipes ));
2946
2947
}
2947
2948
2948
2949
if (combinedConstructs)
0 commit comments