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