gcc/include
James Norris 6e232ba424 c-pragma.c (oacc_pragmas): Add entry for declare directive.
2015-11-12  James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	gcc/c-family/
	* c-pragma.c (oacc_pragmas): Add entry for declare directive. 
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
	(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
	PRAGMA_OACC_CLAUSE_LINK.

	gcc/c/
	* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
	(c_parser_omp_clause_name): Handle 'device_resident' clause.
	(c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OMP_CLAUSE_LINK.
	(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OACC_CLAUSE_LINK.
	(OACC_DECLARE_CLAUSE_MASK): New definition.
	(c_parser_oacc_declare): New function.

	gcc/cp/
	* parser.c (cp_parser_omp_clause_name): Handle 'device_resident'
	clause.
	(cp_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OMP_CLAUSE_LINK.
	(cp_paser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OMP_CLAUSE_LINK.
	(OACC_DECLARE_CLAUSE_MASK): New definition.
	(cp_parser_oacc_declare): New function.
	(cp_parser_pragma): Handle PRAGMA_OACC_DECLARE.
	* pt.c (tsubst_expr): Handle OACC_DECLARE.

	gcc/
	* gimple-pretty-print.c (dump_gimple_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_DECLARE. 
	* gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
	(is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
	* gimplify.c (oacc_declare_returns): New.
	(gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
	(device_resident_p): New function.
	(oacc_default_clause): Handle device_resident clause.
	(gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
	(gimplify_expr): Handle OACC_DECLARE.
	* omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
	* omp-low.c (expand_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
	(build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
	(lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
	GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
	* tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
	GOMP_MAP_DEVICE_RESIDENT.

	gcc/testsuite
	* c-c++-common/goacc/declare-1.c: New test.
	* c-c++-common/goacc/declare-2.c: Likewise.

	include/
	* gomp-constants.h (enum gomp_map_kind): Add GOMP_MAP_DEVICE_RESIDENT
	and GOMP_MAP_LINK.

	libgomp/
	* libgomp.map (GOACC_2.0.1): Export GOACC_declare.
	* oacc-parallel.c (GOACC_declare): New function.
	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
	* testsuite/libgomp.oacc-c++/declare-1.C: Likewise.

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>

From-SVN: r230275
2015-11-12 22:20:41 +00:00
..
gdb Update copyright year in include 2015-07-14 09:08:59 -07:00
ansidecl.h add GCC_FINAL to ansidecl.h 2015-08-11 22:39:31 +00:00
ChangeLog c-pragma.c (oacc_pragmas): Add entry for declare directive. 2015-11-12 22:20:41 +00:00
ChangeLog-9103
ChangeLog.jit Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
COPYING
COPYING3
demangle.h Implement N4514, C++ Extensions for Transactional Memory. 2015-10-04 15:17:19 -04:00
dwarf2.def DWARF2: add extensions to handle biased types 2015-08-14 09:48:13 +00:00
dwarf2.h Update copyright year in include 2015-07-14 09:08:59 -07:00
dyn-string.h Update copyright year in include 2015-07-14 09:08:59 -07:00
environ.h Fix PR63758 by using the _NSGetEnviron() API on Darwin 2015-10-18 10:33:37 +00:00
fibheap.h Update copyright year in include 2015-07-14 09:08:59 -07:00
filenames.h Update copyright year in include 2015-07-14 09:08:59 -07:00
floatformat.h Update copyright year in include 2015-07-14 09:08:59 -07:00
fnmatch.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-c-fe.def Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-c-interface.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-interface.h Update copyright year in include 2015-07-14 09:08:59 -07:00
getopt.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gomp-constants.h c-pragma.c (oacc_pragmas): Add entry for declare directive. 2015-11-12 22:20:41 +00:00
hashtab.h Update copyright year in include 2015-07-14 09:08:59 -07:00
leb128.h Update copyright year in include 2015-07-14 09:08:59 -07:00
libiberty.h libiberty.h (asprintf): Don't declare if HAVE_DECL_ASPRINTF is not defined. 2015-05-22 20:53:45 +00:00
longlong.h config.gcc: Handle --enable-fdpic. 2015-10-27 13:36:47 +00:00
lto-symtab.h Update copyright year in include 2015-07-14 09:08:59 -07:00
md5.h Update copyright year in include 2015-07-14 09:08:59 -07:00
objalloc.h Update copyright year in include 2015-07-14 09:08:59 -07:00
obstack.h Modify obstack.[hc] to avoid having to include other gnulib files 2015-11-09 14:58:21 +10:30
partition.h partition.h (struct partition_elem): Re-order elements to avoid padding. 2015-03-19 11:44:08 +00:00
plugin-api.h Update copyright year in include 2015-07-14 09:08:59 -07:00
safe-ctype.h Update copyright year in include 2015-07-14 09:08:59 -07:00
sha1.h Update copyright year in include 2015-07-14 09:08:59 -07:00
simple-object.h Update copyright year in include 2015-07-14 09:08:59 -07:00
sort.h Update copyright year in include 2015-07-14 09:08:59 -07:00
splay-tree.h Update copyright year in include 2015-07-14 09:08:59 -07:00
symcat.h Update copyright year in include 2015-07-14 09:08:59 -07:00
timeval-utils.h Update copyright year in include 2015-07-14 09:08:59 -07:00
vtv-change-permission.h Update copyright year in include 2015-07-14 09:08:59 -07:00
xregex2.h Update copyright year in include 2015-07-14 09:08:59 -07:00
xregex.h system.h [...]: Wrap C function declarations in extern "C". 2011-07-25 14:24:59 +00:00
xtensa-config.h Update copyright year in include 2015-07-14 09:08:59 -07:00