diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/nvptx/nvptx.c | 17 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2f3751..80c3bf2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2019-01-12 Tom de Vries <tdevries@suse.de> + PR middle-end/88703 + * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults + from oacc_default_dims, as oacc_validate_dims would do it, and apply + dimensions limits. + +2019-01-12 Tom de Vries <tdevries@suse.de> + * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) (nvptx_goacc_validate_dims): Add used parameter. * doc/tm.texi: Regenerate. diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 89f0e56..a4c7953 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -5703,6 +5703,23 @@ nvptx_goacc_validate_dims_1 (tree decl, int dims[], int fn_level, unsigned used) dims[GOMP_DIM_GANG] = PTX_DEFAULT_RUNTIME_DIM; nvptx_apply_dim_limits (dims); } + + if (offload_region_p) + { + for (i = 0; i < GOMP_DIM_MAX; i++) + { + if (!(dims[i] < 0)) + continue; + + if ((used & GOMP_DIM_MASK (i)) == 0) + /* Function oacc_validate_dims will apply the minimal dimension. */ + continue; + + dims[i] = oacc_get_default_dim (i); + } + + nvptx_apply_dim_limits (dims); + } } /* Validate compute dimensions of an OpenACC offload or routine, fill |