1//===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8/// \file 9/// This file defines the list of supported OpenMP directives and 10/// clauses. 11/// 12//===----------------------------------------------------------------------===// 13 14#ifndef OPENMP_SCHEDULE_KIND 15#define OPENMP_SCHEDULE_KIND(Name) 16#endif 17#ifndef OPENMP_SCHEDULE_MODIFIER 18#define OPENMP_SCHEDULE_MODIFIER(Name) 19#endif 20#ifndef OPENMP_DEPEND_KIND 21#define OPENMP_DEPEND_KIND(Name) 22#endif 23#ifndef OPENMP_LINEAR_KIND 24#define OPENMP_LINEAR_KIND(Name) 25#endif 26#ifndef OPENMP_MAP_KIND 27#define OPENMP_MAP_KIND(Name) 28#endif 29#ifndef OPENMP_MAP_MODIFIER_KIND 30#define OPENMP_MAP_MODIFIER_KIND(Name) 31#endif 32#ifndef OPENMP_TO_MODIFIER_KIND 33#define OPENMP_TO_MODIFIER_KIND(Name) 34#endif 35#ifndef OPENMP_FROM_MODIFIER_KIND 36#define OPENMP_FROM_MODIFIER_KIND(Name) 37#endif 38#ifndef OPENMP_DIST_SCHEDULE_KIND 39#define OPENMP_DIST_SCHEDULE_KIND(Name) 40#endif 41#ifndef OPENMP_DEFAULTMAP_KIND 42#define OPENMP_DEFAULTMAP_KIND(Name) 43#endif 44#ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND 45#define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name) 46#endif 47#ifndef OPENMP_DEFAULTMAP_MODIFIER 48#define OPENMP_DEFAULTMAP_MODIFIER(Name) 49#endif 50#ifndef OPENMP_DEVICE_TYPE_KIND 51#define OPENMP_DEVICE_TYPE_KIND(Name) 52#endif 53#ifndef OPENMP_LASTPRIVATE_KIND 54#define OPENMP_LASTPRIVATE_KIND(Name) 55#endif 56#ifndef OPENMP_ORDER_KIND 57#define OPENMP_ORDER_KIND(Name) 58#endif 59#ifndef OPENMP_DEVICE_MODIFIER 60#define OPENMP_DEVICE_MODIFIER(Name) 61#endif 62#ifndef OPENMP_REDUCTION_MODIFIER 63#define OPENMP_REDUCTION_MODIFIER(Name) 64#endif 65 66// Static attributes for 'schedule' clause. 67OPENMP_SCHEDULE_KIND(static) 68OPENMP_SCHEDULE_KIND(dynamic) 69OPENMP_SCHEDULE_KIND(guided) 70OPENMP_SCHEDULE_KIND(auto) 71OPENMP_SCHEDULE_KIND(runtime) 72 73// Modifiers for 'schedule' clause. 74OPENMP_SCHEDULE_MODIFIER(monotonic) 75OPENMP_SCHEDULE_MODIFIER(nonmonotonic) 76OPENMP_SCHEDULE_MODIFIER(simd) 77 78// Modifiers for 'device' clause. 79OPENMP_DEVICE_MODIFIER(ancestor) 80OPENMP_DEVICE_MODIFIER(device_num) 81 82// Static attributes for 'defaultmap' clause. 83OPENMP_DEFAULTMAP_KIND(scalar) 84OPENMP_DEFAULTMAP_KIND(aggregate) 85OPENMP_DEFAULTMAP_KIND(pointer) 86 87// Modifiers for 'defaultmap' clause. 88OPENMP_DEFAULTMAP_MODIFIER(alloc) 89OPENMP_DEFAULTMAP_MODIFIER(to) 90OPENMP_DEFAULTMAP_MODIFIER(from) 91OPENMP_DEFAULTMAP_MODIFIER(tofrom) 92OPENMP_DEFAULTMAP_MODIFIER(firstprivate) 93OPENMP_DEFAULTMAP_MODIFIER(none) 94OPENMP_DEFAULTMAP_MODIFIER(default) 95 96// Static attributes for 'depend' clause. 97OPENMP_DEPEND_KIND(in) 98OPENMP_DEPEND_KIND(out) 99OPENMP_DEPEND_KIND(inout) 100OPENMP_DEPEND_KIND(mutexinoutset) 101OPENMP_DEPEND_KIND(depobj) 102OPENMP_DEPEND_KIND(source) 103OPENMP_DEPEND_KIND(sink) 104 105// Modifiers for 'linear' clause. 106OPENMP_LINEAR_KIND(val) 107OPENMP_LINEAR_KIND(ref) 108OPENMP_LINEAR_KIND(uval) 109 110// Modifiers for 'atomic_default_mem_order' clause. 111OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst) 112OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel) 113OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed) 114 115// Map types for 'map' clause. 116OPENMP_MAP_KIND(alloc) 117OPENMP_MAP_KIND(to) 118OPENMP_MAP_KIND(from) 119OPENMP_MAP_KIND(tofrom) 120OPENMP_MAP_KIND(delete) 121OPENMP_MAP_KIND(release) 122 123// Map-type-modifiers for 'map' clause. 124OPENMP_MAP_MODIFIER_KIND(always) 125OPENMP_MAP_MODIFIER_KIND(close) 126OPENMP_MAP_MODIFIER_KIND(mapper) 127 128// Modifiers for 'to' clause. 129OPENMP_TO_MODIFIER_KIND(mapper) 130 131// Modifiers for 'from' clause. 132OPENMP_FROM_MODIFIER_KIND(mapper) 133 134// Static attributes for 'dist_schedule' clause. 135OPENMP_DIST_SCHEDULE_KIND(static) 136 137// Device types for 'device_type' clause. 138OPENMP_DEVICE_TYPE_KIND(host) 139OPENMP_DEVICE_TYPE_KIND(nohost) 140OPENMP_DEVICE_TYPE_KIND(any) 141 142// Type of the 'lastprivate' clause. 143OPENMP_LASTPRIVATE_KIND(conditional) 144 145// Type of the 'order' clause. 146OPENMP_ORDER_KIND(concurrent) 147 148// Modifiers for 'reduction' clause. 149OPENMP_REDUCTION_MODIFIER(default) 150OPENMP_REDUCTION_MODIFIER(inscan) 151OPENMP_REDUCTION_MODIFIER(task) 152 153#undef OPENMP_REDUCTION_MODIFIER 154#undef OPENMP_DEVICE_MODIFIER 155#undef OPENMP_ORDER_KIND 156#undef OPENMP_LASTPRIVATE_KIND 157#undef OPENMP_DEVICE_TYPE_KIND 158#undef OPENMP_LINEAR_KIND 159#undef OPENMP_DEPEND_KIND 160#undef OPENMP_SCHEDULE_MODIFIER 161#undef OPENMP_SCHEDULE_KIND 162#undef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND 163#undef OPENMP_MAP_KIND 164#undef OPENMP_MAP_MODIFIER_KIND 165#undef OPENMP_TO_MODIFIER_KIND 166#undef OPENMP_FROM_MODIFIER_KIND 167#undef OPENMP_DIST_SCHEDULE_KIND 168#undef OPENMP_DEFAULTMAP_KIND 169#undef OPENMP_DEFAULTMAP_MODIFIER 170 171