diff options
Diffstat (limited to 'llvm/include/llvm/Frontend/OpenMP/OMP.td')
| -rw-r--r-- | llvm/include/llvm/Frontend/OpenMP/OMP.td | 144 |
1 files changed, 143 insertions, 1 deletions
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td b/llvm/include/llvm/Frontend/OpenMP/OMP.td index 8d62f7422a9d..d65b36a4f4d4 100644 --- a/llvm/include/llvm/Frontend/OpenMP/OMP.td +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td @@ -226,6 +226,10 @@ def OMPC_GrainSize : Clause<[Spelling<"grainsize">]> { OMP_GRAINSIZE_Unknown ]; } +def OMPC_GraphId : Clause<[Spelling<"graph_id">]> { +} +def OMPC_GraphReset : Clause<[Spelling<"graph_reset">]> { +} def OMPC_HasDeviceAddr : Clause<[Spelling<"has_device_addr">]> { let clangClass = "OMPHasDeviceAddrClause"; let flangClass = "OmpObjectList"; @@ -968,9 +972,9 @@ def OMP_Parallel : Directive<[Spelling<"parallel">]> { ]; let allowedOnceClauses = [VersionedClause<OMPC_Default>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_ProcBind>, - VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_Severity, 60>, ]; let association = AS_Block; @@ -1112,6 +1116,7 @@ def OMP_Target : Directive<[Spelling<"target">]> { VersionedClause<OMPC_OMPX_Attribute>, VersionedClause<OMPC_Private>, VersionedClause<OMPC_UsesAllocators, 50>, + VersionedClause<OMPC_Default, 60>, ]; let allowedOnceClauses = [ VersionedClause<OMPC_DefaultMap>, @@ -1130,6 +1135,7 @@ def OMP_TargetData : Directive<[Spelling<"target data", 1, 52>, let allowedOnceClauses = [ VersionedClause<OMPC_Device>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Default, 60>, ]; let requiredClauses = [ VersionedClause<OMPC_Map>, @@ -1208,6 +1214,16 @@ def OMP_Task : Directive<[Spelling<"task">]> { let association = AS_Block; let category = CA_Executable; } +def OMP_Taskgraph : Directive<[Spelling<"taskgraph">]> { + let allowedOnceClauses = [ + VersionedClause<OMPC_GraphId, 60>, + VersionedClause<OMPC_GraphReset, 60>, + VersionedClause<OMPC_If>, + VersionedClause<OMPC_NoGroup>, + ]; + let association = AS_Block; + let category = CA_Executable; +} def OMP_TaskGroup : Directive<[Spelling<"taskgroup">]> { let allowedClauses = [ VersionedClause<OMPC_Allocate, 50>, @@ -1322,6 +1338,17 @@ def OMP_EndWorkshare : Directive<[Spelling<"end workshare">]> { let category = OMP_Workshare.category; let languages = [L_Fortran]; } +def OMP_Workdistribute : Directive<[Spelling<"workdistribute">]> { + let association = AS_Block; + let category = CA_Executable; + let languages = [L_Fortran]; +} +def OMP_EndWorkdistribute : Directive<[Spelling<"end workdistribute">]> { + let leafConstructs = OMP_Workdistribute.leafConstructs; + let association = OMP_Workdistribute.association; + let category = OMP_Workdistribute.category; + let languages = [L_Fortran]; +} //===----------------------------------------------------------------------===// // Definitions of OpenMP compound directives @@ -1345,10 +1372,12 @@ def OMP_DistributeParallelDo : Directive<[Spelling<"distribute parallel do">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_DistSchedule>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Distribute, OMP_Parallel, OMP_Do]; let category = CA_Executable; @@ -1367,6 +1396,7 @@ def OMP_DistributeParallelDoSimd VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, @@ -1375,6 +1405,7 @@ def OMP_DistributeParallelDoSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, ]; @@ -1393,6 +1424,7 @@ def OMP_DistributeParallelFor VersionedClause<OMPC_FirstPrivate>, VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, VersionedClause<OMPC_Order, 50>, @@ -1400,6 +1432,7 @@ def OMP_DistributeParallelFor VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, ]; let leafConstructs = [OMP_Distribute, OMP_Parallel, OMP_For]; @@ -1419,6 +1452,7 @@ def OMP_DistributeParallelForSimd VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, @@ -1428,6 +1462,7 @@ def OMP_DistributeParallelForSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, ]; @@ -1452,11 +1487,13 @@ def OMP_DistributeSimd : Directive<[Spelling<"distribute simd">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_DistSchedule>, VersionedClause<OMPC_If, 50>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_SimdLen>, ]; let leafConstructs = [OMP_Distribute, OMP_Simd]; @@ -1667,11 +1704,13 @@ def OMP_ParallelDo : Directive<[Spelling<"parallel do">]> { let allowedOnceClauses = [ VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_Ordered>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Parallel, OMP_Do]; let category = CA_Executable; @@ -1694,6 +1733,7 @@ def OMP_ParallelDoSimd : Directive<[Spelling<"parallel do simd">]> { ]; let allowedOnceClauses = [ VersionedClause<OMPC_Collapse>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_Ordered>, @@ -1701,6 +1741,7 @@ def OMP_ParallelDoSimd : Directive<[Spelling<"parallel do simd">]> { VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, VersionedClause<OMPC_SimdLen>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Parallel, OMP_Do, OMP_Simd]; let category = CA_Executable; @@ -1716,6 +1757,7 @@ def OMP_ParallelFor : Directive<[Spelling<"parallel for">]> { VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, VersionedClause<OMPC_Order, 50>, @@ -1724,6 +1766,7 @@ def OMP_ParallelFor : Directive<[Spelling<"parallel for">]> { VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, ]; let leafConstructs = [OMP_Parallel, OMP_For]; @@ -1741,6 +1784,7 @@ def OMP_ParallelForSimd : Directive<[Spelling<"parallel for simd">]> { VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, @@ -1751,6 +1795,7 @@ def OMP_ParallelForSimd : Directive<[Spelling<"parallel for simd">]> { VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, ]; @@ -1774,9 +1819,11 @@ def OMP_parallel_loop : Directive<[Spelling<"parallel loop">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_Default>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order>, VersionedClause<OMPC_ProcBind>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Parallel, OMP_loop]; let category = CA_Executable; @@ -1789,11 +1836,13 @@ def OMP_ParallelMasked : Directive<[Spelling<"parallel masked">]> { VersionedClause<OMPC_Filter>, VersionedClause<OMPC_FirstPrivate>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, VersionedClause<OMPC_Private>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, ]; let leafConstructs = [OMP_Parallel, OMP_masked]; @@ -1813,6 +1862,7 @@ def OMP_ParallelMaskedTaskloop VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Mergeable>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoGroup>, VersionedClause<OMPC_NumTasks>, VersionedClause<OMPC_NumThreads>, @@ -1821,6 +1871,7 @@ def OMP_ParallelMaskedTaskloop VersionedClause<OMPC_Private>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_Untied>, ]; @@ -1843,6 +1894,7 @@ def OMP_ParallelMaskedTaskloopSimd VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Mergeable>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoGroup>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NumTasks>, @@ -1854,6 +1906,7 @@ def OMP_ParallelMaskedTaskloopSimd VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_Untied>, @@ -1868,11 +1921,13 @@ def OMP_ParallelMaster : Directive<[Spelling<"parallel master">]> { VersionedClause<OMPC_Default>, VersionedClause<OMPC_FirstPrivate>, VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, VersionedClause<OMPC_Private>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, ]; let leafConstructs = [OMP_Parallel, OMP_Master]; @@ -1891,6 +1946,7 @@ def OMP_ParallelMasterTaskloop VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Mergeable>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoGroup>, VersionedClause<OMPC_NumTasks>, VersionedClause<OMPC_NumThreads>, @@ -1899,6 +1955,7 @@ def OMP_ParallelMasterTaskloop VersionedClause<OMPC_Private>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_Untied>, ]; @@ -1920,6 +1977,7 @@ def OMP_ParallelMasterTaskloopSimd VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Mergeable>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoGroup>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NumTasks>, @@ -1931,6 +1989,7 @@ def OMP_ParallelMasterTaskloopSimd VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_Untied>, @@ -1953,7 +2012,9 @@ def OMP_ParallelSections : Directive<[Spelling<"parallel sections">]> { ]; let allowedOnceClauses = [ VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Parallel, OMP_Sections]; let category = CA_Executable; @@ -1970,8 +2031,10 @@ def OMP_ParallelWorkshare : Directive<[Spelling<"parallel workshare">]> { ]; let allowedOnceClauses = [ VersionedClause<OMPC_If>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_ProcBind>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Parallel, OMP_Workshare]; let category = CA_Executable; @@ -1998,9 +2061,11 @@ def OMP_TargetParallel : Directive<[Spelling<"target parallel">]> { let allowedOnceClauses = [ VersionedClause<OMPC_DefaultMap>, VersionedClause<OMPC_Device>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_DynCGroupMem>, VersionedClause<OMPC_ProcBind>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_ThreadLimit, 51>, ]; let leafConstructs = [OMP_Target, OMP_Parallel]; @@ -2028,12 +2093,14 @@ def OMP_TargetParallelDo : Directive<[Spelling<"target parallel do">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_DefaultMap>, VersionedClause<OMPC_Device>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_Ordered>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, ]; let leafConstructs = [OMP_Target, OMP_Parallel, OMP_Do]; let category = CA_Executable; @@ -2057,6 +2124,7 @@ def OMP_TargetParallelDoSimd VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Map>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumThreads>, @@ -2067,6 +2135,7 @@ def OMP_TargetParallelDoSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_UsesAllocators>, @@ -2091,6 +2160,7 @@ def OMP_TargetParallelFor : Directive<[Spelling<"target parallel for">]> { VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Map>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, @@ -2100,6 +2170,7 @@ def OMP_TargetParallelFor : Directive<[Spelling<"target parallel for">]> { VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_UsesAllocators, 50>, ]; @@ -2129,6 +2200,7 @@ def OMP_TargetParallelForSimd VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Map>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumThreads>, @@ -2140,6 +2212,7 @@ def OMP_TargetParallelForSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_UsesAllocators, 50>, @@ -2175,11 +2248,13 @@ def OMP_target_parallel_loop : Directive<[Spelling<"target parallel loop">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_Default>, VersionedClause<OMPC_DefaultMap>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_DynCGroupMem>, VersionedClause<OMPC_Order>, VersionedClause<OMPC_ProcBind>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_ThreadLimit, 51>, ]; let leafConstructs = [OMP_Target, OMP_Parallel, OMP_loop]; @@ -2210,12 +2285,14 @@ def OMP_TargetSimd : Directive<[Spelling<"target simd">]> { VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_DefaultMap>, VersionedClause<OMPC_Device>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_DynCGroupMem>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_ThreadLimit, 51>, ]; @@ -2308,12 +2385,14 @@ def OMP_TargetTeamsDistributeParallelDo VersionedClause<OMPC_DefaultMap>, VersionedClause<OMPC_Device>, VersionedClause<OMPC_DistSchedule>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_ThreadLimit>, ]; let leafConstructs = @@ -2347,6 +2426,7 @@ def OMP_TargetTeamsDistributeParallelDoSimd VersionedClause<OMPC_DefaultMap>, VersionedClause<OMPC_Device>, VersionedClause<OMPC_DistSchedule>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, @@ -2354,6 +2434,7 @@ def OMP_TargetTeamsDistributeParallelDoSimd VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_ThreadLimit>, ]; @@ -2379,6 +2460,7 @@ def OMP_TargetTeamsDistributeParallelFor VersionedClause<OMPC_IsDevicePtr>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Map>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, @@ -2388,6 +2470,7 @@ def OMP_TargetTeamsDistributeParallelFor VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_ThreadLimit>, VersionedClause<OMPC_UsesAllocators, 50>, @@ -2419,6 +2502,7 @@ def OMP_TargetTeamsDistributeParallelForSimd VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, VersionedClause<OMPC_Map>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NoWait>, VersionedClause<OMPC_NumTeams>, @@ -2430,6 +2514,7 @@ def OMP_TargetTeamsDistributeParallelForSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_ThreadLimit>, @@ -2463,6 +2548,7 @@ def OMP_TargetTeamsDistributeSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_UsesAllocators, 50>, + VersionedClause<OMPC_Default, 60>, ]; let allowedOnceClauses = [ VersionedClause<OMPC_Collapse>, @@ -2480,6 +2566,35 @@ def OMP_TargetTeamsDistributeSimd let leafConstructs = [OMP_Target, OMP_Teams, OMP_Distribute, OMP_Simd]; let category = CA_Executable; } +def OMP_TargetTeamsWorkdistribute : Directive<[Spelling<"target teams workdistribute">]> { + let allowedClauses = [ + VersionedClause<OMPC_Allocate>, + VersionedClause<OMPC_Depend>, + VersionedClause<OMPC_FirstPrivate>, + VersionedClause<OMPC_HasDeviceAddr, 51>, + VersionedClause<OMPC_If>, + VersionedClause<OMPC_IsDevicePtr>, + VersionedClause<OMPC_Map>, + VersionedClause<OMPC_OMPX_Attribute>, + VersionedClause<OMPC_Private>, + VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Shared>, + VersionedClause<OMPC_UsesAllocators, 50>, + ]; + let allowedOnceClauses = [ + VersionedClause<OMPC_Default>, + VersionedClause<OMPC_DefaultMap>, + VersionedClause<OMPC_Device>, + VersionedClause<OMPC_NoWait>, + VersionedClause<OMPC_NumTeams>, + VersionedClause<OMPC_OMPX_DynCGroupMem>, + VersionedClause<OMPC_OMPX_Bare>, + VersionedClause<OMPC_ThreadLimit>, + ]; + let leafConstructs = [OMP_Target, OMP_Teams, OMP_Workdistribute]; + let category = CA_Executable; + let languages = [L_Fortran]; +} def OMP_target_teams_loop : Directive<[Spelling<"target teams loop">]> { let allowedClauses = [ VersionedClause<OMPC_Allocate>, @@ -2586,11 +2701,13 @@ def OMP_TeamsDistributeParallelDo VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_Default>, VersionedClause<OMPC_DistSchedule>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_ThreadLimit>, ]; let leafConstructs = [OMP_Teams, OMP_Distribute, OMP_Parallel, OMP_Do]; @@ -2616,12 +2733,14 @@ def OMP_TeamsDistributeParallelDoSimd VersionedClause<OMPC_Collapse>, VersionedClause<OMPC_Default>, VersionedClause<OMPC_DistSchedule>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_Order, 50>, VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_ThreadLimit>, ]; @@ -2642,6 +2761,7 @@ def OMP_TeamsDistributeParallelFor VersionedClause<OMPC_FirstPrivate>, VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, VersionedClause<OMPC_OMPX_Attribute>, @@ -2650,6 +2770,7 @@ def OMP_TeamsDistributeParallelFor VersionedClause<OMPC_ProcBind>, VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_ThreadLimit>, ]; @@ -2670,6 +2791,7 @@ def OMP_TeamsDistributeParallelForSimd VersionedClause<OMPC_If>, VersionedClause<OMPC_LastPrivate>, VersionedClause<OMPC_Linear>, + VersionedClause<OMPC_Message, 60>, VersionedClause<OMPC_NonTemporal, 50>, VersionedClause<OMPC_NumTeams>, VersionedClause<OMPC_NumThreads>, @@ -2680,6 +2802,7 @@ def OMP_TeamsDistributeParallelForSimd VersionedClause<OMPC_Reduction>, VersionedClause<OMPC_SafeLen>, VersionedClause<OMPC_Schedule>, + VersionedClause<OMPC_Severity, 60>, VersionedClause<OMPC_Shared>, VersionedClause<OMPC_SimdLen>, VersionedClause<OMPC_ThreadLimit>, @@ -2717,6 +2840,25 @@ def OMP_TeamsDistributeSimd : Directive<[Spelling<"teams distribute simd">]> { let leafConstructs = [OMP_Teams, OMP_Distribute, OMP_Simd]; let category = CA_Executable; } +def OMP_TeamsWorkdistribute : Directive<[Spelling<"teams workdistribute">]> { + let allowedClauses = [ + VersionedClause<OMPC_Allocate>, + VersionedClause<OMPC_FirstPrivate>, + VersionedClause<OMPC_OMPX_Attribute>, + VersionedClause<OMPC_Private>, + VersionedClause<OMPC_Reduction>, + VersionedClause<OMPC_Shared>, + ]; + let allowedOnceClauses = [ + VersionedClause<OMPC_Default>, + VersionedClause<OMPC_If, 52>, + VersionedClause<OMPC_NumTeams>, + VersionedClause<OMPC_ThreadLimit>, + ]; + let leafConstructs = [OMP_Teams, OMP_Workdistribute]; + let category = CA_Executable; + let languages = [L_Fortran]; +} def OMP_teams_loop : Directive<[Spelling<"teams loop">]> { let allowedClauses = [ VersionedClause<OMPC_Allocate>, |
