aboutsummaryrefslogtreecommitdiff
path: root/lib/libomp/omp.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libomp/omp.h')
-rw-r--r--lib/libomp/omp.h45
1 files changed, 39 insertions, 6 deletions
diff --git a/lib/libomp/omp.h b/lib/libomp/omp.h
index 493e0e86e8dc..d1d513d22345 100644
--- a/lib/libomp/omp.h
+++ b/lib/libomp/omp.h
@@ -15,8 +15,14 @@
#ifndef __OMP_H
# define __OMP_H
+# ifndef __has_include
+# define __has_include(x) 0
+# endif
+
# include <stddef.h>
-# include <stdlib.h>
+# if (__has_include(<stdlib.h>))
+# include <stdlib.h>
+# endif
# include <stdint.h>
# define KMP_VERSION_MAJOR 5
@@ -333,7 +339,13 @@
omp_atk_fallback = 5,
omp_atk_fb_data = 6,
omp_atk_pinned = 7,
- omp_atk_partition = 8
+ omp_atk_partition = 8,
+ omp_atk_pin_device = 9,
+ omp_atk_preferred_device = 10,
+ omp_atk_device_access = 11,
+ omp_atk_target_access = 12,
+ omp_atk_atomic_scope = 13,
+ omp_atk_part_size = 14
} omp_alloctrait_key_t;
typedef enum {
@@ -344,7 +356,7 @@
omp_atv_serialized = 5,
omp_atv_sequential = omp_atv_serialized, // (deprecated)
omp_atv_private = 6,
- omp_atv_all = 7,
+ omp_atv_device = 7,
omp_atv_thread = 8,
omp_atv_pteam = 9,
omp_atv_cgroup = 10,
@@ -355,7 +367,11 @@
omp_atv_environment = 15,
omp_atv_nearest = 16,
omp_atv_blocked = 17,
- omp_atv_interleaved = 18
+ omp_atv_interleaved = 18,
+ omp_atv_all = 19,
+ omp_atv_single = 20,
+ omp_atv_multiple = 21,
+ omp_atv_memspace = 22
} omp_alloctrait_value_t;
#define omp_atv_default ((omp_uintptr_t)-1)
@@ -381,6 +397,7 @@
extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_device_mem_alloc;
typedef omp_uintptr_t omp_memspace_handle_t;
+ extern __KMP_IMP omp_memspace_handle_t const omp_null_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_default_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_large_cap_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_const_mem_space;
@@ -416,7 +433,8 @@
typedef enum omp_memspace_handle_t
# endif
{
- omp_default_mem_space = 0,
+ omp_null_mem_space = 0,
+ omp_default_mem_space = 99,
omp_large_cap_mem_space = 1,
omp_const_mem_space = 2,
omp_high_bw_mem_space = 3,
@@ -457,6 +475,20 @@
extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, omp_allocator_handle_t a);
# endif
+ /* OpenMP TR11 routines to get memory spaces and allocators */
+ extern omp_memspace_handle_t omp_get_devices_memspace(int ndevs, const int *devs, omp_memspace_handle_t memspace);
+ extern omp_memspace_handle_t omp_get_device_memspace(int dev, omp_memspace_handle_t memspace);
+ extern omp_memspace_handle_t omp_get_devices_and_host_memspace(int ndevs, const int *devs, omp_memspace_handle_t memspace);
+ extern omp_memspace_handle_t omp_get_device_and_host_memspace(int dev, omp_memspace_handle_t memspace);
+ extern omp_memspace_handle_t omp_get_devices_all_memspace(omp_memspace_handle_t memspace);
+ extern omp_allocator_handle_t omp_get_devices_allocator(int ndevs, const int *devs, omp_memspace_handle_t memspace);
+ extern omp_allocator_handle_t omp_get_device_allocator(int dev, omp_memspace_handle_t memspace);
+ extern omp_allocator_handle_t omp_get_devices_and_host_allocator(int ndevs, const int *devs, omp_memspace_handle_t memspace);
+ extern omp_allocator_handle_t omp_get_device_and_host_allocator(int dev, omp_memspace_handle_t memspace);
+ extern omp_allocator_handle_t omp_get_devices_all_allocator(omp_memspace_handle_t memspace);
+ extern int omp_get_memspace_num_resources(omp_memspace_handle_t memspace);
+ extern omp_memspace_handle_t omp_get_submemspace(omp_memspace_handle_t memspace, int num_resources, int *resources);
+
/* OpenMP 5.0 Affinity Format */
extern void __KAI_KMPC_CONVENTION omp_set_affinity_format(char const *);
extern size_t __KAI_KMPC_CONVENTION omp_get_affinity_format(char *, size_t);
@@ -476,7 +508,8 @@
typedef enum omp_pause_resource_t {
omp_pause_resume = 0,
omp_pause_soft = 1,
- omp_pause_hard = 2
+ omp_pause_hard = 2,
+ omp_pause_stop_tool = 3
} omp_pause_resource_t;
extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int);
extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t);