Hi! On Wed, 2 Dec 2015 16:58:45 +0100, I wrote: > On Mon, 30 Nov 2015 19:30:34 +0000, Julian Brown wrote: > > --- a/libgomp/oacc-parallel.c > > +++ b/libgomp/oacc-parallel.c > > > +void > > +GOACC_host_data (int device, size_t mapnum, > > + void **hostaddrs, size_t *sizes, unsigned short *kinds) > > +{ > > +[...] > > +} > > Isn't that identical to GOACC_data_start? Can we thus get rid of it? Yes, we can. As GOACC_host_data has not been part of GCC 5's libgomp ABI, it's OK to just remove it; committed "as obvious" in r233074: commit 2bf3f448431be10baa9755df5faeed6b2f6508f8 Author: tschwinge Date: Tue Feb 2 13:53:55 2016 +0000 Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START gcc/ * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove. * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START instead. libgomp/ * libgomp.map (GOACC_2.0): Remove GOACC_host_data. * oacc-parallel.c (GOACC_host_data): Remove function definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233074 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/omp-builtins.def | 2 -- gcc/omp-low.c | 5 +---- libgomp/ChangeLog | 3 +++ libgomp/libgomp.map | 1 - libgomp/oacc-parallel.c | 40 ---------------------------------------- 6 files changed, 10 insertions(+), 47 deletions(-) diff --git gcc/ChangeLog gcc/ChangeLog index 05741331..9a2cec8 100644 --- gcc/ChangeLog +++ gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-02-02 Thomas Schwinge + + * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove. + * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START + instead. + 2016-02-02 Richard Biener PR tree-optimization/69606 diff --git gcc/omp-builtins.def gcc/omp-builtins.def index 60199b0..ea012df 100644 --- gcc/omp-builtins.def +++ gcc/omp-builtins.def @@ -47,8 +47,6 @@ DEF_GOACC_BUILTIN (BUILT_IN_GOACC_UPDATE, "GOACC_update", DEF_GOACC_BUILTIN (BUILT_IN_GOACC_WAIT, "GOACC_wait", BT_FN_VOID_INT_INT_VAR, ATTR_NOTHROW_LIST) -DEF_GOACC_BUILTIN (BUILT_IN_GOACC_HOST_DATA, "GOACC_host_data", - BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST) DEF_GOACC_BUILTIN_COMPILER (BUILT_IN_ACC_ON_DEVICE, "acc_on_device", BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) diff --git gcc/omp-low.c gcc/omp-low.c index 0b70274..d41688b 100644 --- gcc/omp-low.c +++ gcc/omp-low.c @@ -13186,6 +13186,7 @@ expand_omp_target (struct omp_region *region) start_ix = BUILT_IN_GOACC_PARALLEL; break; case GF_OMP_TARGET_KIND_OACC_DATA: + case GF_OMP_TARGET_KIND_OACC_HOST_DATA: start_ix = BUILT_IN_GOACC_DATA_START; break; case GF_OMP_TARGET_KIND_OACC_UPDATE: @@ -13197,9 +13198,6 @@ expand_omp_target (struct omp_region *region) case GF_OMP_TARGET_KIND_OACC_DECLARE: start_ix = BUILT_IN_GOACC_DECLARE; break; - case GF_OMP_TARGET_KIND_OACC_HOST_DATA: - start_ix = BUILT_IN_GOACC_HOST_DATA; - break; default: gcc_unreachable (); } @@ -13324,7 +13322,6 @@ expand_omp_target (struct omp_region *region) case BUILT_IN_GOACC_DATA_START: case BUILT_IN_GOACC_DECLARE: case BUILT_IN_GOMP_TARGET_DATA: - case BUILT_IN_GOACC_HOST_DATA: break; case BUILT_IN_GOMP_TARGET: case BUILT_IN_GOMP_TARGET_UPDATE: diff --git libgomp/ChangeLog libgomp/ChangeLog index 6c9bf6a..250240d 100644 --- libgomp/ChangeLog +++ libgomp/ChangeLog @@ -1,5 +1,8 @@ 2016-02-02 Thomas Schwinge + * libgomp.map (GOACC_2.0): Remove GOACC_host_data. + * oacc-parallel.c (GOACC_host_data): Remove function definition. + * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test cases. diff --git libgomp/libgomp.map libgomp/libgomp.map index ea9344d..4d42c42 100644 --- libgomp/libgomp.map +++ libgomp/libgomp.map @@ -394,7 +394,6 @@ GOACC_2.0.1 { global: GOACC_declare; GOACC_parallel_keyed; - GOACC_host_data; } GOACC_2.0; GOMP_PLUGIN_1.0 { diff --git libgomp/oacc-parallel.c libgomp/oacc-parallel.c index f22ba41..bc24651 100644 --- libgomp/oacc-parallel.c +++ libgomp/oacc-parallel.c @@ -490,46 +490,6 @@ GOACC_wait (int async, int num_waits, ...) goacc_thread ()->dev->openacc.async_wait_all_async_func (acc_async_noval); } -void -GOACC_host_data (int device, size_t mapnum, - void **hostaddrs, size_t *sizes, unsigned short *kinds) -{ - bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK; - struct target_mem_desc *tgt; - -#ifdef HAVE_INTTYPES_H - gomp_debug (0, "%s: mapnum=%"PRIu64", hostaddrs=%p, size=%p, kinds=%p\n", - __FUNCTION__, (uint64_t) mapnum, hostaddrs, sizes, kinds); -#else - gomp_debug (0, "%s: mapnum=%lu, hostaddrs=%p, sizes=%p, kinds=%p\n", - __FUNCTION__, (unsigned long) mapnum, hostaddrs, sizes, kinds); -#endif - - goacc_lazy_initialize (); - - struct goacc_thread *thr = goacc_thread (); - struct gomp_device_descr *acc_dev = thr->dev; - - /* Host fallback or 'do nothing'. */ - if ((acc_dev->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) - || host_fallback) - { - tgt = gomp_map_vars (NULL, 0, NULL, NULL, NULL, NULL, true, - GOMP_MAP_VARS_OPENACC); - tgt->prev = thr->mapped_data; - thr->mapped_data = tgt; - - return; - } - - gomp_debug (0, " %s: prepare mappings\n", __FUNCTION__); - tgt = gomp_map_vars (acc_dev, mapnum, hostaddrs, NULL, sizes, kinds, true, - GOMP_MAP_VARS_OPENACC); - gomp_debug (0, " %s: mappings prepared\n", __FUNCTION__); - tgt->prev = thr->mapped_data; - thr->mapped_data = tgt; -} - int GOACC_get_num_threads (void) { Grüße Thomas