Author: smateo
Date: Sun Feb 3 23:33:19 2019
New Revision: 353018
URL: http://llvm.org/viewvc/llvm-project?rev=353018&view=rev
Log:
[OpenMP] Adding support to the mutexinoutset dep-type
Summary: this commit adds support to a new dependence type introduced in OpenMP
5.0. The LLVM OpenMP RTL already supports this feature, so we only need to
modify CLANG to take advantage of them.
Differential Revision: https://reviews.llvm.org/D57576
Modified:
cfe/trunk/include/clang/Basic/OpenMPKinds.def
cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
cfe/trunk/test/OpenMP/target_depend_messages.cpp
cfe/trunk/test/OpenMP/target_enter_data_depend_messages.cpp
cfe/trunk/test/OpenMP/target_exit_data_depend_messages.cpp
cfe/trunk/test/OpenMP/target_parallel_depend_messages.cpp
cfe/trunk/test/OpenMP/target_parallel_for_depend_messages.cpp
cfe/trunk/test/OpenMP/target_parallel_for_simd_depend_messages.cpp
cfe/trunk/test/OpenMP/target_simd_depend_messages.cpp
cfe/trunk/test/OpenMP/target_teams_depend_messages.cpp
cfe/trunk/test/OpenMP/target_teams_distribute_depend_messages.cpp
cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_depend_messages.cpp
cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_messages.cpp
cfe/trunk/test/OpenMP/target_teams_distribute_simd_depend_messages.cpp
cfe/trunk/test/OpenMP/target_update_depend_messages.cpp
cfe/trunk/test/OpenMP/task_codegen.cpp
cfe/trunk/test/OpenMP/task_depend_messages.cpp
Modified: cfe/trunk/include/clang/Basic/OpenMPKinds.def
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/OpenMPKinds.def?rev=353018&r1=353017&r2=353018&view=diff
==
--- cfe/trunk/include/clang/Basic/OpenMPKinds.def (original)
+++ cfe/trunk/include/clang/Basic/OpenMPKinds.def Sun Feb 3 23:33:19 2019
@@ -386,6 +386,7 @@ OPENMP_DEFAULTMAP_MODIFIER(tofrom)
OPENMP_DEPEND_KIND(in)
OPENMP_DEPEND_KIND(out)
OPENMP_DEPEND_KIND(inout)
+OPENMP_DEPEND_KIND(mutexinoutset)
OPENMP_DEPEND_KIND(source)
OPENMP_DEPEND_KIND(sink)
Modified: cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp?rev=353018&r1=353017&r2=353018&view=diff
==
--- cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp Sun Feb 3 23:33:19 2019
@@ -5087,7 +5087,7 @@ void CGOpenMPRuntime::emitTaskCall(CodeG
unsigned NumDependencies = Data.Dependences.size();
if (NumDependencies) {
// Dependence kind for RTL.
-enum RTLDependenceKindTy { DepIn = 0x01, DepInOut = 0x3 };
+enum RTLDependenceKindTy { DepIn = 0x01, DepInOut = 0x3, DepMutexInOutSet
= 0x4 };
enum RTLDependInfoFieldsTy { BaseAddr, Len, Flags };
RecordDecl *KmpDependInfoRD;
QualType FlagsTy =
@@ -5154,6 +5154,9 @@ void CGOpenMPRuntime::emitTaskCall(CodeG
case OMPC_DEPEND_inout:
DepKind = DepInOut;
break;
+ case OMPC_DEPEND_mutexinoutset:
+DepKind = DepMutexInOutSet;
+break;
case OMPC_DEPEND_source:
case OMPC_DEPEND_sink:
case OMPC_DEPEND_unknown:
Modified: cfe/trunk/test/OpenMP/target_depend_messages.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_depend_messages.cpp?rev=353018&r1=353017&r2=353018&view=diff
==
--- cfe/trunk/test/OpenMP/target_depend_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_depend_messages.cpp Sun Feb 3 23:33:19 2019
@@ -24,13 +24,13 @@ int main(int argc, char **argv, char *en
#pragma omp target depend // expected-error {{expected '(' after 'depend'}}
foo();
- #pragma omp target depend ( // expected-error {{expected 'in', 'out' or
'inout' in OpenMP clause 'depend'}} expected-error {{expected ')'}}
expected-note {{to match this '('}} expected-warning {{missing ':' after
dependency type - ignoring}}
+ #pragma omp target depend ( // expected-error {{expected 'in', 'out',
'inout' or 'mutexinoutset' in OpenMP clause 'depend'}} expected-error
{{expected ')'}} expected-note {{to match this '('}} expected-warning {{missing
':' after dependency type - ignoring}}
foo();
- #pragma omp target depend () // expected-error {{expected 'in', 'out' or
'inout' in OpenMP clause 'depend'}} expected-warning {{missing ':' after
dependency type - ignoring}}
+ #pragma omp target depend () // expected-error {{expected 'in', 'out',
'inout' or 'mutexinoutset' in OpenMP clause 'depend'}} expected-warning
{{missing ':' after dependency type - ignoring}}
foo();
- #pragma omp target depend (argc // expected-error {{expected 'in', 'out' or
'inout' in OpenMP clause 'depend'}} expected-warning {{missing ':' after
dependency type - ignoring}} expected-error {{expected ')'}} expected-n