Skip to content

Commit 152b1ea

Browse files
committed
R2: Adding non-conformance warning for target loop
1 parent 4fdb187 commit 152b1ea

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

flang/lib/Semantics/resolve-directives.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,6 +1633,12 @@ bool OmpAttributeVisitor::Pre(const parser::OpenMPLoopConstruct &x) {
16331633
default:
16341634
break;
16351635
}
1636+
if (beginDir.v == llvm::omp::Directive::OMPD_target_loop)
1637+
if (context_.ShouldWarn(common::UsageWarning::OpenMPUsage)) {
1638+
context_.Say(beginDir.source,
1639+
"Usage of directive %s is non-confirming to OpenMP standard"_warn_en_US,
1640+
llvm::omp::getOpenMPDirectiveName(beginDir.v).str());
1641+
}
16361642
ClearDataSharingAttributeObjects();
16371643
SetContextAssociatedLoopLevel(GetAssociatedLoopLevelFromClauses(clauseList));
16381644

llvm/include/llvm/Frontend/OpenMP/OMP.td

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,21 +1315,6 @@ def OMP_ForSimd : Directive<"for simd"> {
13151315
let leafConstructs = [OMP_For, OMP_Simd];
13161316
let category = CA_Executable;
13171317
}
1318-
def OMP_MaskedTaskloop : Directive<"masked taskloop"> {
1319-
let allowedClauses = [
1320-
VersionedClause<OMPC_Allocate>,
1321-
VersionedClause<OMPC_Collapse>,
1322-
VersionedClause<OMPC_Default>,
1323-
VersionedClause<OMPC_Filter>,
1324-
VersionedClause<OMPC_Final>,
1325-
VersionedClause<OMPC_FirstPrivate>,
1326-
VersionedClause<OMPC_GrainSize>,
1327-
VersionedClause<OMPC_NumTeams>,
1328-
VersionedClause<OMPC_Order>,
1329-
VersionedClause<OMPC_ThreadLimit>,
1330-
];
1331-
let leafConstructs = [OMP_Teams, OMP_loop];
1332-
}
13331318
def OMP_target_loop : Directive<"target loop"> {
13341319
let allowedClauses = [
13351320
VersionedClause<OMPC_Allocate>,
@@ -1358,9 +1343,17 @@ def OMP_target_loop : Directive<"target loop"> {
13581343
VersionedClause<OMPC_NoWait>,
13591344
];
13601345
let leafConstructs = [OMP_Target, OMP_loop];
1346+
let category = CA_Executable;
13611347
}
1362-
def OMP_target_teams_loop : Directive<"target teams loop"> {
1348+
def OMP_MaskedTaskloop : Directive<"masked taskloop"> {
13631349
let allowedClauses = [
1350+
VersionedClause<OMPC_Allocate>,
1351+
VersionedClause<OMPC_Collapse>,
1352+
VersionedClause<OMPC_Default>,
1353+
VersionedClause<OMPC_Filter>,
1354+
VersionedClause<OMPC_Final>,
1355+
VersionedClause<OMPC_FirstPrivate>,
1356+
VersionedClause<OMPC_GrainSize>,
13641357
VersionedClause<OMPC_If>,
13651358
VersionedClause<OMPC_InReduction>,
13661359
VersionedClause<OMPC_LastPrivate>,

0 commit comments

Comments
 (0)