r217054 - in /branches/gomp-4_0-branch: gcc/Cha...
cesar@gcc.gnu.org
cesar@gcc.gnu.org
Mon Nov 3 20:38:00 GMT 2014
Author: cesar
Date: Mon Nov 3 20:38:43 2014
New Revision: 217054
URL: https://gcc.gnu.org/viewcvs?rev=217054&root=gcc&view=rev
Log:
gcc/c-family/
* c-pragma.c (oacc_pragmas): Add entries for PRAGMA_OACC_ENTER_DATA
and PRAGMA_OACC_EXIT_DATA.
* c-pragma.h (pragma_kind): Likewise.
gcc/c/
* c-parser.c (c_parser_oacc_enter_exit_data): New function.
(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA and
PRAGMA_OACC_EXIT_DATA.
(OACC_ENTER_DATA_CLAUSE_MASK): New macro.
(OACC_EXIT_DATA_CLAUSE_MASK): New macro.
(c_parser_oacc_update): Don't create a new stmt if the pragma
is bogus.
gcc/cp/
* parser.c (cp_parser_omp_clause_name): Also consider CPP_KEYWORD
typed tokens as clauses for delete.
(OACC_ENTER_DATA_CLAUSE_MASK): New macro.
(OACC_EXIT_DATA_CLAUSE_MASK): New macro.
(cp_parser_oacc_enter_exit_data): New function.
(cp_parser_omp_construct): Handle PRAGMA_OACC_ENTER_DATA and
PRAGMA_OACC_EXIT_DATA.
(cp_parser_pragma): Likewise.
gcc/fortran/
* gfortran.h (enum OMP_LIST_HOST): Remove.
(enum OMP_LIST_DEVICE, OMP_LIST_DEVICE): Remove.
* dump-parse-tree.c (show_omp_clauses): Remove OMP_LIST_HOST and
OMP_LIST_DEVICE from here also.
* openmp.c (OMP_CLAUSE_SELF): New define.
(gfc_match_omp_clauses): Update handling of OMP_CLAUSE_HOST and
OMP_CLAUSE_DEVICE. Add support for OMP_CLAUSE_SELF.
* trans-openmp.c (gfc_trans_omp_clauses): Remove support for
OMP_LIST_HOST and OMP_LIST_DEVICE since they are treated as memory
maps now.
(gfc_trans_oacc_executable_directive): Remove stale EXEC_OACC_WAIT.
gcc/
* gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
* gimple-pretty-print.c (dump_gimple_omp_target): Handle it.
* gimplify.c (gimplify_scan_omp_clauses): Remove switch stmt which
declared OMP_CLAUSE_MAP_FORCE_DEALLOC as unimplemented.
(gimplify_omp_target_update): Handle OACC_ENTER_DATA and
OACC_EXIT_DATA.
(gimplify_expr): Shuffle around OACC_ENTER_DATA, OACC_EXIT_DATA and
OACC_WAIT.
* oacc-builtins.def (BUILD_INT_GOACC_ENTER_EXIT_DATA): New built-in
function.
* omp-low.c (expand_omp_target): Handle
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA. Don't use quick_push when
there is an unknown number of wait args.
(lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
gcc/testsuite/
* c-c++-common/goacc/data-1.c: Exercise enter/exit data pragma.
* c-c++-common/goacc/update-1.c: Ensure that fortran subarrays err.
* gcc/testsuite/c-c++-common/goacc/data-2.c: New test.
* gcc/testsuite/c-c++-common/goacc/update-1.c: Check for malformed
subarrays.
libgomp/
* libgomp.map (GOACC_enter_exit_data): Declare as global.
* libgomp_g.h (GOACC_enter_exit_data): Declare.
(GOACC_update): Declare.
(gomp_acc_insert_pointer): Declare.
(gomp_acc_remove_pointer): Declare.
* oacc-mem.c (gomp_acc_insert_pointer): New function.
(gomp_acc_remove_pointer): New function.
* oacc-parallel.c (find_pset): New function.
(GOACC_enter_exit_data): New function.
(GOACC_update): Handle GOMP_MAP_TO_PSET.
* testsuite/libgomp.oacc-c/data-2.c: New test.
* testsuite/libgomp.oacc-c/data-3.c: New test.
* testsuite/libgomp.oacc-fortran/data-1.f90: New test.
* testsuite/libgomp.oacc-fortran/data-2.f90: New test.
* testsuite/libgomp.oacc-fortran/data-3.f90: New test.
* testsuite/libgomp.oacc-fortran/data-4.f90: New test.
Added:
branches/gomp-4_0-branch/gcc/testsuite/c-c++-common/goacc/data-2.c
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-c/data-2.c
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-c/data-3.c
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-fortran/data-1.f90
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-fortran/data-2.f90
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-fortran/data-3.f90
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-fortran/data-4.f90
Modified:
branches/gomp-4_0-branch/gcc/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/builtins.def
branches/gomp-4_0-branch/gcc/c-family/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/c-family/c-pragma.c
branches/gomp-4_0-branch/gcc/c-family/c-pragma.h
branches/gomp-4_0-branch/gcc/c/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/c/c-parser.c
branches/gomp-4_0-branch/gcc/cp/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/cp/parser.c
branches/gomp-4_0-branch/gcc/fortran/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/fortran/dump-parse-tree.c
branches/gomp-4_0-branch/gcc/fortran/gfortran.h
branches/gomp-4_0-branch/gcc/fortran/openmp.c
branches/gomp-4_0-branch/gcc/fortran/trans-openmp.c
branches/gomp-4_0-branch/gcc/gimple-pretty-print.c
branches/gomp-4_0-branch/gcc/gimple.h
branches/gomp-4_0-branch/gcc/gimplify.c
branches/gomp-4_0-branch/gcc/oacc-builtins.def
branches/gomp-4_0-branch/gcc/omp-low.c
branches/gomp-4_0-branch/gcc/testsuite/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/testsuite/c-c++-common/goacc/update-1.c
branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
branches/gomp-4_0-branch/libgomp/libgomp.map
branches/gomp-4_0-branch/libgomp/libgomp_g.h
branches/gomp-4_0-branch/libgomp/oacc-mem.c
branches/gomp-4_0-branch/libgomp/oacc-parallel.c
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-c++/c++.exp
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.oacc-c/c.exp
More information about the Gcc-cvs
mailing list