| //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| /// \file |
| /// This file defines the list of supported OpenMP directives and |
| /// clauses. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef OPENMP_SCHEDULE_KIND |
| #define OPENMP_SCHEDULE_KIND(Name) |
| #endif |
| #ifndef OPENMP_SCHEDULE_MODIFIER |
| #define OPENMP_SCHEDULE_MODIFIER(Name) |
| #endif |
| #ifndef OPENMP_DEPEND_KIND |
| #define OPENMP_DEPEND_KIND(Name) |
| #endif |
| #ifndef OPENMP_LINEAR_KIND |
| #define OPENMP_LINEAR_KIND(Name) |
| #endif |
| #ifndef OPENMP_MAP_KIND |
| #define OPENMP_MAP_KIND(Name) |
| #endif |
| #ifndef OPENMP_MAP_MODIFIER_KIND |
| #define OPENMP_MAP_MODIFIER_KIND(Name) |
| #endif |
| #ifndef OPENMP_MOTION_MODIFIER_KIND |
| #define OPENMP_MOTION_MODIFIER_KIND(Name) |
| #endif |
| #ifndef OPENMP_DIST_SCHEDULE_KIND |
| #define OPENMP_DIST_SCHEDULE_KIND(Name) |
| #endif |
| #ifndef OPENMP_DEFAULTMAP_KIND |
| #define OPENMP_DEFAULTMAP_KIND(Name) |
| #endif |
| #ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND |
| #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name) |
| #endif |
| #ifndef OPENMP_DEFAULTMAP_MODIFIER |
| #define OPENMP_DEFAULTMAP_MODIFIER(Name) |
| #endif |
| #ifndef OPENMP_DEVICE_TYPE_KIND |
| #define OPENMP_DEVICE_TYPE_KIND(Name) |
| #endif |
| #ifndef OPENMP_LASTPRIVATE_KIND |
| #define OPENMP_LASTPRIVATE_KIND(Name) |
| #endif |
| #ifndef OPENMP_ORDER_KIND |
| #define OPENMP_ORDER_KIND(Name) |
| #endif |
| #ifndef OPENMP_DEVICE_MODIFIER |
| #define OPENMP_DEVICE_MODIFIER(Name) |
| #endif |
| #ifndef OPENMP_REDUCTION_MODIFIER |
| #define OPENMP_REDUCTION_MODIFIER(Name) |
| #endif |
| #ifndef OPENMP_ADJUST_ARGS_KIND |
| #define OPENMP_ADJUST_ARGS_KIND(Name) |
| #endif |
| #ifndef OPENMP_BIND_KIND |
| #define OPENMP_BIND_KIND(Name) |
| #endif |
| |
| // Static attributes for 'schedule' clause. |
| OPENMP_SCHEDULE_KIND(static) |
| OPENMP_SCHEDULE_KIND(dynamic) |
| OPENMP_SCHEDULE_KIND(guided) |
| OPENMP_SCHEDULE_KIND(auto) |
| OPENMP_SCHEDULE_KIND(runtime) |
| |
| // Modifiers for 'schedule' clause. |
| OPENMP_SCHEDULE_MODIFIER(monotonic) |
| OPENMP_SCHEDULE_MODIFIER(nonmonotonic) |
| OPENMP_SCHEDULE_MODIFIER(simd) |
| |
| // Modifiers for 'device' clause. |
| OPENMP_DEVICE_MODIFIER(ancestor) |
| OPENMP_DEVICE_MODIFIER(device_num) |
| |
| // Static attributes for 'defaultmap' clause. |
| OPENMP_DEFAULTMAP_KIND(scalar) |
| OPENMP_DEFAULTMAP_KIND(aggregate) |
| OPENMP_DEFAULTMAP_KIND(pointer) |
| |
| // Modifiers for 'defaultmap' clause. |
| OPENMP_DEFAULTMAP_MODIFIER(alloc) |
| OPENMP_DEFAULTMAP_MODIFIER(to) |
| OPENMP_DEFAULTMAP_MODIFIER(from) |
| OPENMP_DEFAULTMAP_MODIFIER(tofrom) |
| OPENMP_DEFAULTMAP_MODIFIER(firstprivate) |
| OPENMP_DEFAULTMAP_MODIFIER(none) |
| OPENMP_DEFAULTMAP_MODIFIER(default) |
| OPENMP_DEFAULTMAP_MODIFIER(present) |
| |
| // Static attributes for 'depend' clause. |
| OPENMP_DEPEND_KIND(in) |
| OPENMP_DEPEND_KIND(out) |
| OPENMP_DEPEND_KIND(inout) |
| OPENMP_DEPEND_KIND(mutexinoutset) |
| OPENMP_DEPEND_KIND(depobj) |
| OPENMP_DEPEND_KIND(source) |
| OPENMP_DEPEND_KIND(sink) |
| |
| // Modifiers for 'linear' clause. |
| OPENMP_LINEAR_KIND(val) |
| OPENMP_LINEAR_KIND(ref) |
| OPENMP_LINEAR_KIND(uval) |
| |
| // Modifiers for 'atomic_default_mem_order' clause. |
| OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst) |
| OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel) |
| OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed) |
| |
| // Map types for 'map' clause. |
| OPENMP_MAP_KIND(alloc) |
| OPENMP_MAP_KIND(to) |
| OPENMP_MAP_KIND(from) |
| OPENMP_MAP_KIND(tofrom) |
| OPENMP_MAP_KIND(delete) |
| OPENMP_MAP_KIND(release) |
| |
| // Map-type-modifiers for 'map' clause. |
| OPENMP_MAP_MODIFIER_KIND(always) |
| OPENMP_MAP_MODIFIER_KIND(close) |
| OPENMP_MAP_MODIFIER_KIND(mapper) |
| OPENMP_MAP_MODIFIER_KIND(present) |
| // This is an OpenMP extension for the sake of OpenACC support. |
| OPENMP_MAP_MODIFIER_KIND(ompx_hold) |
| |
| // Modifiers for 'to' or 'from' clause. |
| OPENMP_MOTION_MODIFIER_KIND(mapper) |
| OPENMP_MOTION_MODIFIER_KIND(present) |
| |
| // Static attributes for 'dist_schedule' clause. |
| OPENMP_DIST_SCHEDULE_KIND(static) |
| |
| // Device types for 'device_type' clause. |
| OPENMP_DEVICE_TYPE_KIND(host) |
| OPENMP_DEVICE_TYPE_KIND(nohost) |
| OPENMP_DEVICE_TYPE_KIND(any) |
| |
| // Type of the 'lastprivate' clause. |
| OPENMP_LASTPRIVATE_KIND(conditional) |
| |
| // Type of the 'order' clause. |
| OPENMP_ORDER_KIND(concurrent) |
| |
| // Modifiers for 'reduction' clause. |
| OPENMP_REDUCTION_MODIFIER(default) |
| OPENMP_REDUCTION_MODIFIER(inscan) |
| OPENMP_REDUCTION_MODIFIER(task) |
| |
| // Adjust-op kinds for the 'adjust_args' clause. |
| OPENMP_ADJUST_ARGS_KIND(nothing) |
| OPENMP_ADJUST_ARGS_KIND(need_device_ptr) |
| |
| // Binding kinds for the 'bind' clause. |
| OPENMP_BIND_KIND(teams) |
| OPENMP_BIND_KIND(parallel) |
| OPENMP_BIND_KIND(thread) |
| |
| #undef OPENMP_BIND_KIND |
| #undef OPENMP_ADJUST_ARGS_KIND |
| #undef OPENMP_REDUCTION_MODIFIER |
| #undef OPENMP_DEVICE_MODIFIER |
| #undef OPENMP_ORDER_KIND |
| #undef OPENMP_LASTPRIVATE_KIND |
| #undef OPENMP_DEVICE_TYPE_KIND |
| #undef OPENMP_LINEAR_KIND |
| #undef OPENMP_DEPEND_KIND |
| #undef OPENMP_SCHEDULE_MODIFIER |
| #undef OPENMP_SCHEDULE_KIND |
| #undef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND |
| #undef OPENMP_MAP_KIND |
| #undef OPENMP_MAP_MODIFIER_KIND |
| #undef OPENMP_MOTION_MODIFIER_KIND |
| #undef OPENMP_DIST_SCHEDULE_KIND |
| #undef OPENMP_DEFAULTMAP_KIND |
| #undef OPENMP_DEFAULTMAP_MODIFIER |
| |