]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[1/8] Multi-dimensional dynamic array support for OpenACC data clauses, gomp-constant...
authorJulian Brown <julian@codesourcery.com>
Tue, 5 Feb 2019 14:25:31 +0000 (06:25 -0800)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 3 Mar 2020 11:12:09 +0000 (12:12 +0100)
2018-10-16  Chung-Lin Tang  <cltang@codesourcery.com>

include/
* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_3): Define.
(enum gomp_map_kind): Add GOMP_MAP_DYNAMIC_ARRAY,
GOMP_MAP_DYNAMIC_ARRAY_TO, GOMP_MAP_DYNAMIC_ARRAY_FROM,
GOMP_MAP_DYNAMIC_ARRAY_TOFROM, GOMP_MAP_DYNAMIC_ARRAY_FORCE_TO,
GOMP_MAP_DYNAMIC_ARRAY_FORCE_FROM, GOMP_MAP_DYNAMIC_ARRAY_FORCE_TOFROM,
GOMP_MAP_DYNAMIC_ARRAY_ALLOC, GOMP_MAP_DYNAMIC_ARRAY_FORCE_ALLOC,
GOMP_MAP_DYNAMIC_ARRAY_FORCE_PRESENT.
(GOMP_MAP_DYNAMIC_ARRAY_P): Define.

(cherry picked from openacc-gcc-9-branch commit
378239a91cd9d2253991edd85c777b377d312c0e)

include/ChangeLog.omp
include/gomp-constants.h

index a9e948f406810cc8abc090213cfeb3ed157cde9a..addbefbd90df3280fbd461245fc93c22bec0dd37 100644 (file)
@@ -1,3 +1,14 @@
+2018-10-16  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_3): Define.
+       (enum gomp_map_kind): Add GOMP_MAP_DYNAMIC_ARRAY,
+       GOMP_MAP_DYNAMIC_ARRAY_TO, GOMP_MAP_DYNAMIC_ARRAY_FROM,
+       GOMP_MAP_DYNAMIC_ARRAY_TOFROM, GOMP_MAP_DYNAMIC_ARRAY_FORCE_TO,
+       GOMP_MAP_DYNAMIC_ARRAY_FORCE_FROM, GOMP_MAP_DYNAMIC_ARRAY_FORCE_TOFROM,
+       GOMP_MAP_DYNAMIC_ARRAY_ALLOC, GOMP_MAP_DYNAMIC_ARRAY_FORCE_ALLOC,
+       GOMP_MAP_DYNAMIC_ARRAY_FORCE_PRESENT.
+       (GOMP_MAP_DYNAMIC_ARRAY_P): Define.
+
 2018-12-14  Julian Brown  <julian@codesourcery.com>
 
        * gomp-constants.h (GOMP_MAP_DEEP_COPY): Define.
index 6ea28fd55afc5435a1167fc2c66f82e9e32d8b43..9c22f6e763007ebcb29ca89a6a7a62eda317b5f6 100644 (file)
@@ -40,6 +40,7 @@
 #define GOMP_MAP_FLAG_SPECIAL_0                (1 << 2)
 #define GOMP_MAP_FLAG_SPECIAL_1                (1 << 3)
 #define GOMP_MAP_FLAG_SPECIAL_2                (1 << 4)
+#define GOMP_MAP_FLAG_SPECIAL_3                (1 << 5)
 #define GOMP_MAP_FLAG_SPECIAL_4                (1 << 6)
 #define GOMP_MAP_FLAG_SPECIAL          (GOMP_MAP_FLAG_SPECIAL_1 \
                                         | GOMP_MAP_FLAG_SPECIAL_0)
@@ -131,6 +132,26 @@ enum gomp_map_kind
     /* Decrement usage count and deallocate if zero.  */
     GOMP_MAP_RELEASE =                 (GOMP_MAP_FLAG_SPECIAL_2
                                         | GOMP_MAP_DELETE),
+    /* Mapping kinds for dynamic arrays.  */
+    GOMP_MAP_DYNAMIC_ARRAY =           (GOMP_MAP_FLAG_SPECIAL_3),
+    GOMP_MAP_DYNAMIC_ARRAY_TO =                (GOMP_MAP_DYNAMIC_ARRAY
+                                        | GOMP_MAP_TO),
+    GOMP_MAP_DYNAMIC_ARRAY_FROM =      (GOMP_MAP_DYNAMIC_ARRAY
+                                        | GOMP_MAP_FROM),
+    GOMP_MAP_DYNAMIC_ARRAY_TOFROM =    (GOMP_MAP_DYNAMIC_ARRAY
+                                        | GOMP_MAP_TOFROM),
+    GOMP_MAP_DYNAMIC_ARRAY_FORCE_TO =  (GOMP_MAP_DYNAMIC_ARRAY_TO
+                                        | GOMP_MAP_FLAG_FORCE),
+    GOMP_MAP_DYNAMIC_ARRAY_FORCE_FROM =                (GOMP_MAP_DYNAMIC_ARRAY_FROM
+                                                | GOMP_MAP_FLAG_FORCE),
+    GOMP_MAP_DYNAMIC_ARRAY_FORCE_TOFROM =      (GOMP_MAP_DYNAMIC_ARRAY_TOFROM
+                                                | GOMP_MAP_FLAG_FORCE),
+    GOMP_MAP_DYNAMIC_ARRAY_ALLOC =             (GOMP_MAP_DYNAMIC_ARRAY
+                                                | GOMP_MAP_ALLOC),
+    GOMP_MAP_DYNAMIC_ARRAY_FORCE_ALLOC =       (GOMP_MAP_DYNAMIC_ARRAY
+                                                | GOMP_MAP_FORCE_ALLOC),
+    GOMP_MAP_DYNAMIC_ARRAY_FORCE_PRESENT =     (GOMP_MAP_DYNAMIC_ARRAY
+                                                | GOMP_MAP_FORCE_PRESENT),
     /* In OpenACC, attach a pointer to a mapped struct field.  */
     GOMP_MAP_ATTACH =                  (GOMP_MAP_DEEP_COPY | 0),
     /* In OpenACC, detach a pointer to a mapped struct field.  */
@@ -166,6 +187,8 @@ enum gomp_map_kind
 #define GOMP_MAP_ALWAYS_P(X) \
   (GOMP_MAP_ALWAYS_TO_P (X) || ((X) == GOMP_MAP_ALWAYS_FROM))
 
+#define GOMP_MAP_DYNAMIC_ARRAY_P(X) \
+  ((X) & GOMP_MAP_DYNAMIC_ARRAY)
 
 /* Asynchronous behavior.  Keep in sync with
    libgomp/{openacc.h,openacc.f90,openacc_lib.h}:acc_async_t.  */