re PR target/80090 (Incorrect assembler - output_addr_const may generate visibility...
[gcc.git] / libgomp / oacc-parallel.c
index f795bf7f92c8e0adaf5edeb2c221060c6d995ffe..a8cff9e480b1bd8b05667c93d2ca0fcba165e38b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
    Contributed by Mentor Embedded.
 
@@ -186,10 +186,7 @@ GOACC_parallel_keyed (int device, void (*fn) (void *),
   if (async < acc_async_noval)
     gomp_unmap_vars (tgt, true);
   else
-    {
-      gomp_copy_from_async (tgt);
-      acc_dev->openacc.register_async_cleanup_func (tgt);
-    }
+    tgt->device_descr->openacc.register_async_cleanup_func (tgt, async);
 
   acc_dev->openacc.async_set_async_func (acc_async_sync);
 }
@@ -307,7 +304,7 @@ GOACC_enter_exit_data (int device, size_t mapnum,
          break;
        }
 
-      if (kind == GOMP_MAP_FORCE_DEALLOC
+      if (kind == GOMP_MAP_DELETE
          || kind == GOMP_MAP_FORCE_FROM)
        break;
 
@@ -374,7 +371,7 @@ GOACC_enter_exit_data (int device, size_t mapnum,
                                         == GOMP_MAP_FORCE_FROM,
                                         async, 1);
                break;
-             case GOMP_MAP_FORCE_DEALLOC:
+             case GOMP_MAP_DELETE:
                acc_delete (hostaddrs[i], sizes[i]);
                break;
              case GOMP_MAP_FORCE_FROM:
@@ -522,10 +519,10 @@ GOACC_declare (int device, size_t mapnum,
       switch (kind)
        {
          case GOMP_MAP_FORCE_ALLOC:
-         case GOMP_MAP_FORCE_DEALLOC:
          case GOMP_MAP_FORCE_FROM:
          case GOMP_MAP_FORCE_TO:
          case GOMP_MAP_POINTER:
+         case GOMP_MAP_DELETE:
            GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i],
                                   &kinds[i], 0, 0);
            break;