-
- Downloads
OpenMP: Fix omp_get_device_from_uid, minor cleanup
In Fortran, omp_get_device_from_uid can also accept substrings, which are then not NUL terminated. Fixed by introducing a fortran.c wrapper function. Additionally, in case of a fail the plugin functions now return NULL instead of failing fatally such that a fall-back UID is generated. gcc/ChangeLog: * omp-general.cc (omp_runtime_api_procname): Strip "omp_" from string; move get_device_from_uid as now a '_' suffix exists. libgomp/ChangeLog: * fortran.c (omp_get_device_from_uid_): New function. * libgomp.map (GOMP_6.0): Add it. * oacc-host.c (host_dispatch): Init '.uid' and '.get_uid_func'. * omp_lib.f90.in: Make it used by removing bind(C). * omp_lib.h.in: Likewise. * target.c (omp_get_device_from_uid): Ensure the device is initialized. * plugin/plugin-gcn.c (GOMP_OFFLOAD_get_uid): Add function comment; return NULL in case of an error. * plugin/plugin-nvptx.c (GOMP_OFFLOAD_get_uid): Likewise. * testsuite/libgomp.fortran/device_uid.f90: Update to test substrings.
Showing
- gcc/omp-general.cc 2 additions, 2 deletionsgcc/omp-general.cc
- libgomp/fortran.c 18 additions, 0 deletionslibgomp/fortran.c
- libgomp/libgomp.map 1 addition, 0 deletionslibgomp/libgomp.map
- libgomp/oacc-host.c 2 additions, 0 deletionslibgomp/oacc-host.c
- libgomp/omp_lib.f90.in 2 additions, 3 deletionslibgomp/omp_lib.f90.in
- libgomp/omp_lib.h.in 2 additions, 3 deletionslibgomp/omp_lib.h.in
- libgomp/plugin/plugin-gcn.c 7 additions, 1 deletionlibgomp/plugin/plugin-gcn.c
- libgomp/plugin/plugin-nvptx.c 5 additions, 2 deletionslibgomp/plugin/plugin-nvptx.c
- libgomp/target.c 5 additions, 2 deletionslibgomp/target.c
- libgomp/testsuite/libgomp.fortran/device_uid.f90 16 additions, 2 deletionslibgomp/testsuite/libgomp.fortran/device_uid.f90
Loading
Please register or sign in to comment