I've now pushed the 3 big patches that set up the new infrastructure for metadirectives and dynamic selectors. Part 4 of the previous version of the series (labeled "v5") has already been approved and pushed, and I'll be reposting the remaining 5 not-yet-approved parts that add the user-visible support for metadirectives soon.
Many thanks to Tobias for iterating with me on these patches, and for Jakub for his review of an earlier version. The first version of the metadirective patches was posted back in December 2021. The patch set then languished for quite a while before I picked it up just over a year ago, and since then one of the big challenges I've had is just keeping up with bit-rot and resolving conflicts with other upstream OpenMP commits, while my own out-of-tree patch set kept getting bigger as I found more bugs or had to rework things in more invasive ways. So I'm *very* relieved at getting the most complicated parts of the set in, finally. There are still bugs and incomplete functionality, but spending less time on resolving merge conflicts means more time for fixing those issues. -Sandra Sandra Loosemore (3): OpenMP: New tree nodes for metadirective and dynamic selector support. OpenMP: Re-work and extend context selector resolution OpenMP: Remove dead code from declare variant reimplementation gcc/Makefile.in | 2 +- gcc/c/c-parser.cc | 4 +- gcc/cgraph.cc | 2 - gcc/cgraph.h | 12 +- gcc/cgraphclones.cc | 2 +- gcc/cp/decl.cc | 2 +- gcc/cp/parser.cc | 2 +- gcc/doc/generic.texi | 63 + gcc/fold-const.cc | 2 + gcc/fortran/trans-openmp.cc | 5 +- gcc/gimple-expr.cc | 5 + gcc/gimple.cc | 4 +- gcc/gimplify.cc | 653 ++++- gcc/gimplify.h | 2 +- gcc/ipa-free-lang-data.cc | 2 +- gcc/ipa.cc | 3 - gcc/lto-cgraph.cc | 12 +- gcc/lto-streamer-out.cc | 3 +- gcc/lto-streamer.h | 6 - gcc/lto/lto-partition.cc | 5 +- gcc/omp-builtins.def | 2 + gcc/omp-expand.cc | 6 +- gcc/omp-general.cc | 2421 ++++++++++------- gcc/omp-general.h | 45 +- gcc/omp-offload.cc | 97 +- gcc/omp-simd-clone.cc | 4 +- gcc/passes.cc | 3 +- gcc/symtab.cc | 2 +- .../c-c++-common/gomp/declare-variant-12.c | 14 +- .../c-c++-common/gomp/declare-variant-13.c | 4 +- .../c-c++-common/gomp/declare-variant-14.c | 2 +- .../gfortran.dg/gomp/declare-variant-12.f90 | 14 +- .../gfortran.dg/gomp/declare-variant-13.f90 | 23 +- .../gfortran.dg/gomp/declare-variant-14.f90 | 16 +- gcc/tree-cfg.cc | 1 + gcc/tree-inline.cc | 15 +- gcc/tree-pretty-print.cc | 81 + gcc/tree-ssa-operands.cc | 4 + gcc/tree.def | 34 + gcc/tree.h | 22 + 40 files changed, 2382 insertions(+), 1219 deletions(-) -- 2.34.1