This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Merge current set of OpenACC changes from gomp-4_0-branch


Hi!

In r219682, I have committed to trunk our current set of OpenACC changes,
which we had prepared on gomp-4_0-branch.  Thanks to everyone who has
been contributing!

Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC.  We shall update -- and keep updated --
<https://gcc.gnu.org/wiki/OpenACC>, to track the current status.  (Please
come back to that page in a few days, it has not yet been updated.)

Please note that there are still a handful of patches pending (posted
weeks ago, need to ping) that are needed for nvptx offloading, so that's
not yet functional.

Here's the commit log.  The patch itself is too big to post inline, so
please find it attached, gzipped.

commit ca4c354552639d3bac6d1f690d9e04017d7d80ed
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Jan 15 20:11:12 2015 +0000

    Merge current set of OpenACC changes from gomp-4_0-branch.
    
    	contrib/
    	* gcc_update (files_and_dependencies): Update rules for new
    	libgomp/plugin/Makefrag.am and libgomp/plugin/configfrag.ac files.
    	gcc/
    	* builtin-types.def (BT_FN_VOID_INT_INT_VAR)
    	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
    	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
    	New function types.
    	* builtins.c: Include "gomp-constants.h".
    	(expand_builtin_acc_on_device): New function.
    	(expand_builtin, is_inexpensive_builtin): Handle
    	BUILT_IN_ACC_ON_DEVICE.
    	* builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
    	New macros.
    	* cgraph.c (cgraph_node::create): Consider flag_openacc next to
    	flag_openmp.
    	* config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
    	<*-intelmic-* | *-intelmicemul-*> (tm_file): Add
    	i386/intelmic-offload.h.
    	* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
    	to libgomp and its dependencies.
    	* config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
    	* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
    	* config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
    	* config/ia64/hpux.h (LIB_SPEC): Likewise.
    	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
    	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
    	* doc/generic.texi: Update for OpenACC changes.
    	* doc/gimple.texi: Likewise.
    	* doc/invoke.texi: Likewise.
    	* doc/sourcebuild.texi: Likewise.
    	* gimple-pretty-print.c (dump_gimple_omp_for): Handle
    	GF_OMP_FOR_KIND_OACC_LOOP.
    	(dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
    	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
    	GF_OMP_TARGET_KIND_OACC_UPDATE,
    	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
    	Dump more data.
    	* gimple.c: Update comments for OpenACC changes.
    	* gimple.def: Likewise.
    	* gimple.h: Likewise.
    	(enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
    	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
    	GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
    	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
    	(gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
    	appropriate place.
    	(is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
    	* gimplify.c: Include "gomp-constants.h".
    	Update comments for OpenACC changes.
    	(is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
    	OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
    	OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
    	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
    	OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
    	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
    	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
    	OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
    	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
    	OMP_CLAUSE_SEQ.
    	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
    	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
    	OMP_CLAUSE_SET_MAP_KIND.
    	(gimplify_oacc_cache): New function.
    	(gimplify_omp_for): Handle OACC_LOOP.
    	(gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
    	OACC_DATA.
    	(gimplify_omp_target_update): Handle OACC_ENTER_DATA,
    	OACC_EXIT_DATA, OACC_UPDATE.
    	(gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
    	OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
    	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
    	(gimplify_body): Consider flag_openacc next to flag_openmp.
    	* lto-streamer-out.c: Include "gomp-constants.h".
    	* omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
    	(BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
    	(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
    	(BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
    	(BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
    	(BUILT_IN_ACC_ON_DEVICE): New builtins.
    	* omp-low.c: Include "gomp-constants.h".
    	Update comments for OpenACC changes.
    	(struct omp_context): Add reduction_map, gwv_below, gwv_this
    	members.
    	(extract_omp_for_data, use_pointer_for_field, install_var_field)
    	(new_omp_context, delete_omp_context, scan_sharing_clauses)
    	(create_omp_child_function, scan_omp_for, scan_omp_target)
    	(check_omp_nesting_restrictions, lower_reduction_clauses)
    	(build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
    	Update for OpenACC changes.
    	(scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
    	OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
    	OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
    	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
    	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
    	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
    	OMP_CLAUSE_MAP_*.
    	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
    	Handle GF_OMP_FOR_KIND_OACC_LOOP.
    	(expand_omp_target, lower_omp_target): Handle
    	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
    	GF_OMP_TARGET_KIND_OACC_UPDATE,
    	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
    	GF_OMP_TARGET_KIND_OACC_DATA.
    	(pass_expand_omp::execute, execute_lower_omp)
    	(pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
    	flag_openmp.
    	(offload_symbol_decl): New variable.
    	(oacc_get_reduction_array_id, oacc_max_threads)
    	(get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
    	(maybe_lookup_oacc_reduction, enclosing_target_ctx)
    	(oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
    	(oacc_gimple_assign, oacc_initialize_reduction_data)
    	(oacc_finalize_reduction_data, oacc_process_reduction_data): New
    	functions.
    	(is_targetreg_ctx): Remove function.
    	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
    	OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
    	OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
    	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
    	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
    	OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
    	* tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
    	* tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
    	(OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
    	(OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
    	(OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
    	(OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
    	* tree-core.h: Update comments for OpenACC changes.
    	(enum omp_clause_map_kind): Remove.
    	(struct tree_omp_clause): Change type of map_kind member from enum
    	omp_clause_map_kind to unsigned char.
    	* tree-inline.c: Update comments for OpenACC changes.
    	* tree-nested.c: Likewise.  Include "gomp-constants.h".
    	(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
    	(convert_tramp_reference_stmt, convert_gimple_call): Update for
    	OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
    	OMP_CLAUSE_SET_MAP_KIND.
    	* tree-pretty-print.c: Include "gomp-constants.h".
    	(dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
    	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
    	OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
    	OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
    	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
    	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
    	instead of OMP_CLAUSE_MAP_*.
    	(dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
    	OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
    	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
    	* tree-streamer-in.c: Include "gomp-constants.h".
    	(unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
    	OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
    	* tree-streamer-out.c: Include "gomp-constants.h".
    	(pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
    	OMP_CLAUSE_MAP_*.
    	* tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
    	(OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
    	(OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
    	* tree.c (omp_clause_num_ops): Update accordingly.
    	* tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
    	Likewise.
    	(OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
    	(OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
    	(OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
    	(OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
    	(OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
    	(OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
    	* tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
    	(OMP_CLAUSE_SET_MAP_KIND): New macro.
    	* varpool.c (varpool_node::get_create): Consider flag_openacc next
    	to flag_openmp.
    	* config/i386/intelmic-offload.h: New file.
    	* config/nvptx/offload.h: Likewise.
    	gcc/ada/
    	* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8)
    	(DEF_FUNCTION_TYPE_VAR_12): New macros.
    	gcc/c-family/
    	* c.opt (fopenacc): New option.
    	* c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
    	* c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
    	New macros.
    	* c-common.h (c_finish_oacc_wait): New prototype.
    	* c-omp.c: Include "omp-low.h" and "gomp-constants.h".
    	(c_finish_oacc_wait): New function.
    	* c-pragma.c (oacc_pragmas): New variable.
    	(c_pp_lookup_pragma, init_pragma): Handle it.
    	* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
    	PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
    	PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
    	PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
    	(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
    	PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
    	PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
    	PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
    	PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
    	PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
    	PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
    	PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
    	PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
    	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
    	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
    	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
    	PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
    	PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
    	PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
    	PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
    	PRAGMA_OACC_CLAUSE_WORKER.
    	gcc/c/
    	* c-parser.c: Include "gomp-constants.h".
    	(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
    	omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
    	Use OMP_CLAUSE_SET_MAP_KIND.
    	(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
    	PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
    	(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
    	PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
    	PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
    	(c_parser_omp_clause_name): Handle "auto", "async", "copy",
    	"copyout", "create", "delete", "deviceptr", "gang", "host",
    	"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
    	"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
    	"present_or_create", "pcreate", "seq", "self", "vector",
    	"vector_length", "wait", "worker".
    	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
    	(OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
    	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
    	(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
    	(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
    	(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
    	(c_parser_oacc_data_clause_deviceptr)
    	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
    	(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
    	(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
    	(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
    	(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
    	(c_parser_oacc_parallel, c_parser_oacc_update)
    	(c_parser_oacc_wait): New functions.
    	* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
    	(c_finish_oacc_data): New prototypes.
    	* c-typeck.c: Include "gomp-constants.h".
    	(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
    	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
    	OMP_CLAUSE_SET_MAP_KIND.
    	(c_finish_oacc_parallel, c_finish_oacc_kernels)
    	(c_finish_oacc_data): New functions.
    	(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
    	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
    	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
    	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
    	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
    	GOMP_MAP_FORCE_DEVICEPTR.
    	gcc/cp/
    	* parser.c: Include "gomp-constants.h".
    	(cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
    	omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
    	Use OMP_CLAUSE_SET_MAP_KIND.
    	(cp_parser_omp_construct, cp_parser_pragma): Handle
    	PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
    	PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
    	PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
    	(cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
    	"create", "delete", "deviceptr", "host", "num_gangs",
    	"num_workers", "present", "present_or_copy", "pcopy",
    	"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
    	"present_or_create", "pcreate", "vector_length", "wait".
    	(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
    	(OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
    	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
    	(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
    	(cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
    	(cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
    	(cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
    	(cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
    	(cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
    	(cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
    	(cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
    	(cp_parser_oacc_kernels, cp_parser_oacc_loop)
    	(cp_parser_oacc_parallel, cp_parser_oacc_update)
    	(cp_parser_oacc_wait): New functions.
    	* cp-tree.h (finish_oacc_data, finish_oacc_kernels)
    	(finish_oacc_parallel): New prototypes.
    	* semantics.c: Include "gomp-constants.h".
    	(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
    	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
    	OMP_CLAUSE_SET_MAP_KIND.
    	(finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
    	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
    	Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
    	(finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
    	functions.
    	gcc/fortran/
    	* lang.opt (fopenacc): New option.
    	* cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
    	* dump-parse-tree.c (show_omp_node): Split part of it into...
    	(show_omp_clauses): ... this new function.
    	(show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
    	EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
    	EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
    	EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
    	EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
    	(show_namespace): Update for OpenACC.
    	* f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
    	(DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
    	(DEF_GOACC_BUILTIN_COMPILER): New macros.
    	* types.def (BT_FN_VOID_INT_INT_VAR)
    	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
    	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
    	New function types.
    	* gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
    	ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
    	ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
    	ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
    	ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
    	ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
    	ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
    	ST_OACC_ROUTINE.
    	(struct gfc_expr_list): New data type.
    	(gfc_get_expr_list): New macro.
    	(gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
    	OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
    	OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
    	(OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
    	(OMP_LIST_CACHE): New enumerators.
    	(struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
    	vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
    	wait_list, tile_list, async, gang, worker, vector, seq,
    	independent, wait, par_auto, gang_static, and loc members.
    	(struct gfc_namespace): Add oacc_declare_clauses member.
    	(gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
    	EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
    	EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
    	EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
    	EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
    	(gfc_free_expr_list, gfc_resolve_oacc_directive)
    	(gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
    	(gfc_resolve_oacc_blocks): New prototypes.
    	* match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
    	EXEC_OACC_PARALLEL_LOOP.
    	* match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
    	(gfc_match_oacc_update, gfc_match_oacc_declare)
    	(gfc_match_oacc_loop, gfc_match_oacc_host_data)
    	(gfc_match_oacc_data, gfc_match_oacc_kernels)
    	(gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
    	(gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
    	(gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
    	prototypes.
    	* openmp.c: Include "diagnostic.h" and "gomp-constants.h".
    	(gfc_free_omp_clauses): Update for members added to struct
    	gfc_omp_clauses.
    	(gfc_match_omp_clauses): Change mask paramter to uint64_t.  Add
    	openacc parameter.
    	(resolve_omp_clauses): Add openacc parameter.  Update for OpenACC.
    	(struct fortran_omp_context): Add is_openmp member.
    	(gfc_resolve_omp_parallel_blocks): Initialize it.
    	(gfc_resolve_do_iterator): Update for OpenACC.
    	(gfc_resolve_omp_directive): Call
    	resolve_omp_directive_inside_oacc_region.
    	(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
    	(OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
    	(OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
    	(OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
    	(OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
    	(OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
    	(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
    	(OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
    	(OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
    	(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
    	(OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
    	(OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
    	(OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
    	(OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
    	(OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
    	(OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
    	(OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
    	(OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
    	(OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
    	(OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
    	(OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
    	(OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
    	(gfc_match_omp_clauses): Handle those.
    	(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
    	(OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
    	(OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
    	(OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
    	(OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
    	(OACC_WAIT_CLAUSES): New macros.
    	(gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
    	(gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
    	(gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
    	(gfc_match_oacc_kernels, gfc_match_oacc_data)
    	(gfc_match_oacc_host_data, gfc_match_oacc_loop)
    	(gfc_match_oacc_declare, gfc_match_oacc_update)
    	(gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
    	(gfc_match_oacc_wait, gfc_match_oacc_cache)
    	(gfc_match_oacc_routine, oacc_is_loop)
    	(resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
    	(check_symbol_not_pointer, check_array_not_assumed)
    	(resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
    	(oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
    	(omp_code_to_statement, oacc_code_to_statement)
    	(resolve_oacc_directive_inside_omp_region)
    	(resolve_omp_directive_inside_oacc_region)
    	(resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
    	(resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
    	(resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
    	(gfc_resolve_oacc_directive): New functions.
    	* parse.c (next_free): Update for OpenACC.  Move some code into...
    	(verify_token_free): ... this new function.
    	(next_fixed): Update for OpenACC.  Move some code into...
    	(verify_token_fixed): ... this new function.
    	(case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
    	ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
    	(case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
    	ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
    	ST_OACC_KERNELS_LOOP.
    	(case_decl): Add ST_OACC_ROUTINE.
    	(push_state, parse_critical_block, parse_progunit): Update for
    	OpenACC.
    	(gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
    	ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
    	ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
    	ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
    	ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
    	ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
    	ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
    	ST_OACC_ROUTINE.
    	(verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
    	(parse_executable): Handle ST_OACC_PARALLEL_LOOP,
    	ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
    	ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
    	(decode_oacc_directive, parse_oacc_structured_block)
    	(parse_oacc_loop, is_oacc): New functions.
    	* parse.h (struct gfc_state_data): Add oacc_declare_clauses
    	member.
    	(is_oacc): New prototype.
    	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
    	EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
    	EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
    	EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
    	EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
    	EXEC_OACC_EXIT_DATA.
    	(resolve_codes): Call gfc_resolve_oacc_declare.
    	* scanner.c (openacc_flag, openacc_locus): New variables.
    	(skip_free_comments): Update for OpenACC.  Move some code into...
    	(skip_omp_attribute): ... this new function.
    	(skip_oacc_attribute): New function.
    	(skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
    	* st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
    	EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
    	EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
    	EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
    	EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
    	* trans-decl.c (gfc_generate_function_code): Update for OpenACC.
    	* trans-openmp.c: Include "gomp-constants.h".
    	(gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
    	instead of OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
    	(gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
    	OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
    	OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
    	OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
    	OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
    	independent, wait_list, num_gangs_expr, num_workers_expr,
    	vector_length_expr, vector, vector_expr, worker, worker_expr,
    	gang, gang_expr members.
    	(gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
    	(gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
    	(gfc_trans_oacc_executable_directive)
    	(gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
    	(gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
    	* trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
    	* trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
    	New prototypes.
    	* trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
    	EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
    	EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
    	EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
    	EXEC_OACC_EXIT_DATA.
    	* gfortran.texi: Update for OpenACC.
    	* intrinsic.texi: Likewise.
    	* invoke.texi: Likewise.
    	gcc/lto/
    	* lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
    	New macros.
    	* lto.c: Include "gomp-constants.h".
    	gcc/testsuite/
    	* lib/target-supports.exp (check_effective_target_fopenacc): New
    	procedure.
    	* g++.dg/goacc-gomp/goacc-gomp.exp: New file.
    	* g++.dg/goacc/goacc.exp: Likewise.
    	* gcc.dg/goacc-gomp/goacc-gomp.exp: Likewise.
    	* gcc.dg/goacc/goacc.exp: Likewise.
    	* gfortran.dg/goacc/goacc.exp: Likewise.
    	* c-c++-common/cpp/openacc-define-1.c: New file.
    	* c-c++-common/cpp/openacc-define-2.c: Likewise.
    	* c-c++-common/cpp/openacc-define-3.c: Likewise.
    	* c-c++-common/goacc-gomp/nesting-1.c: Likewise.
    	* c-c++-common/goacc-gomp/nesting-fail-1.c: Likewise.
    	* c-c++-common/goacc/acc_on_device-2-off.c: Likewise.
    	* c-c++-common/goacc/acc_on_device-2.c: Likewise.
    	* c-c++-common/goacc/asyncwait-1.c: Likewise.
    	* c-c++-common/goacc/cache-1.c: Likewise.
    	* c-c++-common/goacc/clauses-fail.c: Likewise.
    	* c-c++-common/goacc/collapse-1.c: Likewise.
    	* c-c++-common/goacc/data-1.c: Likewise.
    	* c-c++-common/goacc/data-2.c: Likewise.
    	* c-c++-common/goacc/data-clause-duplicate-1.c: Likewise.
    	* c-c++-common/goacc/deviceptr-1.c: Likewise.
    	* c-c++-common/goacc/deviceptr-2.c: Likewise.
    	* c-c++-common/goacc/deviceptr-3.c: Likewise.
    	* c-c++-common/goacc/if-clause-1.c: Likewise.
    	* c-c++-common/goacc/if-clause-2.c: Likewise.
    	* c-c++-common/goacc/kernels-1.c: Likewise.
    	* c-c++-common/goacc/loop-1.c: Likewise.
    	* c-c++-common/goacc/loop-private-1.c: Likewise.
    	* c-c++-common/goacc/nesting-1.c: Likewise.
    	* c-c++-common/goacc/nesting-data-1.c: Likewise.
    	* c-c++-common/goacc/nesting-fail-1.c: Likewise.
    	* c-c++-common/goacc/parallel-1.c: Likewise.
    	* c-c++-common/goacc/pcopy.c: Likewise.
    	* c-c++-common/goacc/pcopyin.c: Likewise.
    	* c-c++-common/goacc/pcopyout.c: Likewise.
    	* c-c++-common/goacc/pcreate.c: Likewise.
    	* c-c++-common/goacc/pragma_context.c: Likewise.
    	* c-c++-common/goacc/present-1.c: Likewise.
    	* c-c++-common/goacc/reduction-1.c: Likewise.
    	* c-c++-common/goacc/reduction-2.c: Likewise.
    	* c-c++-common/goacc/reduction-3.c: Likewise.
    	* c-c++-common/goacc/reduction-4.c: Likewise.
    	* c-c++-common/goacc/sb-1.c: Likewise.
    	* c-c++-common/goacc/sb-2.c: Likewise.
    	* c-c++-common/goacc/sb-3.c: Likewise.
    	* c-c++-common/goacc/update-1.c: Likewise.
    	* gcc.dg/goacc/acc_on_device-1.c: Likewise.
    	* gfortran.dg/goacc/acc_on_device-1.f95: Likewise.
    	* gfortran.dg/goacc/acc_on_device-2-off.f95: Likewise.
    	* gfortran.dg/goacc/acc_on_device-2.f95: Likewise.
    	* gfortran.dg/goacc/assumed.f95: Likewise.
    	* gfortran.dg/goacc/asyncwait-1.f95: Likewise.
    	* gfortran.dg/goacc/asyncwait-2.f95: Likewise.
    	* gfortran.dg/goacc/asyncwait-3.f95: Likewise.
    	* gfortran.dg/goacc/asyncwait-4.f95: Likewise.
    	* gfortran.dg/goacc/branch.f95: Likewise.
    	* gfortran.dg/goacc/cache-1.f95: Likewise.
    	* gfortran.dg/goacc/coarray.f95: Likewise.
    	* gfortran.dg/goacc/continuation-free-form.f95: Likewise.
    	* gfortran.dg/goacc/cray.f95: Likewise.
    	* gfortran.dg/goacc/critical.f95: Likewise.
    	* gfortran.dg/goacc/data-clauses.f95: Likewise.
    	* gfortran.dg/goacc/data-tree.f95: Likewise.
    	* gfortran.dg/goacc/declare-1.f95: Likewise.
    	* gfortran.dg/goacc/enter-exit-data.f95: Likewise.
    	* gfortran.dg/goacc/fixed-1.f: Likewise.
    	* gfortran.dg/goacc/fixed-2.f: Likewise.
    	* gfortran.dg/goacc/fixed-3.f: Likewise.
    	* gfortran.dg/goacc/fixed-4.f: Likewise.
    	* gfortran.dg/goacc/host_data-tree.f95: Likewise.
    	* gfortran.dg/goacc/if.f95: Likewise.
    	* gfortran.dg/goacc/kernels-tree.f95: Likewise.
    	* gfortran.dg/goacc/list.f95: Likewise.
    	* gfortran.dg/goacc/literal.f95: Likewise.
    	* gfortran.dg/goacc/loop-1.f95: Likewise.
    	* gfortran.dg/goacc/loop-2.f95: Likewise.
    	* gfortran.dg/goacc/loop-3.f95: Likewise.
    	* gfortran.dg/goacc/loop-tree-1.f90: Likewise.
    	* gfortran.dg/goacc/omp.f95: Likewise.
    	* gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
    	* gfortran.dg/goacc/parallel-kernels-regions.f95: Likewise.
    	* gfortran.dg/goacc/parallel-tree.f95: Likewise.
    	* gfortran.dg/goacc/parameter.f95: Likewise.
    	* gfortran.dg/goacc/private-1.f95: Likewise.
    	* gfortran.dg/goacc/private-2.f95: Likewise.
    	* gfortran.dg/goacc/private-3.f95: Likewise.
    	* gfortran.dg/goacc/pure-elemental-procedures.f95: Likewise.
    	* gfortran.dg/goacc/reduction-2.f95: Likewise.
    	* gfortran.dg/goacc/reduction.f95: Likewise.
    	* gfortran.dg/goacc/routine-1.f90: Likewise.
    	* gfortran.dg/goacc/routine-2.f90: Likewise.
    	* gfortran.dg/goacc/sentinel-free-form.f95: Likewise.
    	* gfortran.dg/goacc/several-directives.f95: Likewise.
    	* gfortran.dg/goacc/sie.f95: Likewise.
    	* gfortran.dg/goacc/subarrays.f95: Likewise.
    	* gfortran.dg/gomp/map-1.f90: Likewise.
    	* gfortran.dg/openacc-define-1.f90: Likewise.
    	* gfortran.dg/openacc-define-2.f90: Likewise.
    	* gfortran.dg/openacc-define-3.f90: Likewise.
    	* g++.dg/gomp/block-1.C: Update for changed compiler output.
    	* g++.dg/gomp/block-2.C: Likewise.
    	* g++.dg/gomp/block-3.C: Likewise.
    	* g++.dg/gomp/block-5.C: Likewise.
    	* g++.dg/gomp/target-1.C: Likewise.
    	* g++.dg/gomp/target-2.C: Likewise.
    	* g++.dg/gomp/taskgroup-1.C: Likewise.
    	* g++.dg/gomp/teams-1.C: Likewise.
    	* gcc.dg/cilk-plus/jump-openmp.c: Likewise.
    	* gcc.dg/cilk-plus/jump.c: Likewise.
    	* gcc.dg/gomp/block-1.c: Likewise.
    	* gcc.dg/gomp/block-10.c: Likewise.
    	* gcc.dg/gomp/block-2.c: Likewise.
    	* gcc.dg/gomp/block-3.c: Likewise.
    	* gcc.dg/gomp/block-4.c: Likewise.
    	* gcc.dg/gomp/block-5.c: Likewise.
    	* gcc.dg/gomp/block-6.c: Likewise.
    	* gcc.dg/gomp/block-7.c: Likewise.
    	* gcc.dg/gomp/block-8.c: Likewise.
    	* gcc.dg/gomp/block-9.c: Likewise.
    	* gcc.dg/gomp/target-1.c: Likewise.
    	* gcc.dg/gomp/target-2.c: Likewise.
    	* gcc.dg/gomp/taskgroup-1.c: Likewise.
    	* gcc.dg/gomp/teams-1.c: Likewise.
    	include/
    	* gomp-constants.h: New file.
    	libgomp/
    	* Makefile.am (search_path): Add $(top_srcdir)/../include.
    	(libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
    	oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
    	oacc-async.c, oacc-plugin.c, oacc-cuda.c.
    	[USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
    	Include $(top_srcdir)/plugin/Makefrag.am.
    	(nodist_libsubinclude_HEADERS): Add openacc.h.
    	[USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
    	openacc.f90, openacc.mod, openacc_kinds.mod.
    	(omp_lib.mod): Generalize into...
    	(%.mod): ... this new rule.
    	(openacc_kinds.mod, openacc.mod): New rules.
    	* plugin/configfrag.ac: New file.
    	* configure.ac: Move plugin/offloading support into it.  Include
    	it.  Instantiate testsuite/libgomp-test-support.pt.exp.
    	* plugin/Makefrag.am: New file.
    	* testsuite/Makefile.am (OFFLOAD_TARGETS)
    	(OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
    	export.
    	(libgomp-test-support.exp): New rule.
    	(all-local): Depend on it.
    	* Makefile.in: Regenerate.
    	* testsuite/Makefile.in: Regenerate.
    	* config.h.in: Likewise.
    	* configure: Likewise.
    	* configure.tgt: Harden shell syntax.
    	* env.c: Include "oacc-int.h".
    	(parse_acc_device_type): New function.
    	(gomp_debug_var, goacc_device_type, goacc_device_num): New
    	variables.
    	(initialize_env): Initialize those.  Call
    	goacc_runtime_initialize.
    	* error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
    	(gomp_fatal): Call gomp_vfatal.
    	* libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
    	(gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
    	(gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
    	(splay_tree_node, splay_tree, splay_tree_key)
    	(struct target_mem_desc, struct splay_tree_key_s)
    	(struct gomp_memory_mapping, struct acc_dispatch_t)
    	(struct gomp_device_descr, gomp_acc_insert_pointer)
    	(gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
    	(gomp_unmap_vars, gomp_init_device, gomp_init_tables)
    	(gomp_free_memmap, gomp_fini_device): New declarations.
    	(gomp_vdebug, gomp_debug): New macros.
    	Include "splay-tree.h".
    	* libgomp.map (OACC_2.0): New symbol version.  Use for
    	acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
    	acc_set_device_type_h_, acc_get_device_type,
    	acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
    	acc_get_device_num, acc_get_device_num_h_, acc_async_test,
    	acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
    	acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
    	acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
    	acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
    	acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
    	acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
    	acc_copyin_array_h_, acc_present_or_copyin,
    	acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
    	acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
    	acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
    	acc_present_or_create_32_h_, acc_present_or_create_64_h_,
    	acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
    	acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
    	acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
    	acc_update_device, acc_update_device_32_h_,
    	acc_update_device_64_h_, acc_update_device_array_h_,
    	acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
    	acc_update_self_array_h_, acc_map_data, acc_unmap_data,
    	acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
    	acc_is_present_64_h_, acc_is_present_array_h_,
    	acc_memcpy_to_device, acc_memcpy_from_device,
    	acc_get_current_cuda_device, acc_get_current_cuda_context,
    	acc_get_cuda_stream, acc_set_cuda_stream.
    	(GOACC_2.0): New symbol version.  Use for GOACC_data_end,
    	GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
    	GOACC_update, GOACC_wait, GOACC_get_thread_num,
    	GOACC_get_num_threads.
    	(GOMP_PLUGIN_1.0): New symbol version.  Use for
    	GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
    	GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
    	GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
    	GOMP_PLUGIN_acc_thread.
    	* libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
    	environment variable.
    	* libgomp_g.h (GOACC_data_start, GOACC_data_end)
    	(GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
    	(GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
    	* splay-tree.h (splay_tree_lookup, splay_tree_insert)
    	(splay_tree_remove): New declarations.
    	(rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
    	(splay_tree_remove, splay_tree_lookup): Move into...
    	* splay-tree.c: ... this new file.
    	* target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
    	(splay_tree_node, splay_tree, splay_tree_key)
    	(struct target_mem_desc, struct splay_tree_key_s)
    	(struct gomp_device_descr): Don't declare.
    	(num_devices_openmp): New variable.
    	(gomp_get_num_devices ): Use it.
    	(gomp_init_targets_once): New function.
    	(gomp_get_num_devices ): Use it.
    	(get_kind, gomp_copy_from_async, gomp_free_memmap)
    	(gomp_fini_device, gomp_register_image_for_device): New functions.
    	(gomp_map_vars): Add devaddrs parameter.
    	(gomp_update): Add mm parameter.
    	(gomp_init_device): Move most of it into...
    	(gomp_init_tables): ... this new function.
    	(gomp_register_images_for_device): Remove function.
    	(splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
    	Make them hidden instead of static.
    	(gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
    	(gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
    	(GOMP_target_end_data, GOMP_target_update)
    	(gomp_load_plugin_for_device, gomp_target_init): Update for
    	OpenACC changes.
    	* oacc-async.c: New file.
    	* oacc-cuda.c: Likewise.
    	* oacc-host.c: Likewise.
    	* oacc-init.c: Likewise.
    	* oacc-int.h: Likewise.
    	* oacc-mem.c: Likewise.
    	* oacc-parallel.c: Likewise.
    	* oacc-plugin.c: Likewise.
    	* oacc-plugin.h: Likewise.
    	* oacc-ptx.h: Likewise.
    	* openacc.f90: Likewise.
    	* openacc.h: Likewise.
    	* openacc_lib.h: Likewise.
    	* plugin/plugin-host.c: Likewise.
    	* plugin/plugin-nvptx.c: Likewise.
    	* libgomp-plugin.c: Likewise.
    	* libgomp-plugin.h: Likewise.
    	* libgomp_target.h: Remove file after merging content into the
    	former file.  Update all users.
    	* testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
    	(offload_targets_s, offload_targets_s_openacc): New variables.
    	(check_effective_target_openacc_nvidia_accel_present)
    	(check_effective_target_openacc_nvidia_accel_selected): New
    	procedures.
    	(libgomp_init): Update for OpenACC changes.
    	* testsuite/libgomp-test-support.exp.in: New file.
    	* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
    	* testsuite/libgomp.oacc-c/c.exp: Likewise.
    	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
    	Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
    	* testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
    	* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
    	* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
    	* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
    	liboffloadmic/
    	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_name)
    	(GOMP_OFFLOAD_get_caps, GOMP_OFFLOAD_fini_device): New functions.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219682 138bc75d-0d04-0410-961f-82ee72b054a4

 contrib/ChangeLog                                  |    5 +
 contrib/gcc_update                                 |    2 +
 gcc/ChangeLog                                      |  180 ++
 gcc/ada/ChangeLog                                  |    5 +
 gcc/ada/gcc-interface/utils.c                      |   18 +
 gcc/builtin-types.def                              |   11 +
 gcc/builtins.c                                     |   49 +
 gcc/builtins.def                                   |   16 +-
 gcc/c-family/ChangeLog                             |   38 +
 gcc/c-family/c-common.c                            |   17 +
 gcc/c-family/c-common.h                            |    1 +
 gcc/c-family/c-cppbuiltin.c                        |    3 +
 gcc/c-family/c-omp.c                               |   46 +-
 gcc/c-family/c-pragma.c                            |   31 +
 gcc/c-family/c-pragma.h                            |   44 +-
 gcc/c-family/c.opt                                 |    4 +
 gcc/c/ChangeLog                                    |   51 +
 gcc/c/c-parser.c                                   | 1036 ++++++++++-
 gcc/c/c-tree.h                                     |    3 +
 gcc/c/c-typeck.c                                   |   78 +-
 gcc/cgraph.c                                       |    2 +-
 gcc/config.gcc                                     |    2 +
 gcc/config/arc/arc.h                               |    2 +-
 gcc/config/darwin.h                                |    2 +-
 gcc/config/i386/intelmic-mkoffload.c               |    2 +-
 gcc/config/i386/intelmic-offload.h                 |   35 +
 gcc/config/i386/mingw32.h                          |    2 +-
 gcc/config/ia64/hpux.h                             |    2 +-
 gcc/config/nvptx/offload.h                         |   35 +
 gcc/config/pa/pa-hpux11.h                          |    4 +-
 gcc/config/pa/pa64-hpux.h                          |   24 +-
 gcc/cp/ChangeLog                                   |   45 +
 gcc/cp/cp-tree.h                                   |    3 +
 gcc/cp/parser.c                                    |  880 +++++++++-
 gcc/cp/semantics.c                                 |  102 +-
 gcc/doc/generic.texi                               |   71 +-
 gcc/doc/gimple.texi                                |    5 +-
 gcc/doc/invoke.texi                                |   18 +-
 gcc/doc/sourcebuild.texi                           |    3 +
 gcc/fortran/ChangeLog                              |  196 +++
 gcc/fortran/cpp.c                                  |    3 +
 gcc/fortran/dump-parse-tree.c                      |  478 ++++--
 gcc/fortran/f95-lang.c                             |   70 +
 gcc/fortran/gfortran.h                             |   58 +-
 gcc/fortran/gfortran.texi                          |   44 +-
 gcc/fortran/intrinsic.texi                         |   29 +
 gcc/fortran/invoke.texi                            |   16 +-
 gcc/fortran/lang.opt                               |    4 +
 gcc/fortran/match.c                                |   31 +-
 gcc/fortran/match.h                                |   16 +
 gcc/fortran/openmp.c                               | 1521 ++++++++++++++++-
 gcc/fortran/parse.c                                |  477 +++++-
 gcc/fortran/parse.h                                |    2 +
 gcc/fortran/resolve.c                              |   37 +
 gcc/fortran/scanner.c                              |  365 +++-
 gcc/fortran/st.c                                   |   12 +
 gcc/fortran/trans-decl.c                           |    7 +
 gcc/fortran/trans-openmp.c                         |  396 ++++-
 gcc/fortran/trans-stmt.c                           |    8 +
 gcc/fortran/trans-stmt.h                           |    4 +
 gcc/fortran/trans.c                                |   15 +
 gcc/fortran/types.def                              |   12 +
 gcc/gcc.c                                          |    5 +-
 gcc/gimple-pretty-print.c                          |   69 +-
 gcc/gimple.c                                       |    6 +-
 gcc/gimple.def                                     |   12 +-
 gcc/gimple.h                                       |  177 +-
 gcc/gimplify.c                                     |  254 ++-
 gcc/lto-streamer-out.c                             |    1 +
 gcc/lto/ChangeLog                                  |    7 +
 gcc/lto/lto-lang.c                                 |   17 +
 gcc/lto/lto.c                                      |    1 +
 gcc/omp-builtins.def                               |   33 +-
 gcc/omp-low.c                                      | 1598 ++++++++++++++---
 gcc/testsuite/ChangeLog                            |  130 ++
 gcc/testsuite/c-c++-common/cpp/openacc-define-1.c  |    6 +
 gcc/testsuite/c-c++-common/cpp/openacc-define-2.c  |    7 +
 gcc/testsuite/c-c++-common/cpp/openacc-define-3.c  |   11 +
 gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c  |   12 +
 .../c-c++-common/goacc-gomp/nesting-fail-1.c       |  457 +++++
 .../c-c++-common/goacc/acc_on_device-2-off.c       |   25 +
 gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c |   29 +
 gcc/testsuite/c-c++-common/goacc/asyncwait-1.c     |  213 +++
 gcc/testsuite/c-c++-common/goacc/cache-1.c         |   88 +
 gcc/testsuite/c-c++-common/goacc/clauses-fail.c    |   18 +
 gcc/testsuite/c-c++-common/goacc/collapse-1.c      |   97 ++
 gcc/testsuite/c-c++-common/goacc/data-1.c          |    6 +
 gcc/testsuite/c-c++-common/goacc/data-2.c          |   21 +
 .../c-c++-common/goacc/data-clause-duplicate-1.c   |   13 +
 gcc/testsuite/c-c++-common/goacc/deviceptr-1.c     |   86 +
 gcc/testsuite/c-c++-common/goacc/deviceptr-2.c     |   23 +
 gcc/testsuite/c-c++-common/goacc/deviceptr-3.c     |   11 +
 gcc/testsuite/c-c++-common/goacc/if-clause-1.c     |   10 +
 gcc/testsuite/c-c++-common/goacc/if-clause-2.c     |   11 +
 gcc/testsuite/c-c++-common/goacc/kernels-1.c       |    6 +
 gcc/testsuite/c-c++-common/goacc/loop-1.c          |   72 +
 gcc/testsuite/c-c++-common/goacc/loop-private-1.c  |   14 +
 gcc/testsuite/c-c++-common/goacc/nesting-1.c       |  101 ++
 gcc/testsuite/c-c++-common/goacc/nesting-data-1.c  |   61 +
 gcc/testsuite/c-c++-common/goacc/nesting-fail-1.c  |   39 +
 gcc/testsuite/c-c++-common/goacc/parallel-1.c      |    6 +
 gcc/testsuite/c-c++-common/goacc/pcopy.c           |   11 +
 gcc/testsuite/c-c++-common/goacc/pcopyin.c         |   11 +
 gcc/testsuite/c-c++-common/goacc/pcopyout.c        |   11 +
 gcc/testsuite/c-c++-common/goacc/pcreate.c         |   11 +
 gcc/testsuite/c-c++-common/goacc/pragma_context.c  |   34 +
 gcc/testsuite/c-c++-common/goacc/present-1.c       |   11 +
 gcc/testsuite/c-c++-common/goacc/reduction-1.c     |   71 +
 gcc/testsuite/c-c++-common/goacc/reduction-2.c     |   50 +
 gcc/testsuite/c-c++-common/goacc/reduction-3.c     |   50 +
 gcc/testsuite/c-c++-common/goacc/reduction-4.c     |   52 +
 gcc/testsuite/c-c++-common/goacc/sb-1.c            |   75 +
 gcc/testsuite/c-c++-common/goacc/sb-2.c            |   22 +
 gcc/testsuite/c-c++-common/goacc/sb-3.c            |   18 +
 gcc/testsuite/c-c++-common/goacc/update-1.c        |   17 +
 gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp     |   36 +
 gcc/testsuite/g++.dg/goacc/goacc.exp               |   35 +
 gcc/testsuite/g++.dg/gomp/block-1.C                |    2 +-
 gcc/testsuite/g++.dg/gomp/block-2.C                |    2 +-
 gcc/testsuite/g++.dg/gomp/block-3.C                |    4 +-
 gcc/testsuite/g++.dg/gomp/block-5.C                |    2 +-
 gcc/testsuite/g++.dg/gomp/target-1.C               |    2 +-
 gcc/testsuite/g++.dg/gomp/target-2.C               |    2 +-
 gcc/testsuite/g++.dg/gomp/taskgroup-1.C            |    2 +-
 gcc/testsuite/g++.dg/gomp/teams-1.C                |    4 +-
 gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c       |    4 +-
 gcc/testsuite/gcc.dg/cilk-plus/jump.c              |    4 +-
 gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp     |   38 +
 gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c       |   20 +
 gcc/testsuite/gcc.dg/goacc/goacc.exp               |   37 +
 gcc/testsuite/gcc.dg/gomp/block-1.c                |    4 +-
 gcc/testsuite/gcc.dg/gomp/block-10.c               |   12 +-
 gcc/testsuite/gcc.dg/gomp/block-2.c                |    4 +-
 gcc/testsuite/gcc.dg/gomp/block-3.c                |    8 +-
 gcc/testsuite/gcc.dg/gomp/block-4.c                |    2 +-
 gcc/testsuite/gcc.dg/gomp/block-5.c                |    4 +-
 gcc/testsuite/gcc.dg/gomp/block-6.c                |    2 +-
 gcc/testsuite/gcc.dg/gomp/block-7.c                |   12 +-
 gcc/testsuite/gcc.dg/gomp/block-8.c                |    2 +-
 gcc/testsuite/gcc.dg/gomp/block-9.c                |    2 +-
 gcc/testsuite/gcc.dg/gomp/target-1.c               |    6 +-
 gcc/testsuite/gcc.dg/gomp/target-2.c               |    6 +-
 gcc/testsuite/gcc.dg/gomp/taskgroup-1.c            |    6 +-
 gcc/testsuite/gcc.dg/gomp/teams-1.c                |   12 +-
 .../gfortran.dg/goacc/acc_on_device-1.f95          |   22 +
 .../gfortran.dg/goacc/acc_on_device-2-off.f95      |   39 +
 .../gfortran.dg/goacc/acc_on_device-2.f95          |   40 +
 gcc/testsuite/gfortran.dg/goacc/assumed.f95        |   47 +
 gcc/testsuite/gfortran.dg/goacc/asyncwait-1.f95    |   91 +
 gcc/testsuite/gfortran.dg/goacc/asyncwait-2.f95    |   91 +
 gcc/testsuite/gfortran.dg/goacc/asyncwait-3.f95    |   41 +
 gcc/testsuite/gfortran.dg/goacc/asyncwait-4.f95    |   37 +
 gcc/testsuite/gfortran.dg/goacc/branch.f95         |   53 +
 gcc/testsuite/gfortran.dg/goacc/cache-1.f95        |   12 +
 gcc/testsuite/gfortran.dg/goacc/coarray.f95        |   35 +
 .../gfortran.dg/goacc/continuation-free-form.f95   |   23 +
 gcc/testsuite/gfortran.dg/goacc/cray.f95           |   56 +
 gcc/testsuite/gfortran.dg/goacc/critical.f95       |   27 +
 gcc/testsuite/gfortran.dg/goacc/data-clauses.f95   |  259 +++
 gcc/testsuite/gfortran.dg/goacc/data-tree.f95      |   30 +
 gcc/testsuite/gfortran.dg/goacc/declare-1.f95      |   20 +
 .../gfortran.dg/goacc/enter-exit-data.f95          |   88 +
 gcc/testsuite/gfortran.dg/goacc/fixed-1.f          |   12 +
 gcc/testsuite/gfortran.dg/goacc/fixed-2.f          |   15 +
 gcc/testsuite/gfortran.dg/goacc/fixed-3.f          |   13 +
 gcc/testsuite/gfortran.dg/goacc/fixed-4.f          |    6 +
 gcc/testsuite/gfortran.dg/goacc/goacc.exp          |   36 +
 gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95 |   13 +
 gcc/testsuite/gfortran.dg/goacc/if.f95             |   52 +
 gcc/testsuite/gfortran.dg/goacc/kernels-tree.f95   |   32 +
 gcc/testsuite/gfortran.dg/goacc/list.f95           |  111 ++
 gcc/testsuite/gfortran.dg/goacc/literal.f95        |   30 +
 gcc/testsuite/gfortran.dg/goacc/loop-1.f95         |  171 ++
 gcc/testsuite/gfortran.dg/goacc/loop-2.f95         |  649 +++++++
 gcc/testsuite/gfortran.dg/goacc/loop-3.f95         |   55 +
 gcc/testsuite/gfortran.dg/goacc/loop-tree-1.f90    |   48 +
 gcc/testsuite/gfortran.dg/goacc/omp.f95            |   66 +
 .../gfortran.dg/goacc/parallel-kernels-clauses.f95 |   96 ++
 .../gfortran.dg/goacc/parallel-kernels-regions.f95 |   55 +
 gcc/testsuite/gfortran.dg/goacc/parallel-tree.f95  |   41 +
 gcc/testsuite/gfortran.dg/goacc/parameter.f95      |   32 +
 gcc/testsuite/gfortran.dg/goacc/private-1.f95      |   37 +
 gcc/testsuite/gfortran.dg/goacc/private-2.f95      |   39 +
 gcc/testsuite/gfortran.dg/goacc/private-3.f95      |   23 +
 .../goacc/pure-elemental-procedures.f95            |   78 +
 gcc/testsuite/gfortran.dg/goacc/reduction-2.f95    |   21 +
 gcc/testsuite/gfortran.dg/goacc/reduction.f95      |  138 ++
 gcc/testsuite/gfortran.dg/goacc/routine-1.f90      |   37 +
 gcc/testsuite/gfortran.dg/goacc/routine-2.f90      |   17 +
 .../gfortran.dg/goacc/sentinel-free-form.f95       |   21 +
 .../gfortran.dg/goacc/several-directives.f95       |    6 +
 gcc/testsuite/gfortran.dg/goacc/sie.f95            |  252 +++
 gcc/testsuite/gfortran.dg/goacc/subarrays.f95      |   41 +
 gcc/testsuite/gfortran.dg/gomp/map-1.f90           |  110 ++
 gcc/testsuite/gfortran.dg/openacc-define-1.f90     |    7 +
 gcc/testsuite/gfortran.dg/openacc-define-2.f90     |    7 +
 gcc/testsuite/gfortran.dg/openacc-define-3.f90     |   11 +
 gcc/testsuite/lib/target-supports.exp              |    9 +
 gcc/tree-core.h                                    |   88 +-
 gcc/tree-inline.c                                  |    2 +-
 gcc/tree-nested.c                                  |   20 +-
 gcc/tree-pretty-print.c                            |  195 ++-
 gcc/tree-streamer-in.c                             |    6 +-
 gcc/tree-streamer-out.c                            |    4 +-
 gcc/tree.c                                         |   47 +-
 gcc/tree.def                                       |   56 +-
 gcc/tree.h                                         |   92 +-
 gcc/varpool.c                                      |    2 +-
 include/ChangeLog                                  |    6 +
 include/gomp-constants.h                           |  116 ++
 libgomp/ChangeLog                                  |  351 ++++
 libgomp/Makefile.am                                |   24 +-
 libgomp/Makefile.in                                |  169 +-
 libgomp/config.h.in                                |    9 +-
 libgomp/configure                                  |  249 ++-
 libgomp/configure.ac                               |   42 +-
 libgomp/configure.tgt                              |    2 +-
 libgomp/env.c                                      |   24 +
 libgomp/error.c                                    |   38 +-
 libgomp/{libgomp_target.h => libgomp-plugin.c}     |   67 +-
 libgomp/{libgomp_target.h => libgomp-plugin.h}     |   47 +-
 libgomp/libgomp.h                                  |  217 ++-
 libgomp/libgomp.map                                |  104 ++
 libgomp/libgomp.texi                               |   40 +-
 libgomp/libgomp_g.h                                |   16 +
 libgomp/{error.c => oacc-async.c}                  |   64 +-
 libgomp/oacc-cuda.c                                |   84 +
 libgomp/oacc-host.c                                |  100 ++
 libgomp/oacc-init.c                                |  636 +++++++
 libgomp/oacc-int.h                                 |  105 ++
 libgomp/oacc-mem.c                                 |  585 +++++++
 libgomp/oacc-parallel.c                            |  490 ++++++
 libgomp/{libgomp_target.h => oacc-plugin.c}        |   37 +-
 libgomp/{libgomp_target.h => oacc-plugin.h}        |   26 +-
 libgomp/oacc-ptx.h                                 |  202 +++
 libgomp/openacc.f90                                |  956 +++++++++++
 libgomp/openacc.h                                  |  118 ++
 libgomp/openacc_lib.h                              |  381 +++++
 libgomp/plugin/Makefrag.am                         |   49 +
 libgomp/plugin/configfrag.ac                       |  148 ++
 libgomp/plugin/plugin-host.c                       |  266 +++
 libgomp/plugin/plugin-nvptx.c                      | 1791 ++++++++++++++++++++
 libgomp/{splay-tree.h => splay-tree.c}             |   31 +-
 libgomp/splay-tree.h                               |  180 +-
 libgomp/target.c                                   |  640 ++++---
 libgomp/testsuite/Makefile.am                      |   17 +-
 libgomp/testsuite/Makefile.in                      |   56 +-
 libgomp/testsuite/lib/libgomp.exp                  |   77 +-
 libgomp/testsuite/libgomp-test-support.exp.in      |    4 +
 libgomp/testsuite/libgomp.oacc-c++/c++.exp         |  107 ++
 .../testsuite/libgomp.oacc-c-c++-common/abort-1.c  |   17 +
 .../testsuite/libgomp.oacc-c-c++-common/abort-2.c  |   17 +
 .../testsuite/libgomp.oacc-c-c++-common/abort-3.c  |   17 +
 .../testsuite/libgomp.oacc-c-c++-common/abort-4.c  |   17 +
 .../libgomp.oacc-c-c++-common/acc_on_device-1.c    |   75 +
 .../libgomp.oacc-c-c++-common/asyncwait-1.c        |  466 +++++
 .../testsuite/libgomp.oacc-c-c++-common/cache-1.c  |   48 +
 .../libgomp.oacc-c-c++-common/clauses-1.c          |  623 +++++++
 .../libgomp.oacc-c-c++-common/clauses-2.c          |   67 +
 .../libgomp.oacc-c-c++-common/collapse-1.c         |   31 +
 .../libgomp.oacc-c-c++-common/collapse-2.c         |   37 +
 .../libgomp.oacc-c-c++-common/collapse-3.c         |   40 +
 .../libgomp.oacc-c-c++-common/collapse-4.c         |   27 +
 .../libgomp.oacc-c-c++-common/context-1.c          |  213 +++
 .../libgomp.oacc-c-c++-common/context-2.c          |  223 +++
 .../libgomp.oacc-c-c++-common/context-3.c          |  200 +++
 .../libgomp.oacc-c-c++-common/context-4.c          |  213 +++
 .../testsuite/libgomp.oacc-c-c++-common/data-1.c   |  188 ++
 .../testsuite/libgomp.oacc-c-c++-common/data-2.c   |  162 ++
 .../testsuite/libgomp.oacc-c-c++-common/data-3.c   |  166 ++
 .../libgomp.oacc-c-c++-common/data-already-1.c     |   19 +
 .../libgomp.oacc-c-c++-common/data-already-2.c     |   16 +
 .../libgomp.oacc-c-c++-common/data-already-3.c     |   17 +
 .../libgomp.oacc-c-c++-common/data-already-4.c     |   17 +
 .../libgomp.oacc-c-c++-common/data-already-5.c     |   17 +
 .../libgomp.oacc-c-c++-common/data-already-6.c     |   17 +
 .../libgomp.oacc-c-c++-common/data-already-7.c     |   17 +
 .../libgomp.oacc-c-c++-common/data-already-8.c     |   16 +
 .../libgomp.oacc-c-c++-common/deviceptr-1.c        |   32 +
 libgomp/testsuite/libgomp.oacc-c-c++-common/if-1.c |  613 +++++++
 .../libgomp.oacc-c-c++-common/kernels-1.c          |  184 ++
 .../libgomp.oacc-c-c++-common/kernels-empty.c      |    6 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-1.c    |   24 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-10.c   |   58 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-11.c   |   23 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-12.c   |   37 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-13.c   |   60 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-14.c   |   61 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-15.c   |   33 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-16.c   |   29 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-17.c   |   31 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-18.c   |   34 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-19.c   |   60 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-2.c    |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-20.c   |   29 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-21.c   |   29 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-22.c   |   29 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-23.c   |   39 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-24.c   |   55 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-25.c   |   30 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-26.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-27.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-28.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-29.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-3.c    |   15 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-30.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-31.c   |   27 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-32.c   |   38 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-33.c   |   31 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-34.c   |   33 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-35.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-36.c   |   26 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-37.c   |   40 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-38.c   |   64 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-39.c   |   41 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-4.c    |   13 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-40.c   |   42 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-41.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-42.c   |   35 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-43.c   |   45 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-44.c   |   45 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-45.c   |   50 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-46.c   |   42 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-47.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-48.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-49.c   |   48 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-5.c    |   40 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-50.c   |   30 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-51.c   |   41 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-52.c   |   28 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-53.c   |   28 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-54.c   |   28 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-55.c   |   48 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-56.c   |   33 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-57.c   |   28 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-58.c   |   28 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-59.c   |   55 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-6.c    |   39 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-60.c   |   54 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-61.c   |   70 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-62.c   |   49 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-63.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-64.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-65.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-66.c   |   48 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-67.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-68.c   |   43 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-69.c   |  124 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-7.c    |   18 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-70.c   |  136 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-71.c   |  119 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-72.c   |  121 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-73.c   |  134 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-74.c   |  139 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-75.c   |  141 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-76.c   |  147 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-77.c   |  135 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-78.c   |  140 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-79.c   |  167 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-80.c   |  132 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-81.c   |  211 +++
 .../testsuite/libgomp.oacc-c-c++-common/lib-82.c   |  144 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-83.c   |   58 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-84.c   |   66 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-85.c   |   52 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-86.c   |   42 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-87.c   |   42 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-88.c   |  111 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-89.c   |  118 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-9.c    |   70 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-90.c   |  137 ++
 .../testsuite/libgomp.oacc-c-c++-common/lib-91.c   |   84 +
 .../testsuite/libgomp.oacc-c-c++-common/lib-92.c   |  112 ++
 .../testsuite/libgomp.oacc-c-c++-common/nested-1.c |  680 ++++++++
 .../testsuite/libgomp.oacc-c-c++-common/nested-2.c |  141 ++
 .../testsuite/libgomp.oacc-c-c++-common/offset-1.c |   97 ++
 .../libgomp.oacc-c-c++-common/parallel-1.c         |  206 +++
 .../libgomp.oacc-c-c++-common/parallel-empty.c     |    6 +
 .../libgomp.oacc-c-c++-common/pointer-align-1.c    |   35 +
 .../libgomp.oacc-c-c++-common/present-1.c          |   48 +
 .../libgomp.oacc-c-c++-common/present-2.c          |   48 +
 .../libgomp.oacc-c-c++-common/reduction-1.c        |  174 ++
 .../libgomp.oacc-c-c++-common/reduction-2.c        |  126 ++
 .../libgomp.oacc-c-c++-common/reduction-3.c        |  126 ++
 .../libgomp.oacc-c-c++-common/reduction-4.c        |  129 ++
 .../libgomp.oacc-c-c++-common/reduction-5.c        |   32 +
 .../reduction-initial-1.c                          |   25 +
 libgomp/testsuite/libgomp.oacc-c-c++-common/subr.h |   46 +
 .../testsuite/libgomp.oacc-c-c++-common/subr.ptx   |  148 ++
 .../testsuite/libgomp.oacc-c-c++-common/timer.h    |  103 ++
 .../libgomp.oacc-c-c++-common/update-1-2.c         |  282 +++
 .../testsuite/libgomp.oacc-c-c++-common/update-1.c |  280 +++
 libgomp/testsuite/libgomp.oacc-c/c.exp             |   71 +
 libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90 |   10 +
 libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90 |   13 +
 .../libgomp.oacc-fortran/acc_on_device-1-1.f90     |   52 +
 .../libgomp.oacc-fortran/acc_on_device-1-2.f       |   52 +
 .../libgomp.oacc-fortran/acc_on_device-1-3.f       |   52 +
 .../testsuite/libgomp.oacc-fortran/asyncwait-1.f90 |  135 ++
 .../testsuite/libgomp.oacc-fortran/asyncwait-2.f90 |   40 +
 .../testsuite/libgomp.oacc-fortran/asyncwait-3.f90 |   42 +
 .../testsuite/libgomp.oacc-fortran/collapse-1.f90  |   27 +
 .../testsuite/libgomp.oacc-fortran/collapse-2.f90  |   25 +
 .../testsuite/libgomp.oacc-fortran/collapse-3.f90  |   28 +
 .../testsuite/libgomp.oacc-fortran/collapse-4.f90  |   40 +
 .../testsuite/libgomp.oacc-fortran/collapse-5.f90  |   48 +
 .../testsuite/libgomp.oacc-fortran/collapse-6.f90  |   50 +
 .../testsuite/libgomp.oacc-fortran/collapse-7.f90  |   40 +
 .../testsuite/libgomp.oacc-fortran/collapse-8.f90  |   47 +
 libgomp/testsuite/libgomp.oacc-fortran/data-1.f90  |   45 +
 libgomp/testsuite/libgomp.oacc-fortran/data-2.f90  |   31 +
 libgomp/testsuite/libgomp.oacc-fortran/data-3.f90  |  131 ++
 .../testsuite/libgomp.oacc-fortran/data-4-2.f90    |  138 ++
 libgomp/testsuite/libgomp.oacc-fortran/data-4.f90  |  136 ++
 .../libgomp.oacc-fortran/data-already-1.f          |   17 +
 .../libgomp.oacc-fortran/data-already-2.f          |   16 +
 .../libgomp.oacc-fortran/data-already-3.f          |   15 +
 .../libgomp.oacc-fortran/data-already-4.f          |   14 +
 .../libgomp.oacc-fortran/data-already-5.f          |   14 +
 .../libgomp.oacc-fortran/data-already-6.f          |   14 +
 .../libgomp.oacc-fortran/data-already-7.f          |   14 +
 .../libgomp.oacc-fortran/data-already-8.f          |   16 +
 libgomp/testsuite/libgomp.oacc-fortran/fortran.exp |   98 ++
 libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90   |   13 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-10.f90  |   82 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-2.f     |   13 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-3.f     |   13 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-4.f90   |   35 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-5.f90   |   31 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-6.f90   |   35 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-7.f90   |   31 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-8.f90   |   83 +
 libgomp/testsuite/libgomp.oacc-fortran/map-1.f90   |   97 ++
 .../libgomp.oacc-fortran/openacc_version-1.f       |    9 +
 .../libgomp.oacc-fortran/openacc_version-2.f90     |    9 +
 .../libgomp.oacc-fortran/pointer-align-1.f90       |   21 +
 libgomp/testsuite/libgomp.oacc-fortran/pset-1.f90  |  229 +++
 .../testsuite/libgomp.oacc-fortran/reduction-1.f90 |  225 +++
 .../testsuite/libgomp.oacc-fortran/reduction-2.f90 |  170 ++
 .../testsuite/libgomp.oacc-fortran/reduction-3.f90 |  170 ++
 .../testsuite/libgomp.oacc-fortran/reduction-4.f90 |   54 +
 .../testsuite/libgomp.oacc-fortran/reduction-5.f90 |   32 +
 .../testsuite/libgomp.oacc-fortran/reduction-6.f90 |   30 +
 .../testsuite/libgomp.oacc-fortran/routine-1.f90   |   32 +
 .../testsuite/libgomp.oacc-fortran/routine-2.f90   |   29 +
 .../testsuite/libgomp.oacc-fortran/routine-3.f90   |   27 +
 .../testsuite/libgomp.oacc-fortran/routine-4.f90   |   23 +
 .../testsuite/libgomp.oacc-fortran/subarrays-1.f90 |   97 ++
 .../testsuite/libgomp.oacc-fortran/subarrays-2.f90 |  100 ++
 liboffloadmic/ChangeLog                            |    5 +
 liboffloadmic/plugin/libgomp-plugin-intelmic.cpp   |   26 +-
 451 files changed, 37297 insertions(+), 1546 deletions(-)


GrÃÃe,
 Thomas


Attachment: gcc-trunk-r219682.patch.gz
Description: GNU Zip compressed data

Attachment: pgpshABJZe36_.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]