[OpenMP] Define named constants for interop's foreign runtime ID

Also added missing Fortran definitions for interop support.

Differential Revision: https://reviews.llvm.org/D102883
This commit is contained in:
Hansang Bae 2021-06-01 09:31:27 -05:00
parent baa2b8d085
commit cf5c94ef08
3 changed files with 45 additions and 1 deletions

View File

@ -182,6 +182,16 @@
omp_irc_other = -6
} omp_interop_rc_t;
typedef enum omp_interop_fr {
omp_ifr_cuda = 1,
omp_ifr_cuda_driver = 2,
omp_ifr_opencl = 3,
omp_ifr_sycl = 4,
omp_ifr_hip = 5,
omp_ifr_level_zero = 6,
omp_ifr_last = 7
} omp_interop_fr_t;
typedef void * omp_interop_t;
/*!
@ -211,7 +221,7 @@
/*!
* The `omp_get_interop_rc_desc` routine retrieves a description of the return code associated with an `omp_interop_t` object.
*/
extern const char * __KAI_KMPC_CONVENTION omp_get_interop_rc_desc(const omp_interop_rc_t, omp_interop_rc_t);
extern const char * __KAI_KMPC_CONVENTION omp_get_interop_rc_desc(const omp_interop_t, omp_interop_rc_t);
/* OpenMP 5.1 device memory routines */

View File

@ -34,6 +34,8 @@
integer, parameter :: omp_memspace_handle_kind = c_intptr_t
integer, parameter :: omp_alloctrait_key_kind = omp_integer_kind
integer, parameter :: omp_alloctrait_val_kind = c_intptr_t
integer, parameter :: omp_interop_kind = c_intptr_t
integer, parameter :: omp_interop_fr_kind = omp_integer_kind
type omp_alloctrait
integer(kind=omp_alloctrait_key_kind) key
@ -156,6 +158,16 @@
integer (kind=omp_pause_resource_kind), parameter :: omp_pause_soft = 1
integer (kind=omp_pause_resource_kind), parameter :: omp_pause_hard = 2
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_cuda = 1
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_cuda_driver = 2
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_opencl = 3
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_sycl = 4
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_hip = 5
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_level_zero = 6
integer (kind=omp_interop_fr_kind), parameter :: omp_ifr_last = 7
integer (kind=omp_interop_kind), parameter :: omp_interop_none = 0
interface
! ***

View File

@ -52,6 +52,10 @@
parameter(omp_depend_kind=int_ptr_kind())
integer omp_event_handle_kind
parameter(omp_event_handle_kind=int_ptr_kind())
integer omp_interop_kind
parameter(omp_interop_kind=int_ptr_kind())
integer omp_interop_fr_kind
parameter(omp_interop_fr_kind=omp_integer_kind)
integer(kind=omp_integer_kind)openmp_version
parameter(openmp_version=@LIBOMP_OMP_YEAR_MONTH@)
@ -247,6 +251,24 @@
integer(kind=omp_pause_resource_kind)omp_pause_hard
parameter(omp_pause_hard=2)
integer(kind=omp_interop_fr_kind)omp_ifr_cuda
parameter(omp_ifr_cuda=1)
integer(kind=omp_interop_fr_kind)omp_ifr_cuda_driver
parameter(omp_ifr_cuda_driver=2)
integer(kind=omp_interop_fr_kind)omp_ifr_opencl
parameter(omp_ifr_opencl=3)
integer(kind=omp_interop_fr_kind)omp_ifr_sycl
parameter(omp_ifr_sycl=4)
integer(kind=omp_interop_fr_kind)omp_ifr_hip
parameter(omp_ifr_hip=5)
integer(kind=omp_interop_fr_kind)omp_ifr_level_zero
parameter(omp_ifr_level_zero=6)
integer(kind=omp_interop_fr_kind)omp_ifr_last
parameter(omp_ifr_last=7)
integer(kind=omp_interop_kind)omp_interop_none
parameter(omp_interop_none=0)
interface
! ***