On Tue, May 19, 2020 at 1:27 AM Jakub Jelinek via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi!
>
> This patch adds very basic allocator support (omp_{init,destroy}_allocator,
> omp_{alloc,free}, omp_[sg]et_default_allocator).
> The plan is to use memkind (likely dlopened) for high bandwidth memory, but
> that part isn't implemented yet, probably mlock for pinned memory and see
> what other options there are for other kinds of memory.
> For offloading targets, we need to decide if we want to support the
> dynamic allocators (and on which targets), or if e.g. all we do is at compile
> time replace omp_alloc/omp_free calls with constexpr predefined allocators
> with something special.
>
> And allocate directive and allocator/uses_allocators clauses are future work
> too.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk.
>
> 2020-05-19  Jakub Jelinek  <ja...@redhat.com>
>
>         * omp.h.in (omp_uintptr_t): New typedef.
>         (__GOMP_UINTPTR_T_ENUM): Define.
>         (omp_memspace_handle_t, omp_allocator_handle_t, omp_alloctrait_key_t,
>         omp_alloctrait_value_t, omp_alloctrait_t): New typedefs.
>         (__GOMP_DEFAULT_NULL_ALLOCATOR): Define.
>         (omp_init_allocator, omp_destroy_allocator, omp_set_default_allocator,
>         omp_get_default_allocator, omp_alloc, omp_free): Declare.
>         * libgomp.h (struct gomp_team_state): Add def_allocator field.
>         (gomp_def_allocator): Declare.
>         * libgomp.map (OMP_5.0.1): Export omp_set_default_allocator,
>         omp_get_default_allocator, omp_init_allocator, omp_destroy_allocator,
>         omp_alloc and omp_free.
>         * team.c (gomp_team_start): Copy over ts.def_allocator.
>         * env.c (gomp_def_allocator): New variable.
>         (parse_wait_policy): Adjust function comment.
>         (parse_allocator): New function.
>         (handle_omp_display_env): Print OMP_ALLOCATOR.
>         (initialize_env): Call parse_allocator.
>         * Makefile.am (libgomp_la_SOURCES): Add allocator.c.
>         * allocator.c: New file.
>         * icv.c (omp_set_default_allocator, omp_get_default_allocator): New
>         functions.
>         * testsuite/libgomp.c-c++-common/alloc-1.c: New test.
>         * testsuite/libgomp.c-c++-common/alloc-2.c: New test.
>         * testsuite/libgomp.c-c++-common/alloc-3.c: New test.
>         * Makefile.in: Regenerated.

Did you check in allocator.c?

-- 
H.J.

Reply via email to