summaryrefslogtreecommitdiff
path: root/libgomp/fortran.c
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2020-07-15 08:33:20 +0200
committerTobias Burnus <tobias@codesourcery.com>2020-07-15 08:33:20 +0200
commitfff15bad1ab571906c37b88380431768d917dcb0 (patch)
treedb37c1397b78b5430555ef4c30fa39d6d288551c /libgomp/fortran.c
parent8ca07a3072438fa5e76f2b2cea9e51a98760a86f (diff)
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.
Diffstat (limited to 'libgomp/fortran.c')
-rw-r--r--libgomp/fortran.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libgomp/fortran.c b/libgomp/fortran.c
index 3705ff62b75..9d838b3b56f 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 ();
+}