aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2019-09-04 16:33:02 -0700
committerThomas Schwinge <thomas@codesourcery.com>2020-03-03 12:50:41 +0100
commit0549f1fcbe5ff0252db9e99275ede4d3c0d26dc5 (patch)
tree507fb15a2b70428d4849849b8de8ef89ca88e723
parent1cd81a77f08ca49a2781f0583a6b689f2881d285 (diff)
downloadgcc-0549f1fcbe5ff0252db9e99275ede4d3c0d26dc5.zip
gcc-0549f1fcbe5ff0252db9e99275ede4d3c0d26dc5.tar.gz
gcc-0549f1fcbe5ff0252db9e99275ede4d3c0d26dc5.tar.bz2
[og9] AMD GCN adjustments for middle-end worker partitioning
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)
-rw-r--r--gcc/ChangeLog.omp15
-rw-r--r--gcc/config/gcn/gcn-protos.h2
-rw-r--r--gcc/config/gcn/gcn-tree.c6
-rw-r--r--gcc/config/gcn/gcn.c11
4 files changed, 22 insertions, 12 deletions
diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index a2b2dcf..0d068ac 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,5 +1,20 @@
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.
* omp-builtins.def (BUILT_IN_GOACC_BARRIER, BUILT_IN_GOACC_SINGLE_START,
BUILT_IN_GOACC_SINGLE_COPY_START, BUILT_IN_GOACC_SINGLE_COPY_END): New
diff --git a/gcc/config/gcn/gcn-protos.h b/gcc/config/gcn/gcn-protos.h
index da7faf2..1711862 100644
--- a/gcc/config/gcn/gcn-protos.h
+++ b/gcc/config/gcn/gcn-protos.h
@@ -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);
diff --git a/gcc/config/gcn/gcn-tree.c b/gcc/config/gcn/gcn-tree.c
index c6b6302..04902a3 100644
--- a/gcc/config/gcn/gcn-tree.c
+++ b/gcc/config/gcn/gcn-tree.c
@@ -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;
diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c
index f3f112d..ca9321b 100644
--- a/gcc/config/gcn/gcn.c
+++ b/gcc/config/gcn/gcn.c
@@ -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