From fff15bad1ab571906c37b88380431768d917dcb0 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Wed, 15 Jul 2020 08:33:20 +0200 Subject: libgomp: Add Fortran routine support for allocators libgomp/ChangeLog: * allocator.c: Add ialias for omp_init_allocator and omp_destroy_allocator. * configure.ac: Set INTPTR_T_KIND. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * fortran.c (omp_init_allocator_, omp_destroy_allocator_, omp_set_default_allocator_, omp_get_default_allocator_): New functions and ialias_redirect. * icv.c: Add ialias for omp_set_default_allocator and omp_get_default_allocator. * libgomp.map (OMP_5.0.1): Add omp_init_allocator_, omp_destroy_allocator_, omp_set_default_allocator_ and omp_get_default_allocator_. * omp_lib.f90.in: Add allocator traits parameters, declare allocator routines and add related kind parameters. * omp_lib.h.in: Likewise. * testsuite/libgomp.c-c++-common/alloc-2.c: Fix sizeof. * testsuite/libgomp.fortran/alloc-1.F90: New test. * testsuite/libgomp.fortran/alloc-2.F90: New test. * testsuite/libgomp.fortran/alloc-3.F: New test. * testsuite/libgomp.fortran/alloc-4.f90: New test. * testsuite/libgomp.fortran/alloc-5.f90: New test. --- libgomp/fortran.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'libgomp/fortran.c') diff --git a/libgomp/fortran.c b/libgomp/fortran.c index 3705ff6..9d838b3 100644 --- a/libgomp/fortran.c +++ b/libgomp/fortran.c @@ -86,6 +86,10 @@ ialias_redirect (omp_get_initial_device) ialias_redirect (omp_get_max_task_priority) ialias_redirect (omp_pause_resource) ialias_redirect (omp_pause_resource_all) +ialias_redirect (omp_init_allocator) +ialias_redirect (omp_destroy_allocator) +ialias_redirect (omp_set_default_allocator) +ialias_redirect (omp_get_default_allocator) #endif #ifndef LIBGOMP_GNU_SYMBOL_VERSIONING @@ -676,3 +680,37 @@ omp_pause_resource_all_ (const int32_t *kind) { return omp_pause_resource_all (*kind); } + +intptr_t +omp_init_allocator_ (const intptr_t *memspace, const int32_t *ntraits, + const omp_alloctrait_t *traits) +{ + return (intptr_t) omp_init_allocator ((omp_memspace_handle_t) *memspace, + (int) *ntraits, traits); +} + +intptr_t +omp_init_allocator_8_ (const intptr_t *memspace, const int64_t *ntraits, + const omp_alloctrait_t *traits) +{ + return (intptr_t) omp_init_allocator ((omp_memspace_handle_t) *memspace, + (int) *ntraits, traits); +} + +void +omp_destroy_allocator_ (const intptr_t *allocator) +{ + omp_destroy_allocator ((omp_allocator_handle_t) *allocator); +} + +void +omp_set_default_allocator_ (const intptr_t *allocator) +{ + omp_set_default_allocator ((omp_allocator_handle_t) *allocator); +} + +intptr_t +omp_get_default_allocator_ () +{ + return (intptr_t) omp_get_default_allocator (); +} -- cgit v1.1