diff options
Diffstat (limited to 'lib/libomp/omp.h')
| -rw-r--r-- | lib/libomp/omp.h | 45 |
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); |
