1. 15 Jan, 2015 40 commits
    • go/build: cgo works on linux/alpha. · 1d599906
      From Uros Bizjak.
      
      From-SVN: r219691
      Ian Lance Taylor committed
    • configure.ac: Check for networking libraries; see NET_LIBS. · 85d7b5d5
      	* configure.ac: Check for networking libraries; see NET_LIBS.
      	* Makefile.am (go$(EXEEXT)): Link against NET_LIBS.
      	(gofmt$(EXEEXT), cgo$(EXEEXT)): Likewise.
      	* configure, Makefile.in: Rebuild.
      
      From-SVN: r219690
      Ian Lance Taylor committed
    • re PR c++/59366 (A friend function template defined in a class is found without ADL) · 199b7a35
      	PR c++/59366
      	* name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
      	and function templates, declared only in the class.
      	* decl.c (duplicate_decls): Reveal hidden friend functions or
      	function templates, if they are redeclared outside the class.
      
      From-SVN: r219689
      Momchil Velikov committed
    • re PR libffi/64572 (r219477 breaks bootstrap on x86_64 darwin) · 58b59d5e
      PR libffi/64572
      
              * include/ffi.h.in (FFI_TYPE_LAST): Set to COMPLEX only if complex
              numbers are supported by the backend.
      
      From-SVN: r219688
      Richard Henderson committed
    • re PR c++/64356 (Some constexpr expressions not recognized as constexpr) · 134efa82
      	PR c++/64356
      	* constexpr.c (cxx_eval_binary_expression): Fix pasto.
      
      From-SVN: r219687
      Jason Merrill committed
    • re PR c++/63283 (constexpr function called by templated function is not treated as constexpr) · c3c29ba5
      	PR c++/63283
      	* constexpr.c (potential_constant_expression_1): Handle reference
      	args in templates.
      
      From-SVN: r219686
      Jason Merrill committed
    • c-torture.exp: Compute LTO_TORTURE_OPTIONS after the environment is set up. · 6c34c761
      	* lib/c-torture.exp: Compute LTO_TORTURE_OPTIONS after the environment
      	is set up.
      	* lib/gcc-dg.exp: Likewise.
      
      From-SVN: r219684
      Eric Botcazou committed
    • re PR rtl-optimization/64110 (ICE: Max. number of generated reload insns per insn is achieved (90)) · d1457701
      2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/64110
      	* stmt.c (parse_output_constraint): Process '^' and '$'.
      	(parse_input_constraint): Ditto.
      	* lra-constraints.c (process_alt_operands): Process the new
      	constraints.
      	* ira-costs.c (record_reg_classes): Process the new constraint
      	'^'.
      	* genoutput.c (indep_constraints): Add '^' and '$'.
      	* config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
      	* doc/md.texi: Add description of the new constraints.
      
      2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/64110
      	* gcc.target/i386/pr64110.c: Add scan-assembler.
      
      From-SVN: r219683
      Vladimir Makarov committed
    • Merge current set of OpenACC changes from gomp-4_0-branch. · 41dbbb37
      	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.
      
      Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Dmitry Bocharnikov <dmitry.b@samsung.com>
      Co-Authored-By: Evgeny Gavrin <e.gavrin@samsung.com>
      Co-Authored-By: Ilmir Usmanov <i.usmanov@samsung.com>
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      Co-Authored-By: James Norris <jnorris@codesourcery.com>
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
      Co-Authored-By: Tobias Burnus <burnus@net-b.de>
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r219682
      Thomas Schwinge committed
    • jit: prevent ICE with type mismatch in gcc_jit_block_add_assignment_op · 96a87981
      gcc/jit/ChangeLog:
      	* libgccjit.c (gcc_jit_block_add_assignment_op): Check that the
      	lvalue and the rvalue are of compatible type.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-error-mismatching-types-in-assignment-op.c: New
      	test case.
      
      From-SVN: r219681
      David Malcolm committed
    • explow.h: Remove duplicate contents. · 548c43e7
      2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* explow.h: Remove duplicate contents.
      	* dojump.h: Likewise.
      
      From-SVN: r219680
      Prathamesh Kulkarni committed
    • arm.c (arm_xgene_tune): Add default initializer for instruction fusion. · 7c21d0ff
      	* arm.c (arm_xgene_tune): Add default initializer for instruction
      	fusion.
      
      From-SVN: r219679
      Richard Earnshaw committed
    • inline_1.c: Rename gcc.dg/inline_[1-4].c to inline-3[6-9].c. · 37767f4f
      	* gcc.dg/inline_1.c: Rename gcc.dg/inline_[1-4].c to inline-3[6-9].c.
      	* gcc.dg/inline_2.c: Likewise.
      	* gcc.dg/inline_3.c: Likewise.
      	* gcc.dg/inline_4.c: Likewise.
      
      From-SVN: r219678
      Mike Stump committed
    • Fix ChangeLog entry. · 869b656c
      From-SVN: r219677
      Steve Ellcey committed
    • re PR fortran/58023 ([F03] ICE on invalid with bad PPC declaration) · cab283f5
      2015-01-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/58023
      	* resolve.c (resolve_fl_derived0): Continue resolving next component
      	after error.
      
      2015-01-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/58023
      	* gfortran.dg/proc_ptr_comp_43.f90: New.
      
      From-SVN: r219676
      Janus Weil committed
    • unroll_1.c: Rename gcc.dg/unroll_[1-5].c to unroll-[2-6]. · 1357c6e1
      	* gcc.dg/unroll_1.c: Rename gcc.dg/unroll_[1-5].c to unroll-[2-6].
      	* gcc.dg/unroll_2.c: Likewise.
      	* gcc.dg/unroll_3.c: Likewise.
      	* gcc.dg/unroll_4.c: Likewise.
      	* gcc.dg/unroll_5.c: Likewise.
      
      From-SVN: r219675
      Mike Stump committed
    • re PR testsuite/63971 (Some of gcc.target/aarch64/test_frame_*.c tests fail now) · b472082a
      2015-01-15  Tejas Belagod  <tejas.belagod@arm.com>
      
      	PR target/63971
      	* gcc.target/aarch64/test_frame_1.c: Revert to 3 loads of x30
      	in epilogue.
      	* gcc.target/aarch64/test_frame_6.c: Likewise.
      	* gcc.target/aarch64/test_frame_2.c: Revert to 2 pair loads of
      	x30 and x19 (in the epilogue).
      	* gcc.target/aarch64/test_frame_4.c: Likewise.
      	* gcc.target/aarch64/test_frame_7.c: Likewise.
      
      From-SVN: r219674
      Tejas Belagod committed
    • Make test2/test1 static in libitm.c/stackundo.c · 3a07b160
      libitm.c/stackundo.c fails with -fpic since test1 and test2 may be
      preempted with -fpic.  This patch makes those 2 functions static.
      
      	PR libitm/64360
      	* libitm.c/stackundo.c (test2): Make it static.
      	(test1): Likewise.
      
      From-SVN: r219673
      H.J. Lu committed
    • Fix for PR64068 and PR64559. · c23127ce
      	* g++.dg/ipa/pr64068.C: New test.
      	* gcc.dg/ipa/PR64559.c: New test.
      	PR ipa/64068
      	PR ipa/64559
      	* ipa.c (symbol_table::remove_unreachable_nodes):
      	Do not put abstract origins into boundary.
      
      From-SVN: r219672
      Martin Liska committed
    • gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage. · 40d54d24
      2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
      
      	* config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
      	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
      
      From-SVN: r219671
      Evgeny Stupachenko committed
    • Makefile.in (PLUGIN_HEADERS): Add dominance.h... · 6fb5f2f5
      2015-01-15  Steve Ellcey  <sellcey@mips.com>
      
      	* Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
      	cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
      	builtins.def, chkp-builtins.def, and pass-instances.def.
      
      From-SVN: r219670
      Steve Ellcey committed
    • Ignore additional linker messages on Linux/x86 with PIE · d86cfdb8
      g++.dg/other/anon5.C is expected to fail to link.  On Linux/x86 with PIE
      and the new linker, there are additional messages from linker:
      
      [hjl@gnu-tools-1 gcc]$ g++  -fPIE -pie
      /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/other/anon5.C
      /tmp/ccwg53fj.o: In function `f()': anon5.C:(.text+0x7): undefined reference to `(anonymous namespace)::c::t'
      /usr/local/bin/ld: /tmp/ccwg53fj.o: relocation R_X86_64_PC32 against undefined symbol `_ZN12_GLOBAL__N_11c1tE' can not be used when making a shared object; recompile with -fPIC
      /usr/local/bin/ld: final link failed: Bad value
      collect2: error: ld returned 1 exit status
      [hjl@gnu-tools-1 gcc]$ 
      
      This patch ignores additional linker messages on Linux/x86 with PIE.
      
      	* g++.dg/other/anon5.C: Ignore additional messages on Linux/x86
      	with PIE.
      
      From-SVN: r219667
      H.J. Lu committed
    • default64.h (TARGET_DEFAULT): Use ISA 2.7 (POWER8). · 34a8f242
              * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
              ISA 2.7 (POWER8).
      
      From-SVN: r219665
      David Edelsohn committed
    • re PR tree-optimization/61743 (Complete unroll is not happened for loops with short upper bound) · 42c6b3ca
      2015-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/61743
      	* tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
      	information on PHIs for some simple cases.
      
      	* gcc.dg/tree-ssa/pr61743-1.c: New testcase.
      	* gcc.dg/tree-ssa/pr61743-2.c: Likewise.
      
      From-SVN: r219662
      Richard Biener committed
    • arm.md (generic_sched): Specify xgene1 in 'no' list. · cd3246ea
      2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
      
              * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
              Include xgene1.md.
              * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
              * config/arm/arm-cores.def (xgene1): New entry.
              * config/arm/arm-tables.opt: Regenerate.
              * config/arm/arm-tune.md: Regenerate.
              * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
      
      From-SVN: r219661
      Philipp Tomsich committed
    • [AARCH64] Fix syntax error in target selector "-O2" for volatileloadpair-1.c & · f5422cbf
      volatileloadpair-2.c.
      
      testsuite/
      	* gcc.target/aarch64/volatileloadpair-1.c: Correct dg-options.
      	* gcc.target/aarch64/volatileloadpair-2.c: Likewise.
      
      From-SVN: r219660
      Renlin Li committed
    • Updated copyright year for 'xgene1.md'. · d304c815
      From-SVN: r219659
      Philipp Tomsich committed
    • tree-if-conv.c: Include hash-map.h. · e9d5a1a0
      gcc/
      
      	* tree-if-conv.c: Include hash-map.h.
      	(aggressive_if_conv): New variable.
      	(fold_build_cond_expr): Add simplification of non-zero condition.
      	(add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
      	destination block is not always executed.
      	(if_convertible_phi_p): Fix commentary, allow phi nodes have more
      	than two predecessors if AGGRESSIVE_IF_CONV is true.
      	(if_convertible_stmt_p): Fix commentary.
      	(all_preds_critical_p): New function.
      	(has_pred_critical_p): New function.
      	(if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
      	BB can have more than two predecessors and all incoming edges can be
      	critical.
      	(predicate_bbs): Skip predication for loop exit block, use build2_loc
      	to compute predicate for true edge.
      	(find_phi_replacement_condition): Delete this function.
      	(is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
      	Allow interchange PHI arguments if EXTENDED is false.
      	Change check that block containing reduction statement candidate
      	is predecessor of phi-block since phi may have more than two arguments.
      	(phi_args_hash_traits): New helper structure.
      	(struct phi_args_hash_traits): New type.
      	(phi_args_hash_traits::hash): New function.
      	(phi_args_hash_traits::equal_keys): New function.
      	(gen_phi_arg_condition): New function.
      	(predicate_scalar_phi): Add handling of phi nodes with more than two
      	arguments, delete COND and TRUE_BB arguments, insert body of
      	find_phi_replacement_condition to predicate ordinary phi nodes.
      	(predicate_all_scalar_phis): Skip blocks with the only predecessor,
      	delete call of find_phi_replacement_condition and invoke
      	predicate_scalar_phi with two arguments.
      	(insert_gimplified_predicates): Add assert that non-predicated block
      	don't have statements to insert.
      	(ifcvt_split_critical_edges): New function.
      	(ifcvt_split_def_stmt): Likewise.
      	(ifcvt_walk_pattern_tree): Likewise.
      	(stmt_is_root_of_bool_pattern): Likewise.
      	(ifcvt_repair_bool_pattern): Likewise.
      	(ifcvt_local_dce): Likewise.
      	(tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
      	is copy of inner or outer loop force_vectorize field, invoke
      	ifcvt_split_critical_edges, ifcvt_local_dce and
      	ifcvt_repair_bool_pattern for aggressive if-conversion.
      
      gcc/testsuite/
      
      	* gcc.dg/vect/vect-aggressive-1.c: New.
      	* gcc.target/i386/avx2-vect-aggressive.c: New.
      
      From-SVN: r219658
      Yuri Rumyantsev committed
    • aarch64.md: Include xgene1.md. · a0f06fc9
      2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
      
              * config/aarch64/aarch64.md: Include xgene1.md.
              * config/aarch64/xgene1.md: New file.
      
      From-SVN: r219657
      Philipp Tomsich committed
    • aarch64-cores.def (xgene1): Update/add the xgene1 (APM XGene-1) core definition. · 381e27aa
      2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
      
              * config/aarch64/aarch64-cores.def (xgene1): Update/add the
              xgene1 (APM XGene-1) core definition.
              * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
              * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
              * doc/invoke.texi: Document -mcpu=xgene1.
      
      From-SVN: r219656
      Philipp Tomsich committed
    • dojump.h: New header file. · 36566b39
      2015-10-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* dojump.h: New header file.
      	* explow.h: Likewise.
      	* expr.h: Remove includes.
      	Move expmed.c prototypes to expmed.h.
      	Move dojump.c prototypes to dojump.h.
      	Move alias.c prototypes to alias.h.
      	Move explow.c prototypes to explow.h.
      	Move calls.c prototypes to calls.h.
      	Move emit-rtl.c prototypes to emit-rtl.h.
      	Move varasm.c prototypes to varasm.h.
      	Move stmt.c prototypes to stmt.h.
      	(saved_pending_stack_adjust): Move to dojump.h.
      	(adjust_address): Move to explow.h.
      	(adjust_address_nv): Move to emit-rtl.h.
      	(adjust_bitfield_address): Likewise.
      	(adjust_bitfield_address_size): Likewise.
      	(adjust_bitfield_address_nv): Likewise.
      	(adjust_automodify_address_nv): Likewise.
      	* explow.c (expr_size): Move to expr.c.
      	(int_expr_size): Likewise.
      	(tree_expr_size): Likewise.
      	Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
      	* genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
      	insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
      	* genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
      	statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
      	stmt.h.
      	* genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
      	fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
      	* genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
      	fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
      	stmt.h.
      	* config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
      	machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
      	double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
      	insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
      	* config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
      	double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
      	function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
      	insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
      	tm.h tree.h varasm.h vec.h wide-int.h.
      	* rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
      	hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
      	real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
      	* cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
      	real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
      	* loop-iv.c: Likewise.
      	* lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h flags.h inchash.h real.h
      	statistics.h stmt.h tree.h varasm.h wide-int.h.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
      	statistics.h stmt.h tree.h varasm.h wide-int.h.
      	* hw-doloop.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-emit.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
      	statistics.h stmt.h tree.h varasm.h wide-int.h.
      	* caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
      	stmt.h tree.h varasm.h wide-int.h.
      	* combine-stack-adj.c: Likewise.
      	* cse.c: Likewise.
      	* ddg.c: Likewise.
      	* ifcvt.c: Likewise.
      	* ira-costs.c: Likewise.
      	* jump.c: Likewise.
      	* lra-coalesce.c: Likewise.
      	* lra-spills.c: Likewise.
      	* profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
      	stmt.h varasm.h wide-int.h.
      	* lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
      	varasm.h.
      	* config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
      	double-int.h explow.h expmed.h fixed-value.h flags.h real.h
      	statistics.h stmt.h varasm.h wide-int.h.
      	* reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
      	expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
      	varasm.h wide-int.h.
      	* reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
      	expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
      	* config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
      	emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
      	statistics.h stmt.h.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
      	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
      	varasm.h.
      	* tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
      	insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
      	* cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
      	insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
      	* rtl-chkp.c: Likewise.
      	* tree-chkp-opt.c: Likewise.
      	* config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
      	insn-config.h real.h statistics.h stmt.h varasm.h.
      	* ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
      	statistics.h stmt.h.
      	* tree-vect-data-refs.c: Likewise.
      	* graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
      	rtl.h statistics.h stmt.h varasm.h.
      	* internal-fn.c: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tsan.c: Likewise.
      	* targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
      	stmt.h.
      	* config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
      	statistics.h stmt.h varasm.h.
      	* loop-unroll.c: Likewise.
      	* ubsan.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
      	stmt.h varasm.h.
      	* dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
      	* tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
      	statistics.h stmt.h.
      	* generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
      	statistics.h stmt.h varasm.h.
      	* gimple-match-head.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
      	* stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
      	* varasm.c: Likewise.
      	* coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
      	varasm.h.
      	* init-regs.c: Likewise.
      	* ira.c: Likewise.
      	* omp-low.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
      	varasm.h.
      	* dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
      	* shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
      	* recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
      	* tree-ssa-phiopt.c: Likewise.
      	* config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h statistics.h stmt.h.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* optabs.c: Likewise.
      	* passes.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stmt.c: Likewise.
      	* toplev.c: Likewise.
      	* var-tracking.c: Likewise.
      	* gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
      	* lower-subreg.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* ree.c: Likewise.
      	* reginfo.c: Likewise.
      	* store-motion.c: Likewise.
      	* combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h stmt.h varasm.h.
      	* emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h statistics.h stmt.h.
      	* dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
      	varasm.h.
      	* gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
      	* tree-ssa-structalias.c: Likewise.
      	* cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h statistics.h.
      	* calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h statistics.h stmt.h.
      	* bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
      	* cfgbuild.c: Likewise.
      	* function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h real.h rtl.h statistics.h stmt.h.
      	* cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
      	* dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h real.h statistics.h stmt.h.
      	* auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h real.h statistics.h stmt.h varasm.h.
      	* cprop.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* postreload.c: Likewise.
      	* ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
      	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
      	statistics.h stmt.h varasm.h.
      	* gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
      	explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
      	rtl.h statistics.h stmt.h varasm.h.
      	* tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
      	fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
      	varasm.h.
      	* expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
      	function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
      	varasm.h.
      	* target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
      	fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
      	varasm.h.
      	* tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
      	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
      	* cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
      	function.h real.h statistics.h stmt.h varasm.h.
      	* alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
      	insn-config.h real.h statistics.h stmt.h.
      	* dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
      	statistics.h stmt.h.
      	* config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
      	statistics.h stmt.h varasm.h.
      	* gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
      	* asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
      	* ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
      	statistics.h stmt.h varasm.h.
      	* ipa-polymorphic-call.c: Likewise.
      	* config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
      	stmt.h.
      	* config/c6x/c6x.c: Likewise.
      	* config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
      	statistics.h stmt.h varasm.h.
      	* ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
      	* ipa-split.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
      	stmt.h.
      	* config/nds32/nds32-fp-as-gp.c: Likewise.
      	* config/nds32/nds32-intrinsic.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32-md-auxiliary.c: Likewise.
      	* config/nds32/nds32-memory-manipulation.c: Likewise.
      	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
      	* config/nds32/nds32-predicates.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h statistics.h.
      	* config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h statistics.h stmt.h.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
      	* config/msp430/msp430.c: Likewise.
      	* predict.c: Likewise.
      	* value-prof.c: Likewise.
      	* config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
      	expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	insn-config.h real.h rtl.h statistics.h stmt.h.
      	* cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	insn-config.h real.h statistics.h stmt.h.
      	* fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
      	* tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
      	* builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
      	real.h statistics.h stmt.h.
      	* config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h statistics.h stmt.h.
      	* config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
      	stmt.h.
      
      java/	
      	* builtins.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
      	fixed-value.h function.h hard-reg-set.h hashtab.h insn-config.h
      	real.h statistics.h stmt.h varasm.h.
      
      From-SVN: r219655
      Prathamesh Kulkarni committed
    • Adjust scan string for PIE · 645c25f6
      The order of address in the first operand is different due to different
      output orders of PLUS between output_addr_const and output_pic_addr_const.
      This patch adjusts scan string for PIE in gcc.target/i386/pr54445-2.c.
      
      	* gcc.target/i386/pr54445-2.c: Adjust scan string for PIE.
      
      From-SVN: r219654
      H.J. Lu committed
    • MAINTAINERS: (Write After Approval): Add myself. · c61fcfa6
      2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
      
              * MAINTAINERS: (Write After Approval): Add myself.
      
      From-SVN: r219653
      Philipp Tomsich committed
    • gengtype.c (create_user_defined_type): Workaround -Wmaybe-uninitialized false positives. · e54bd4ab
      	* gengtype.c (create_user_defined_type): Workaround
      	-Wmaybe-uninitialized false positives.
      	* cse.c (fold_rtx): Likewise.
      	* loop-invariant.c (gain_for_invariant): Likewise.
      
      From-SVN: r219652
      Jakub Jelinek committed
    • re PR middle-end/64415 (ICE: verify_ssa failed / segmentation fault with LTO) · 928923e7
      2015-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR lto/64415
      	* gcc.dg/lto/pr64415_0.c: Re-enable for darwin with
      	-Wl,-undefined,dynamic_lookup.
      
      From-SVN: r219651
      Richard Biener committed
    • Fix oversight in previous commit · 4c113f87
      From-SVN: r219649
      Eric Botcazou committed
    • expr.c (expand_expr_real_1): Use the expression to set the memory attributes in… · 3aabdc00
      expr.c (expand_expr_real_1): Use the expression to set the memory attributes in all cases but clear MEM_EXPR...
      
      	* expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
      	set the memory attributes in all cases but clear MEM_EXPR if need be.
      
      From-SVN: r219648
      Eric Botcazou committed
    • re PR middle-end/64415 (ICE: verify_ssa failed / segmentation fault with LTO) · 04d8b4dc
      2015-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR lto/64415
      	* gcc.dg/lto/pr64415_0.c: Skip on darwin.
      
      From-SVN: r219647
      Richard Biener committed
    • re PR tree-optimization/64434 (Performance regression after operand canonicalization (r216728).) · d2626c0b
      gcc/
      
      	PR tree-optimization/64434
      	* cfgexpand.c (reorder_operands): New function.
      	(expand_gimple_basic_block): Insert call of reorder_operands if
      	optimized is true.
      
      gcc/testsuite/
      
      	PR tree-optimization/64434
      	* gcc.dg/torture/pr64434.c: New test.
      
      From-SVN: r219646
      Yuri Rumyantsev committed