This patch series is an updated and reworked version of some of the patch set posted about a year ago (the other features will be posted soon), this time supporting amdgcn, in addition to nvptx:
https://patchwork.sourceware.org/project/gcc/list/?series=10748&state=%2A&archive=both The series implements device-specific allocators and adds a low-latency allocator for both GPUs architectures. The previous review comments have been addressed, I hope, plus a lot of bugs have been found and fixed since the original post. With the addition of amdgcn I have broken out the heap implementation so both architectures can share the code. Andrew Andrew Stubbs (3): libgomp, nvptx: low-latency memory allocator openmp, nvptx: low-lat memory access traits amdgcn, libgomp: low-latency allocator gcc/config/gcn/gcn-builtins.def | 2 + gcc/config/gcn/gcn.cc | 16 +- libgomp/allocator.c | 269 +++++++++---- libgomp/basic-allocator.c | 380 ++++++++++++++++++ libgomp/config/gcn/allocator.c | 123 ++++++ libgomp/config/gcn/libgomp-gcn.h | 6 + libgomp/config/gcn/team.c | 12 + libgomp/config/nvptx/allocator.c | 131 ++++++ libgomp/config/nvptx/team.c | 18 + libgomp/libgomp.h | 3 - libgomp/plugin/plugin-gcn.c | 35 +- libgomp/plugin/plugin-nvptx.c | 23 +- libgomp/testsuite/libgomp.c/omp_alloc-1.c | 56 +++ libgomp/testsuite/libgomp.c/omp_alloc-2.c | 64 +++ libgomp/testsuite/libgomp.c/omp_alloc-3.c | 42 ++ libgomp/testsuite/libgomp.c/omp_alloc-4.c | 197 +++++++++ libgomp/testsuite/libgomp.c/omp_alloc-5.c | 63 +++ libgomp/testsuite/libgomp.c/omp_alloc-6.c | 118 ++++++ .../testsuite/libgomp.c/omp_alloc-traits.c | 68 ++++ 19 files changed, 1528 insertions(+), 98 deletions(-) create mode 100644 libgomp/basic-allocator.c create mode 100644 libgomp/config/gcn/allocator.c create mode 100644 libgomp/config/nvptx/allocator.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-1.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-2.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-3.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-4.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-5.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-6.c create mode 100644 libgomp/testsuite/libgomp.c/omp_alloc-traits.c -- 2.41.0