Hi!

On 2018-12-03T10:50:44-0500, Pierre-Marie de Rodat <dero...@adacore.com> wrote:
> Matching front-end bits to support Acc_Kernels, Acc_Parallel,
> Acc_Loop and Acc_Data.

Interesting.  :-)


I have not reviewed this properly, but just stumbled over the following:

> --- gcc/ada/gcc-interface/trans.c
> +++ gcc/ada/gcc-interface/trans.c

> @@ -1309,6 +1533,274 @@ Pragma_to_gnu (Node_Id gnat_node)

> +           case Name_Copy:
> +             map_kind = GOMP_MAP_FORCE_TOFROM;
> +             gnu_clauses = Iterate_Acc_Clause_Arg (gnat_expr, gnu_clauses,
> +                                                   Acc_Data_to_gnu,
> +                                                   &map_kind);
> +             break;
> +
> +           case Name_Copy_In:
> +             map_kind = GOMP_MAP_FORCE_TO;
> +             gnu_clauses = Iterate_Acc_Clause_Arg (gnat_expr, gnu_clauses,
> +                                                   Acc_Data_to_gnu,
> +                                                   &map_kind);
> +             break;
> +
> +           case Name_Copy_Out:
> +             map_kind = GOMP_MAP_FORCE_FROM;
> +             gnu_clauses = Iterate_Acc_Clause_Arg (gnat_expr, gnu_clauses,
> +                                                   Acc_Data_to_gnu,
> +                                                   &map_kind);
> +             break;

> +           case Name_Create:
> +             map_kind = GOMP_MAP_FORCE_ALLOC;
> +             gnu_clauses = Iterate_Acc_Clause_Arg (gnat_expr, gnu_clauses,
> +                                                   Acc_Data_to_gnu,
> +                                                   &map_kind);
> +             break;

What's the rationale for using here the 'FORCE' mapping kind variants
instead of 'GOMP_MAP_TOFROM', 'GOMP_MAP_TO', 'GOMP_MAP_FROM',
'GOMP_MAP_ALLOC', as demanded starting with the OpenACC 2.5 revision
(default 'present_or_*' behavior)?

For avoidance of doubt:

> +           case Name_Present:
> +             map_kind = GOMP_MAP_FORCE_PRESENT;

> +           case Name_Device_Ptr:
> +             map_kind = GOMP_MAP_FORCE_DEVICEPTR;

... these remain correct to use 'FORCE' mapping kinds.


Grüße
 Thomas

Attachment: signature.asc
Description: PGP signature

Reply via email to