OpenMPKinds.def 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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. #ifndef OPENMP_SCHEDULE_KIND
  14. #define OPENMP_SCHEDULE_KIND(Name)
  15. #endif
  16. #ifndef OPENMP_SCHEDULE_MODIFIER
  17. #define OPENMP_SCHEDULE_MODIFIER(Name)
  18. #endif
  19. #ifndef OPENMP_DEPEND_KIND
  20. #define OPENMP_DEPEND_KIND(Name)
  21. #endif
  22. #ifndef OPENMP_LINEAR_KIND
  23. #define OPENMP_LINEAR_KIND(Name)
  24. #endif
  25. #ifndef OPENMP_MAP_KIND
  26. #define OPENMP_MAP_KIND(Name)
  27. #endif
  28. #ifndef OPENMP_MAP_MODIFIER_KIND
  29. #define OPENMP_MAP_MODIFIER_KIND(Name)
  30. #endif
  31. #ifndef OPENMP_MOTION_MODIFIER_KIND
  32. #define OPENMP_MOTION_MODIFIER_KIND(Name)
  33. #endif
  34. #ifndef OPENMP_DIST_SCHEDULE_KIND
  35. #define OPENMP_DIST_SCHEDULE_KIND(Name)
  36. #endif
  37. #ifndef OPENMP_DEFAULTMAP_KIND
  38. #define OPENMP_DEFAULTMAP_KIND(Name)
  39. #endif
  40. #ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
  41. #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)
  42. #endif
  43. #ifndef OPENMP_DEFAULTMAP_MODIFIER
  44. #define OPENMP_DEFAULTMAP_MODIFIER(Name)
  45. #endif
  46. #ifndef OPENMP_DEVICE_TYPE_KIND
  47. #define OPENMP_DEVICE_TYPE_KIND(Name)
  48. #endif
  49. #ifndef OPENMP_LASTPRIVATE_KIND
  50. #define OPENMP_LASTPRIVATE_KIND(Name)
  51. #endif
  52. #ifndef OPENMP_ORDER_KIND
  53. #define OPENMP_ORDER_KIND(Name)
  54. #endif
  55. #ifndef OPENMP_DEVICE_MODIFIER
  56. #define OPENMP_DEVICE_MODIFIER(Name)
  57. #endif
  58. #ifndef OPENMP_REDUCTION_MODIFIER
  59. #define OPENMP_REDUCTION_MODIFIER(Name)
  60. #endif
  61. #ifndef OPENMP_ADJUST_ARGS_KIND
  62. #define OPENMP_ADJUST_ARGS_KIND(Name)
  63. #endif
  64. #ifndef OPENMP_BIND_KIND
  65. #define OPENMP_BIND_KIND(Name)
  66. #endif
  67. // Static attributes for 'schedule' clause.
  68. OPENMP_SCHEDULE_KIND(static)
  69. OPENMP_SCHEDULE_KIND(dynamic)
  70. OPENMP_SCHEDULE_KIND(guided)
  71. OPENMP_SCHEDULE_KIND(auto)
  72. OPENMP_SCHEDULE_KIND(runtime)
  73. // Modifiers for 'schedule' clause.
  74. OPENMP_SCHEDULE_MODIFIER(monotonic)
  75. OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
  76. OPENMP_SCHEDULE_MODIFIER(simd)
  77. // Modifiers for 'device' clause.
  78. OPENMP_DEVICE_MODIFIER(ancestor)
  79. OPENMP_DEVICE_MODIFIER(device_num)
  80. // Static attributes for 'defaultmap' clause.
  81. OPENMP_DEFAULTMAP_KIND(scalar)
  82. OPENMP_DEFAULTMAP_KIND(aggregate)
  83. OPENMP_DEFAULTMAP_KIND(pointer)
  84. // Modifiers for 'defaultmap' clause.
  85. OPENMP_DEFAULTMAP_MODIFIER(alloc)
  86. OPENMP_DEFAULTMAP_MODIFIER(to)
  87. OPENMP_DEFAULTMAP_MODIFIER(from)
  88. OPENMP_DEFAULTMAP_MODIFIER(tofrom)
  89. OPENMP_DEFAULTMAP_MODIFIER(firstprivate)
  90. OPENMP_DEFAULTMAP_MODIFIER(none)
  91. OPENMP_DEFAULTMAP_MODIFIER(default)
  92. OPENMP_DEFAULTMAP_MODIFIER(present)
  93. // Static attributes for 'depend' clause.
  94. OPENMP_DEPEND_KIND(in)
  95. OPENMP_DEPEND_KIND(out)
  96. OPENMP_DEPEND_KIND(inout)
  97. OPENMP_DEPEND_KIND(mutexinoutset)
  98. OPENMP_DEPEND_KIND(depobj)
  99. OPENMP_DEPEND_KIND(source)
  100. OPENMP_DEPEND_KIND(sink)
  101. // Modifiers for 'linear' clause.
  102. OPENMP_LINEAR_KIND(val)
  103. OPENMP_LINEAR_KIND(ref)
  104. OPENMP_LINEAR_KIND(uval)
  105. // Modifiers for 'atomic_default_mem_order' clause.
  106. OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst)
  107. OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel)
  108. OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed)
  109. // Map types for 'map' clause.
  110. OPENMP_MAP_KIND(alloc)
  111. OPENMP_MAP_KIND(to)
  112. OPENMP_MAP_KIND(from)
  113. OPENMP_MAP_KIND(tofrom)
  114. OPENMP_MAP_KIND(delete)
  115. OPENMP_MAP_KIND(release)
  116. // Map-type-modifiers for 'map' clause.
  117. OPENMP_MAP_MODIFIER_KIND(always)
  118. OPENMP_MAP_MODIFIER_KIND(close)
  119. OPENMP_MAP_MODIFIER_KIND(mapper)
  120. OPENMP_MAP_MODIFIER_KIND(present)
  121. // This is an OpenMP extension for the sake of OpenACC support.
  122. OPENMP_MAP_MODIFIER_KIND(ompx_hold)
  123. // Modifiers for 'to' or 'from' clause.
  124. OPENMP_MOTION_MODIFIER_KIND(mapper)
  125. OPENMP_MOTION_MODIFIER_KIND(present)
  126. // Static attributes for 'dist_schedule' clause.
  127. OPENMP_DIST_SCHEDULE_KIND(static)
  128. // Device types for 'device_type' clause.
  129. OPENMP_DEVICE_TYPE_KIND(host)
  130. OPENMP_DEVICE_TYPE_KIND(nohost)
  131. OPENMP_DEVICE_TYPE_KIND(any)
  132. // Type of the 'lastprivate' clause.
  133. OPENMP_LASTPRIVATE_KIND(conditional)
  134. // Type of the 'order' clause.
  135. OPENMP_ORDER_KIND(concurrent)
  136. // Modifiers for 'reduction' clause.
  137. OPENMP_REDUCTION_MODIFIER(default)
  138. OPENMP_REDUCTION_MODIFIER(inscan)
  139. OPENMP_REDUCTION_MODIFIER(task)
  140. // Adjust-op kinds for the 'adjust_args' clause.
  141. OPENMP_ADJUST_ARGS_KIND(nothing)
  142. OPENMP_ADJUST_ARGS_KIND(need_device_ptr)
  143. // Binding kinds for the 'bind' clause.
  144. OPENMP_BIND_KIND(teams)
  145. OPENMP_BIND_KIND(parallel)
  146. OPENMP_BIND_KIND(thread)
  147. #undef OPENMP_BIND_KIND
  148. #undef OPENMP_ADJUST_ARGS_KIND
  149. #undef OPENMP_REDUCTION_MODIFIER
  150. #undef OPENMP_DEVICE_MODIFIER
  151. #undef OPENMP_ORDER_KIND
  152. #undef OPENMP_LASTPRIVATE_KIND
  153. #undef OPENMP_DEVICE_TYPE_KIND
  154. #undef OPENMP_LINEAR_KIND
  155. #undef OPENMP_DEPEND_KIND
  156. #undef OPENMP_SCHEDULE_MODIFIER
  157. #undef OPENMP_SCHEDULE_KIND
  158. #undef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
  159. #undef OPENMP_MAP_KIND
  160. #undef OPENMP_MAP_MODIFIER_KIND
  161. #undef OPENMP_MOTION_MODIFIER_KIND
  162. #undef OPENMP_DIST_SCHEDULE_KIND
  163. #undef OPENMP_DEFAULTMAP_KIND
  164. #undef OPENMP_DEFAULTMAP_MODIFIER