Skip to content

Commit 651db24

Browse files
authored
[OpenACC] rename private/firstprivate recipe attributes (#140719)
Make private and firstprivate recipe attribute names consistent with reductionRecipes attribute
1 parent 70f9a81 commit 651db24

File tree

3 files changed

+58
-57
lines changed

3 files changed

+58
-57
lines changed

flang/lib/Lower/OpenACC.cpp

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,16 +1389,16 @@ mlir::Type getTypeFromBounds(llvm::SmallVector<mlir::Value> &bounds,
13891389
}
13901390

13911391
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) {
14021402
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
14031403
Fortran::evaluate::ExpressionAnalyzer ea{semanticsContext};
14041404
for (const auto &accObject : objectList.v) {
@@ -1445,7 +1445,7 @@ genPrivatizations(const Fortran::parser::AccObjectList &objectList,
14451445
/*unwrapBoxAddr=*/true);
14461446
dataOperands.push_back(op.getAccVar());
14471447
}
1448-
privatizations.push_back(mlir::SymbolRefAttr::get(
1448+
privatizationRecipes.push_back(mlir::SymbolRefAttr::get(
14491449
builder.getContext(), recipe.getSymName().str()));
14501450
}
14511451
}
@@ -2083,15 +2083,15 @@ mlir::Type getTypeFromIvTypeSize(fir::FirOpBuilder &builder,
20832083
return builder.getIntegerType(ivTypeSize * 8);
20842084
}
20852085

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) {
20952095
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
20962096

20972097
mlir::Type ivTy = getTypeFromIvTypeSize(builder, sym);
@@ -2131,7 +2131,7 @@ static void privatizeIv(Fortran::lower::AbstractConverter &converter,
21312131
privateOp = op.getOperation();
21322132

21332133
privateOperands.push_back(op.getAccVar());
2134-
privatizations.push_back(mlir::SymbolRefAttr::get(
2134+
privatizationRecipes.push_back(mlir::SymbolRefAttr::get(
21352135
builder.getContext(), recipe.getSymName().str()));
21362136
}
21372137

@@ -2161,7 +2161,7 @@ static mlir::acc::LoopOp createLoopOp(
21612161
llvm::SmallVector<mlir::Value> tileOperands, privateOperands, ivPrivate,
21622162
reductionOperands, cacheOperands, vectorOperands, workerNumOperands,
21632163
gangOperands, lowerbounds, upperbounds, steps;
2164-
llvm::SmallVector<mlir::Attribute> privatizations, reductionRecipes;
2164+
llvm::SmallVector<mlir::Attribute> privatizationRecipes, reductionRecipes;
21652165
llvm::SmallVector<int32_t> tileOperandsSegments, gangOperandsSegments;
21662166
llvm::SmallVector<int64_t> collapseValues;
21672167

@@ -2282,9 +2282,9 @@ static mlir::acc::LoopOp createLoopOp(
22822282
} else if (const auto *privateClause =
22832283
std::get_if<Fortran::parser::AccClause::Private>(
22842284
&clause.u)) {
2285-
genPrivatizations<mlir::acc::PrivateRecipeOp>(
2285+
genPrivatizationRecipes<mlir::acc::PrivateRecipeOp>(
22862286
privateClause->v, converter, semanticsContext, stmtCtx,
2287-
privateOperands, privatizations, /*async=*/{},
2287+
privateOperands, privatizationRecipes, /*async=*/{},
22882288
/*asyncDeviceTypes=*/{}, /*asyncOnlyDeviceTypes=*/{});
22892289
} else if (const auto *reductionClause =
22902290
std::get_if<Fortran::parser::AccClause::Reduction>(
@@ -2368,7 +2368,8 @@ static mlir::acc::LoopOp createLoopOp(
23682368

23692369
const auto &name = std::get<Fortran::parser::Name>(control.t);
23702370
privatizeIv(converter, *name.symbol, currentLocation, ivTypes, ivLocs,
2371-
privateOperands, ivPrivate, privatizations, isDoConcurrent);
2371+
privateOperands, ivPrivate, privatizationRecipes,
2372+
isDoConcurrent);
23722373

23732374
inclusiveBounds.push_back(true);
23742375
}
@@ -2405,7 +2406,7 @@ static mlir::acc::LoopOp createLoopOp(
24052406
Fortran::semantics::Symbol &ivSym =
24062407
bounds->name.thing.symbol->GetUltimate();
24072408
privatizeIv(converter, ivSym, currentLocation, ivTypes, ivLocs,
2408-
privateOperands, ivPrivate, privatizations);
2409+
privateOperands, ivPrivate, privatizationRecipes);
24092410

24102411
inclusiveBounds.push_back(true);
24112412

@@ -2484,9 +2485,9 @@ static mlir::acc::LoopOp createLoopOp(
24842485
if (!autoDeviceTypes.empty())
24852486
loopOp.setAuto_Attr(builder.getArrayAttr(autoDeviceTypes));
24862487

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));
24902491

24912492
if (!reductionRecipes.empty())
24922493
loopOp.setReductionRecipesAttr(
@@ -2613,8 +2614,8 @@ static Op createComputeOp(
26132614

26142615
llvm::SmallVector<mlir::Value> reductionOperands, privateOperands,
26152616
firstprivateOperands;
2616-
llvm::SmallVector<mlir::Attribute> privatizations, firstPrivatizations,
2617-
reductionRecipes;
2617+
llvm::SmallVector<mlir::Attribute> privatizationRecipes,
2618+
firstPrivatizationRecipes, reductionRecipes;
26182619

26192620
// Self clause has optional values but can be present with
26202621
// no value as well. When there is no value, the op has an attribute to
@@ -2820,17 +2821,17 @@ static Op createComputeOp(
28202821
std::get_if<Fortran::parser::AccClause::Private>(
28212822
&clause.u)) {
28222823
if (!combinedConstructs)
2823-
genPrivatizations<mlir::acc::PrivateRecipeOp>(
2824+
genPrivatizationRecipes<mlir::acc::PrivateRecipeOp>(
28242825
privateClause->v, converter, semanticsContext, stmtCtx,
2825-
privateOperands, privatizations, async, asyncDeviceTypes,
2826+
privateOperands, privatizationRecipes, async, asyncDeviceTypes,
28262827
asyncOnlyDeviceTypes);
28272828
} else if (const auto *firstprivateClause =
28282829
std::get_if<Fortran::parser::AccClause::Firstprivate>(
28292830
&clause.u)) {
2830-
genPrivatizations<mlir::acc::FirstprivateRecipeOp>(
2831+
genPrivatizationRecipes<mlir::acc::FirstprivateRecipeOp>(
28312832
firstprivateClause->v, converter, semanticsContext, stmtCtx,
2832-
firstprivateOperands, firstPrivatizations, async, asyncDeviceTypes,
2833-
asyncOnlyDeviceTypes);
2833+
firstprivateOperands, firstPrivatizationRecipes, async,
2834+
asyncDeviceTypes, asyncOnlyDeviceTypes);
28342835
} else if (const auto *reductionClause =
28352836
std::get_if<Fortran::parser::AccClause::Reduction>(
28362837
&clause.u)) {
@@ -2934,15 +2935,15 @@ static Op createComputeOp(
29342935
computeOp.setWaitOnlyAttr(builder.getArrayAttr(waitOnlyDeviceTypes));
29352936

29362937
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));
29402941
if (!reductionRecipes.empty())
29412942
computeOp.setReductionRecipesAttr(
29422943
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));
29462947
}
29472948

29482949
if (combinedConstructs)

mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1327,9 +1327,9 @@ def OpenACC_ParallelOp : OpenACC_Op<"parallel",
13271327
Variadic<AnyType>:$reductionOperands,
13281328
OptionalAttr<SymbolRefArrayAttr>:$reductionRecipes,
13291329
Variadic<OpenACC_AnyPointerOrMappableType>:$privateOperands,
1330-
OptionalAttr<SymbolRefArrayAttr>:$privatizations,
1330+
OptionalAttr<SymbolRefArrayAttr>:$privatizationRecipes,
13311331
Variadic<OpenACC_AnyPointerOrMappableType>:$firstprivateOperands,
1332-
OptionalAttr<SymbolRefArrayAttr>:$firstprivatizations,
1332+
OptionalAttr<SymbolRefArrayAttr>:$firstprivatizationRecipes,
13331333
Variadic<OpenACC_AnyPointerOrMappableType>:$dataClauseOperands,
13341334
OptionalAttr<DefaultValueAttr>:$defaultAttr,
13351335
UnitAttr:$combined);
@@ -1443,14 +1443,14 @@ def OpenACC_ParallelOp : OpenACC_Op<"parallel",
14431443
| `async` `` custom<DeviceTypeOperandsWithKeywordOnly>($asyncOperands,
14441444
type($asyncOperands), $asyncOperandsDeviceType, $asyncOnly)
14451445
| `firstprivate` `(` custom<SymOperandList>($firstprivateOperands,
1446-
type($firstprivateOperands), $firstprivatizations)
1446+
type($firstprivateOperands), $firstprivatizationRecipes)
14471447
`)`
14481448
| `num_gangs` `(` custom<NumGangs>($numGangs,
14491449
type($numGangs), $numGangsDeviceType, $numGangsSegments) `)`
14501450
| `num_workers` `(` custom<DeviceTypeOperands>($numWorkers,
14511451
type($numWorkers), $numWorkersDeviceType) `)`
14521452
| `private` `(` custom<SymOperandList>(
1453-
$privateOperands, type($privateOperands), $privatizations)
1453+
$privateOperands, type($privateOperands), $privatizationRecipes)
14541454
`)`
14551455
| `vector_length` `(` custom<DeviceTypeOperands>($vectorLength,
14561456
type($vectorLength), $vectorLengthDeviceType) `)`
@@ -1512,9 +1512,9 @@ def OpenACC_SerialOp : OpenACC_Op<"serial",
15121512
Variadic<AnyType>:$reductionOperands,
15131513
OptionalAttr<SymbolRefArrayAttr>:$reductionRecipes,
15141514
Variadic<OpenACC_AnyPointerOrMappableType>:$privateOperands,
1515-
OptionalAttr<SymbolRefArrayAttr>:$privatizations,
1515+
OptionalAttr<SymbolRefArrayAttr>:$privatizationRecipes,
15161516
Variadic<OpenACC_AnyPointerOrMappableType>:$firstprivateOperands,
1517-
OptionalAttr<SymbolRefArrayAttr>:$firstprivatizations,
1517+
OptionalAttr<SymbolRefArrayAttr>:$firstprivatizationRecipes,
15181518
Variadic<OpenACC_AnyPointerOrMappableType>:$dataClauseOperands,
15191519
OptionalAttr<DefaultValueAttr>:$defaultAttr,
15201520
UnitAttr:$combined);
@@ -1585,10 +1585,10 @@ def OpenACC_SerialOp : OpenACC_Op<"serial",
15851585
| `async` `` custom<DeviceTypeOperandsWithKeywordOnly>($asyncOperands,
15861586
type($asyncOperands), $asyncOperandsDeviceType, $asyncOnly)
15871587
| `firstprivate` `(` custom<SymOperandList>($firstprivateOperands,
1588-
type($firstprivateOperands), $firstprivatizations)
1588+
type($firstprivateOperands), $firstprivatizationRecipes)
15891589
`)`
15901590
| `private` `(` custom<SymOperandList>(
1591-
$privateOperands, type($privateOperands), $privatizations)
1591+
$privateOperands, type($privateOperands), $privatizationRecipes)
15921592
`)`
15931593
| `wait` `` custom<WaitClause>($waitOperands, type($waitOperands),
15941594
$waitOperandsDeviceType, $waitOperandsSegments, $hasWaitDevnum,
@@ -2106,7 +2106,7 @@ def OpenACC_LoopOp : OpenACC_Op<"loop",
21062106
OptionalAttr<DeviceTypeArrayAttr>:$tileOperandsDeviceType,
21072107
Variadic<OpenACC_AnyPointerOrMappableType>:$cacheOperands,
21082108
Variadic<OpenACC_AnyPointerOrMappableType>:$privateOperands,
2109-
OptionalAttr<SymbolRefArrayAttr>:$privatizations,
2109+
OptionalAttr<SymbolRefArrayAttr>:$privatizationRecipes,
21102110
Variadic<AnyType>:$reductionOperands,
21112111
OptionalAttr<SymbolRefArrayAttr>:$reductionRecipes,
21122112
OptionalAttr<OpenACC_CombinedConstructsAttr>:$combined
@@ -2261,7 +2261,7 @@ def OpenACC_LoopOp : OpenACC_Op<"loop",
22612261
| `vector` `` custom<DeviceTypeOperandsWithKeywordOnly>($vectorOperands,
22622262
type($vectorOperands), $vectorOperandsDeviceType, $vector)
22632263
| `private` `(` custom<SymOperandList>(
2264-
$privateOperands, type($privateOperands), $privatizations) `)`
2264+
$privateOperands, type($privateOperands), $privatizationRecipes) `)`
22652265
| `tile` `(` custom<DeviceTypeOperandsWithSegment>($tileOperands,
22662266
type($tileOperands), $tileOperandsDeviceType, $tileOperandsSegments)
22672267
`)`

mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,11 +1079,11 @@ static LogicalResult verifyDeviceTypeAndSegmentCountMatch(
10791079

10801080
LogicalResult acc::ParallelOp::verify() {
10811081
if (failed(checkSymOperandList<mlir::acc::PrivateRecipeOp>(
1082-
*this, getPrivatizations(), getPrivateOperands(), "private",
1082+
*this, getPrivatizationRecipes(), getPrivateOperands(), "private",
10831083
"privatizations", /*checkOperandType=*/false)))
10841084
return failure();
10851085
if (failed(checkSymOperandList<mlir::acc::FirstprivateRecipeOp>(
1086-
*this, getFirstprivatizations(), getFirstprivateOperands(),
1086+
*this, getFirstprivatizationRecipes(), getFirstprivateOperands(),
10871087
"firstprivate", "firstprivatizations", /*checkOperandType=*/false)))
10881088
return failure();
10891089
if (failed(checkSymOperandList<mlir::acc::ReductionRecipeOp>(
@@ -1870,11 +1870,11 @@ mlir::Value SerialOp::getWaitDevnum(mlir::acc::DeviceType deviceType) {
18701870

18711871
LogicalResult acc::SerialOp::verify() {
18721872
if (failed(checkSymOperandList<mlir::acc::PrivateRecipeOp>(
1873-
*this, getPrivatizations(), getPrivateOperands(), "private",
1873+
*this, getPrivatizationRecipes(), getPrivateOperands(), "private",
18741874
"privatizations", /*checkOperandType=*/false)))
18751875
return failure();
18761876
if (failed(checkSymOperandList<mlir::acc::FirstprivateRecipeOp>(
1877-
*this, getFirstprivatizations(), getFirstprivateOperands(),
1877+
*this, getFirstprivatizationRecipes(), getFirstprivateOperands(),
18781878
"firstprivate", "firstprivatizations", /*checkOperandType=*/false)))
18791879
return failure();
18801880
if (failed(checkSymOperandList<mlir::acc::ReductionRecipeOp>(
@@ -2488,7 +2488,7 @@ LogicalResult acc::LoopOp::verify() {
24882488
}
24892489

24902490
if (failed(checkSymOperandList<mlir::acc::PrivateRecipeOp>(
2491-
*this, getPrivatizations(), getPrivateOperands(), "private",
2491+
*this, getPrivatizationRecipes(), getPrivateOperands(), "private",
24922492
"privatizations", false)))
24932493
return failure();
24942494

0 commit comments

Comments
 (0)