]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[og9] AMD GCN adjustments for middle-end worker partitioning
authorJulian Brown <julian@codesourcery.com>
Wed, 4 Sep 2019 23:33:02 +0000 (16:33 -0700)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 3 Mar 2020 11:50:41 +0000 (12:50 +0100)
gcc/
* config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): Rename
prototype to...
(gcn_goacc_create_propagation_record): This.
* config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename
function to...
(gcn_goacc_create_propagation_record): This.  Adjust comment.
* config/gcn/gcn.c (gcn_init_builtins): Override decls for
        BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START,
        BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER.
(gcn_fork_join): Remove inaccurate comment.
(TARGET_GOACC_ADJUST_PROPAGATION_RECORD): Rename to...
(TARGET_GOACC_CREATE_PROPAGATION_RECORD): This.

(cherry picked from openacc-gcc-9-branch commit
f079b7a61a6bc88109ad68fffca607b47ec109c5)

gcc/ChangeLog.omp
gcc/config/gcn/gcn-protos.h
gcc/config/gcn/gcn-tree.c
gcc/config/gcn/gcn.c

index a2b2dcfcf2684d8f20c12dbc1c4e87e2dede8bdb..0d068ac8ae289c05383cd6c8fddf7bb56cd7484f 100644 (file)
@@ -1,3 +1,18 @@
+2019-09-05  Julian Brown  <julian@codesourcery.com>
+
+       * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): Rename
+       prototype to...
+       (gcn_goacc_create_propagation_record): This.
+       * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename
+       function to...
+       (gcn_goacc_create_propagation_record): This.  Adjust comment.
+       * config/gcn/gcn.c (gcn_init_builtins): Override decls for
+        BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START,
+        BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER.
+       (gcn_fork_join): Remove inaccurate comment.
+       (TARGET_GOACC_ADJUST_PROPAGATION_RECORD): Rename to...
+       (TARGET_GOACC_CREATE_PROPAGATION_RECORD): This.
+
 2019-09-05  Julian Brown  <julian@codesourcery.com>
 
        * Makefile.in (OBJS): Add omp-sese.o.
index da7faf29c7013f5e050d721f9e52cb607e0c7241..1711862c6a290eb93cf732547db3732357f93ebe 100644 (file)
@@ -37,7 +37,7 @@ extern rtx gcn_full_exec ();
 extern rtx gcn_full_exec_reg ();
 extern rtx gcn_gen_undef (machine_mode);
 extern bool gcn_global_address_p (rtx);
-extern tree gcn_goacc_adjust_propagation_record (tree record_type, bool sender,
+extern tree gcn_goacc_create_propagation_record (tree record_type, bool sender,
                                                 const char *name);
 extern void gcn_goacc_adjust_gangprivate_decl (tree var);
 extern void gcn_goacc_reduction (gcall *call);
index c6b6302e9ed4d63339d49767d19c8e4615b725cb..04902a39b299f76a21953479a7f4eb59fc971bde 100644 (file)
@@ -667,12 +667,12 @@ gcn_goacc_reduction (gcall *call)
     }
 }
 
-/* Implement TARGET_GOACC_ADJUST_PROPAGATION_RECORD.
+/* Implement TARGET_GOACC_CREATE_PROPAGATION_RECORD.
  
-   Tweak (worker) propagation record, e.g. to put it in shared memory.  */
+   Create (worker) propagation record in shared memory.  */
 
 tree
-gcn_goacc_adjust_propagation_record (tree record_type, bool sender,
+gcn_goacc_create_propagation_record (tree record_type, bool sender,
                                     const char *name)
 {
   tree type = record_type;
index f3f112d95a9d8956b00f457dc36de84269c368ee..ca9321b5f25607bb5db4c419d4ce996e2998873b 100644 (file)
@@ -3468,8 +3468,6 @@ gcn_init_builtins (void)
       TREE_NOTHROW (gcn_builtin_decls[i]) = 1;
     }
 
-/* FIXME: remove the ifdef once OpenACC support is merged upstream.  */
-#ifdef BUILT_IN_GOACC_SINGLE_START
   /* These builtins need to take/return an LDS pointer: override the generic
      versions here.  */
 
@@ -3486,7 +3484,6 @@ gcn_init_builtins (void)
 
   set_builtin_decl (BUILT_IN_GOACC_BARRIER,
                    gcn_builtin_decls[GCN_BUILTIN_ACC_BARRIER], false);
-#endif
 }
 
 /* Expand the CMP_SWAP GCN builtins.  We have our own versions that do
@@ -4765,8 +4762,6 @@ static bool
 gcn_fork_join (gcall *ARG_UNUSED (call), const int *ARG_UNUSED (dims),
               bool ARG_UNUSED (is_fork))
 {
-  /* GCN does not use the fork/join concept invented for NVPTX.
-     Instead we use standard autovectorization.  */
   return false;
 }
 
@@ -6029,9 +6024,9 @@ print_operand (FILE *file, rtx x, int code)
 #define TARGET_FUNCTION_VALUE_REGNO_P gcn_function_value_regno_p
 #undef  TARGET_GIMPLIFY_VA_ARG_EXPR
 #define TARGET_GIMPLIFY_VA_ARG_EXPR gcn_gimplify_va_arg_expr
-#undef  TARGET_GOACC_ADJUST_PROPAGATION_RECORD
-#define TARGET_GOACC_ADJUST_PROPAGATION_RECORD \
-  gcn_goacc_adjust_propagation_record
+#undef  TARGET_GOACC_CREATE_PROPAGATION_RECORD
+#define TARGET_GOACC_CREATE_PROPAGATION_RECORD \
+  gcn_goacc_create_propagation_record
 #undef  TARGET_GOACC_ADJUST_GANGPRIVATE_DECL
 #define TARGET_GOACC_ADJUST_GANGPRIVATE_DECL gcn_goacc_adjust_gangprivate_decl
 #undef  TARGET_GOACC_FORK_JOIN