Commit fe22e0d4 by Andrew Stubbs Committed by Andrew Stubbs

Use a single worker for OpenACC on AMD GCN

2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	gcc/
	* config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
	flag_worker_partitioning is not set.
	(TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
	* config/gcn/gcn.opt (macc-experimental-workers): Default to off.

Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r278137
parent cee16451
2019-11-13 Andrew Stubbs <ams@codesourcery.com> 2019-11-13 Andrew Stubbs <ams@codesourcery.com>
Julian Brown <julian@codesourcery.com>
* config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
flag_worker_partitioning is not set.
(TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
* config/gcn/gcn.opt (macc-experimental-workers): Default to off.
2019-11-13 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/gcn-run.c (heap_region): New global variable. * config/gcn/gcn-run.c (heap_region): New global variable.
(struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn. (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn.
...@@ -4695,6 +4695,8 @@ gcn_goacc_validate_dims (tree decl, int dims[], int fn_level, ...@@ -4695,6 +4695,8 @@ gcn_goacc_validate_dims (tree decl, int dims[], int fn_level,
/* FIXME: remove -facc-experimental-workers when they're ready. */ /* FIXME: remove -facc-experimental-workers when they're ready. */
int max_workers = flag_worker_partitioning ? 16 : 1; int max_workers = flag_worker_partitioning ? 16 : 1;
gcc_assert (!flag_worker_partitioning);
/* The vector size must appear to be 64, to the user, unless this is a /* The vector size must appear to be 64, to the user, unless this is a
SEQ routine. The real, internal value is always 1, which means use SEQ routine. The real, internal value is always 1, which means use
autovectorization, but the user should not see that. */ autovectorization, but the user should not see that. */
...@@ -6073,8 +6075,6 @@ print_operand (FILE *file, rtx x, int code) ...@@ -6073,8 +6075,6 @@ print_operand (FILE *file, rtx x, int code)
#define TARGET_GOACC_REDUCTION gcn_goacc_reduction #define TARGET_GOACC_REDUCTION gcn_goacc_reduction
#undef TARGET_GOACC_VALIDATE_DIMS #undef TARGET_GOACC_VALIDATE_DIMS
#define TARGET_GOACC_VALIDATE_DIMS gcn_goacc_validate_dims #define TARGET_GOACC_VALIDATE_DIMS gcn_goacc_validate_dims
#undef TARGET_GOACC_WORKER_PARTITIONING
#define TARGET_GOACC_WORKER_PARTITIONING true
#undef TARGET_HARD_REGNO_MODE_OK #undef TARGET_HARD_REGNO_MODE_OK
#define TARGET_HARD_REGNO_MODE_OK gcn_hard_regno_mode_ok #define TARGET_HARD_REGNO_MODE_OK gcn_hard_regno_mode_ok
#undef TARGET_HARD_REGNO_NREGS #undef TARGET_HARD_REGNO_NREGS
......
...@@ -65,7 +65,7 @@ Target Report RejectNegative Var(flag_bypass_init_error) ...@@ -65,7 +65,7 @@ Target Report RejectNegative Var(flag_bypass_init_error)
bool flag_worker_partitioning = false bool flag_worker_partitioning = false
macc-experimental-workers macc-experimental-workers
Target Report Var(flag_worker_partitioning) Init(1) Target Report Var(flag_worker_partitioning) Init(0)
int stack_size_opt = -1 int stack_size_opt = -1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment