On Mon, Oct 31, 2022 at 03:46:25PM +0100, Tobias Burnus wrote:
> OpenMP/Fortran: 'target update' with strides + DT components
> 
> OpenMP 5.0 permits to use arrays with strides and derived
> type components for the list items to the 'from'/'to' clauses
> of the 'target update' directive.
> 
> gcc/fortran/ChangeLog:
> 
>       * openmp.cc (gfc_match_omp_clauses): Permit derived types.
>       (resolve_omp_clauses):Accept noncontiguous
>       arrays.

Formatting.  Missing space before Accept and arrays. could fit on the
same line.

>       * trans-openmp.cc (gfc_trans_omp_clauses): Fixes for
>       derived-type changes; fix size for scalars.
> 
> libgomp/ChangeLog:
> 
>       * testsuite/libgomp.fortran/target-11.f90: New test.
>       * testsuite/libgomp.fortran/target-13.f90: New test.

Otherwise LGTM, assuming it actually works correctly.

I don't remember support for non-contiguous copying to/from devices
being actually added, on the library side we certainly have
omp_target_memcpy_rect which under the hood just does multiple copies
of the contiguous subparts, but I don't remember something similar
done in GOMP_target_update.  And I think it is not ok to copy bytes
that aren't requested to be copied.

        Jakub

Reply via email to