aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/intrinsic.cc
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2023-02-09 15:51:13 +0100
committerTobias Burnus <tobias@codesourcery.com>2023-02-09 15:51:13 +0100
commitac2949574da9a668daad421d7edb79f172f73c6f (patch)
tree7dae635bd8b000f7850ad18f9df63110474bab98 /gcc/fortran/intrinsic.cc
parent1189d1b38e2b9507488ea294cda771c79e972c1d (diff)
downloadgcc-ac2949574da9a668daad421d7edb79f172f73c6f.zip
gcc-ac2949574da9a668daad421d7edb79f172f73c6f.tar.gz
gcc-ac2949574da9a668daad421d7edb79f172f73c6f.tar.bz2
OpenMP/Fortran: Partially fix non-rect loop nests [PR107424]
This patch ensures that loop bounds depending on outer loop vars use the proper TREE_VEC format. It additionally gives a sorry if such an outer var has a non-one/non-minus-one increment as currently a count variable is used in this case (see PR). Finally, it avoids 'count' and just uses a local loop variable if the step increment is +/-1. PR fortran/107424 gcc/fortran/ChangeLog: * trans-openmp.cc (struct dovar_init_d): Add 'sym' and 'non_unit_incr' members. (gfc_nonrect_loop_expr): New. (gfc_trans_omp_do): Call it; use normal loop bounds for unit stride - and only create local loop var. libgomp/ChangeLog: * testsuite/libgomp.fortran/non-rectangular-loop-1.f90: New test. * testsuite/libgomp.fortran/non-rectangular-loop-1a.f90: New test. * testsuite/libgomp.fortran/non-rectangular-loop-2.f90: New test. * testsuite/libgomp.fortran/non-rectangular-loop-3.f90: New test. * testsuite/libgomp.fortran/non-rectangular-loop-4.f90: New test. * testsuite/libgomp.fortran/non-rectangular-loop-5.f90: New test. gcc/testsuite/ChangeLog: * gfortran.dg/goacc/privatization-1-compute-loop.f90: Update dg-note. * gfortran.dg/goacc/privatization-1-routine_gang-loop.f90: Likewise.
Diffstat (limited to 'gcc/fortran/intrinsic.cc')
0 files changed, 0 insertions, 0 deletions