]> git.ipfire.org Git - thirdparty/gcc.git/commit
openmp: Disable strided target updates when iterators are used
authorKwok Cheung Yeung <kcyeung@baylibre.com>
Thu, 12 Sep 2024 20:33:58 +0000 (21:33 +0100)
committerKwok Cheung Yeung <kcyeung@baylibre.com>
Thu, 17 Apr 2025 22:30:08 +0000 (23:30 +0100)
commit1adb0ccac34ca39b6539108bdaa0262256c842d5
treee0fba463d52c42499b82f9e47365fa11b6b6b0dc
parent0861d9c3e63cdc8cb0fd08b06dbfd3ea6b999ddf
openmp: Disable strided target updates when iterators are used

Non-contiguous target updates result in the new strided target updates code
being used, resulting in new clauses such as GOMP_MAP_GRID_DIM,
GOMP_MAP_GRID_STRIDE etc. These are not currently supported in conjunction
with iterators, so this code-path is disabled when used together with
iterators.

The older target updates supports non-contiguous updates as long as a stride
is not applied.

gcc/c/

* c-typeck.cc (handle_omp_array_sections): Add extra argument.  Set
argument to true if array section has a stride that is not one.
(c_finish_omp_clauses): Disable strided updates when iterators are
used in the clause.  Emit sorry if strided.

gcc/cp/

* semantics.cc (handle_omp_array_sections): Add extra argument.  Set
argument to true if array section has a stride that is not one.
(finish_omp_clauses): Disable strided updates when iterators are
used in the clause.  Emit sorry if strided.

gcc/fortran/

* trans-openmp.cc (gfc_trans_omp_clauses): Disable strided updates
when iterators are used in the clause.
gcc/c/ChangeLog.omp
gcc/c/c-typeck.cc
gcc/cp/ChangeLog.omp
gcc/cp/semantics.cc
gcc/fortran/ChangeLog.omp
gcc/fortran/trans-openmp.cc