1#ifndef LLVM_OpenMP_INC 2#define LLVM_OpenMP_INC 3 4#include "llvm/ADT/BitmaskEnum.h" 5 6namespace llvm { 7class StringRef; 8namespace omp { 9 10LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); 11 12enum class Directive { 13 OMPD_allocate, 14 OMPD_allocators, 15 OMPD_assumes, 16 OMPD_atomic, 17 OMPD_barrier, 18 OMPD_begin_assumes, 19 OMPD_begin_declare_target, 20 OMPD_begin_declare_variant, 21 OMPD_cancel, 22 OMPD_cancellation_point, 23 OMPD_critical, 24 OMPD_declare_mapper, 25 OMPD_declare_reduction, 26 OMPD_declare_simd, 27 OMPD_declare_target, 28 OMPD_declare_variant, 29 OMPD_depobj, 30 OMPD_distribute, 31 OMPD_distribute_parallel_do, 32 OMPD_distribute_parallel_do_simd, 33 OMPD_distribute_parallel_for, 34 OMPD_distribute_parallel_for_simd, 35 OMPD_distribute_simd, 36 OMPD_do, 37 OMPD_do_simd, 38 OMPD_end_assumes, 39 OMPD_end_declare_target, 40 OMPD_end_declare_variant, 41 OMPD_end_do, 42 OMPD_end_do_simd, 43 OMPD_end_sections, 44 OMPD_end_single, 45 OMPD_end_workshare, 46 OMPD_error, 47 OMPD_flush, 48 OMPD_for, 49 OMPD_for_simd, 50 OMPD_masked_taskloop, 51 OMPD_masked_taskloop_simd, 52 OMPD_master, 53 OMPD_master_taskloop, 54 OMPD_master_taskloop_simd, 55 OMPD_metadirective, 56 OMPD_nothing, 57 OMPD_ordered, 58 OMPD_parallel, 59 OMPD_parallel_do, 60 OMPD_parallel_do_simd, 61 OMPD_parallel_for, 62 OMPD_parallel_for_simd, 63 OMPD_parallel_masked, 64 OMPD_parallel_masked_taskloop, 65 OMPD_parallel_masked_taskloop_simd, 66 OMPD_parallel_master, 67 OMPD_parallel_master_taskloop, 68 OMPD_parallel_master_taskloop_simd, 69 OMPD_parallel_sections, 70 OMPD_parallel_workshare, 71 OMPD_requires, 72 OMPD_scan, 73 OMPD_section, 74 OMPD_sections, 75 OMPD_simd, 76 OMPD_single, 77 OMPD_target, 78 OMPD_target_data, 79 OMPD_target_enter_data, 80 OMPD_target_exit_data, 81 OMPD_target_parallel, 82 OMPD_target_parallel_do, 83 OMPD_target_parallel_do_simd, 84 OMPD_target_parallel_for, 85 OMPD_target_parallel_for_simd, 86 OMPD_target_simd, 87 OMPD_target_teams, 88 OMPD_target_teams_distribute, 89 OMPD_target_teams_distribute_parallel_do, 90 OMPD_target_teams_distribute_parallel_do_simd, 91 OMPD_target_teams_distribute_parallel_for, 92 OMPD_target_teams_distribute_parallel_for_simd, 93 OMPD_target_teams_distribute_simd, 94 OMPD_target_update, 95 OMPD_task, 96 OMPD_taskgroup, 97 OMPD_taskloop, 98 OMPD_taskloop_simd, 99 OMPD_taskwait, 100 OMPD_taskyield, 101 OMPD_teams, 102 OMPD_teams_distribute, 103 OMPD_teams_distribute_parallel_do, 104 OMPD_teams_distribute_parallel_do_simd, 105 OMPD_teams_distribute_parallel_for, 106 OMPD_teams_distribute_parallel_for_simd, 107 OMPD_teams_distribute_simd, 108 OMPD_threadprivate, 109 OMPD_tile, 110 OMPD_unknown, 111 OMPD_unroll, 112 OMPD_workshare, 113 OMPD_dispatch, 114 OMPD_interop, 115 OMPD_loop, 116 OMPD_masked, 117 OMPD_parallel_loop, 118 OMPD_scope, 119 OMPD_target_parallel_loop, 120 OMPD_target_teams_loop, 121 OMPD_teams_loop, 122}; 123 124static constexpr std::size_t Directive_enumSize = 109; 125 126constexpr auto OMPD_allocate = llvm::omp::Directive::OMPD_allocate; 127constexpr auto OMPD_allocators = llvm::omp::Directive::OMPD_allocators; 128constexpr auto OMPD_assumes = llvm::omp::Directive::OMPD_assumes; 129constexpr auto OMPD_atomic = llvm::omp::Directive::OMPD_atomic; 130constexpr auto OMPD_barrier = llvm::omp::Directive::OMPD_barrier; 131constexpr auto OMPD_begin_assumes = llvm::omp::Directive::OMPD_begin_assumes; 132constexpr auto OMPD_begin_declare_target = llvm::omp::Directive::OMPD_begin_declare_target; 133constexpr auto OMPD_begin_declare_variant = llvm::omp::Directive::OMPD_begin_declare_variant; 134constexpr auto OMPD_cancel = llvm::omp::Directive::OMPD_cancel; 135constexpr auto OMPD_cancellation_point = llvm::omp::Directive::OMPD_cancellation_point; 136constexpr auto OMPD_critical = llvm::omp::Directive::OMPD_critical; 137constexpr auto OMPD_declare_mapper = llvm::omp::Directive::OMPD_declare_mapper; 138constexpr auto OMPD_declare_reduction = llvm::omp::Directive::OMPD_declare_reduction; 139constexpr auto OMPD_declare_simd = llvm::omp::Directive::OMPD_declare_simd; 140constexpr auto OMPD_declare_target = llvm::omp::Directive::OMPD_declare_target; 141constexpr auto OMPD_declare_variant = llvm::omp::Directive::OMPD_declare_variant; 142constexpr auto OMPD_depobj = llvm::omp::Directive::OMPD_depobj; 143constexpr auto OMPD_distribute = llvm::omp::Directive::OMPD_distribute; 144constexpr auto OMPD_distribute_parallel_do = llvm::omp::Directive::OMPD_distribute_parallel_do; 145constexpr auto OMPD_distribute_parallel_do_simd = llvm::omp::Directive::OMPD_distribute_parallel_do_simd; 146constexpr auto OMPD_distribute_parallel_for = llvm::omp::Directive::OMPD_distribute_parallel_for; 147constexpr auto OMPD_distribute_parallel_for_simd = llvm::omp::Directive::OMPD_distribute_parallel_for_simd; 148constexpr auto OMPD_distribute_simd = llvm::omp::Directive::OMPD_distribute_simd; 149constexpr auto OMPD_do = llvm::omp::Directive::OMPD_do; 150constexpr auto OMPD_do_simd = llvm::omp::Directive::OMPD_do_simd; 151constexpr auto OMPD_end_assumes = llvm::omp::Directive::OMPD_end_assumes; 152constexpr auto OMPD_end_declare_target = llvm::omp::Directive::OMPD_end_declare_target; 153constexpr auto OMPD_end_declare_variant = llvm::omp::Directive::OMPD_end_declare_variant; 154constexpr auto OMPD_end_do = llvm::omp::Directive::OMPD_end_do; 155constexpr auto OMPD_end_do_simd = llvm::omp::Directive::OMPD_end_do_simd; 156constexpr auto OMPD_end_sections = llvm::omp::Directive::OMPD_end_sections; 157constexpr auto OMPD_end_single = llvm::omp::Directive::OMPD_end_single; 158constexpr auto OMPD_end_workshare = llvm::omp::Directive::OMPD_end_workshare; 159constexpr auto OMPD_error = llvm::omp::Directive::OMPD_error; 160constexpr auto OMPD_flush = llvm::omp::Directive::OMPD_flush; 161constexpr auto OMPD_for = llvm::omp::Directive::OMPD_for; 162constexpr auto OMPD_for_simd = llvm::omp::Directive::OMPD_for_simd; 163constexpr auto OMPD_masked_taskloop = llvm::omp::Directive::OMPD_masked_taskloop; 164constexpr auto OMPD_masked_taskloop_simd = llvm::omp::Directive::OMPD_masked_taskloop_simd; 165constexpr auto OMPD_master = llvm::omp::Directive::OMPD_master; 166constexpr auto OMPD_master_taskloop = llvm::omp::Directive::OMPD_master_taskloop; 167constexpr auto OMPD_master_taskloop_simd = llvm::omp::Directive::OMPD_master_taskloop_simd; 168constexpr auto OMPD_metadirective = llvm::omp::Directive::OMPD_metadirective; 169constexpr auto OMPD_nothing = llvm::omp::Directive::OMPD_nothing; 170constexpr auto OMPD_ordered = llvm::omp::Directive::OMPD_ordered; 171constexpr auto OMPD_parallel = llvm::omp::Directive::OMPD_parallel; 172constexpr auto OMPD_parallel_do = llvm::omp::Directive::OMPD_parallel_do; 173constexpr auto OMPD_parallel_do_simd = llvm::omp::Directive::OMPD_parallel_do_simd; 174constexpr auto OMPD_parallel_for = llvm::omp::Directive::OMPD_parallel_for; 175constexpr auto OMPD_parallel_for_simd = llvm::omp::Directive::OMPD_parallel_for_simd; 176constexpr auto OMPD_parallel_masked = llvm::omp::Directive::OMPD_parallel_masked; 177constexpr auto OMPD_parallel_masked_taskloop = llvm::omp::Directive::OMPD_parallel_masked_taskloop; 178constexpr auto OMPD_parallel_masked_taskloop_simd = llvm::omp::Directive::OMPD_parallel_masked_taskloop_simd; 179constexpr auto OMPD_parallel_master = llvm::omp::Directive::OMPD_parallel_master; 180constexpr auto OMPD_parallel_master_taskloop = llvm::omp::Directive::OMPD_parallel_master_taskloop; 181constexpr auto OMPD_parallel_master_taskloop_simd = llvm::omp::Directive::OMPD_parallel_master_taskloop_simd; 182constexpr auto OMPD_parallel_sections = llvm::omp::Directive::OMPD_parallel_sections; 183constexpr auto OMPD_parallel_workshare = llvm::omp::Directive::OMPD_parallel_workshare; 184constexpr auto OMPD_requires = llvm::omp::Directive::OMPD_requires; 185constexpr auto OMPD_scan = llvm::omp::Directive::OMPD_scan; 186constexpr auto OMPD_section = llvm::omp::Directive::OMPD_section; 187constexpr auto OMPD_sections = llvm::omp::Directive::OMPD_sections; 188constexpr auto OMPD_simd = llvm::omp::Directive::OMPD_simd; 189constexpr auto OMPD_single = llvm::omp::Directive::OMPD_single; 190constexpr auto OMPD_target = llvm::omp::Directive::OMPD_target; 191constexpr auto OMPD_target_data = llvm::omp::Directive::OMPD_target_data; 192constexpr auto OMPD_target_enter_data = llvm::omp::Directive::OMPD_target_enter_data; 193constexpr auto OMPD_target_exit_data = llvm::omp::Directive::OMPD_target_exit_data; 194constexpr auto OMPD_target_parallel = llvm::omp::Directive::OMPD_target_parallel; 195constexpr auto OMPD_target_parallel_do = llvm::omp::Directive::OMPD_target_parallel_do; 196constexpr auto OMPD_target_parallel_do_simd = llvm::omp::Directive::OMPD_target_parallel_do_simd; 197constexpr auto OMPD_target_parallel_for = llvm::omp::Directive::OMPD_target_parallel_for; 198constexpr auto OMPD_target_parallel_for_simd = llvm::omp::Directive::OMPD_target_parallel_for_simd; 199constexpr auto OMPD_target_simd = llvm::omp::Directive::OMPD_target_simd; 200constexpr auto OMPD_target_teams = llvm::omp::Directive::OMPD_target_teams; 201constexpr auto OMPD_target_teams_distribute = llvm::omp::Directive::OMPD_target_teams_distribute; 202constexpr auto OMPD_target_teams_distribute_parallel_do = llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do; 203constexpr auto OMPD_target_teams_distribute_parallel_do_simd = llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd; 204constexpr auto OMPD_target_teams_distribute_parallel_for = llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for; 205constexpr auto OMPD_target_teams_distribute_parallel_for_simd = llvm::omp::Directive::OMPD_target_teams_distribute_parallel_for_simd; 206constexpr auto OMPD_target_teams_distribute_simd = llvm::omp::Directive::OMPD_target_teams_distribute_simd; 207constexpr auto OMPD_target_update = llvm::omp::Directive::OMPD_target_update; 208constexpr auto OMPD_task = llvm::omp::Directive::OMPD_task; 209constexpr auto OMPD_taskgroup = llvm::omp::Directive::OMPD_taskgroup; 210constexpr auto OMPD_taskloop = llvm::omp::Directive::OMPD_taskloop; 211constexpr auto OMPD_taskloop_simd = llvm::omp::Directive::OMPD_taskloop_simd; 212constexpr auto OMPD_taskwait = llvm::omp::Directive::OMPD_taskwait; 213constexpr auto OMPD_taskyield = llvm::omp::Directive::OMPD_taskyield; 214constexpr auto OMPD_teams = llvm::omp::Directive::OMPD_teams; 215constexpr auto OMPD_teams_distribute = llvm::omp::Directive::OMPD_teams_distribute; 216constexpr auto OMPD_teams_distribute_parallel_do = llvm::omp::Directive::OMPD_teams_distribute_parallel_do; 217constexpr auto OMPD_teams_distribute_parallel_do_simd = llvm::omp::Directive::OMPD_teams_distribute_parallel_do_simd; 218constexpr auto OMPD_teams_distribute_parallel_for = llvm::omp::Directive::OMPD_teams_distribute_parallel_for; 219constexpr auto OMPD_teams_distribute_parallel_for_simd = llvm::omp::Directive::OMPD_teams_distribute_parallel_for_simd; 220constexpr auto OMPD_teams_distribute_simd = llvm::omp::Directive::OMPD_teams_distribute_simd; 221constexpr auto OMPD_threadprivate = llvm::omp::Directive::OMPD_threadprivate; 222constexpr auto OMPD_tile = llvm::omp::Directive::OMPD_tile; 223constexpr auto OMPD_unknown = llvm::omp::Directive::OMPD_unknown; 224constexpr auto OMPD_unroll = llvm::omp::Directive::OMPD_unroll; 225constexpr auto OMPD_workshare = llvm::omp::Directive::OMPD_workshare; 226constexpr auto OMPD_dispatch = llvm::omp::Directive::OMPD_dispatch; 227constexpr auto OMPD_interop = llvm::omp::Directive::OMPD_interop; 228constexpr auto OMPD_loop = llvm::omp::Directive::OMPD_loop; 229constexpr auto OMPD_masked = llvm::omp::Directive::OMPD_masked; 230constexpr auto OMPD_parallel_loop = llvm::omp::Directive::OMPD_parallel_loop; 231constexpr auto OMPD_scope = llvm::omp::Directive::OMPD_scope; 232constexpr auto OMPD_target_parallel_loop = llvm::omp::Directive::OMPD_target_parallel_loop; 233constexpr auto OMPD_target_teams_loop = llvm::omp::Directive::OMPD_target_teams_loop; 234constexpr auto OMPD_teams_loop = llvm::omp::Directive::OMPD_teams_loop; 235 236enum class Clause { 237 OMPC_acq_rel, 238 OMPC_acquire, 239 OMPC_adjust_args, 240 OMPC_affinity, 241 OMPC_align, 242 OMPC_aligned, 243 OMPC_allocate, 244 OMPC_allocator, 245 OMPC_append_args, 246 OMPC_at, 247 OMPC_atomic_default_mem_order, 248 OMPC_bind, 249 OMPC_cancellation_construct_type, 250 OMPC_capture, 251 OMPC_collapse, 252 OMPC_compare, 253 OMPC_copyprivate, 254 OMPC_copyin, 255 OMPC_default, 256 OMPC_defaultmap, 257 OMPC_depend, 258 OMPC_depobj, 259 OMPC_destroy, 260 OMPC_detach, 261 OMPC_device, 262 OMPC_device_type, 263 OMPC_dist_schedule, 264 OMPC_doacross, 265 OMPC_dynamic_allocators, 266 OMPC_enter, 267 OMPC_exclusive, 268 OMPC_fail, 269 OMPC_filter, 270 OMPC_final, 271 OMPC_firstprivate, 272 OMPC_flush, 273 OMPC_from, 274 OMPC_full, 275 OMPC_grainsize, 276 OMPC_has_device_addr, 277 OMPC_hint, 278 OMPC_if, 279 OMPC_in_reduction, 280 OMPC_inbranch, 281 OMPC_inclusive, 282 OMPC_indirect, 283 OMPC_init, 284 OMPC_is_device_ptr, 285 OMPC_lastprivate, 286 OMPC_linear, 287 OMPC_link, 288 OMPC_map, 289 OMPC_match, 290 OMPC_memory_order, 291 OMPC_mergeable, 292 OMPC_message, 293 OMPC_nogroup, 294 OMPC_nowait, 295 OMPC_nocontext, 296 OMPC_nontemporal, 297 OMPC_notinbranch, 298 OMPC_novariants, 299 OMPC_num_tasks, 300 OMPC_num_teams, 301 OMPC_num_threads, 302 OMPC_ompx_attribute, 303 OMPC_ompx_dyn_cgroup_mem, 304 OMPC_ompx_bare, 305 OMPC_order, 306 OMPC_ordered, 307 OMPC_partial, 308 OMPC_priority, 309 OMPC_private, 310 OMPC_proc_bind, 311 OMPC_read, 312 OMPC_reduction, 313 OMPC_relaxed, 314 OMPC_release, 315 OMPC_reverse_offload, 316 OMPC_safelen, 317 OMPC_schedule, 318 OMPC_seq_cst, 319 OMPC_severity, 320 OMPC_shared, 321 OMPC_simd, 322 OMPC_simdlen, 323 OMPC_sizes, 324 OMPC_task_reduction, 325 OMPC_thread_limit, 326 OMPC_threadprivate, 327 OMPC_threads, 328 OMPC_to, 329 OMPC_unified_address, 330 OMPC_unified_shared_memory, 331 OMPC_uniform, 332 OMPC_unknown, 333 OMPC_untied, 334 OMPC_update, 335 OMPC_use, 336 OMPC_use_device_addr, 337 OMPC_use_device_ptr, 338 OMPC_uses_allocators, 339 OMPC_when, 340 OMPC_write, 341}; 342 343static constexpr std::size_t Clause_enumSize = 104; 344 345constexpr auto OMPC_acq_rel = llvm::omp::Clause::OMPC_acq_rel; 346constexpr auto OMPC_acquire = llvm::omp::Clause::OMPC_acquire; 347constexpr auto OMPC_adjust_args = llvm::omp::Clause::OMPC_adjust_args; 348constexpr auto OMPC_affinity = llvm::omp::Clause::OMPC_affinity; 349constexpr auto OMPC_align = llvm::omp::Clause::OMPC_align; 350constexpr auto OMPC_aligned = llvm::omp::Clause::OMPC_aligned; 351constexpr auto OMPC_allocate = llvm::omp::Clause::OMPC_allocate; 352constexpr auto OMPC_allocator = llvm::omp::Clause::OMPC_allocator; 353constexpr auto OMPC_append_args = llvm::omp::Clause::OMPC_append_args; 354constexpr auto OMPC_at = llvm::omp::Clause::OMPC_at; 355constexpr auto OMPC_atomic_default_mem_order = llvm::omp::Clause::OMPC_atomic_default_mem_order; 356constexpr auto OMPC_bind = llvm::omp::Clause::OMPC_bind; 357constexpr auto OMPC_cancellation_construct_type = llvm::omp::Clause::OMPC_cancellation_construct_type; 358constexpr auto OMPC_capture = llvm::omp::Clause::OMPC_capture; 359constexpr auto OMPC_collapse = llvm::omp::Clause::OMPC_collapse; 360constexpr auto OMPC_compare = llvm::omp::Clause::OMPC_compare; 361constexpr auto OMPC_copyprivate = llvm::omp::Clause::OMPC_copyprivate; 362constexpr auto OMPC_copyin = llvm::omp::Clause::OMPC_copyin; 363constexpr auto OMPC_default = llvm::omp::Clause::OMPC_default; 364constexpr auto OMPC_defaultmap = llvm::omp::Clause::OMPC_defaultmap; 365constexpr auto OMPC_depend = llvm::omp::Clause::OMPC_depend; 366constexpr auto OMPC_depobj = llvm::omp::Clause::OMPC_depobj; 367constexpr auto OMPC_destroy = llvm::omp::Clause::OMPC_destroy; 368constexpr auto OMPC_detach = llvm::omp::Clause::OMPC_detach; 369constexpr auto OMPC_device = llvm::omp::Clause::OMPC_device; 370constexpr auto OMPC_device_type = llvm::omp::Clause::OMPC_device_type; 371constexpr auto OMPC_dist_schedule = llvm::omp::Clause::OMPC_dist_schedule; 372constexpr auto OMPC_doacross = llvm::omp::Clause::OMPC_doacross; 373constexpr auto OMPC_dynamic_allocators = llvm::omp::Clause::OMPC_dynamic_allocators; 374constexpr auto OMPC_enter = llvm::omp::Clause::OMPC_enter; 375constexpr auto OMPC_exclusive = llvm::omp::Clause::OMPC_exclusive; 376constexpr auto OMPC_fail = llvm::omp::Clause::OMPC_fail; 377constexpr auto OMPC_filter = llvm::omp::Clause::OMPC_filter; 378constexpr auto OMPC_final = llvm::omp::Clause::OMPC_final; 379constexpr auto OMPC_firstprivate = llvm::omp::Clause::OMPC_firstprivate; 380constexpr auto OMPC_flush = llvm::omp::Clause::OMPC_flush; 381constexpr auto OMPC_from = llvm::omp::Clause::OMPC_from; 382constexpr auto OMPC_full = llvm::omp::Clause::OMPC_full; 383constexpr auto OMPC_grainsize = llvm::omp::Clause::OMPC_grainsize; 384constexpr auto OMPC_has_device_addr = llvm::omp::Clause::OMPC_has_device_addr; 385constexpr auto OMPC_hint = llvm::omp::Clause::OMPC_hint; 386constexpr auto OMPC_if = llvm::omp::Clause::OMPC_if; 387constexpr auto OMPC_in_reduction = llvm::omp::Clause::OMPC_in_reduction; 388constexpr auto OMPC_inbranch = llvm::omp::Clause::OMPC_inbranch; 389constexpr auto OMPC_inclusive = llvm::omp::Clause::OMPC_inclusive; 390constexpr auto OMPC_indirect = llvm::omp::Clause::OMPC_indirect; 391constexpr auto OMPC_init = llvm::omp::Clause::OMPC_init; 392constexpr auto OMPC_is_device_ptr = llvm::omp::Clause::OMPC_is_device_ptr; 393constexpr auto OMPC_lastprivate = llvm::omp::Clause::OMPC_lastprivate; 394constexpr auto OMPC_linear = llvm::omp::Clause::OMPC_linear; 395constexpr auto OMPC_link = llvm::omp::Clause::OMPC_link; 396constexpr auto OMPC_map = llvm::omp::Clause::OMPC_map; 397constexpr auto OMPC_match = llvm::omp::Clause::OMPC_match; 398constexpr auto OMPC_memory_order = llvm::omp::Clause::OMPC_memory_order; 399constexpr auto OMPC_mergeable = llvm::omp::Clause::OMPC_mergeable; 400constexpr auto OMPC_message = llvm::omp::Clause::OMPC_message; 401constexpr auto OMPC_nogroup = llvm::omp::Clause::OMPC_nogroup; 402constexpr auto OMPC_nowait = llvm::omp::Clause::OMPC_nowait; 403constexpr auto OMPC_nocontext = llvm::omp::Clause::OMPC_nocontext; 404constexpr auto OMPC_nontemporal = llvm::omp::Clause::OMPC_nontemporal; 405constexpr auto OMPC_notinbranch = llvm::omp::Clause::OMPC_notinbranch; 406constexpr auto OMPC_novariants = llvm::omp::Clause::OMPC_novariants; 407constexpr auto OMPC_num_tasks = llvm::omp::Clause::OMPC_num_tasks; 408constexpr auto OMPC_num_teams = llvm::omp::Clause::OMPC_num_teams; 409constexpr auto OMPC_num_threads = llvm::omp::Clause::OMPC_num_threads; 410constexpr auto OMPC_ompx_attribute = llvm::omp::Clause::OMPC_ompx_attribute; 411constexpr auto OMPC_ompx_dyn_cgroup_mem = llvm::omp::Clause::OMPC_ompx_dyn_cgroup_mem; 412constexpr auto OMPC_ompx_bare = llvm::omp::Clause::OMPC_ompx_bare; 413constexpr auto OMPC_order = llvm::omp::Clause::OMPC_order; 414constexpr auto OMPC_ordered = llvm::omp::Clause::OMPC_ordered; 415constexpr auto OMPC_partial = llvm::omp::Clause::OMPC_partial; 416constexpr auto OMPC_priority = llvm::omp::Clause::OMPC_priority; 417constexpr auto OMPC_private = llvm::omp::Clause::OMPC_private; 418constexpr auto OMPC_proc_bind = llvm::omp::Clause::OMPC_proc_bind; 419constexpr auto OMPC_read = llvm::omp::Clause::OMPC_read; 420constexpr auto OMPC_reduction = llvm::omp::Clause::OMPC_reduction; 421constexpr auto OMPC_relaxed = llvm::omp::Clause::OMPC_relaxed; 422constexpr auto OMPC_release = llvm::omp::Clause::OMPC_release; 423constexpr auto OMPC_reverse_offload = llvm::omp::Clause::OMPC_reverse_offload; 424constexpr auto OMPC_safelen = llvm::omp::Clause::OMPC_safelen; 425constexpr auto OMPC_schedule = llvm::omp::Clause::OMPC_schedule; 426constexpr auto OMPC_seq_cst = llvm::omp::Clause::OMPC_seq_cst; 427constexpr auto OMPC_severity = llvm::omp::Clause::OMPC_severity; 428constexpr auto OMPC_shared = llvm::omp::Clause::OMPC_shared; 429constexpr auto OMPC_simd = llvm::omp::Clause::OMPC_simd; 430constexpr auto OMPC_simdlen = llvm::omp::Clause::OMPC_simdlen; 431constexpr auto OMPC_sizes = llvm::omp::Clause::OMPC_sizes; 432constexpr auto OMPC_task_reduction = llvm::omp::Clause::OMPC_task_reduction; 433constexpr auto OMPC_thread_limit = llvm::omp::Clause::OMPC_thread_limit; 434constexpr auto OMPC_threadprivate = llvm::omp::Clause::OMPC_threadprivate; 435constexpr auto OMPC_threads = llvm::omp::Clause::OMPC_threads; 436constexpr auto OMPC_to = llvm::omp::Clause::OMPC_to; 437constexpr auto OMPC_unified_address = llvm::omp::Clause::OMPC_unified_address; 438constexpr auto OMPC_unified_shared_memory = llvm::omp::Clause::OMPC_unified_shared_memory; 439constexpr auto OMPC_uniform = llvm::omp::Clause::OMPC_uniform; 440constexpr auto OMPC_unknown = llvm::omp::Clause::OMPC_unknown; 441constexpr auto OMPC_untied = llvm::omp::Clause::OMPC_untied; 442constexpr auto OMPC_update = llvm::omp::Clause::OMPC_update; 443constexpr auto OMPC_use = llvm::omp::Clause::OMPC_use; 444constexpr auto OMPC_use_device_addr = llvm::omp::Clause::OMPC_use_device_addr; 445constexpr auto OMPC_use_device_ptr = llvm::omp::Clause::OMPC_use_device_ptr; 446constexpr auto OMPC_uses_allocators = llvm::omp::Clause::OMPC_uses_allocators; 447constexpr auto OMPC_when = llvm::omp::Clause::OMPC_when; 448constexpr auto OMPC_write = llvm::omp::Clause::OMPC_write; 449 450enum class CancellationConstructType { 451 OMP_CANCELLATION_CONSTRUCT_Parallel=1, 452 OMP_CANCELLATION_CONSTRUCT_Loop=2, 453 OMP_CANCELLATION_CONSTRUCT_Sections=3, 454 OMP_CANCELLATION_CONSTRUCT_Taskgroup=4, 455 OMP_CANCELLATION_CONSTRUCT_None=5, 456}; 457 458constexpr auto OMP_CANCELLATION_CONSTRUCT_Parallel = llvm::omp::CancellationConstructType::OMP_CANCELLATION_CONSTRUCT_Parallel; 459constexpr auto OMP_CANCELLATION_CONSTRUCT_Loop = llvm::omp::CancellationConstructType::OMP_CANCELLATION_CONSTRUCT_Loop; 460constexpr auto OMP_CANCELLATION_CONSTRUCT_Sections = llvm::omp::CancellationConstructType::OMP_CANCELLATION_CONSTRUCT_Sections; 461constexpr auto OMP_CANCELLATION_CONSTRUCT_Taskgroup = llvm::omp::CancellationConstructType::OMP_CANCELLATION_CONSTRUCT_Taskgroup; 462constexpr auto OMP_CANCELLATION_CONSTRUCT_None = llvm::omp::CancellationConstructType::OMP_CANCELLATION_CONSTRUCT_None; 463 464enum class GrainsizeType { 465 OMP_GRAINSIZE_Strict=1, 466 OMP_GRAINSIZE_Unknown=2, 467}; 468 469constexpr auto OMP_GRAINSIZE_Strict = llvm::omp::GrainsizeType::OMP_GRAINSIZE_Strict; 470constexpr auto OMP_GRAINSIZE_Unknown = llvm::omp::GrainsizeType::OMP_GRAINSIZE_Unknown; 471 472enum class MemoryOrderKind { 473 OMP_MEMORY_ORDER_SeqCst=1, 474 OMP_MEMORY_ORDER_AcqRel=2, 475 OMP_MEMORY_ORDER_Acquire=3, 476 OMP_MEMORY_ORDER_Release=4, 477 OMP_MEMORY_ORDER_Relaxed=5, 478 OMP_MEMORY_ORDER_Default=6, 479}; 480 481constexpr auto OMP_MEMORY_ORDER_SeqCst = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_SeqCst; 482constexpr auto OMP_MEMORY_ORDER_AcqRel = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_AcqRel; 483constexpr auto OMP_MEMORY_ORDER_Acquire = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_Acquire; 484constexpr auto OMP_MEMORY_ORDER_Release = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_Release; 485constexpr auto OMP_MEMORY_ORDER_Relaxed = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_Relaxed; 486constexpr auto OMP_MEMORY_ORDER_Default = llvm::omp::MemoryOrderKind::OMP_MEMORY_ORDER_Default; 487 488enum class NumTasksType { 489 OMP_NUMTASKS_Strict=1, 490 OMP_NUMTASKS_Unknown=2, 491}; 492 493constexpr auto OMP_NUMTASKS_Strict = llvm::omp::NumTasksType::OMP_NUMTASKS_Strict; 494constexpr auto OMP_NUMTASKS_Unknown = llvm::omp::NumTasksType::OMP_NUMTASKS_Unknown; 495 496enum class OrderKind { 497 OMP_ORDER_unknown=2, 498 OMP_ORDER_concurrent=1, 499}; 500 501constexpr auto OMP_ORDER_unknown = llvm::omp::OrderKind::OMP_ORDER_unknown; 502constexpr auto OMP_ORDER_concurrent = llvm::omp::OrderKind::OMP_ORDER_concurrent; 503 504enum class ProcBindKind { 505 OMP_PROC_BIND_primary=5, 506 OMP_PROC_BIND_master=2, 507 OMP_PROC_BIND_close=3, 508 OMP_PROC_BIND_spread=4, 509 OMP_PROC_BIND_default=6, 510 OMP_PROC_BIND_unknown=7, 511}; 512 513constexpr auto OMP_PROC_BIND_primary = llvm::omp::ProcBindKind::OMP_PROC_BIND_primary; 514constexpr auto OMP_PROC_BIND_master = llvm::omp::ProcBindKind::OMP_PROC_BIND_master; 515constexpr auto OMP_PROC_BIND_close = llvm::omp::ProcBindKind::OMP_PROC_BIND_close; 516constexpr auto OMP_PROC_BIND_spread = llvm::omp::ProcBindKind::OMP_PROC_BIND_spread; 517constexpr auto OMP_PROC_BIND_default = llvm::omp::ProcBindKind::OMP_PROC_BIND_default; 518constexpr auto OMP_PROC_BIND_unknown = llvm::omp::ProcBindKind::OMP_PROC_BIND_unknown; 519 520enum class ScheduleKind { 521 OMP_SCHEDULE_Static=2, 522 OMP_SCHEDULE_Dynamic=3, 523 OMP_SCHEDULE_Guided=4, 524 OMP_SCHEDULE_Auto=5, 525 OMP_SCHEDULE_Runtime=6, 526 OMP_SCHEDULE_Default=7, 527}; 528 529constexpr auto OMP_SCHEDULE_Static = llvm::omp::ScheduleKind::OMP_SCHEDULE_Static; 530constexpr auto OMP_SCHEDULE_Dynamic = llvm::omp::ScheduleKind::OMP_SCHEDULE_Dynamic; 531constexpr auto OMP_SCHEDULE_Guided = llvm::omp::ScheduleKind::OMP_SCHEDULE_Guided; 532constexpr auto OMP_SCHEDULE_Auto = llvm::omp::ScheduleKind::OMP_SCHEDULE_Auto; 533constexpr auto OMP_SCHEDULE_Runtime = llvm::omp::ScheduleKind::OMP_SCHEDULE_Runtime; 534constexpr auto OMP_SCHEDULE_Default = llvm::omp::ScheduleKind::OMP_SCHEDULE_Default; 535 536// Enumeration helper functions 537Directive getOpenMPDirectiveKind(llvm::StringRef Str); 538 539llvm::StringRef getOpenMPDirectiveName(Directive D); 540 541Clause getOpenMPClauseKind(llvm::StringRef Str); 542 543llvm::StringRef getOpenMPClauseName(Clause C); 544 545/// Return true if \p C is a valid clause for \p D in version \p Version. 546bool isAllowedClauseForDirective(Directive D, Clause C, unsigned Version); 547 548CancellationConstructType getCancellationConstructType(StringRef); 549llvm::StringRef getOpenMPCancellationConstructTypeName(CancellationConstructType); 550GrainsizeType getGrainsizeType(StringRef); 551llvm::StringRef getOpenMPGrainsizeTypeName(GrainsizeType); 552MemoryOrderKind getMemoryOrderKind(StringRef); 553llvm::StringRef getOpenMPMemoryOrderKindName(MemoryOrderKind); 554NumTasksType getNumTasksType(StringRef); 555llvm::StringRef getOpenMPNumTasksTypeName(NumTasksType); 556OrderKind getOrderKind(StringRef); 557llvm::StringRef getOpenMPOrderKindName(OrderKind); 558ProcBindKind getProcBindKind(StringRef); 559llvm::StringRef getOpenMPProcBindKindName(ProcBindKind); 560ScheduleKind getScheduleKind(StringRef); 561llvm::StringRef getOpenMPScheduleKindName(ScheduleKind); 562 563} // namespace omp 564} // namespace llvm 565#endif // LLVM_OpenMP_INC 566