Home | History | Annotate | Download | only in Basic
      1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 /// \file
     10 /// \brief This file defines the list of supported OpenMP directives and
     11 /// clauses.
     12 ///
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef OPENMP_DIRECTIVE
     16 #  define OPENMP_DIRECTIVE(Name)
     17 #endif
     18 #ifndef OPENMP_DIRECTIVE_EXT
     19 #define OPENMP_DIRECTIVE_EXT(Name, Str)
     20 #endif
     21 #ifndef OPENMP_CLAUSE
     22 #  define OPENMP_CLAUSE(Name, Class)
     23 #endif
     24 #ifndef OPENMP_PARALLEL_CLAUSE
     25 #  define OPENMP_PARALLEL_CLAUSE(Name)
     26 #endif
     27 #ifndef OPENMP_SIMD_CLAUSE
     28 #  define OPENMP_SIMD_CLAUSE(Name)
     29 #endif
     30 #ifndef OPENMP_FOR_CLAUSE
     31 #  define OPENMP_FOR_CLAUSE(Name)
     32 #endif
     33 #ifndef OPENMP_FOR_SIMD_CLAUSE
     34 #  define OPENMP_FOR_SIMD_CLAUSE(Name)
     35 #endif
     36 #ifndef OPENMP_SECTIONS_CLAUSE
     37 #  define OPENMP_SECTIONS_CLAUSE(Name)
     38 #endif
     39 #ifndef OPENMP_SINGLE_CLAUSE
     40 #  define OPENMP_SINGLE_CLAUSE(Name)
     41 #endif
     42 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
     43 #  define OPENMP_PARALLEL_FOR_CLAUSE(Name)
     44 #endif
     45 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
     46 #  define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
     47 #endif
     48 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
     49 #  define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
     50 #endif
     51 #ifndef OPENMP_TASK_CLAUSE
     52 #  define OPENMP_TASK_CLAUSE(Name)
     53 #endif
     54 #ifndef OPENMP_ATOMIC_CLAUSE
     55 #  define OPENMP_ATOMIC_CLAUSE(Name)
     56 #endif
     57 #ifndef OPENMP_TARGET_CLAUSE
     58 #  define OPENMP_TARGET_CLAUSE(Name)
     59 #endif
     60 #ifndef OPENMP_TARGET_DATA_CLAUSE
     61 #  define OPENMP_TARGET_DATA_CLAUSE(Name)
     62 #endif
     63 #ifndef OPENMP_TARGET_ENTER_DATA_CLAUSE
     64 #define OPENMP_TARGET_ENTER_DATA_CLAUSE(Name)
     65 #endif
     66 #ifndef OPENMP_TARGET_EXIT_DATA_CLAUSE
     67 #define OPENMP_TARGET_EXIT_DATA_CLAUSE(Name)
     68 #endif
     69 #ifndef OPENMP_TARGET_PARALLEL_CLAUSE
     70 #  define OPENMP_TARGET_PARALLEL_CLAUSE(Name)
     71 #endif
     72 #ifndef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
     73 #  define OPENMP_TARGET_PARALLEL_FOR_CLAUSE(Name)
     74 #endif
     75 #ifndef OPENMP_TARGET_UPDATE_CLAUSE
     76 #  define OPENMP_TARGET_UPDATE_CLAUSE(Name)
     77 #endif
     78 #ifndef OPENMP_TEAMS_CLAUSE
     79 #  define OPENMP_TEAMS_CLAUSE(Name)
     80 #endif
     81 #ifndef OPENMP_CANCEL_CLAUSE
     82 #  define OPENMP_CANCEL_CLAUSE(Name)
     83 #endif
     84 #ifndef OPENMP_ORDERED_CLAUSE
     85 #  define OPENMP_ORDERED_CLAUSE(Name)
     86 #endif
     87 #ifndef OPENMP_TASKLOOP_CLAUSE
     88 #  define OPENMP_TASKLOOP_CLAUSE(Name)
     89 #endif
     90 #ifndef OPENMP_TASKLOOP_SIMD_CLAUSE
     91 #  define OPENMP_TASKLOOP_SIMD_CLAUSE(Name)
     92 #endif
     93 #ifndef OPENMP_CRITICAL_CLAUSE
     94 #  define OPENMP_CRITICAL_CLAUSE(Name)
     95 #endif
     96 #ifndef OPENMP_DISTRIBUTE_CLAUSE
     97 #define OPENMP_DISTRIBUTE_CLAUSE(Name)
     98 #endif
     99 #ifndef OPENMP_DEFAULT_KIND
    100 #  define OPENMP_DEFAULT_KIND(Name)
    101 #endif
    102 #ifndef OPENMP_PROC_BIND_KIND
    103 #  define OPENMP_PROC_BIND_KIND(Name)
    104 #endif
    105 #ifndef OPENMP_SCHEDULE_KIND
    106 #define OPENMP_SCHEDULE_KIND(Name)
    107 #endif
    108 #ifndef OPENMP_SCHEDULE_MODIFIER
    109 #define OPENMP_SCHEDULE_MODIFIER(Name)
    110 #endif
    111 #ifndef OPENMP_DEPEND_KIND
    112 #define OPENMP_DEPEND_KIND(Name)
    113 #endif
    114 #ifndef OPENMP_LINEAR_KIND
    115 #define OPENMP_LINEAR_KIND(Name)
    116 #endif
    117 #ifndef OPENMP_MAP_KIND
    118 #define OPENMP_MAP_KIND(Name)
    119 #endif
    120 #ifndef OPENMP_DIST_SCHEDULE_KIND
    121 #define OPENMP_DIST_SCHEDULE_KIND(Name)
    122 #endif
    123 #ifndef OPENMP_DEFAULTMAP_KIND
    124 #define OPENMP_DEFAULTMAP_KIND(Name)
    125 #endif
    126 #ifndef OPENMP_DEFAULTMAP_MODIFIER
    127 #define OPENMP_DEFAULTMAP_MODIFIER(Name)
    128 #endif
    129 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    130 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
    131 #endif
    132 #ifndef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    133 #define OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
    134 #endif
    135 #ifndef OPENMP_DISTRIBUTE_SIMD_CLAUSE
    136 #define OPENMP_DISTRIBUTE_SIMD_CLAUSE(Name)
    137 #endif
    138 #ifndef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
    139 #define OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(Name)
    140 #endif
    141 #ifndef OPENMP_TARGET_SIMD_CLAUSE
    142 #define OPENMP_TARGET_SIMD_CLAUSE(Name)
    143 #endif
    144 #ifndef OPENMP_TEAMS_DISTRIBUTE_CLAUSE
    145 #define OPENMP_TEAMS_DISTRIBUTE_CLAUSE(Name)
    146 #endif
    147 #ifndef OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE
    148 #define OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
    149 #endif
    150 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    151 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
    152 #endif
    153 #ifndef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    154 #define OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
    155 #endif
    156 #ifndef OPENMP_TARGET_TEAMS_CLAUSE
    157 #define OPENMP_TARGET_TEAMS_CLAUSE(Name)
    158 #endif
    159 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE
    160 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(Name)
    161 #endif
    162 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    163 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(Name)
    164 #endif
    165 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    166 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(Name)
    167 #endif
    168 #ifndef OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE
    169 #define OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(Name)
    170 #endif
    171 
    172 // OpenMP directives.
    173 OPENMP_DIRECTIVE(threadprivate)
    174 OPENMP_DIRECTIVE(parallel)
    175 OPENMP_DIRECTIVE(task)
    176 OPENMP_DIRECTIVE(simd)
    177 OPENMP_DIRECTIVE(for)
    178 OPENMP_DIRECTIVE(sections)
    179 OPENMP_DIRECTIVE(section)
    180 OPENMP_DIRECTIVE(single)
    181 OPENMP_DIRECTIVE(master)
    182 OPENMP_DIRECTIVE(critical)
    183 OPENMP_DIRECTIVE(taskyield)
    184 OPENMP_DIRECTIVE(barrier)
    185 OPENMP_DIRECTIVE(taskwait)
    186 OPENMP_DIRECTIVE(taskgroup)
    187 OPENMP_DIRECTIVE(flush)
    188 OPENMP_DIRECTIVE(ordered)
    189 OPENMP_DIRECTIVE(atomic)
    190 OPENMP_DIRECTIVE(target)
    191 OPENMP_DIRECTIVE(teams)
    192 OPENMP_DIRECTIVE(cancel)
    193 OPENMP_DIRECTIVE_EXT(target_data, "target data")
    194 OPENMP_DIRECTIVE_EXT(target_enter_data, "target enter data")
    195 OPENMP_DIRECTIVE_EXT(target_exit_data, "target exit data")
    196 OPENMP_DIRECTIVE_EXT(target_parallel, "target parallel")
    197 OPENMP_DIRECTIVE_EXT(target_parallel_for, "target parallel for")
    198 OPENMP_DIRECTIVE_EXT(target_update, "target update")
    199 OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
    200 OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
    201 OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
    202 OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
    203 OPENMP_DIRECTIVE_EXT(cancellation_point, "cancellation point")
    204 OPENMP_DIRECTIVE_EXT(declare_reduction, "declare reduction")
    205 OPENMP_DIRECTIVE_EXT(declare_simd, "declare simd")
    206 OPENMP_DIRECTIVE(taskloop)
    207 OPENMP_DIRECTIVE_EXT(taskloop_simd, "taskloop simd")
    208 OPENMP_DIRECTIVE(distribute)
    209 OPENMP_DIRECTIVE_EXT(declare_target, "declare target")
    210 OPENMP_DIRECTIVE_EXT(end_declare_target, "end declare target")
    211 OPENMP_DIRECTIVE_EXT(distribute_parallel_for, "distribute parallel for")
    212 OPENMP_DIRECTIVE_EXT(distribute_parallel_for_simd, "distribute parallel for simd")
    213 OPENMP_DIRECTIVE_EXT(distribute_simd, "distribute simd")
    214 OPENMP_DIRECTIVE_EXT(target_parallel_for_simd, "target parallel for simd")
    215 OPENMP_DIRECTIVE_EXT(target_simd, "target simd")
    216 OPENMP_DIRECTIVE_EXT(teams_distribute, "teams distribute")
    217 OPENMP_DIRECTIVE_EXT(teams_distribute_simd, "teams distribute simd")
    218 OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for_simd, "teams distribute parallel for simd")
    219 OPENMP_DIRECTIVE_EXT(teams_distribute_parallel_for, "teams distribute parallel for")
    220 OPENMP_DIRECTIVE_EXT(target_teams, "target teams")
    221 OPENMP_DIRECTIVE_EXT(target_teams_distribute, "target teams distribute")
    222 OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for, "target teams distribute parallel for")
    223 OPENMP_DIRECTIVE_EXT(target_teams_distribute_parallel_for_simd, "target teams distribute parallel for simd")
    224 OPENMP_DIRECTIVE_EXT(target_teams_distribute_simd, "target teams distribute simd")
    225 
    226 // OpenMP clauses.
    227 OPENMP_CLAUSE(if, OMPIfClause)
    228 OPENMP_CLAUSE(final, OMPFinalClause)
    229 OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
    230 OPENMP_CLAUSE(safelen, OMPSafelenClause)
    231 OPENMP_CLAUSE(simdlen, OMPSimdlenClause)
    232 OPENMP_CLAUSE(collapse, OMPCollapseClause)
    233 OPENMP_CLAUSE(default, OMPDefaultClause)
    234 OPENMP_CLAUSE(private, OMPPrivateClause)
    235 OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
    236 OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
    237 OPENMP_CLAUSE(shared,  OMPSharedClause)
    238 OPENMP_CLAUSE(reduction,  OMPReductionClause)
    239 OPENMP_CLAUSE(linear,  OMPLinearClause)
    240 OPENMP_CLAUSE(aligned, OMPAlignedClause)
    241 OPENMP_CLAUSE(copyin,  OMPCopyinClause)
    242 OPENMP_CLAUSE(copyprivate,  OMPCopyprivateClause)
    243 OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
    244 OPENMP_CLAUSE(schedule, OMPScheduleClause)
    245 OPENMP_CLAUSE(ordered, OMPOrderedClause)
    246 OPENMP_CLAUSE(nowait, OMPNowaitClause)
    247 OPENMP_CLAUSE(untied, OMPUntiedClause)
    248 OPENMP_CLAUSE(mergeable, OMPMergeableClause)
    249 OPENMP_CLAUSE(flush, OMPFlushClause)
    250 OPENMP_CLAUSE(read, OMPReadClause)
    251 OPENMP_CLAUSE(write, OMPWriteClause)
    252 OPENMP_CLAUSE(update, OMPUpdateClause)
    253 OPENMP_CLAUSE(capture, OMPCaptureClause)
    254 OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
    255 OPENMP_CLAUSE(depend, OMPDependClause)
    256 OPENMP_CLAUSE(device, OMPDeviceClause)
    257 OPENMP_CLAUSE(threads, OMPThreadsClause)
    258 OPENMP_CLAUSE(simd, OMPSIMDClause)
    259 OPENMP_CLAUSE(map, OMPMapClause)
    260 OPENMP_CLAUSE(num_teams, OMPNumTeamsClause)
    261 OPENMP_CLAUSE(thread_limit, OMPThreadLimitClause)
    262 OPENMP_CLAUSE(priority, OMPPriorityClause)
    263 OPENMP_CLAUSE(grainsize, OMPGrainsizeClause)
    264 OPENMP_CLAUSE(nogroup, OMPNogroupClause)
    265 OPENMP_CLAUSE(num_tasks, OMPNumTasksClause)
    266 OPENMP_CLAUSE(hint, OMPHintClause)
    267 OPENMP_CLAUSE(dist_schedule, OMPDistScheduleClause)
    268 OPENMP_CLAUSE(defaultmap, OMPDefaultmapClause)
    269 OPENMP_CLAUSE(to, OMPToClause)
    270 OPENMP_CLAUSE(from, OMPFromClause)
    271 OPENMP_CLAUSE(use_device_ptr, OMPUseDevicePtrClause)
    272 OPENMP_CLAUSE(is_device_ptr, OMPIsDevicePtrClause)
    273 
    274 // Clauses allowed for OpenMP directive 'parallel'.
    275 OPENMP_PARALLEL_CLAUSE(if)
    276 OPENMP_PARALLEL_CLAUSE(num_threads)
    277 OPENMP_PARALLEL_CLAUSE(default)
    278 OPENMP_PARALLEL_CLAUSE(proc_bind)
    279 OPENMP_PARALLEL_CLAUSE(private)
    280 OPENMP_PARALLEL_CLAUSE(firstprivate)
    281 OPENMP_PARALLEL_CLAUSE(shared)
    282 OPENMP_PARALLEL_CLAUSE(reduction)
    283 OPENMP_PARALLEL_CLAUSE(copyin)
    284 
    285 // Clauses allowed for directive 'omp simd'.
    286 OPENMP_SIMD_CLAUSE(private)
    287 OPENMP_SIMD_CLAUSE(lastprivate)
    288 OPENMP_SIMD_CLAUSE(linear)
    289 OPENMP_SIMD_CLAUSE(aligned)
    290 OPENMP_SIMD_CLAUSE(safelen)
    291 OPENMP_SIMD_CLAUSE(simdlen)
    292 OPENMP_SIMD_CLAUSE(collapse)
    293 OPENMP_SIMD_CLAUSE(reduction)
    294 
    295 // Clauses allowed for directive 'omp for'.
    296 OPENMP_FOR_CLAUSE(private)
    297 OPENMP_FOR_CLAUSE(lastprivate)
    298 OPENMP_FOR_CLAUSE(firstprivate)
    299 OPENMP_FOR_CLAUSE(reduction)
    300 OPENMP_FOR_CLAUSE(collapse)
    301 OPENMP_FOR_CLAUSE(schedule)
    302 OPENMP_FOR_CLAUSE(ordered)
    303 OPENMP_FOR_CLAUSE(nowait)
    304 OPENMP_FOR_CLAUSE(linear)
    305 
    306 // Clauses allowed for directive 'omp for simd'.
    307 OPENMP_FOR_SIMD_CLAUSE(private)
    308 OPENMP_FOR_SIMD_CLAUSE(firstprivate)
    309 OPENMP_FOR_SIMD_CLAUSE(lastprivate)
    310 OPENMP_FOR_SIMD_CLAUSE(reduction)
    311 OPENMP_FOR_SIMD_CLAUSE(schedule)
    312 OPENMP_FOR_SIMD_CLAUSE(collapse)
    313 OPENMP_FOR_SIMD_CLAUSE(nowait)
    314 OPENMP_FOR_SIMD_CLAUSE(safelen)
    315 OPENMP_FOR_SIMD_CLAUSE(simdlen)
    316 OPENMP_FOR_SIMD_CLAUSE(linear)
    317 OPENMP_FOR_SIMD_CLAUSE(aligned)
    318 OPENMP_FOR_SIMD_CLAUSE(ordered)
    319 
    320 // Clauses allowed for OpenMP directive 'omp sections'.
    321 OPENMP_SECTIONS_CLAUSE(private)
    322 OPENMP_SECTIONS_CLAUSE(lastprivate)
    323 OPENMP_SECTIONS_CLAUSE(firstprivate)
    324 OPENMP_SECTIONS_CLAUSE(reduction)
    325 OPENMP_SECTIONS_CLAUSE(nowait)
    326 
    327 // Clauses allowed for directive 'omp single'.
    328 OPENMP_SINGLE_CLAUSE(private)
    329 OPENMP_SINGLE_CLAUSE(firstprivate)
    330 OPENMP_SINGLE_CLAUSE(copyprivate)
    331 OPENMP_SINGLE_CLAUSE(nowait)
    332 
    333 // Clauses allowed for OpenMP directive 'cancel'.
    334 OPENMP_CANCEL_CLAUSE(if)
    335 
    336 // Static attributes for 'default' clause.
    337 OPENMP_DEFAULT_KIND(none)
    338 OPENMP_DEFAULT_KIND(shared)
    339 
    340 // Static attributes for 'proc_bind' clause.
    341 OPENMP_PROC_BIND_KIND(master)
    342 OPENMP_PROC_BIND_KIND(close)
    343 OPENMP_PROC_BIND_KIND(spread)
    344 
    345 // Static attributes for 'schedule' clause.
    346 OPENMP_SCHEDULE_KIND(static)
    347 OPENMP_SCHEDULE_KIND(dynamic)
    348 OPENMP_SCHEDULE_KIND(guided)
    349 OPENMP_SCHEDULE_KIND(auto)
    350 OPENMP_SCHEDULE_KIND(runtime)
    351 
    352 // Modifiers for 'schedule' clause.
    353 OPENMP_SCHEDULE_MODIFIER(monotonic)
    354 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
    355 OPENMP_SCHEDULE_MODIFIER(simd)
    356 
    357 // Static attributes for 'defaultmap' clause.
    358 OPENMP_DEFAULTMAP_KIND(scalar)
    359 
    360 // Modifiers for 'defaultmap' clause.
    361 OPENMP_DEFAULTMAP_MODIFIER(tofrom)
    362 
    363 // Static attributes for 'depend' clause.
    364 OPENMP_DEPEND_KIND(in)
    365 OPENMP_DEPEND_KIND(out)
    366 OPENMP_DEPEND_KIND(inout)
    367 OPENMP_DEPEND_KIND(source)
    368 OPENMP_DEPEND_KIND(sink)
    369 
    370 // Modifiers for 'linear' clause.
    371 OPENMP_LINEAR_KIND(val)
    372 OPENMP_LINEAR_KIND(ref)
    373 OPENMP_LINEAR_KIND(uval)
    374 
    375 // Clauses allowed for OpenMP directive 'parallel for'.
    376 OPENMP_PARALLEL_FOR_CLAUSE(if)
    377 OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
    378 OPENMP_PARALLEL_FOR_CLAUSE(default)
    379 OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
    380 OPENMP_PARALLEL_FOR_CLAUSE(private)
    381 OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
    382 OPENMP_PARALLEL_FOR_CLAUSE(shared)
    383 OPENMP_PARALLEL_FOR_CLAUSE(reduction)
    384 OPENMP_PARALLEL_FOR_CLAUSE(copyin)
    385 OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
    386 OPENMP_PARALLEL_FOR_CLAUSE(collapse)
    387 OPENMP_PARALLEL_FOR_CLAUSE(schedule)
    388 OPENMP_PARALLEL_FOR_CLAUSE(ordered)
    389 OPENMP_PARALLEL_FOR_CLAUSE(linear)
    390 
    391 // Clauses allowed for OpenMP directive 'parallel for simd'.
    392 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
    393 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
    394 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
    395 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
    396 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
    397 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
    398 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
    399 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
    400 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
    401 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
    402 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
    403 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
    404 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
    405 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
    406 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
    407 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
    408 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(ordered)
    409 
    410 // Clauses allowed for OpenMP directive 'parallel sections'.
    411 OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
    412 OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
    413 OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
    414 OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
    415 OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
    416 OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
    417 OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
    418 OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
    419 OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
    420 OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
    421 
    422 // Clauses allowed for OpenMP directive 'task'.
    423 OPENMP_TASK_CLAUSE(if)
    424 OPENMP_TASK_CLAUSE(final)
    425 OPENMP_TASK_CLAUSE(default)
    426 OPENMP_TASK_CLAUSE(private)
    427 OPENMP_TASK_CLAUSE(firstprivate)
    428 OPENMP_TASK_CLAUSE(shared)
    429 OPENMP_TASK_CLAUSE(untied)
    430 OPENMP_TASK_CLAUSE(mergeable)
    431 OPENMP_TASK_CLAUSE(depend)
    432 OPENMP_TASK_CLAUSE(priority)
    433 
    434 // Clauses allowed for OpenMP directive 'atomic'.
    435 OPENMP_ATOMIC_CLAUSE(read)
    436 OPENMP_ATOMIC_CLAUSE(write)
    437 OPENMP_ATOMIC_CLAUSE(update)
    438 OPENMP_ATOMIC_CLAUSE(capture)
    439 OPENMP_ATOMIC_CLAUSE(seq_cst)
    440 
    441 // Clauses allowed for OpenMP directive 'target'.
    442 OPENMP_TARGET_CLAUSE(if)
    443 OPENMP_TARGET_CLAUSE(device)
    444 OPENMP_TARGET_CLAUSE(map)
    445 OPENMP_TARGET_CLAUSE(private)
    446 OPENMP_TARGET_CLAUSE(nowait)
    447 OPENMP_TARGET_CLAUSE(depend)
    448 OPENMP_TARGET_CLAUSE(defaultmap)
    449 OPENMP_TARGET_CLAUSE(firstprivate)
    450 OPENMP_TARGET_CLAUSE(is_device_ptr)
    451 
    452 // Clauses allowed for OpenMP directive 'target data'.
    453 OPENMP_TARGET_DATA_CLAUSE(if)
    454 OPENMP_TARGET_DATA_CLAUSE(device)
    455 OPENMP_TARGET_DATA_CLAUSE(map)
    456 OPENMP_TARGET_DATA_CLAUSE(use_device_ptr)
    457 
    458 // Clauses allowed for OpenMP directive 'target enter data'.
    459 OPENMP_TARGET_ENTER_DATA_CLAUSE(if)
    460 OPENMP_TARGET_ENTER_DATA_CLAUSE(device)
    461 OPENMP_TARGET_ENTER_DATA_CLAUSE(map)
    462 OPENMP_TARGET_ENTER_DATA_CLAUSE(nowait)
    463 OPENMP_TARGET_ENTER_DATA_CLAUSE(depend)
    464 
    465 // Clauses allowed for OpenMP directive 'target exit data'.
    466 OPENMP_TARGET_EXIT_DATA_CLAUSE(if)
    467 OPENMP_TARGET_EXIT_DATA_CLAUSE(device)
    468 OPENMP_TARGET_EXIT_DATA_CLAUSE(map)
    469 OPENMP_TARGET_EXIT_DATA_CLAUSE(nowait)
    470 OPENMP_TARGET_EXIT_DATA_CLAUSE(depend)
    471 
    472 // Clauses allowed for OpenMP directive 'target parallel'.
    473 OPENMP_TARGET_PARALLEL_CLAUSE(if)
    474 OPENMP_TARGET_PARALLEL_CLAUSE(device)
    475 OPENMP_TARGET_PARALLEL_CLAUSE(map)
    476 OPENMP_TARGET_PARALLEL_CLAUSE(private)
    477 OPENMP_TARGET_PARALLEL_CLAUSE(firstprivate)
    478 OPENMP_TARGET_PARALLEL_CLAUSE(nowait)
    479 OPENMP_TARGET_PARALLEL_CLAUSE(depend)
    480 OPENMP_TARGET_PARALLEL_CLAUSE(defaultmap)
    481 OPENMP_TARGET_PARALLEL_CLAUSE(num_threads)
    482 OPENMP_TARGET_PARALLEL_CLAUSE(default)
    483 OPENMP_TARGET_PARALLEL_CLAUSE(proc_bind)
    484 OPENMP_TARGET_PARALLEL_CLAUSE(shared)
    485 OPENMP_TARGET_PARALLEL_CLAUSE(reduction)
    486 OPENMP_TARGET_PARALLEL_CLAUSE(is_device_ptr)
    487 
    488 // Clauses allowed for OpenMP directive 'target parallel for'.
    489 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(if)
    490 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(device)
    491 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(map)
    492 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(private)
    493 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(firstprivate)
    494 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(lastprivate)
    495 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(nowait)
    496 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(depend)
    497 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(defaultmap)
    498 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(num_threads)
    499 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(default)
    500 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(proc_bind)
    501 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(shared)
    502 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(reduction)
    503 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(collapse)
    504 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(schedule)
    505 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(ordered)
    506 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(linear)
    507 OPENMP_TARGET_PARALLEL_FOR_CLAUSE(is_device_ptr)
    508 
    509 // Clauses allowed for OpenMP directive 'target update'.
    510 OPENMP_TARGET_UPDATE_CLAUSE(if)
    511 OPENMP_TARGET_UPDATE_CLAUSE(device)
    512 OPENMP_TARGET_UPDATE_CLAUSE(to)
    513 OPENMP_TARGET_UPDATE_CLAUSE(from)
    514 OPENMP_TARGET_UPDATE_CLAUSE(nowait)
    515 OPENMP_TARGET_UPDATE_CLAUSE(depend)
    516 
    517 // Clauses allowed for OpenMP directive 'teams'.
    518 OPENMP_TEAMS_CLAUSE(default)
    519 OPENMP_TEAMS_CLAUSE(private)
    520 OPENMP_TEAMS_CLAUSE(firstprivate)
    521 OPENMP_TEAMS_CLAUSE(shared)
    522 OPENMP_TEAMS_CLAUSE(reduction)
    523 OPENMP_TEAMS_CLAUSE(num_teams)
    524 OPENMP_TEAMS_CLAUSE(thread_limit)
    525 
    526 // Clauses allowed for OpenMP directive 'ordered'.
    527 OPENMP_ORDERED_CLAUSE(threads)
    528 OPENMP_ORDERED_CLAUSE(simd)
    529 OPENMP_ORDERED_CLAUSE(depend)
    530 
    531 // Map types and map type modifier for 'map' clause.
    532 OPENMP_MAP_KIND(alloc)
    533 OPENMP_MAP_KIND(to)
    534 OPENMP_MAP_KIND(from)
    535 OPENMP_MAP_KIND(tofrom)
    536 OPENMP_MAP_KIND(delete)
    537 OPENMP_MAP_KIND(release)
    538 OPENMP_MAP_KIND(always)
    539 
    540 // Clauses allowed for OpenMP directive 'taskloop'.
    541 OPENMP_TASKLOOP_CLAUSE(if)
    542 OPENMP_TASKLOOP_CLAUSE(shared)
    543 OPENMP_TASKLOOP_CLAUSE(private)
    544 OPENMP_TASKLOOP_CLAUSE(firstprivate)
    545 OPENMP_TASKLOOP_CLAUSE(lastprivate)
    546 OPENMP_TASKLOOP_CLAUSE(default)
    547 OPENMP_TASKLOOP_CLAUSE(collapse)
    548 OPENMP_TASKLOOP_CLAUSE(final)
    549 OPENMP_TASKLOOP_CLAUSE(untied)
    550 OPENMP_TASKLOOP_CLAUSE(mergeable)
    551 OPENMP_TASKLOOP_CLAUSE(priority)
    552 OPENMP_TASKLOOP_CLAUSE(grainsize)
    553 OPENMP_TASKLOOP_CLAUSE(nogroup)
    554 OPENMP_TASKLOOP_CLAUSE(num_tasks)
    555 
    556 // Clauses allowed for OpenMP directive 'taskloop simd'.
    557 OPENMP_TASKLOOP_SIMD_CLAUSE(if)
    558 OPENMP_TASKLOOP_SIMD_CLAUSE(shared)
    559 OPENMP_TASKLOOP_SIMD_CLAUSE(private)
    560 OPENMP_TASKLOOP_SIMD_CLAUSE(firstprivate)
    561 OPENMP_TASKLOOP_SIMD_CLAUSE(lastprivate)
    562 OPENMP_TASKLOOP_SIMD_CLAUSE(default)
    563 OPENMP_TASKLOOP_SIMD_CLAUSE(collapse)
    564 OPENMP_TASKLOOP_SIMD_CLAUSE(final)
    565 OPENMP_TASKLOOP_SIMD_CLAUSE(untied)
    566 OPENMP_TASKLOOP_SIMD_CLAUSE(mergeable)
    567 OPENMP_TASKLOOP_SIMD_CLAUSE(priority)
    568 OPENMP_TASKLOOP_SIMD_CLAUSE(linear)
    569 OPENMP_TASKLOOP_SIMD_CLAUSE(aligned)
    570 OPENMP_TASKLOOP_SIMD_CLAUSE(safelen)
    571 OPENMP_TASKLOOP_SIMD_CLAUSE(simdlen)
    572 OPENMP_TASKLOOP_SIMD_CLAUSE(grainsize)
    573 OPENMP_TASKLOOP_SIMD_CLAUSE(nogroup)
    574 OPENMP_TASKLOOP_SIMD_CLAUSE(num_tasks)
    575 
    576 // Clauses allowed for OpenMP directive 'critical'.
    577 OPENMP_CRITICAL_CLAUSE(hint)
    578 
    579 // Clauses allowed for OpenMP directive 'distribute'
    580 OPENMP_DISTRIBUTE_CLAUSE(private)
    581 OPENMP_DISTRIBUTE_CLAUSE(firstprivate)
    582 OPENMP_DISTRIBUTE_CLAUSE(lastprivate)
    583 OPENMP_DISTRIBUTE_CLAUSE(collapse)
    584 OPENMP_DISTRIBUTE_CLAUSE(dist_schedule)
    585 
    586 // Static attributes for 'dist_schedule' clause.
    587 OPENMP_DIST_SCHEDULE_KIND(static)
    588 
    589 // Clauses allowed for OpenMP directive 'distribute parallel for'
    590 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
    591 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
    592 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
    593 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
    594 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
    595 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
    596 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
    597 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
    598 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
    599 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
    600 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
    601 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(copyin)
    602 OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
    603 
    604 // Clauses allowed for OpenMP directive 'distribute parallel for simd'
    605 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
    606 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
    607 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
    608 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
    609 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
    610 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
    611 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
    612 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
    613 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
    614 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
    615 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
    616 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(copyin)
    617 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
    618 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
    619 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
    620 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
    621 OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
    622 
    623 // Clauses allowed for OpenMP directive 'distribute simd'
    624 OPENMP_DISTRIBUTE_SIMD_CLAUSE(private)
    625 OPENMP_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
    626 OPENMP_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
    627 OPENMP_DISTRIBUTE_SIMD_CLAUSE(collapse)
    628 OPENMP_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
    629 OPENMP_DISTRIBUTE_SIMD_CLAUSE(linear)
    630 OPENMP_DISTRIBUTE_SIMD_CLAUSE(aligned)
    631 OPENMP_DISTRIBUTE_SIMD_CLAUSE(safelen)
    632 OPENMP_DISTRIBUTE_SIMD_CLAUSE(simdlen)
    633 OPENMP_DISTRIBUTE_SIMD_CLAUSE(reduction)
    634 
    635 // Clauses allowed for OpenMP directive 'target parallel for simd'.
    636 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(if)
    637 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(device)
    638 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(map)
    639 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(private)
    640 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
    641 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
    642 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(nowait)
    643 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(depend)
    644 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
    645 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
    646 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(default)
    647 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
    648 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(shared)
    649 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(reduction)
    650 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(collapse)
    651 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(schedule)
    652 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(ordered)
    653 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(linear)
    654 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(safelen)
    655 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
    656 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(aligned)
    657 OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
    658 
    659 // Clauses allowed for OpenMP directive 'target simd'.
    660 OPENMP_TARGET_SIMD_CLAUSE(if)
    661 OPENMP_TARGET_SIMD_CLAUSE(device)
    662 OPENMP_TARGET_SIMD_CLAUSE(map)
    663 OPENMP_TARGET_SIMD_CLAUSE(private)
    664 OPENMP_TARGET_SIMD_CLAUSE(nowait)
    665 OPENMP_TARGET_SIMD_CLAUSE(depend)
    666 OPENMP_TARGET_SIMD_CLAUSE(defaultmap)
    667 OPENMP_TARGET_SIMD_CLAUSE(firstprivate)
    668 OPENMP_TARGET_SIMD_CLAUSE(is_device_ptr)
    669 OPENMP_TARGET_SIMD_CLAUSE(lastprivate)
    670 OPENMP_TARGET_SIMD_CLAUSE(linear)
    671 OPENMP_TARGET_SIMD_CLAUSE(aligned)
    672 OPENMP_TARGET_SIMD_CLAUSE(safelen)
    673 OPENMP_TARGET_SIMD_CLAUSE(simdlen)
    674 OPENMP_TARGET_SIMD_CLAUSE(collapse)
    675 OPENMP_TARGET_SIMD_CLAUSE(reduction)
    676 
    677 // Clauses allowed for OpenMP directive 'teams distribute'.
    678 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(default)
    679 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(private)
    680 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
    681 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(shared)
    682 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(reduction)
    683 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
    684 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
    685 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
    686 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(collapse)
    687 OPENMP_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
    688 
    689 // Clauses allowed for OpenMP directive 'teams distribute simd'
    690 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(default)
    691 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
    692 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
    693 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
    694 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
    695 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
    696 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
    697 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
    698 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
    699 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
    700 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
    701 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
    702 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
    703 OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
    704 
    705 // Clauses allowed for OpenMP directive 'teams distribute parallel for simd'
    706 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
    707 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
    708 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
    709 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
    710 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
    711 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
    712 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
    713 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
    714 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
    715 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
    716 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
    717 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
    718 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
    719 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
    720 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
    721 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
    722 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
    723 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
    724 
    725 // Clauses allowed for OpenMP directive 'teams distribute parallel for'
    726 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
    727 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
    728 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
    729 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
    730 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
    731 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
    732 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
    733 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
    734 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
    735 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
    736 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
    737 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
    738 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(linear)
    739 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
    740 OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
    741 
    742 // Clauses allowed for OpenMP directive 'target teams'.
    743 OPENMP_TARGET_TEAMS_CLAUSE(if)
    744 OPENMP_TARGET_TEAMS_CLAUSE(device)
    745 OPENMP_TARGET_TEAMS_CLAUSE(map)
    746 OPENMP_TARGET_TEAMS_CLAUSE(private)
    747 OPENMP_TARGET_TEAMS_CLAUSE(nowait)
    748 OPENMP_TARGET_TEAMS_CLAUSE(depend)
    749 OPENMP_TARGET_TEAMS_CLAUSE(defaultmap)
    750 OPENMP_TARGET_TEAMS_CLAUSE(firstprivate)
    751 OPENMP_TARGET_TEAMS_CLAUSE(is_device_ptr)
    752 OPENMP_TARGET_TEAMS_CLAUSE(default)
    753 OPENMP_TARGET_TEAMS_CLAUSE(shared)
    754 OPENMP_TARGET_TEAMS_CLAUSE(reduction)
    755 OPENMP_TARGET_TEAMS_CLAUSE(num_teams)
    756 OPENMP_TARGET_TEAMS_CLAUSE(thread_limit)
    757 
    758 // Clauses allowed for OpenMP directive 'target teams distribute'.
    759 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(if)
    760 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(device)
    761 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(map)
    762 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(private)
    763 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(nowait)
    764 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(depend)
    765 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(defaultmap)
    766 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(firstprivate)
    767 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(is_device_ptr)
    768 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(default)
    769 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(shared)
    770 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(reduction)
    771 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(num_teams)
    772 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(thread_limit)
    773 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(lastprivate)
    774 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(collapse)
    775 OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE(dist_schedule)
    776 
    777 // Clauses allowed for OpenMP directive 'target teams distribute parallel for'.
    778 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(if)
    779 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(device)
    780 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(map)
    781 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(private)
    782 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(nowait)
    783 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(depend)
    784 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(defaultmap)
    785 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(firstprivate)
    786 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(is_device_ptr)
    787 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(default)
    788 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(shared)
    789 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(reduction)
    790 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_teams)
    791 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(thread_limit)
    792 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(lastprivate)
    793 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(collapse)
    794 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(dist_schedule)
    795 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(num_threads)
    796 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(proc_bind)
    797 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(schedule)
    798 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE(linear)
    799 
    800 // Clauses allowed for OpenMP directive
    801 // 'target teams distribute parallel for simd'.
    802 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(if)
    803 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(device)
    804 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(map)
    805 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(private)
    806 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(nowait)
    807 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(depend)
    808 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(defaultmap)
    809 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
    810 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(is_device_ptr)
    811 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(default)
    812 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(shared)
    813 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(reduction)
    814 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_teams)
    815 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(thread_limit)
    816 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
    817 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(collapse)
    818 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(dist_schedule)
    819 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
    820 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
    821 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(schedule)
    822 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(linear)
    823 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(aligned)
    824 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(safelen)
    825 OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE(simdlen)
    826 
    827 // Clauses allowed for OpenMP directive 'target teams distribute simd'.
    828 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(if)
    829 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(device)
    830 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(map)
    831 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(private)
    832 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(nowait)
    833 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(depend)
    834 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(defaultmap)
    835 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(firstprivate)
    836 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(lastprivate)
    837 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(is_device_ptr)
    838 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(shared)
    839 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(reduction)
    840 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(num_teams)
    841 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(thread_limit)
    842 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(collapse)
    843 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(dist_schedule)
    844 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(linear)
    845 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(aligned)
    846 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(safelen)
    847 OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE(simdlen)
    848 
    849 #undef OPENMP_TASKLOOP_SIMD_CLAUSE
    850 #undef OPENMP_TASKLOOP_CLAUSE
    851 #undef OPENMP_LINEAR_KIND
    852 #undef OPENMP_DEPEND_KIND
    853 #undef OPENMP_SCHEDULE_MODIFIER
    854 #undef OPENMP_SCHEDULE_KIND
    855 #undef OPENMP_PROC_BIND_KIND
    856 #undef OPENMP_DEFAULT_KIND
    857 #undef OPENMP_DIRECTIVE
    858 #undef OPENMP_DIRECTIVE_EXT
    859 #undef OPENMP_CLAUSE
    860 #undef OPENMP_CRITICAL_CLAUSE
    861 #undef OPENMP_ORDERED_CLAUSE
    862 #undef OPENMP_CANCEL_CLAUSE
    863 #undef OPENMP_SINGLE_CLAUSE
    864 #undef OPENMP_SECTIONS_CLAUSE
    865 #undef OPENMP_PARALLEL_CLAUSE
    866 #undef OPENMP_PARALLEL_FOR_CLAUSE
    867 #undef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
    868 #undef OPENMP_PARALLEL_SECTIONS_CLAUSE
    869 #undef OPENMP_TASK_CLAUSE
    870 #undef OPENMP_ATOMIC_CLAUSE
    871 #undef OPENMP_TARGET_CLAUSE
    872 #undef OPENMP_TARGET_DATA_CLAUSE
    873 #undef OPENMP_TARGET_ENTER_DATA_CLAUSE
    874 #undef OPENMP_TARGET_EXIT_DATA_CLAUSE
    875 #undef OPENMP_TARGET_PARALLEL_CLAUSE
    876 #undef OPENMP_TARGET_PARALLEL_FOR_CLAUSE
    877 #undef OPENMP_TEAMS_CLAUSE
    878 #undef OPENMP_SIMD_CLAUSE
    879 #undef OPENMP_FOR_CLAUSE
    880 #undef OPENMP_FOR_SIMD_CLAUSE
    881 #undef OPENMP_MAP_KIND
    882 #undef OPENMP_DISTRIBUTE_CLAUSE
    883 #undef OPENMP_DIST_SCHEDULE_KIND
    884 #undef OPENMP_DEFAULTMAP_KIND
    885 #undef OPENMP_DEFAULTMAP_MODIFIER
    886 #undef OPENMP_TARGET_UPDATE_CLAUSE
    887 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    888 #undef OPENMP_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    889 #undef OPENMP_DISTRIBUTE_SIMD_CLAUSE
    890 #undef OPENMP_TARGET_PARALLEL_FOR_SIMD_CLAUSE
    891 #undef OPENMP_TARGET_SIMD_CLAUSE
    892 #undef OPENMP_TEAMS_DISTRIBUTE_CLAUSE
    893 #undef OPENMP_TEAMS_DISTRIBUTE_SIMD_CLAUSE
    894 #undef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    895 #undef OPENMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    896 #undef OPENMP_TARGET_TEAMS_CLAUSE
    897 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_CLAUSE
    898 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_CLAUSE
    899 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_CLAUSE
    900 #undef OPENMP_TARGET_TEAMS_DISTRIBUTE_SIMD_CLAUSE
    901