Clarify gcc/gimplify.c:oacc_default_clause

gcc/
	* gimplify.c (oacc_default_clause): Clarify.

From-SVN: r248279
This commit is contained in:
Thomas Schwinge 2017-05-19 15:32:30 +02:00 committed by Thomas Schwinge
parent 9740ed54a6
commit 0d0afa9faf
2 changed files with 26 additions and 18 deletions

View file

@ -1,3 +1,7 @@
2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
* gimplify.c (oacc_default_clause): Clarify.
2017-05-19 Nathan Sidwell <nathan@acm.org>
LANG_HOOK_REGISTER_DUMPS

View file

@ -6952,30 +6952,34 @@ oacc_default_clause (struct gimplify_omp_ctx *ctx, tree decl, unsigned flags)
switch (ctx->region_type)
{
default:
gcc_unreachable ();
case ORT_ACC_KERNELS:
/* Scalars are default 'copy' under kernels, non-scalars are default
'present_or_copy'. */
flags |= GOVD_MAP;
if (!AGGREGATE_TYPE_P (type))
flags |= GOVD_MAP_FORCE;
rkind = "kernels";
if (AGGREGATE_TYPE_P (type))
/* Aggregates default to 'present_or_copy'. */
flags |= GOVD_MAP;
else
/* Scalars default to 'copy'. */
flags |= GOVD_MAP | GOVD_MAP_FORCE;
break;
case ORT_ACC_PARALLEL:
{
if (on_device || AGGREGATE_TYPE_P (type) || declared)
/* Aggregates default to 'present_or_copy'. */
flags |= GOVD_MAP;
else
/* Scalars default to 'firstprivate'. */
flags |= GOVD_FIRSTPRIVATE;
rkind = "parallel";
}
rkind = "parallel";
if (on_device || declared)
flags |= GOVD_MAP;
else if (AGGREGATE_TYPE_P (type))
/* Aggregates default to 'present_or_copy'. */
flags |= GOVD_MAP;
else
/* Scalars default to 'firstprivate'. */
flags |= GOVD_FIRSTPRIVATE;
break;
default:
gcc_unreachable ();
}
if (DECL_ARTIFICIAL (decl))