From: Sandra Loosemore <sandra@codesourcery.com>
To: <gcc-patches@gcc.gnu.org>
Cc: <jakub@redhat.com>, <tobias@codesourcery.com>
Subject: [COMMITTED V3 0/6] Support for imperfectly-nested loops
Date: Fri, 25 Aug 2023 13:47:08 -0600 [thread overview]
Message-ID: <20230825194714.627157-1-sandra@codesourcery.com> (raw)
V2 of these patches were previously approved with a few small changes
requested. For the archives, here is the version I've pushed.
Parts 1 and 2 are unchanged since V2. In part 3 (C++) I had to fix a
merge problem by hand. In parts 4 and 5, I hacked up a couple tests
as requested by Jakub. Part 5 (Fortran) also includes the whitespace
fix Tobias pointed out, and part 6 (documentation) is new.
-Sandra
Sandra Loosemore (6):
OpenMP: Add OMP_STRUCTURED_BLOCK and GIMPLE_OMP_STRUCTURED_BLOCK.
OpenMP: C front end support for imperfectly-nested loops
OpenMP: C++ support for imperfectly-nested loops
OpenMP: New C/C++ testcases for imperfectly nested loops.
OpenMP: Fortran support for imperfectly-nested loops
OpenMP: Document support for imperfectly-nested loops.
gcc/c-family/c-common.h | 1 +
gcc/c-family/c-omp.cc | 151 ++
gcc/c/c-parser.cc | 860 +++++++----
gcc/cp/constexpr.cc | 1 +
gcc/cp/cp-tree.h | 2 +-
gcc/cp/parser.cc | 1315 ++++++++++++-----
gcc/cp/parser.h | 3 +
gcc/cp/pt.cc | 4 +-
gcc/cp/semantics.cc | 117 +-
gcc/doc/generic.texi | 14 +
gcc/doc/gimple.texi | 19 +
gcc/fortran/gfortran.h | 3 +
gcc/fortran/openmp.cc | 763 ++++++++--
gcc/fortran/trans-stmt.cc | 7 +-
gcc/gimple-low.cc | 4 +
gcc/gimple-pretty-print.cc | 6 +-
gcc/gimple-walk.cc | 1 +
gcc/gimple.cc | 15 +
gcc/gimple.def | 5 +
gcc/gimple.h | 3 +
gcc/gimplify.cc | 6 +
gcc/omp-api.h | 32 +
gcc/omp-expand.cc | 4 +
gcc/omp-general.cc | 134 ++
gcc/omp-general.h | 1 +
gcc/omp-low.cc | 140 +-
gcc/testsuite/c-c++-common/goacc/collapse-1.c | 16 +-
gcc/testsuite/c-c++-common/goacc/tile-2.c | 4 +-
.../c-c++-common/gomp/imperfect-attributes.c | 81 +
.../c-c++-common/gomp/imperfect-badloops.c | 50 +
.../c-c++-common/gomp/imperfect-blocks.c | 75 +
.../c-c++-common/gomp/imperfect-extension.c | 55 +
.../c-c++-common/gomp/imperfect-gotos.c | 174 +++
.../gomp/imperfect-invalid-scope.c | 77 +
.../c-c++-common/gomp/imperfect-labels.c | 85 ++
.../gomp/imperfect-legacy-syntax.c | 44 +
.../c-c++-common/gomp/imperfect-pragmas.c | 85 ++
gcc/testsuite/c-c++-common/gomp/imperfect1.c | 38 +
gcc/testsuite/c-c++-common/gomp/imperfect2.c | 34 +
gcc/testsuite/c-c++-common/gomp/imperfect3.c | 52 +
gcc/testsuite/c-c++-common/gomp/imperfect4.c | 33 +
gcc/testsuite/c-c++-common/gomp/imperfect5.c | 95 ++
gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C | 38 +
gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C | 34 +
gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C | 33 +
gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C | 33 +
gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C | 57 +
gcc/testsuite/g++.dg/gomp/pr41967.C | 2 +-
.../g++.dg/gomp/tpl-imperfect-gotos.C | 161 ++
.../g++.dg/gomp/tpl-imperfect-invalid-scope.C | 94 ++
gcc/testsuite/gcc.dg/gomp/collapse-1.c | 10 +-
gcc/testsuite/gfortran.dg/gomp/collapse1.f90 | 6 +-
gcc/testsuite/gfortran.dg/gomp/collapse2.f90 | 10 +-
.../gfortran.dg/gomp/imperfect-gotos.f90 | 69 +
.../gomp/imperfect-invalid-scope.f90 | 81 +
gcc/testsuite/gfortran.dg/gomp/imperfect1.f90 | 39 +
gcc/testsuite/gfortran.dg/gomp/imperfect2.f90 | 56 +
gcc/testsuite/gfortran.dg/gomp/imperfect3.f90 | 45 +
gcc/testsuite/gfortran.dg/gomp/imperfect4.f90 | 36 +
gcc/testsuite/gfortran.dg/gomp/imperfect5.f90 | 85 ++
gcc/tree-inline.cc | 6 +
gcc/tree-nested.cc | 3 +
gcc/tree-pretty-print.cc | 4 +
gcc/tree.def | 9 +
gcc/tree.h | 3 +
libgomp/libgomp.texi | 2 +-
.../testsuite/libgomp.c++/attrs-imperfect1.C | 76 +
.../testsuite/libgomp.c++/attrs-imperfect2.C | 114 ++
.../testsuite/libgomp.c++/attrs-imperfect3.C | 119 ++
.../testsuite/libgomp.c++/attrs-imperfect4.C | 117 ++
.../testsuite/libgomp.c++/attrs-imperfect5.C | 49 +
.../testsuite/libgomp.c++/attrs-imperfect6.C | 115 ++
.../testsuite/libgomp.c++/imperfect-class-1.C | 169 +++
.../testsuite/libgomp.c++/imperfect-class-2.C | 167 +++
.../testsuite/libgomp.c++/imperfect-class-3.C | 167 +++
.../libgomp.c++/imperfect-destructor.C | 135 ++
.../libgomp.c++/imperfect-template-1.C | 172 +++
.../libgomp.c++/imperfect-template-2.C | 170 +++
.../libgomp.c++/imperfect-template-3.C | 170 +++
.../libgomp.c-c++-common/imperfect1.c | 76 +
.../libgomp.c-c++-common/imperfect2.c | 114 ++
.../libgomp.c-c++-common/imperfect3.c | 119 ++
.../libgomp.c-c++-common/imperfect4.c | 117 ++
.../libgomp.c-c++-common/imperfect5.c | 49 +
.../libgomp.c-c++-common/imperfect6.c | 115 ++
.../libgomp.c-c++-common/target-imperfect1.c | 81 +
.../libgomp.c-c++-common/target-imperfect2.c | 122 ++
.../libgomp.c-c++-common/target-imperfect3.c | 125 ++
.../libgomp.c-c++-common/target-imperfect4.c | 122 ++
.../libgomp.fortran/imperfect-destructor.f90 | 142 ++
.../testsuite/libgomp.fortran/imperfect1.f90 | 67 +
.../testsuite/libgomp.fortran/imperfect2.f90 | 102 ++
.../testsuite/libgomp.fortran/imperfect3.f90 | 110 ++
.../testsuite/libgomp.fortran/imperfect4.f90 | 121 ++
.../libgomp.fortran/target-imperfect1.f90 | 72 +
.../libgomp.fortran/target-imperfect2.f90 | 110 ++
.../libgomp.fortran/target-imperfect3.f90 | 116 ++
.../libgomp.fortran/target-imperfect4.f90 | 126 ++
98 files changed, 8359 insertions(+), 912 deletions(-)
create mode 100644 gcc/omp-api.h
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-attributes.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-badloops.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-blocks.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-extension.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-gotos.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-invalid-scope.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-labels.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect1.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect2.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect3.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect4.c
create mode 100644 gcc/testsuite/c-c++-common/gomp/imperfect5.c
create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
create mode 100644 gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
create mode 100644 gcc/testsuite/g++.dg/gomp/tpl-imperfect-gotos.C
create mode 100644 gcc/testsuite/g++.dg/gomp/tpl-imperfect-invalid-scope.C
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect-gotos.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect-invalid-scope.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect1.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect2.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect3.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect4.f90
create mode 100644 gcc/testsuite/gfortran.dg/gomp/imperfect5.f90
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect1.C
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect2.C
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect3.C
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect4.C
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect5.C
create mode 100644 libgomp/testsuite/libgomp.c++/attrs-imperfect6.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-class-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-class-2.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-class-3.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-destructor.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-template-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-template-2.C
create mode 100644 libgomp/testsuite/libgomp.c++/imperfect-template-3.C
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect1.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect2.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect3.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect4.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect5.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/imperfect6.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-imperfect1.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-imperfect2.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-imperfect3.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-imperfect4.c
create mode 100644 libgomp/testsuite/libgomp.fortran/imperfect-destructor.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/imperfect1.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/imperfect2.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/imperfect3.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/imperfect4.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/target-imperfect1.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/target-imperfect2.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/target-imperfect3.f90
create mode 100644 libgomp/testsuite/libgomp.fortran/target-imperfect4.f90
--
2.31.1
next reply other threads:[~2023-08-25 19:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-25 19:47 Sandra Loosemore [this message]
2023-08-25 19:47 ` [COMMITTED V3 1/6] OpenMP: Add OMP_STRUCTURED_BLOCK and GIMPLE_OMP_STRUCTURED_BLOCK Sandra Loosemore
2023-08-25 19:47 ` [COMMITTED V3 2/6] OpenMP: C front end support for imperfectly-nested loops Sandra Loosemore
2023-08-25 19:47 ` [COMMITTED V3 3/6] OpenMP: C++ " Sandra Loosemore
2023-08-25 19:47 ` [COMMITTED V3 4/6] OpenMP: New C/C++ testcases for imperfectly nested loops Sandra Loosemore
2023-08-25 19:47 ` [COMMITTED V3 5/6] OpenMP: Fortran support for imperfectly-nested loops Sandra Loosemore
2023-08-25 19:47 ` [COMMITTED V3 6/6] OpenMP: Document " Sandra Loosemore
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230825194714.627157-1-sandra@codesourcery.com \
--to=sandra@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=tobias@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).