openmp: Handle even some combined non-rectangular loops
authorJakub Jelinek <jakub@redhat.com>
Wed, 5 Aug 2020 08:45:16 +0000 (10:45 +0200)
committerJakub Jelinek <jakub@redhat.com>
Wed, 5 Aug 2020 08:45:16 +0000 (10:45 +0200)
commit9f3abfb84e2a7ca115b0550c32308b5ada3e6a46
treebe4f586769f553085f2c3b58255f50d73bbc0979
parent916c7a201a9a1dc94f2c056a773826a26d1daca9
openmp: Handle even some combined non-rectangular loops

The number of loops computation and logical iteration -> actual iterator values
computations can now be done separately even on composite constructs (though
for triangular loops it would still be more efficient to propagate a few values
through, will handle that incrementally).
simd and taskloop are still unhandled.

2020-08-05  Jakub Jelinek  <jakub@redhat.com>

* omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular
loops.

* testsuite/libgomp.c/loop-22.c: New test.
* testsuite/libgomp.c/loop-23.c: New test.
gcc/omp-expand.c
libgomp/testsuite/libgomp.c/loop-22.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/loop-23.c [new file with mode: 0644]