public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 00/40] OpenACC "kernels" Improvements
@ 2021-12-15 15:54 Frederik Harwath
  2021-12-15 15:54 ` [PATCH 01/40] Kernels loops annotation: C and C++ Frederik Harwath
                   ` (39 more replies)
  0 siblings, 40 replies; 49+ messages in thread
From: Frederik Harwath @ 2021-12-15 15:54 UTC (permalink / raw)
  To: gcc-patches; +Cc: rguenther, fortran, matz, Catherine_Moore

Hi,
this patch series implements the re-work of the OpenACC "kernels"
implementation that has been announced at the GNU Tools Track of this
year's Linux Plumbers Conference; see
https://linuxplumbersconf.org/event/11/contributions/998/.  Versions
of the patches have also been committed to the devel/omp/gcc-11 branch
recently.

The patch series contains middle-end changes that modify the "kernels"
loop handling to use Graphite for dependence analysis of loops in
"kernels" regions, as well as new optimizations and adjustments to
existing optimizations to support this analysis. A central step is
contained in the commit titled "openacc: Use Graphite for dependence
analysis in \"kernels\" regions" whose commit message also contains
further explanations. There are also front end changes (cf. the
patches by Sandra Loosemore) that prepare the loops in "kernels"
regions for the middle-end processing and which lift various
restrictions on "kernels" regions.  I have included some dependences
(the patches by Julian Brown) from the devel/omp/gcc-11 branch which
will be re-submitted independently for review.

I have bootstrapped the compiler on x86_64-linux-gnu and performed
comprehensive testing on a powerpc64le-linux-gnu target.  The patches
should apply cleanly on commit r12-4865 of the master branch.

I am aware that we cannot incorporate those patches into GCC at the
current development stage. I hope that we can discuss some of the
changes before they can be considered for inclusion in GCC during the
next stage 1.

Best regards,
Frederik


Andrew Stubbs (2):
  openacc: Add data optimization pass
  openacc: Add runtime a lias checking for OpenACC kernels

Frederik Harwath (20):
  Fortran: Delinearize array accesses
  openacc: Move pass_oacc_device_lower after pass_graphite
  graphite: Extend SCoP detection dump output
  graphite: Rename isl_id_for_ssa_name
  graphite: Fix minor mistakes in comments
  Move compute_alias_check_pairs to tree-data-ref.c
  graphite: Add runtime alias checking
  openacc: Use Graphite for dependence analysis in "kernels" regions
  openacc: Add "can_be_parallel" flag info to "graph" dumps
  openacc: Remove unused partitioning in "kernels" regions
  Add function for printing a single OMP_CLAUSE
  openacc: Warn about "independent" "kernels" loops with
    data-dependences
  openacc: Handle internal function calls in pass_lim
  openacc: Disable pass_pre on outlined functions analyzed by Graphite
  graphite: Tune parameters for OpenACC use
  graphite: Adjust scop loop-nest choice
  graphite: Accept loops without data references
  openacc: Enable reduction variable localization for "kernels"
  openacc: Check type for references in reduction lowering
  openacc: Adjust testsuite to new "kernels" handling

Julian Brown (4):
  Reference reduction localization
  Fix tree check failure with reduction localization
  Use more appropriate var in localize_reductions call
  Handle references in OpenACC "private" clauses

Sandra Loosemore (12):
  Kernels loops annotation: C and C++.
  Add -fno-openacc-kernels-annotate-loops option to more testcases.
  Kernels loops annotation: Fortran.
  Additional Fortran testsuite fixes for kernels loops annotation pass.
  Fix bug in processing of array dimensions in data clauses.
  Add a "combined" flag for "acc kernels loop" etc directives.
  Annotate inner loops in "acc kernels loop" directives (C/C++).
  Annotate inner loops in "acc kernels loop" directives (Fortran).
  Permit calls to builtins and intrinsics in kernels loops.
  Fix patterns in Fortran tests for kernels loop annotation.
  Clean up loop variable extraction in OpenACC kernels loop annotation.
  Relax some restrictions on the loop bound in kernels loop annotation.

Tobias Burnus (2):
  Fix for is_gimple_reg vars to 'data kernels'
  openacc: fix privatization of by-reference arrays

 gcc/Makefile.in                               |   2 +
 gcc/c-family/c-common.h                       |   1 +
 gcc/c-family/c-omp.c                          | 915 +++++++++++++++--
 gcc/c-family/c.opt                            |   8 +
 gcc/c/c-decl.c                                |  28 +
 gcc/c/c-parser.c                              |   3 +
 gcc/cfgloop.c                                 |   1 +
 gcc/cfgloop.h                                 |   6 +
 gcc/cfgloopmanip.c                            |   1 +
 gcc/common.opt                                |   9 +
 gcc/config/nvptx/nvptx.c                      |   7 +
 gcc/cp/decl.c                                 |  44 +
 gcc/cp/parser.c                               |   3 +
 gcc/cp/semantics.c                            |   9 +
 gcc/doc/gimple.texi                           |   2 +
 gcc/doc/invoke.texi                           |  52 +-
 gcc/doc/passes.texi                           |   6 +-
 gcc/expr.c                                    |   1 +
 gcc/flag-types.h                              |   1 +
 gcc/fortran/gfortran.h                        |   1 +
 gcc/fortran/lang.opt                          |  12 +
 gcc/fortran/openmp.c                          | 415 ++++++++
 gcc/fortran/parse.c                           |   9 +
 gcc/fortran/trans-array.c                     | 321 ++++--
 gcc/fortran/trans-openmp.c                    |  34 +-
 gcc/gimple-loop-interchange.cc                |   2 +-
 gcc/gimple-pretty-print.c                     |   3 +
 gcc/gimple-walk.c                             |  15 +-
 gcc/gimple-walk.h                             |   6 +
 gcc/gimple.h                                  |   5 +
 gcc/gimplify.c                                | 117 +++
 gcc/graph.c                                   |  35 +-
 gcc/graphite-dependences.c                    | 220 ++--
 gcc/graphite-isl-ast-to-gimple.c              | 271 ++++-
 gcc/graphite-oacc.c                           | 688 +++++++++++++
 gcc/graphite-oacc.h                           |  55 +
 gcc/graphite-optimize-isl.c                   |  42 +-
 gcc/graphite-poly.c                           |  41 +-
 gcc/graphite-scop-detection.c                 | 651 ++++++++++--
 gcc/graphite-sese-to-poly.c                   |  90 +-
 gcc/graphite.c                                | 120 ++-
 gcc/graphite.h                                |  40 +-
 gcc/internal-fn.c                             |   4 +
 gcc/internal-fn.h                             |   4 +-
 gcc/omp-data-optimize.cc                      | 951 ++++++++++++++++++
 gcc/omp-expand.c                              | 102 +-
 gcc/omp-general.c                             |  23 +-
 gcc/omp-general.h                             |   1 +
 gcc/omp-low.c                                 | 439 ++++++--
 gcc/omp-oacc-kernels-decompose.cc             | 154 ++-
 gcc/omp-oacc-neuter-broadcast.cc              |   2 +
 gcc/omp-offload.c                             | 830 ++++++++++++---
 gcc/omp-offload.h                             |   2 +
 gcc/params.opt                                |   7 +-
 gcc/passes.c                                  |  42 +
 gcc/passes.def                                |  47 +-
 gcc/sese.c                                    |  25 +-
 gcc/sese.h                                    |  19 +
 .../c-c++-common/goacc-gomp/nesting-1.c       |  10 +-
 gcc/testsuite/c-c++-common/goacc/cache-3-1.c  |   2 +-
 .../goacc/classify-kernels-unparallelized.c   |  35 +-
 .../c-c++-common/goacc/classify-kernels.c     |  24 +-
 .../c-c++-common/goacc/classify-parallel.c    |   8 +-
 .../goacc/classify-routine-nohost.c           |  20 +-
 .../c-c++-common/goacc/classify-routine.c     |  22 +-
 .../c-c++-common/goacc/classify-serial.c      |   8 +-
 .../c-c++-common/goacc/combined-directives.c  |   2 +-
 .../device-lowering-debug-optimization.c      |  29 +
 .../goacc/device-lowering-no-loops.c          |  17 +
 .../goacc/device-lowering-no-optimization.c   |  30 +
 .../c-c++-common/goacc/if-clause-2.c          |   2 +-
 gcc/testsuite/c-c++-common/goacc/kernels-1.c  |  17 +-
 .../kernels-counter-var-redundant-load.c      |  19 +-
 .../kernels-counter-vars-function-scope.c     |  10 +-
 .../c-c++-common/goacc/kernels-decompose-1.c  |  31 +-
 .../c-c++-common/goacc/kernels-decompose-2.c  |  57 +-
 .../goacc/kernels-decompose-ice-1.c           |   7 +-
 .../goacc/kernels-decompose-ice-2.c           |   3 +-
 .../goacc/kernels-double-reduction-n.c        |   6 +-
 .../goacc/kernels-double-reduction.c          |   5 +-
 .../c-c++-common/goacc/kernels-loop-2.c       |  19 +-
 .../c-c++-common/goacc/kernels-loop-3.c       |   3 +
 .../goacc/kernels-loop-annotation-1.c         |  26 +
 .../goacc/kernels-loop-annotation-10.c        |  32 +
 .../goacc/kernels-loop-annotation-11.c        |  27 +
 .../goacc/kernels-loop-annotation-12.c        |  28 +
 .../goacc/kernels-loop-annotation-13.c        |  27 +
 .../goacc/kernels-loop-annotation-14.c        |  22 +
 .../goacc/kernels-loop-annotation-15.c        |  22 +
 .../goacc/kernels-loop-annotation-16.c        |  26 +
 .../goacc/kernels-loop-annotation-17.c        |  26 +
 .../goacc/kernels-loop-annotation-18.c        |  18 +
 .../goacc/kernels-loop-annotation-19.c        |  19 +
 .../goacc/kernels-loop-annotation-2.c         |  21 +
 .../goacc/kernels-loop-annotation-20.c        |  23 +
 .../goacc/kernels-loop-annotation-21.c        |  42 +
 .../goacc/kernels-loop-annotation-22.c        |  41 +
 .../goacc/kernels-loop-annotation-3.c         |  24 +
 .../goacc/kernels-loop-annotation-4.c         |  34 +
 .../goacc/kernels-loop-annotation-5.c         |  27 +
 .../goacc/kernels-loop-annotation-6.c         |  27 +
 .../goacc/kernels-loop-annotation-7.c         |  26 +
 .../goacc/kernels-loop-annotation-8.c         |  27 +
 .../goacc/kernels-loop-annotation-9.c         |  26 +
 .../c-c++-common/goacc/kernels-loop-data-2.c  |  17 +-
 .../goacc/kernels-loop-data-enter-exit-2.c    |  16 +-
 .../goacc/kernels-loop-data-enter-exit.c      |  17 +-
 .../goacc/kernels-loop-data-update.c          |  13 +-
 .../c-c++-common/goacc/kernels-loop-data.c    |  12 +-
 .../c-c++-common/goacc/kernels-loop-g.c       |  14 +-
 .../goacc/kernels-loop-mod-not-zero.c         |  10 +-
 .../c-c++-common/goacc/kernels-loop-n.c       |  10 +-
 .../c-c++-common/goacc/kernels-loop-nest.c    |  12 +-
 .../c-c++-common/goacc/kernels-loop.c         |  10 +-
 .../goacc/kernels-one-counter-var.c           |  12 +-
 .../kernels-parallel-loop-data-enter-exit.c   |  17 +-
 .../c-c++-common/goacc/kernels-reduction.c    |  10 +-
 .../c-c++-common/goacc/loop-2-kernels.c       |   6 +-
 .../c-c++-common/goacc/loop-auto-1.c          | 127 +--
 .../c-c++-common/goacc/loop-auto-2.c          |  37 +-
 .../c-c++-common/goacc/loop-auto-reductions.c |  22 +
 .../goacc/nested-reductions-2-parallel.c      | 138 +++
 .../goacc/note-parallelism-kernels-loops-1.c  |  61 ++
 .../note-parallelism-kernels-loops-parloops.c |  53 +
 .../c-c++-common/goacc/omp_data_optimize-1.c  | 677 +++++++++++++
 .../c-c++-common/goacc/routine-nohost-1.c     |   8 +-
 gcc/testsuite/c-c++-common/unroll-1.c         |   8 +-
 gcc/testsuite/c-c++-common/unroll-4.c         |   4 +-
 .../g++.dg/goacc/omp_data_optimize-1.C        | 169 ++++
 gcc/testsuite/g++.dg/goacc/template.C         |  18 +-
 .../gcc.dg/goacc/graphite-parameter-1.c       |  21 +
 .../gcc.dg/goacc/graphite-parameter-2.c       |  23 +
 .../gcc.dg/goacc/loop-processing-1.c          |   8 +-
 .../gcc.dg/goacc/nested-function-1.c          |   3 +-
 gcc/testsuite/gcc.dg/graphite/alias-1.c       |  22 +
 gcc/testsuite/gcc.dg/tree-ssa/backprop-1.c    |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/backprop-2.c    |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c    |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c    |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c    |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c    |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/cunroll-1.c     |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c     |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c     |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/ldist-17.c      |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/loop-38.c       |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/loopclosedphi.c |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr21463.c       |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr45427.c       |   4 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr59597.c       |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr61743-1.c     |   2 +-
 gcc/testsuite/gcc.dg/unroll-2.c               |   2 +-
 gcc/testsuite/gcc.dg/unroll-3.c               |   4 +-
 gcc/testsuite/gcc.dg/unroll-4.c               |   4 +-
 gcc/testsuite/gcc.dg/unroll-5.c               |   4 +-
 gcc/testsuite/gcc.dg/vect/bb-slp-59.c         |   2 +-
 gcc/testsuite/gcc.dg/vect/vect-profile-1.c    |   2 +-
 gcc/testsuite/gfortran.dg/assumed_type_2.f90  |   6 +-
 .../gfortran.dg/directive_unroll_1.f90        |   2 +-
 .../gfortran.dg/directive_unroll_4.f90        |   2 +-
 ...assify-kernels-unparallelized-parloops.f95 |  44 +
 .../goacc/classify-kernels-unparallelized.f95 |  27 +-
 .../gfortran.dg/goacc/classify-kernels.f95    |  21 +-
 .../gfortran.dg/goacc/classify-parallel.f95   |   6 +-
 .../goacc/classify-routine-nohost.f95         |  18 +-
 .../gfortran.dg/goacc/classify-routine.f95    |  20 +-
 .../gfortran.dg/goacc/classify-serial.f95     |   8 +-
 .../gfortran.dg/goacc/combined-directives.f90 |  19 +-
 .../gfortran.dg/goacc/common-block-3.f90      |  17 +-
 .../gfortran.dg/goacc/gang-static.f95         |  14 +-
 .../gfortran.dg/goacc/kernels-conversion.f95  |  52 +
 .../gfortran.dg/goacc/kernels-decompose-1.f95 | 186 ++--
 .../gfortran.dg/goacc/kernels-decompose-2.f95 | 113 ++-
 .../gfortran.dg/goacc/kernels-loop-2.f95      |  10 +-
 .../goacc/kernels-loop-annotation-1.f95       |  33 +
 .../goacc/kernels-loop-annotation-10.f95      |  32 +
 .../goacc/kernels-loop-annotation-11.f95      |  34 +
 .../goacc/kernels-loop-annotation-12.f95      |  39 +
 .../goacc/kernels-loop-annotation-13.f95      |  38 +
 .../goacc/kernels-loop-annotation-14.f95      |  35 +
 .../goacc/kernels-loop-annotation-15.f95      |  35 +
 .../goacc/kernels-loop-annotation-16.f95      |  34 +
 .../goacc/kernels-loop-annotation-18.f95      |  28 +
 .../goacc/kernels-loop-annotation-19.f95      |  29 +
 .../goacc/kernels-loop-annotation-2.f95       |  32 +
 .../goacc/kernels-loop-annotation-20.f95      |  26 +
 .../goacc/kernels-loop-annotation-3.f95       |  33 +
 .../goacc/kernels-loop-annotation-4.f95       |  34 +
 .../goacc/kernels-loop-annotation-5.f95       |  35 +
 .../goacc/kernels-loop-annotation-6.f95       |  34 +
 .../goacc/kernels-loop-annotation-7.f95       |  48 +
 .../goacc/kernels-loop-annotation-8.f95       |  50 +
 .../goacc/kernels-loop-annotation-9.f95       |  34 +
 .../gfortran.dg/goacc/kernels-loop-data-2.f95 |  10 +-
 .../goacc/kernels-loop-data-enter-exit-2.f95  |  12 +-
 .../goacc/kernels-loop-data-enter-exit.f95    |  12 +-
 .../goacc/kernels-loop-data-update.f95        |  12 +-
 .../gfortran.dg/goacc/kernels-loop-data.f95   |  14 +-
 .../gfortran.dg/goacc/kernels-loop-inner.f95  |   6 +-
 .../gfortran.dg/goacc/kernels-loop-n.f95      |  13 +-
 .../gfortran.dg/goacc/kernels-loop.f95        |   9 +-
 .../kernels-parallel-loop-data-enter-exit.f95 |  12 +-
 .../gfortran.dg/goacc/kernels-reductions.f90  |  37 +
 .../gfortran.dg/goacc/kernels-tree.f95        |   2 +-
 .../gfortran.dg/goacc/loop-2-kernels.f95      |   6 +-
 .../goacc/loop-auto-transfer-2.f90            |  45 +
 .../goacc/loop-auto-transfer-3.f90            |  95 ++
 .../goacc/loop-auto-transfer-4.f90            | 293 ++++++
 .../gfortran.dg/goacc/nested-function-1.f90   |  12 +-
 .../goacc/nested-reductions-2-parallel.f90    | 177 ++++
 .../gfortran.dg/goacc/omp_data_optimize-1.f90 | 588 +++++++++++
 .../goacc/private-explicit-kernels-1.f95      |  20 +-
 .../goacc/private-predetermined-kernels-1.f95 |  23 +-
 .../goacc/privatization-1-compute-loop.f90    |   3 -
 .../goacc/routine-module-mod-1.f90            |   4 +-
 .../goacc/routine-multiple-directives-1.f90   |  32 +-
 .../gfortran.dg/gomp/affinity-clause-1.f90    |   2 +-
 gcc/testsuite/gfortran.dg/graphite/block-2.f  |   9 +-
 .../gfortran.dg/graphite/block-3.f90          |   2 +-
 .../gfortran.dg/graphite/block-4.f90          |   2 +-
 gcc/testsuite/gfortran.dg/graphite/id-9.f     |   2 +-
 .../gfortran.dg/inline_matmul_16.f90          |   2 +
 .../gfortran.dg/inline_matmul_24.f90          |   2 +-
 gcc/testsuite/gfortran.dg/no_arg_check_2.f90  |   6 +-
 gcc/testsuite/gfortran.dg/pr32921.f           |   2 +-
 gcc/testsuite/gfortran.dg/reassoc_4.f         |   2 +-
 .../gfortran.dg/vect/fast-math-mgrid-resid.f  |   1 +
 gcc/tree-chrec.c                              |   3 +
 gcc/tree-core.h                               |   4 +-
 gcc/tree-data-ref.c                           | 107 +-
 gcc/tree-data-ref.h                           |   3 +
 gcc/tree-loop-distribution.c                  |  87 --
 gcc/tree-parloops.c                           |  18 +-
 gcc/tree-pass.h                               |   3 +
 gcc/tree-pretty-print.c                       |  11 +
 gcc/tree-pretty-print.h                       |   1 +
 gcc/tree-scalar-evolution.c                   | 177 +++-
 gcc/tree-scalar-evolution.h                   |   3 +
 gcc/tree-ssa-dce.c                            |  23 +
 gcc/tree-ssa-loop-im.c                        |  57 +-
 gcc/tree-ssa-loop-ivcanon.c                   |   2 +
 gcc/tree-ssa-loop-manip.h                     |   2 +-
 gcc/tree-ssa-loop-niter.c                     |   6 +
 gcc/tree-ssa-loop.c                           | 110 ++
 gcc/tree-ssa-phiprop.c                        |   2 +
 gcc/tree-ssa-pre.c                            |  17 +
 gcc/tree.c                                    | 137 ++-
 gcc/tree.h                                    |   7 +
 .../libgomp.oacc-c++/privatized-ref-2.C       |  64 ++
 .../libgomp.oacc-c++/privatized-ref-3.C       |  64 ++
 .../acc_prof-kernels-1.c                      |  22 +-
 .../declare-vla-kernels-decompose-ice-1.c     |   4 -
 .../kernels-decompose-1.c                     |  10 +-
 .../kernels-private-vars-local-worker-1.c     |   6 +-
 .../kernels-private-vars-local-worker-2.c     |   6 +-
 .../kernels-private-vars-local-worker-3.c     |   6 +-
 .../kernels-private-vars-local-worker-4.c     |   8 +-
 .../kernels-private-vars-local-worker-5.c     |   6 +-
 .../kernels-private-vars-loop-gang-1.c        |   4 +-
 .../kernels-private-vars-loop-gang-2.c        |   4 +-
 .../kernels-private-vars-loop-gang-3.c        |   4 +-
 .../kernels-private-vars-loop-gang-4.c        |  15 +-
 .../kernels-private-vars-loop-gang-5.c        |  10 +-
 .../kernels-private-vars-loop-gang-6.c        |   4 +-
 .../kernels-private-vars-loop-vector-1.c      |   6 +-
 .../kernels-private-vars-loop-vector-2.c      |   6 +-
 .../kernels-private-vars-loop-worker-1.c      |   8 +-
 .../kernels-private-vars-loop-worker-2.c      |   6 +-
 .../kernels-private-vars-loop-worker-3.c      |   6 +-
 .../kernels-private-vars-loop-worker-4.c      |   6 +-
 .../kernels-private-vars-loop-worker-5.c      |   9 +-
 .../kernels-private-vars-loop-worker-6.c      |   6 +-
 .../kernels-private-vars-loop-worker-7.c      |   6 +-
 .../libgomp.oacc-c-c++-common/loop-auto-1.c   |  30 +-
 .../libgomp.oacc-c-c++-common/parallel-dims.c |  39 +-
 .../libgomp.oacc-c-c++-common/pr84955-1.c     |   1 -
 .../libgomp.oacc-c-c++-common/pr85381-2.c     |   8 +-
 .../libgomp.oacc-c-c++-common/pr85381-3.c     |   8 +-
 .../libgomp.oacc-c-c++-common/pr85381-4.c     |   4 +-
 .../libgomp.oacc-c-c++-common/pr85486-2.c     |   4 +-
 .../libgomp.oacc-c-c++-common/pr85486-3.c     |   4 +-
 .../libgomp.oacc-c-c++-common/pr85486.c       |   4 +-
 .../routine-nohost-1.c                        |   6 +-
 .../runtime-alias-check-1.c                   |  79 ++
 .../runtime-alias-check-2.c                   |  90 ++
 .../vector-length-128-1.c                     |   5 +-
 .../vector-length-128-2.c                     |   5 +-
 .../vector-length-128-3.c                     |   5 +-
 .../vector-length-128-4.c                     |   5 +-
 .../vector-length-128-5.c                     |   5 +-
 .../vector-length-128-6.c                     |   5 +-
 .../vector-length-128-7.c                     |   5 +-
 .../testsuite/libgomp.oacc-fortran/if-1.f90   |  32 +-
 .../kernels-acc-loop-reduction-2.f90          |  12 +-
 .../kernels-independent.f90                   |   1 +
 .../libgomp.oacc-fortran/kernels-loop-1.f90   |   1 +
 .../kernels-private-vars-loop-gang-1.f90      |   4 +-
 .../kernels-private-vars-loop-gang-2.f90      |   4 +-
 .../kernels-private-vars-loop-gang-3.f90      |   4 +-
 .../kernels-private-vars-loop-gang-6.f90      |   5 +-
 .../kernels-private-vars-loop-vector-1.f90    |   4 +-
 .../kernels-private-vars-loop-vector-2.f90    |  11 +-
 .../kernels-private-vars-loop-worker-1.f90    |   6 +-
 .../kernels-private-vars-loop-worker-2.f90    |   4 +-
 .../kernels-private-vars-loop-worker-3.f90    |   4 +-
 .../kernels-private-vars-loop-worker-4.f90    |   4 +-
 .../kernels-private-vars-loop-worker-5.f90    |   7 +-
 .../kernels-private-vars-loop-worker-6.f90    |   4 +-
 .../kernels-private-vars-loop-worker-7.f90    |   6 +-
 .../libgomp.oacc-fortran/optional-private.f90 |   2 -
 .../libgomp.oacc-fortran/pr94358-1.f90        |   7 +-
 .../libgomp.oacc-fortran/privatized-ref-1.f95 |  71 ++
 .../libgomp.oacc-fortran/routine-nohost-1.f90 |   4 +-
 313 files changed, 12131 insertions(+), 1729 deletions(-)
 create mode 100644 gcc/graphite-oacc.c
 create mode 100644 gcc/graphite-oacc.h
 create mode 100644 gcc/omp-data-optimize.cc
 create mode 100644 gcc/testsuite/c-c++-common/goacc/device-lowering-debug-optimization.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/device-lowering-no-loops.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/device-lowering-no-optimization.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-1.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-10.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-11.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-12.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-13.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-14.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-15.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-16.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-17.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-18.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-19.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-2.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-20.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-21.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-22.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-3.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-4.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-5.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-6.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-7.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-8.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-9.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/loop-auto-reductions.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/note-parallelism-kernels-loops-1.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/note-parallelism-kernels-loops-parloops.c
 create mode 100644 gcc/testsuite/c-c++-common/goacc/omp_data_optimize-1.c
 create mode 100644 gcc/testsuite/g++.dg/goacc/omp_data_optimize-1.C
 create mode 100644 gcc/testsuite/gcc.dg/goacc/graphite-parameter-1.c
 create mode 100644 gcc/testsuite/gcc.dg/goacc/graphite-parameter-2.c
 create mode 100644 gcc/testsuite/gcc.dg/graphite/alias-1.c
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized-parloops.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-conversion.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-1.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-10.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-11.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-12.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-13.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-14.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-15.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-16.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-18.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-19.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-2.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-20.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-3.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-4.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-5.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-6.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-7.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-8.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-9.f95
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-reductions.f90
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-2.f90
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-3.f90
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-4.f90
 create mode 100644 gcc/testsuite/gfortran.dg/goacc/omp_data_optimize-1.f90
 create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
 create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
 create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-1.c
 create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-2.c
 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-1.f95

--
2.33.0

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2022-05-18 12:21 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-15 15:54 [PATCH 00/40] OpenACC "kernels" Improvements Frederik Harwath
2021-12-15 15:54 ` [PATCH 01/40] Kernels loops annotation: C and C++ Frederik Harwath
2021-12-15 15:54 ` [PATCH 02/40] Add -fno-openacc-kernels-annotate-loops option to more testcases Frederik Harwath
2021-12-15 15:54 ` [PATCH 03/40] Kernels loops annotation: Fortran Frederik Harwath
2021-12-15 15:54 ` [PATCH 04/40] Additional Fortran testsuite fixes for kernels loops annotation pass Frederik Harwath
2021-12-15 15:54 ` [PATCH 05/40] Fix bug in processing of array dimensions in data clauses Frederik Harwath
2021-12-15 15:54 ` [PATCH 06/40] Add a "combined" flag for "acc kernels loop" etc directives Frederik Harwath
2021-12-15 15:54 ` [PATCH 07/40] Annotate inner loops in "acc kernels loop" directives (C/C++) Frederik Harwath
2021-12-15 15:54 ` [PATCH 08/40] Annotate inner loops in "acc kernels loop" directives (Fortran) Frederik Harwath
2021-12-15 15:54 ` [PATCH 09/40] Permit calls to builtins and intrinsics in kernels loops Frederik Harwath
2021-12-15 15:54 ` [PATCH 10/40] Fix patterns in Fortran tests for kernels loop annotation Frederik Harwath
2021-12-15 15:54 ` [PATCH 11/40] Clean up loop variable extraction in OpenACC " Frederik Harwath
2021-12-15 15:54 ` [PATCH 12/40] Relax some restrictions on the loop bound in " Frederik Harwath
2021-12-15 15:54 ` [PATCH 13/40] Fortran: Delinearize array accesses Frederik Harwath
2021-12-15 15:54 ` [PATCH 14/40] openacc: Move pass_oacc_device_lower after pass_graphite Frederik Harwath
2021-12-15 15:54 ` [PATCH 15/40] graphite: Extend SCoP detection dump output Frederik Harwath
2022-05-16 12:49   ` Tobias Burnus
2022-05-17  8:21     ` Richard Biener
2022-05-18 12:19       ` Harwath, Frederik
2022-05-18 12:21         ` Richard Biener
2021-12-15 15:54 ` [PATCH 16/40] graphite: Rename isl_id_for_ssa_name Frederik Harwath
2022-05-16 12:49   ` Tobias Burnus
2022-05-17  8:22     ` Richard Biener
2021-12-15 15:54 ` [PATCH 17/40] graphite: Fix minor mistakes in comments Frederik Harwath
2022-05-16 12:49   ` Tobias Burnus
2022-05-17  8:22     ` Richard Biener
2021-12-15 15:54 ` [PATCH 18/40] Move compute_alias_check_pairs to tree-data-ref.c Frederik Harwath
2021-12-15 15:54 ` [PATCH 19/40] graphite: Add runtime alias checking Frederik Harwath
2021-12-15 15:54 ` [PATCH 20/40] openacc: Use Graphite for dependence analysis in "kernels" regions Frederik Harwath
2021-12-15 15:54 ` [PATCH 21/40] openacc: Add "can_be_parallel" flag info to "graph" dumps Frederik Harwath
2021-12-15 15:54 ` [PATCH 22/40] openacc: Remove unused partitioning in "kernels" regions Frederik Harwath
2021-12-15 15:54 ` [PATCH 23/40] Add function for printing a single OMP_CLAUSE Frederik Harwath
2021-12-15 15:54 ` [PATCH 24/40] openacc: Add data optimization pass Frederik Harwath
2021-12-15 15:54 ` [PATCH 25/40] openacc: Add runtime alias checking for OpenACC kernels Frederik Harwath
2021-12-15 15:54 ` [PATCH 26/40] openacc: Warn about "independent" "kernels" loops with data-dependences Frederik Harwath
2021-12-15 15:54 ` [PATCH 27/40] openacc: Handle internal function calls in pass_lim Frederik Harwath
2021-12-15 15:54 ` [PATCH 28/40] openacc: Disable pass_pre on outlined functions analyzed by Graphite Frederik Harwath
2021-12-15 15:54 ` [PATCH 29/40] graphite: Tune parameters for OpenACC use Frederik Harwath
2021-12-15 15:54 ` [PATCH 30/40] graphite: Adjust scop loop-nest choice Frederik Harwath
2021-12-15 15:54 ` [PATCH 31/40] graphite: Accept loops without data references Frederik Harwath
2021-12-15 15:54 ` [PATCH 32/40] Reference reduction localization Frederik Harwath
2021-12-15 15:54 ` [PATCH 33/40] Fix tree check failure with " Frederik Harwath
2021-12-15 15:54 ` [PATCH 34/40] Use more appropriate var in localize_reductions call Frederik Harwath
2021-12-15 15:54 ` [PATCH 35/40] Handle references in OpenACC "private" clauses Frederik Harwath
2021-12-15 15:54 ` [PATCH 36/40] openacc: Enable reduction variable localization for "kernels" Frederik Harwath
2021-12-15 15:54 ` [PATCH 37/40] Fix for is_gimple_reg vars to 'data kernels' Frederik Harwath
2021-12-15 15:54 ` [PATCH 38/40] openacc: fix privatization of by-reference arrays Frederik Harwath
2021-12-15 15:54 ` [PATCH 39/40] openacc: Check type for references in reduction lowering Frederik Harwath
2021-12-16 12:00 ` [PATCH 40/40] openacc: Adjust testsuite to new "kernels" handling Frederik Harwath

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).