libgomp: Add interop types and routines to OpenMP's headers and module
This commit adds OpenMP 5.1+'s interop enumeration, type and routine declarations to the C/C++ header file and, new in OpenMP TR13, also to the Fortran module and omp_lib.h header file. While a stub implementation is provided, only with foreign runtime support by the libgomp GPU plugins and with the 'interop' directive, this becomes really useful. libgomp/ChangeLog: * fortran.c (omp_get_interop_str_, omp_get_interop_name_, omp_get_interop_type_desc_, omp_get_interop_rc_desc_): Add. * libgomp.map (GOMP_5.1.3): New; add interop routines. * omp.h.in: Add interop typedefs, enum and prototypes. (__GOMP_DEFAULT_NULL): Define. (omp_target_memcpy_async, omp_target_memcpy_rect_async): Use it for the optional depend argument. * omp_lib.f90.in: Add paramters and interfaces for interop. * omp_lib.h.in: Likewise; move F90 '&' to column 81 for -ffree-length-80. * target.c (omp_get_num_interop_properties, omp_get_interop_int, omp_get_interop_ptr, omp_get_interop_str, omp_get_interop_name, omp_get_interop_type_desc, omp_get_interop_rc_desc): Add. * config/gcn/target.c (omp_get_num_interop_properties, omp_get_interop_int, omp_get_interop_ptr, omp_get_interop_str, omp_get_interop_name, omp_get_interop_type_desc, omp_get_interop_rc_desc): Add. * config/nvptx/target.c (omp_get_num_interop_properties, omp_get_interop_int, omp_get_interop_ptr, omp_get_interop_str, omp_get_interop_name, omp_get_interop_type_desc, omp_get_interop_rc_desc): Add. * testsuite/libgomp.c-c++-common/interop-routines-1.c: New test. * testsuite/libgomp.c-c++-common/interop-routines-2.c: New test. * testsuite/libgomp.fortran/interop-routines-1.F90: New test. * testsuite/libgomp.fortran/interop-routines-2.F90: New test. * testsuite/libgomp.fortran/interop-routines-3.F: New test. * testsuite/libgomp.fortran/interop-routines-4.F: New test. * testsuite/libgomp.fortran/interop-routines-5.F: New test. * testsuite/libgomp.fortran/interop-routines-6.F: New test. * testsuite/libgomp.fortran/interop-routines-7.F90: New test.
Showing
- libgomp/config/gcn/target.c 105 additions, 0 deletionslibgomp/config/gcn/target.c
- libgomp/config/nvptx/target.c 105 additions, 0 deletionslibgomp/config/nvptx/target.c
- libgomp/fortran.c 41 additions, 0 deletionslibgomp/fortran.c
- libgomp/libgomp.map 15 additions, 0 deletionslibgomp/libgomp.map
- libgomp/omp.h.in 76 additions, 2 deletionslibgomp/omp.h.in
- libgomp/omp_lib.f90.in 99 additions, 0 deletionslibgomp/omp_lib.f90.in
- libgomp/omp_lib.h.in 148 additions, 22 deletionslibgomp/omp_lib.h.in
- libgomp/target.c 110 additions, 0 deletionslibgomp/target.c
- libgomp/testsuite/libgomp.c-c++-common/interop-routines-1.c 287 additions, 0 deletionslibgomp/testsuite/libgomp.c-c++-common/interop-routines-1.c
- libgomp/testsuite/libgomp.c-c++-common/interop-routines-2.c 354 additions, 0 deletionslibgomp/testsuite/libgomp.c-c++-common/interop-routines-2.c
- libgomp/testsuite/libgomp.fortran/interop-routines-1.F90 236 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-1.F90
- libgomp/testsuite/libgomp.fortran/interop-routines-2.F90 3 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-2.F90
- libgomp/testsuite/libgomp.fortran/interop-routines-3.F 2 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-3.F
- libgomp/testsuite/libgomp.fortran/interop-routines-4.F 4 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-4.F
- libgomp/testsuite/libgomp.fortran/interop-routines-5.F 4 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-5.F
- libgomp/testsuite/libgomp.fortran/interop-routines-6.F 4 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-6.F
- libgomp/testsuite/libgomp.fortran/interop-routines-7.F90 290 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/interop-routines-7.F90
Loading
Please register or sign in to comment