Continue implementation of OpenACC loop construct.
commitf1d39706db8dccbc988e2c66552511cd54632257
authortschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Mar 2014 14:40:01 +0000 (20 14:40 +0000)
committertschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Mar 2014 14:40:01 +0000 (20 14:40 +0000)
tree3d868299f4b200b705864b8bbc61acc86523bacb
parentc32a48d3d47bbaa811991e2e5f42e62d9c715a60
Continue implementation of OpenACC loop construct.

gcc/
* gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP.
(is_gimple_omp_oacc_specifically): Handle it.
* gimple-pretty-print.c (dump_gimple_omp_for): Likewise.
* gimple.def (GIMPLE_OMP_FOR): Update for OpenACC loop.
* gimple.c (gimple_build_omp_for): Don't explicitly mention some
clauses.
(gimple_copy) <GIMPLE_OMP_FOR>: Handle GF_OMP_FOR_KIND_OACC_LOOP.
* omp-low.c (extract_omp_for_data, scan_sharing_clauses)
(check_omp_nesting_restrictions, lower_rec_input_clauses)
(lower_lastprivate_clauses, lower_reduction_clauses)
(expand_omp_for_generic, expand_omp_for_static_nochunk)
(expand_omp_for_static_chunk, maybe_add_implicit_barrier_cancel)
(lower_omp_for): Likewise.
* tree-inline.c (remap_gimple_stmt): Likewise.
* tree-nested.c (walk_gimple_omp_for)
(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
(convert_gimple_call): Likewise.
* doc/gimple.texi (GIMPLE_OMP_FOR): Don't explicitly mention some
clauses.
* gimplify.c (gimplify_omp_for, gimplify_expr): Handle OACC_LOOP.
gcc/testsuite/
* c-c++-common/goacc-gomp/nesting-1.c: New file.
* c-c++-common/goacc-gomp/nesting-fail-1.c: Extend.
* c-c++-common/goacc/clauses-fail.c: Likewise.
* c-c++-common/goacc/nesting-1.c: Likewise.
* gcc.dg/goacc/sb-1.c: Likewise.
* gcc.dg/goacc/sb-3.c: New file.

gcc/c-family/
* c-omp.c (check_omp_for_incr_expr, c_finish_omp_for): Update
comments.
* c-pragma.c (oacc_pragmas): Sort PRAGMA_OACC_LOOP alphabetically.
* c-pragma.h (enum pragma_kind): Likewise.
gcc/c/
* c-parser.c: Update comments.
(c_parser_oacc_loop): Move.
(c_parser_omp_for_loop): Catch some unsupported cases.
(c_parser_omp_construct) <case PRAGMA_OACC_LOOP>: Sort
alphabetically.
gcc/
* tree.def (OACC_LOOP): Sort after OMP_DISTRIBUTE.
* tree.h (OMP_LOOP_CHECK): Update accordingly.
* gimplify.c (is_gimple_stmt): Sort OACC_LOOP after
OMP_DISTRIBUTE.
* tree-pretty-print.c (dump_generic_node): Likewise.
* doc/generic.texi (OACC_LOOP): Sort after OACC_HOST_DATA.
(OMP_FOR): Fix and extend for OACC_LOOP.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@208704 138bc75d-0d04-0410-961f-82ee72b054a4
27 files changed:
gcc/ChangeLog.gomp
gcc/c-family/ChangeLog.gomp
gcc/c-family/c-omp.c
gcc/c-family/c-pragma.c
gcc/c-family/c-pragma.h
gcc/c/ChangeLog.gomp
gcc/c/c-parser.c
gcc/doc/generic.texi
gcc/doc/gimple.texi
gcc/gimple-pretty-print.c
gcc/gimple.c
gcc/gimple.def
gcc/gimple.h
gcc/gimplify.c
gcc/omp-low.c
gcc/testsuite/ChangeLog.gomp
gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c
gcc/testsuite/c-c++-common/goacc/clauses-fail.c
gcc/testsuite/c-c++-common/goacc/nesting-1.c
gcc/testsuite/gcc.dg/goacc/sb-1.c
gcc/testsuite/gcc.dg/goacc/sb-3.c [new file with mode: 0644]
gcc/tree-inline.c
gcc/tree-nested.c
gcc/tree-pretty-print.c
gcc/tree.def
gcc/tree.h