1. 17 Mar, 2016 1 commit
    • Rename GOMP_MAP_FORCE_DEALLOC to GOMP_MAP_DELETE · 91106e84
      Also rename the Fortran OMP_MAP_FORCE_DEALLOC to OMP_MAP_DELETE.
      
      	include/
      	* gomp-constants.h (enum gomp_map_kind): Rename
      	GOMP_MAP_FORCE_DEALLOC to GOMP_MAP_DELETE.  Adjust all users.
      
      	gcc/fortran/
      	* gfortran.h (enum gfc_omp_map_op): Rename OMP_MAP_FORCE_DEALLOC
      	to OMP_MAP_DELETE.  Adjust all users.
      
      From-SVN: r234294
      Thomas Schwinge committed
  2. 04 Mar, 2016 1 commit
    • Sync include/plugin-api.h with binutils. · e94da7c6
      2016-03-03  Than McIntosh <thanm@google.com>
      
      	* plugin-api.h: Add new hooks to the plugin transfer vector to
      	to support querying section alignment and section size.
      	(ld_plugin_get_input_section_alignment): New hook.
      	(ld_plugin_get_input_section_size): New hook.
      	(ld_plugin_tag): Add LDPT_GET_INPUT_SECTION_ALIGNMENT
      	and LDPT_GET_INPUT_SECTION_SIZE.
      	(ld_plugin_tv): Add tv_get_input_section_alignment and
      	tv_get_input_section_size.
      
      2016-03-03  Evgenii Stepanov  <eugenis@google.com>
      
      	* plugin-api.h (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V3.
      
      From-SVN: r233986
      Cary Coutant committed
  3. 19 Jan, 2016 1 commit
    • Merge of HSA · b2b40051
      2016-01-19  Martin Jambor  <mjambor@suse.cz>
      	    Martin Liska  <mliska@suse.cz>
      	    Michael Matz <matz@suse.de>
      
      libgomp/
      	* plugin/Makefrag.am: Add HSA plugin requirements.
      	* plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
      	(HSA_RUNTIME_LIB): Likewise.
      	(HSA_RUNTIME_CPPFLAGS): Likewise.
      	(HSA_RUNTIME_INCLUDE): New substitution.
      	(HSA_RUNTIME_LIB): Likewise.
      	(HSA_RUNTIME_LDFLAGS): Likewise.
      	(hsa-runtime): New configure option.
      	(hsa-runtime-include): Likewise.
      	(hsa-runtime-lib): Likewise.
      	(PLUGIN_HSA): New substitution variable.
      	Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
      	configure options.
      	(PLUGIN_HSA_CPPFLAGS): Likewise.
      	(PLUGIN_HSA_LDFLAGS): Likewise.
      	(PLUGIN_HSA_LIBS): Likewise.
      	Check that we have access to HSA run-time.
      	* libgomp-plugin.h (offload_target_type): New element
      	OFFLOAD_TARGET_TYPE_HSA.
      	* libgomp.h (gomp_target_task): New fields firstprivate_copies and
      	args.
      	(bool gomp_create_target_task): Updated.
      	(gomp_device_descr): Extra parameter of run_func and async_run_func,
      	new field can_run_func.
      	* libgomp_g.h (GOMP_target_ext): Update prototype.
      	* oacc-host.c (host_run): Added a new parameter args.
      	* target.c (calculate_firstprivate_requirements): New function.
      	(copy_firstprivate_data): Likewise.
      	(gomp_target_fallback_firstprivate): Use them.
      	(gomp_target_unshare_firstprivate): New function.
      	(gomp_get_target_fn_addr): Allow returning NULL for shared memory
      	devices.
      	(GOMP_target): Do host fallback for all shared memory devices.  Do not
      	pass any args to plugins.
      	(GOMP_target_ext): Introduce device-specific argument parameter args.
      	Allow host fallback if device shares memory.  Do not remap data if
      	device has shared memory.
      	(gomp_target_task_fn): Likewise.  Also treat shared memory devices
      	like host fallback for mappings.
      	(GOMP_target_data): Treat shared memory devices like host fallback.
      	(GOMP_target_data_ext): Likewise.
      	(GOMP_target_update): Likewise.
      	(GOMP_target_update_ext): Likewise.  Also pass NULL as args to
      	gomp_create_target_task.
      	(GOMP_target_enter_exit_data): Likewise.
      	(omp_target_alloc): Treat shared memory devices like host fallback.
      	(omp_target_free): Likewise.
      	(omp_target_is_present): Likewise.
      	(omp_target_memcpy): Likewise.
      	(omp_target_memcpy_rect): Likewise.
      	(omp_target_associate_ptr): Likewise.
      	(gomp_load_plugin_for_device): Also load can_run.
      	* task.c (GOMP_PLUGIN_target_task_completion): Free
      	firstprivate_copies.
      	(gomp_create_target_task): Accept new argument args and store it to
      	ttask.
      	* plugin/plugin-hsa.c: New file.
      
      gcc/
      	* Makefile.in (OBJS): Add new source files.
      	(GTFILES): Add hsa.c.
      	* common.opt (disable_hsa): New variable.
      	(-Whsa): New warning.
      	* config.in (ENABLE_HSA): New.
      	* configure.ac: Treat hsa differently from other accelerators.
      	(OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
      	$enable_offloading.
      	(ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
      	* doc/install.texi (Configuration): Document --with-hsa-runtime,
      	--with-hsa-runtime-include, --with-hsa-runtime-lib and
      	--with-hsa-kmt-lib.
      	* doc/invoke.texi (-Whsa): Document.
      	(hsa-gen-debug-stores): Likewise.
      	* lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
      	to invoke offload compiler for hsa acclerator.
      	* opts.c (common_handle_option): Determine whether HSA offloading
      	should be performed.
      	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
      	* builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
      	* gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Also handle
      	GF_OMP_FOR_KIND_GRID_LOOP.
      	(dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
      	(pp_gimple_stmt_1): Likewise.
      	* gimple-walk.c (walk_gimple_stmt): Likewise.
      	* gimple.c (gimple_build_omp_grid_body): New function.
      	(gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
      	* gimple.def (GIMPLE_OMP_GRID_BODY): New.
      	* gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
      	GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
      	GF_OMP_TEAMS_GRID_PHONY.
      	(gimple_statement_omp_single_layout): Updated comments.
      	(gimple_build_omp_grid_body): New function.
      	(gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
      	(gimple_omp_for_grid_phony): New function.
      	(gimple_omp_for_set_grid_phony): Likewise.
      	(gimple_omp_parallel_grid_phony): Likewise.
      	(gimple_omp_parallel_set_grid_phony): Likewise.
      	(gimple_omp_teams_grid_phony): Likewise.
      	(gimple_omp_teams_set_grid_phony): Likewise.
      	(gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
      	* omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
      	(BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
      	(BUILT_IN_GOMP_TARGET): Updated type.
      	* omp-low.c: Include symbol-summary.h, hsa.h and params.h.
      	(adjust_for_condition): New function.
      	(get_omp_for_step_from_incr): Likewise.
      	(extract_omp_for_data): Moved parts to adjust_for_condition and
      	get_omp_for_step_from_incr.
      	(build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
      	(fixup_child_record_type): Bail out if receiver_decl is NULL.
      	(scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
      	(scan_omp_parallel): Do not create child functions for phony
      	constructs.
      	(check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
      	(scan_omp_1_op): Checking assert we are not remapping to
      	ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
      	(parallel_needs_hsa_kernel_p): New function.
      	(expand_parallel_call): Register apprpriate parallel child
      	functions as HSA kernels.
      	(grid_launch_attributes_trees): New type.
      	(grid_attr_trees): New variable.
      	(grid_create_kernel_launch_attr_types): New function.
      	(grid_insert_store_range_dim): Likewise.
      	(grid_get_kernel_launch_attributes): Likewise.
      	(get_target_argument_identifier_1): Likewise.
      	(get_target_argument_identifier): Likewise.
      	(get_target_argument_value): Likewise.
      	(push_target_argument_according_to_value): Likewise.
      	(get_target_arguments): Likewise.
      	(expand_omp_target): Call get_target_arguments instead of looking
      	up for teams and thread limit.
      	(grid_expand_omp_for_loop): New function.
      	(grid_arg_decl_map): New type.
      	(grid_remap_kernel_arg_accesses): New function.
      	(grid_expand_target_kernel_body): New function.
      	(expand_omp): Call it.
      	(lower_omp_for): Do not emit phony constructs.
      	(lower_omp_taskreg): Do not emit phony constructs but create for them
      	a temporary variable receiver_decl.
      	(lower_omp_taskreg): Do not emit phony constructs.
      	(lower_omp_teams): Likewise.
      	(lower_omp_grid_body): New function.
      	(lower_omp_1): Call it.
      	(grid_reg_assignment_to_local_var_p): New function.
      	(grid_seq_only_contains_local_assignments): Likewise.
      	(grid_find_single_omp_among_assignments_1): Likewise.
      	(grid_find_single_omp_among_assignments): Likewise.
      	(grid_find_ungridifiable_statement): Likewise.
      	(grid_target_follows_gridifiable_pattern): Likewise.
      	(grid_remap_prebody_decls): Likewise.
      	(grid_copy_leading_local_assignments): Likewise.
      	(grid_process_kernel_body_copy): Likewise.
      	(grid_attempt_target_gridification): Likewise.
      	(grid_gridify_all_targets_stmt): Likewise.
      	(grid_gridify_all_targets): Likewise.
      	(execute_lower_omp): Call grid_gridify_all_targets.
      	(make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
      	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
      	(tree_omp_clause): Added union field dimension.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
      	* tree.c (omp_clause_num_ops): Added number of arguments of
      	OMP_CLAUSE__GRIDDIM_.
      	(omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
      	(walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
      	* tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
      	(OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
      	(OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
      	(OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
      	* passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
      	* tree-pass.h (make_pass_gen_hsail): Declare.
      	(make_pass_ipa_hsa): Likewise.
      	* ipa-hsa.c: New file.
      	* lto-section-in.c (lto_section_name): Add hsa section name.
      	* lto-streamer.h (lto_section_type): Add hsa section.
      	* timevar.def (TV_IPA_HSA): New.
              * hsa-brig-format.h: New file.
      	* hsa-brig.c: New file.
      	* hsa-dump.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* hsa.c: Likewise.
      	* hsa.h: Likewise.
      	* toplev.c (compile_file): Call hsa_output_brig.
      	* hsa-regalloc.c: New file.
      
      gcc/fortran/
      	* types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
      
      gcc/lto/
      	* lto-partition.c: Include "hsa.h"
      	(add_symbol_to_partition_1): Put hsa implementations into the
      	same partition as host implementations.
      
      liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_async_run): New
      	unused parameter.
      	(GOMP_OFFLOAD_run): Likewise.
      
      include/
      	* gomp-constants.h (GOMP_DEVICE_HSA): New macro.
      	(GOMP_VERSION_HSA): Likewise.
      	(GOMP_TARGET_ARG_DEVICE_MASK): Likewise.
      	(GOMP_TARGET_ARG_DEVICE_ALL): Likewise.
      	(GOMP_TARGET_ARG_SUBSEQUENT_PARAM): Likewise.
      	(GOMP_TARGET_ARG_ID_MASK): Likewise.
      	(GOMP_TARGET_ARG_NUM_TEAMS): Likewise.
      	(GOMP_TARGET_ARG_THREAD_LIMIT): Likewise.
      	(GOMP_TARGET_ARG_VALUE_SHIFT): Likewise.
      	(GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES): Likewise.
      
      From-SVN: r232549
      Martin Jambor committed
  4. 07 Jan, 2016 1 commit
  5. 05 Jan, 2016 1 commit
  6. 27 Nov, 2015 1 commit
    • PR other/61321 - demangler crash on casts in template parameters · 921da198
      The fix for bug 59195:
      
       [C++ demangler handles conversion operator incorrectly]
       https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195
      
      unfortunately makes the demangler crash due to infinite recursion, in
      case of casts in template parameters.
      
      For example, with:
      
       template<int> struct A {};
       template <typename Y> void function_temp(A<sizeof ((Y)(999))>) {}
       template void function_temp<int>(A<sizeof (int)>);
      
      The 'function_temp<int>' instantiation above mangles to:
      
        _Z13function_tempIiEv1AIXszcvT_Li999EEE
      
      The demangler parses this as:
      
      typed name
        template
          name 'function_temp'
          template argument list
            builtin type int
        function type
          builtin type void
          argument list
            template                          (*)
              name 'A'
              template argument list
                unary operator
                  operator sizeof
                  unary operator
                    cast
                      template parameter 0    (**)
                    literal
                      builtin type int
                      name '999'
      
      And after the fix for 59195, due to:
      
       static void
       d_print_cast (struct d_print_info *dpi, int options,
      	       const struct demangle_component *dc)
       {
       ...
         /* For a cast operator, we need the template parameters from
            the enclosing template in scope for processing the type.  */
         if (dpi->current_template != NULL)
           {
             dpt.next = dpi->templates;
             dpi->templates = &dpt;
             dpt.template_decl = dpi->current_template;
           }
      
      when printing the template argument list of A (what should be "<sizeof
      (int)>"), the template parameter 0 (that is, "T_", the '**' above) now
      refers to the first parameter of the the template argument list of the
      'A' template (the '*' above), exactly what we were already trying to
      print.  This leads to infinite recursion, and stack exaustion.  The
      template parameter 0 should actually refer to the first parameter of
      the 'function_temp' template.
      
      Where it reads "for the cast operator" in the comment in d_print_cast
      (above), it's really talking about a conversion operator, like:
      
        struct A { template <typename U> explicit operator U(); };
      
      We don't want to inject the template parameters from the enclosing
      template in scope when processing a cast _expression_, only when
      handling a conversion operator.
      
      The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous,
      and means _both_ 'conversion operator' and 'cast expression'.
      
      Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type,
      which does what DEMANGLE_COMPONENT_CAST does today, and making
      DEMANGLE_COMPONENT_CAST just simply print its component subtree.
      
      I think we could instead reuse DEMANGLE_COMPONENT_CAST and in
      d_print_comp_inner still do:
      
       @@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
              d_print_comp (dpi, options, dc->u.s_extended_operator.name);
              return;
      
           case DEMANGLE_COMPONENT_CAST:
             d_append_string (dpi, "operator ");
       -     d_print_cast (dpi, options, dc);
       +     d_print_conversion (dpi, options, dc);
             return;
      
      leaving the unary cast case below calling d_print_cast, but seems to
      me that spliting the component types makes it easier to reason about
      the code.
      
      g++'s testsuite actually generates three symbols that crash the
      demangler in the same way.  I've added those as tests in the demangler
      testsuite as well.
      
      And then this fixes PR other/61233 too, which happens to be a
      demangler crash originally reported to GDB, at:
      https://sourceware.org/bugzilla/show_bug.cgi?id=16957
      
      Bootstrapped and regtested on x86_64 Fedora 20.
      
      Also ran this through GDB's testsuite.  GDB will require a small
      update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using
      DEMANGLE_COMPONENT_CAST in its sources.
      
      libiberty/
      2015-11-27  Pedro Alves  <palves@redhat.com>
      
              PR other/61321
              PR other/61233
              * demangle.h (enum demangle_component_type)
              <DEMANGLE_COMPONENT_CONVERSION>: New value.
              * cp-demangle.c (d_demangle_callback, d_make_comp): Handle
              DEMANGLE_COMPONENT_CONVERSION.
              (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
              instead of DEMANGLE_COMPONENT_CAST.
              (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
              component if handling a conversion.
              (d_count_templates_scopes, d_print_comp_inner): Handle
              DEMANGLE_COMPONENT_CONVERSION.
              (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
              of DEMANGLE_COMPONENT_CAST.
              (d_print_cast): Rename as ...
              (d_print_conversion): ... this.  Adjust comments.
              (d_print_cast): Rewrite - simply print the left subcomponent.
              * cp-demint.c (cplus_demangle_fill_component): Handle
              DEMANGLE_COMPONENT_CONVERSION.
      
              * testsuite/demangle-expected: Add tests.
      
      From-SVN: r231020
      Pedro Alves committed
  7. 25 Nov, 2015 1 commit
    • Port libvtv to Solaris · e5ef217c
      	libstdc++-v3:
      	* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
      	-Wl,-R in VTV_CXXLINKFLAGS.
      	* configure: Regenerate.
      
      	* testsuite/18_support/bad_exception/23591_thread-1.c: Use
      	-fvtable-verify=none on Solaris 12+.
      
      	libgcc:
      	* Makefile.in (VTV_CFLAGS): New variable.
      	(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
      	(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
      	* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
      	Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
      	to extra_parts if $enable_vtable_verify = yes.
      
      	libvtv:
      	* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
      	* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
      	<*-*-solaris2*>: Check for init priority support.
      	Check for getexecname, __fortify_fail, _obstack_begin.
      	(VTV_NO_OBSTACK): New conditional.
      	* configure: Regenerate.
      	* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
      	Create empty config.h
      	* Makefile.in: Regenerate.
      
      	* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
      	variable.
      	(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
      	(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.
      
      	(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
      	[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.
      
      	(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
      	(iterate_modules): Fix typo.
      	Use VTV_PAGE_SIZE.
      	(dl_iterate_phdr_callback): Fix typo.
      	Use VTV_PAGE_SIZE.
      	(__VLTChangePermission): Fix typos.
      
      	include:
      	* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
      	__sparc__]: Define.
      
      	gcc:
      	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
      	(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
      	(STARTFILE_SPEC): Use %(startfile_vtv).
      	(ENDFILE_SPEC): Use %(endfile_vtv).
      	(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
      	ENDFILE_VTV_SPEC.
      
      	* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
      
      From-SVN: r230865
      Rainer Orth committed
  8. 12 Nov, 2015 1 commit
    • c-pragma.c (oacc_pragmas): Add entry for declare directive. · 6e232ba4
      2015-11-12  James Norris  <jnorris@codesourcery.com>
      	    Joseph Myers  <joseph@codesourcery.com>
      
      	gcc/c-family/
      	* c-pragma.c (oacc_pragmas): Add entry for declare directive. 
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
      	(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
      	PRAGMA_OACC_CLAUSE_LINK.
      
      	gcc/c/
      	* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
      	(c_parser_omp_clause_name): Handle 'device_resident' clause.
      	(c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
      	and PRAGMA_OMP_CLAUSE_LINK.
      	(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
      	and PRAGMA_OACC_CLAUSE_LINK.
      	(OACC_DECLARE_CLAUSE_MASK): New definition.
      	(c_parser_oacc_declare): New function.
      
      	gcc/cp/
      	* parser.c (cp_parser_omp_clause_name): Handle 'device_resident'
      	clause.
      	(cp_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
      	and PRAGMA_OMP_CLAUSE_LINK.
      	(cp_paser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
      	and PRAGMA_OMP_CLAUSE_LINK.
      	(OACC_DECLARE_CLAUSE_MASK): New definition.
      	(cp_parser_oacc_declare): New function.
      	(cp_parser_pragma): Handle PRAGMA_OACC_DECLARE.
      	* pt.c (tsubst_expr): Handle OACC_DECLARE.
      
      	gcc/
      	* gimple-pretty-print.c (dump_gimple_omp_target): Handle
      	GF_OMP_TARGET_KIND_OACC_DECLARE. 
      	* gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
      	(is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
      	* gimplify.c (oacc_declare_returns): New.
      	(gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
      	(device_resident_p): New function.
      	(oacc_default_clause): Handle device_resident clause.
      	(gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
      	(gimplify_expr): Handle OACC_DECLARE.
      	* omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
      	* omp-low.c (expand_omp_target): Handle
      	GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
      	(build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
      	(lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
      	GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
      	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
      	* tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
      	GOMP_MAP_DEVICE_RESIDENT.
      
      	gcc/testsuite
      	* c-c++-common/goacc/declare-1.c: New test.
      	* c-c++-common/goacc/declare-2.c: Likewise.
      
      	include/
      	* gomp-constants.h (enum gomp_map_kind): Add GOMP_MAP_DEVICE_RESIDENT
      	and GOMP_MAP_LINK.
      
      	libgomp/
      	* libgomp.map (GOACC_2.0.1): Export GOACC_declare.
      	* oacc-parallel.c (GOACC_declare): New function.
      	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
      	* testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
      
      Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
      
      From-SVN: r230275
      James Norris committed
  9. 09 Nov, 2015 2 commits
    • Modify obstack.[hc] to avoid having to include other gnulib files · f0e525fe
      Using the standard gnulib obstack source requires importing quite a
      lot of other files from gnulib, and requires build changes.
      
      include/
      	* obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE.
      libiberty/
      	* obstack.c (__alignof__): Expand alignof_type from alignof.h.
      	(obstack_exit_failure): Don't use exitfail.h.
      	(_): Include libintl.h when HAVE_LIBINTL_H and nls enabled.
      	Provide default.  Don't include gettext.h.
      	(_Noreturn): Define.
      	* obstacks.texi: Adjust node references to external libc info files.
      
      From-SVN: r229988
      Alan Modra committed
    • Copy gnulib obstack files · c9f265c9
      This copies obstack.[ch] from gnulib, and updates the docs.  The next
      patch should be applied if someone repeats the import at a later date.
      
      include/
      	* obstack.h: Import current gnulib file.
      libiberty/
      	* obstack.c: Import current gnulib file.
      	* obstacks.texi: Updated doc, from glibc's manual/memory.texi.
      
      From-SVN: r229987
      Alan Modra committed
  10. 05 Nov, 2015 1 commit
    • gcc/ · e01d41e5
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* builtin-types.def
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
      	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
      	(struct cgraph_simd_clone_arg): Adjust comment.
      	* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
      	to GOMP_target_ext.  Add num_teams and thread_limit arguments.
      	(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
      	to GOMP_target_data_ext.
      	(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
      	to GOMP_target_update_ext.
      	(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
      	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
      	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
      	* tree-core.h (enum omp_clause_schedule_kind): Add
      	OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
      	OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
      	OMP_CLAUSE_SCHEDULE_LAST value.
      	* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
      	OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
      	* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
      	OMP_FOR_CHECK.  Remove comment.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
      	Simplify.  Print schedule clause modifiers.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
      	cases.
      	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
      	(omp_default_clause): Tweak for
      	private/firstprivate/is_device_ptr variables on target
      	construct and use_device_ptr on target data.
      	(omp_check_private): Likewise.
      	(omp_notice_variable): For references check whether what it refers
      	to has mappable type, rather than the reference itself.
      	(omp_is_private): Diagnose linear iteration variables on non-simd
      	constructs.
      	(omp_no_lastprivate): Return true only for Fortran.
      	(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
      	GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
      	Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
      	GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
      	based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
      	lastprivate and linear when combined with distribute.  Gimplify
      	variable low-bound for array reduction.  Look through
      	POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
      	reductions.
      	(gimplify_adjust_omp_clauses_1): For implicit references to
      	variables with reference type and when not ref to scalar or
      	ref to pointer, map what they refer to using tofrom and
      	use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
      	(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
      	from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
      	Diagnose the same var on both firstprivate and lastprivate on
      	distribute construct.
      	(gimplify_omp_for): Fix up handling of predetermined
      	lastprivate or linear iter vars when combined with distribute.
      	(find_omp_teams, computable_teams_clause, optimize_target_teams): New
      	functions.
      	(gimplify_omp_workshare): Call optimize_target_teams.
      	* omp-low.c (struct omp_region): Add sched_modifiers field.
      	(struct omp_for_data): Likewise.
      	(omp_any_child_fn_dumped): New variable.
      	(extract_omp_for_data): Fill in sched_modifiers, and mask out
      	OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
      	from sched_kind.
      	(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
      	bits of OMP_CLAUSE_SCHED_KIND.
      	(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
      	drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
      	for array section reductions.
      	(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
      	for distribute parallel for, if there are lastprivate clauses on the
      	for.
      	(lower_rec_input_clauses): Handle non-zero low-bound on array
      	section reductions.
      	(lower_reduction_clauses): Likewise.
      	(lower_send_clauses): Look through POINTER_PLUS_EXPR
      	for array section reductions.
      	(expand_parallel_call): Use nonmonotonic entrypoints for
      	nonmonotonic: dynamic/guided.
      	(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
      	child_fn if current_function_decl has assembler name set, but child_fn
      	does not.  Dump the header and IL of the child function when not in SSA
      	form.
      	(expand_omp_target): Likewise.  Pass num_teams and thread_limit
      	arguments to BUILT_IN_GOMP_TARGET.
      	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
      	Initialize the extra _looptemp_ clause to fd->loop.n2.
      	(expand_omp_for): Use nonmonotonic entrypoints for
      	nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
      	(expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
      	again if we have dumped any child functions.
      	(lower_omp_for_lastprivate): Determine the right count variable
      	for distribute simd, or distribute parallel for{, simd}.
      	(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
      	and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
      	support.
      	(simd_clone_clauses_extract): Handle variable step
      	for references and arguments passed by reference.
      	(simd_clone_mangle): Mangle ref/uval/val variable steps.
      	(simd_clone_adjust_argument_types): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
      	(simd_clone_linear_addend): New function.
      	(simd_clone_adjust): Handle variable step like similarly
      	to constant step, use simd_clone_linear_addend to determine
      	the actual step at runtime.
      gcc/c-family/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* c-common.h (c_finish_omp_atomic): Add TEST argument.
      	(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
      	* c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
      	save_expr or create_tmp_var* if TEST is true.
      	(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
      	Don't call add_stmt here.
      	(struct c_omp_check_loop_iv_data): New type.
      	(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
      	c_omp_check_loop_iv_exprs): New functions.
      	(c_omp_split_clauses): Adjust for lastprivate being allowed on
      	distribute.
      	(c_omp_declare_simd_clauses_to_numbers): Change
      	OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
      	(c_omp_declare_simd_clauses_to_decls): Similarly change those
      	from numbers to PARM_DECLs.
      gcc/c/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* c-parser.c: Include context.h and gimple-expr.h.
      	(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
      	monotonic together with nonmonotonic.
      	(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
      	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
      	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
      	c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
      	(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
      	expressions on combined target teams before the target.
      	(c_parser_omp_declare_target): If decl has "omp declare target" or
      	"omp declare target link" attribute, and cgraph or varpool node already
      	exists, then set corresponding flags.  Call c_finish_omp_clauses
      	in the parenthesized extended-list syntax case.
      	* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
      	declare target.
      	* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
      	on OMP_CLAUSE_REDUCTION array sections.
      	(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
      	into the constant offset, or for variable low-bound using
      	POINTER_PLUS_EXPR.  For structure element based array sections use
      	GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
      	(c_finish_omp_clauses): Drop generic_field_head, structure
      	elements are now always mapped even as array section bases,
      	diagnose same var in data sharing and mapping clauses.  Diagnose if
      	linear step on declare simd is neither a constant nor a uniform
      	parameter.  Look through POINTER_PLUS_EXPR for array section
      	reductions.  Diagnose the same var or function appearing multiple
      	times on the same directive.  Fix up wording for the to clause if t
      	is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
      	modifier on kinds other than dynamic or guided or nonmonotonic
      	modifier together with ordered clause.
      gcc/cp/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
      	(omp_privatize_field): Add SHARED argument.
      	* parser.c: Include context.h.
      	(cp_parser_omp_clause_schedule): Parse schedule
      	modifiers, diagnose monotonic together with nonmonotonic.
      	(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument.  Parse
      	parameter name as linear step as id-expression rather than expression.
      	(cp_parser_omp_all_clauses): Adjust caller.
      	(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
      	initialize it.  Adjust omp_privatize_field caller.
      	(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
      	to finish_omp_for.
      	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
      	(cp_parser_omp_target_data,
      	cp_parser_omp_target_enter_data,
      	cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
      	and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	(cp_parser_omp_target): Likewise.  Evaluate num_teams and
      	thread_limit expressions on combined target teams before the target.
      	(cp_parser_omp_declare_target): If decl has "omp declare target" or
      	"omp declare target link" attribute, and cgraph or varpool node already
      	exists, then set corresponding flags.  Call finish_omp_clauses
      	in the parenthesized extended-list syntax case.  Call
      	cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
      	(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
      	instead of cp_parser_skip_to_pragma_eol.
      	* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
      	declare target.
      	* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
      	use tsubst_omp_clause_decl instead of tsubst_expr on
      	OMP_CLAUSE_LINEAR_STEP.  Handle non-static data members in shared
      	clauses.
      	(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
      	(tsubst_find_omp_teams): New function.
      	(tsubst_expr): Evaluate num_teams and thread_limit expressions on
      	combined target teams before the target.  Use OMP_FOR_ORIG_DECLS for
      	all OpenMP/OpenACC/Cilk+ looping constructs.  Adjust finish_omp_for
      	caller.
      	* semantics.c (omp_privatize_field): Add SHARED argument, if true,
      	always create artificial var and never put it into the hash table
      	or vector.
      	(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
      	Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
      	(handle_omp_array_sections): For structure element
      	based array sections use GOMP_MAP_ALWAYS_POINTER instead of
      	GOMP_MAP_FIRSTPRIVATE_POINTER.  Encode low-bound into the MEM_REF,
      	either into the constant offset, or for variable low-bound using
      	POINTER_PLUS_EXPR.
      	(finish_omp_clauses): Adjust omp_privatize_field caller.  Drop
      	generic_field_head, structure elements are now always mapped even
      	as array section bases, diagnose same var in data sharing and
      	mapping clauses.  For references map what they refer to using
      	GOMP_MAP_ALWAYS_POINTER for structure elements and
      	GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise.  Diagnose if linear step
      	on declare simd is neither a constant nor a uniform parameter.
      	Allow non-static data members on shared clauses.  Look through
      	POINTER_PLUS_EXPR for array section reductions.  Diagnose nonmonotonic
      	modifier on kinds other than dynamic or guided or nonmonotonic
      	modifier together with ordered clause.  Diagnose the same var or
      	function appearing multiple times on the same directive.  Fix up
      	wording for the to clause if t is neither a FUNCTION_DECL nor a
      	VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
      	(handle_omp_for_class_iterator): Add ORIG_DECLS argument.  Call
      	c_omp_check_loop_iv_exprs on cond.
      	(finish_omp_for): Add ORIG_INITS argument.  Call
      	c_omp_check_loop_iv_exprs on ORIG_INITS elements.  Adjust
      	handle_omp_for_class_iterator caller.  Call c_omp_check_loop_iv.
      	Call add_stmt.
      	(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
      gcc/fortran/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
      gcc/testsuite/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
      	of variables in both data sharing and mapping clauses and for
      	structure element based array sections being mapped rather than
      	privatized.
      	* c-c++-common/gomp/declare-target-2.c: Add various new tests.  Adjust
      	expected diagnostics wording in one case.
      	* c-c++-common/gomp/distribute-1.c: New test.
      	* c-c++-common/gomp/element-1.c: New test.
      	* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
      	and #pragma omp end declare target pair around the function.
      	Change s from a parameter to a file scope variable.
      	* c-c++-common/gomp/pr67521.c: Add dg-error directives.
      	* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
      	on non-zero low-bound in reduction array sections.  Add further
      	tests.
      	* c-c++-common/gomp/schedule-modifiers-1.c: New test.
      	* c-c++-common/gomp/target-teams-1.c: New test.
      	* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
      	for expected mangling on x86_64/i?86.
      	* gcc.dg/gomp/declare-simd-3.c: New test.
      	* gcc.dg/gomp/declare-simd-4.c: New test.
      	* gcc.dg/gomp/for-20.c: New test.
      	* gcc.dg/gomp/for-21.c: New test.
      	* gcc.dg/gomp/for-22.c: New test.
      	* gcc.dg/gomp/for-23.c: New test.
      	* gcc.dg/gomp/for-24.c: New test.
      	* gcc.dg/gomp/linear-1.c: New test.
      	* gcc.dg/gomp/loop-1.c: New test.
      	* g++.dg/gomp/atomic-17.C: New test.
      	* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
      	non-static data member in shared clause.  Add single construct.
      	* g++.dg/gomp/declare-simd-1.C: Add dg-options.  Add
      	scan-assembler-times directives for expected mangling on x86_64/i?86.
      	* g++.dg/gomp/declare-simd-3.C: Likewise.
      	* g++.dg/gomp/declare-simd-4.C: New test.
      	* g++.dg/gomp/declare-simd-5.C: New test.
      	* g++.dg/gomp/declare-target-1.C: New test.
      	* g++.dg/gomp/linear-2.C: New test.
      	* g++.dg/gomp/loop-1.C: New test.
      	* g++.dg/gomp/loop-2.C: New test.
      	* g++.dg/gomp/loop-3.C: New test.
      	* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
      	non-static data member in shared clause.
      	* g++.dg/gomp/member-3.C: New test.
      	* g++.dg/gomp/member-4.C: New test.
      	* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
      	(bar): Remove dg-message.
      	* g++.dg/gomp/target-teams-1.C: New test.
      include/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
      	(GOMP_MAP_FLAG_ALWAYS): Remove.
      	(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
      	GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
      	GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
      	Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	(GOMP_MAP_ALWAYS_P): Define.
      	(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
      libgomp/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_next,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_next,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_parallel_loop_nonmonotonic_dynamic,
      	GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
      	(GOMP_target_41): Renamed to ...
      	(GOMP_target_ext): ... this.  Add num_teams and thread_limit
      	arguments.
      	(GOMP_target_data_41): Renamed to ...
      	(GOMP_target_data_ext): ... this.
      	(GOMP_target_update_41): Renamed to ...
      	(GOMP_target_update_ext): ... this.
      	* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
      	GOMP_target_data_ext and GOMP_target_update_ext instead of
      	GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
      	Export GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_next,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_next,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_parallel_loop_nonmonotonic_dynamic and
      	GOMP_parallel_loop_nonmonotonic_guided.
      	* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
      	GOMP_parallel_loop_nonmonotonic_guided,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
      	* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
      	* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
      	functions.
      	(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
      	GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
      	Use gomp_map_val function.
      	(gomp_target_fallback_firstprivate): New static function.
      	(GOMP_target_41): Renamed to ...
      	(GOMP_target_ext): ... this.  Add num_teams and thread_limit
      	arguments.  Move firstprivate fallback handling into a new
      	function.
      	(GOMP_target_data_41): Renamed to ...
      	(GOMP_target_data_ext): ... this.
      	(GOMP_target_update_41): Renamed to ...
      	(GOMP_target_update_ext): ... this.
      	(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
      	gomp_map_0len_lookup instead of gomp_map_lookup.
      	(omp_target_is_present): Use gomp_map_0len_lookup instead of
      	gomp_map_lookup.
      	* testsuite/libgomp.c/target-28.c: Likewise.
      	* testsuite/libgomp.c/monotonic-1.c: New test.
      	* testsuite/libgomp.c/monotonic-2.c: New test.
      	* testsuite/libgomp.c/nonmonotonic-1.c: New test.
      	* testsuite/libgomp.c/nonmonotonic-2.c: New test.
      	* testsuite/libgomp.c/pr66199-5.c: New test.
      	* testsuite/libgomp.c/pr66199-6.c: New test.
      	* testsuite/libgomp.c/pr66199-7.c: New test.
      	* testsuite/libgomp.c/pr66199-8.c: New test.
      	* testsuite/libgomp.c/pr66199-9.c: New test.
      	* testsuite/libgomp.c/reduction-11.c: New test.
      	* testsuite/libgomp.c/reduction-12.c: New test.
      	* testsuite/libgomp.c/reduction-13.c: New test.
      	* testsuite/libgomp.c/reduction-14.c: New test.
      	* testsuite/libgomp.c/reduction-15.c: New test.
      	* testsuite/libgomp.c/target-12.c (main): Adjust for
      	omp_target_is_present change for one-past-last element.
      	* testsuite/libgomp.c/target-17.c (foo): Drop tests where
      	the same var is both mapped and privatized.
      	* testsuite/libgomp.c/target-19.c (foo): Adjust for different
      	handling of zero-length array sections.
      	* testsuite/libgomp.c/target-28.c: New test.
      	* testsuite/libgomp.c/target-29.c: New test.
      	* testsuite/libgomp.c/target-30.c: New test.
      	* testsuite/libgomp.c/target-teams-1.c: New test.
      	* testsuite/libgomp.c++/member-6.C: New test.
      	* testsuite/libgomp.c++/member-7.C: New test.
      	* testsuite/libgomp.c++/monotonic-1.C: New test.
      	* testsuite/libgomp.c++/monotonic-2.C: New test.
      	* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
      	* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
      	* testsuite/libgomp.c++/pr66199-3.C: New test.
      	* testsuite/libgomp.c++/pr66199-4.C: New test.
      	* testsuite/libgomp.c++/pr66199-5.C: New test.
      	* testsuite/libgomp.c++/pr66199-6.C: New test.
      	* testsuite/libgomp.c++/pr66199-7.C: New test.
      	* testsuite/libgomp.c++/pr66199-8.C: New test.
      	* testsuite/libgomp.c++/pr66199-9.C: New test.
      	* testsuite/libgomp.c++/reduction-11.C: New test.
      	* testsuite/libgomp.c++/reduction-12.C: New test.
      	* testsuite/libgomp.c++/target-13.C: New test.
      	* testsuite/libgomp.c++/target-14.C: New test.
      	* testsuite/libgomp.c++/target-15.C: New test.
      	* testsuite/libgomp.c++/target-16.C: New test.
      	* testsuite/libgomp.c++/target-17.C: New test.
      	* testsuite/libgomp.c++/target-18.C: New test.
      	* testsuite/libgomp.c++/target-19.C: New test.
      
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      
      From-SVN: r229814
      Jakub Jelinek committed
  11. 27 Oct, 2015 1 commit
    • config.gcc: Handle --enable-fdpic. · 1e44e857
      gcc/ChangeLog
      	* config.gcc: Handle --enable-fdpic.
      	* config/sh/constraints.md (Ccl): New constraint.
      	* config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
      	* config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
      	__SH_FDPIC__.
      	* config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
      	library functions.
      	* config/sh/sh-protos.h (function_symbol_result): New struct.
      	(function_symbol): Return function_symbol_result.
      	(sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
      	declarations.
      	* config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
      	target hook.
      	(TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
      	(sh_option_override): Force -fPIC if FDPIC is in effect.
      	(sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
      	UNSPEC_GOTOFFFUNCDESC cases.
      	(prepare_move_operands): Use FDPIC initial GOT register for
      	TLS-related GOT access; inhibit cross-section address offset constants
      	for FDPIC.
      	(sh_assemble_integer): New function.
      	(sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
      	PC-relative call sites.
      	(expand_ashiftrt): Adapt invocation of function_symbol.
      	(sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
      	(nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
      	UNSPEC_GOTOFFFUNCDESC.
      	(legitimize_pic_address): Resolve function symbols to function
      	descriptors for FDPIC.  Do not use GOT-relative addressing for local
      	data that may be read-only on FDPIC.
      	(sh_emit_storesi, sh_emit_storehi): New functions.
      	(sh_trampoline_init): Generate FDPIC trampolines.
      	(sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
      	(sh_expand_sym_label2reg): Don't assume sibcalls are local.
      	(sh_output_mi_thunk): Generate FDPIC call.
      	(function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
      	FDPIC, generate call site labels to use PC-relative addressing rather
      	than GOT-relative addressing.
      	(sh_conditional_register_usage): Make PIC register fixed and call used
      	when FDPIC is in effect.
      	(sh_legitimate_constant_p): Impose FDPIC constant constraints.
      	(sh_cannot_force_const_mem_p, sh_load_function_descriptor,
      	sh_get_fdpic_reg_initial_val): New functions.
      	* config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
      	Handle -mfdpic.
      	(FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
      	PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
      	SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
      	(DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
      	FDPIC_SELF_SPECS.
      	(TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
      	(ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
      	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
      	* config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
      	constants.
      	(calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
      	sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
      	sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
      	sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
      	(udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
      	*divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
      	ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
      	call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
      	sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
      	sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
      	block_move_real, block_lump_real, block_move_real_i4,
      	block_lump_real_i4): Add support for FDPIC calls.
      	(mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
      	call_value_pop): Adjust for new function_symbol signature.
      	* config/sh/sh.opt (-mfdpic): New option.
      	* doc/install.texi (Options specification): Document --enable-fdpic.
      	* doc/invoke.texi (SH Options): Document -mfdpic.
      
      include/ChangeLog:
      	* longlong.h (udiv_qrnnd): Add FDPIC compatible version for SH.
      
      libitm/ChangeLog:
      	* config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling
      	GTM_begin_transaction for compatibility with FDPIC.
      
      Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
      Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
      Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com>
      Co-Authored-By: Rich Felker <dalias@libc.org>
      
      From-SVN: r229438
      Daniel Jacobowitz committed
  12. 18 Oct, 2015 1 commit
    • Fix PR63758 by using the _NSGetEnviron() API on Darwin · efd40fc4
      include/
      
      	Roland McGrath  <roland@gnu.org>
      
      	PR other/63758
      	* environ.h: New file.
      
      libiberty/
      
      	Roland McGrath  <roland@gnu.org>
      	Iain Sandoe  <iain@codesourcery.com>
      
      	PR other/63758
      	* pex-unix.c: Obtain the environment interface from settings in environ.h
      	rather than in-line code.  Update copyright date.
      	* setenv.c: Likewise.
      	* xmalloc.c: Likewise.
      
      
      
      Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
      
      From-SVN: r228942
      Roland McGrath committed
  13. 13 Oct, 2015 1 commit
    • builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, [...]): New. · d9a6bd32
      gcc/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
      	BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
      	BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
      	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
      	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
      	(struct cgraph_simd_clone_arg): Adjust comment.
      	* coretypes.h (struct gomp_ordered): New forward decl.
      	* gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
      	set critical clauses to it.
      	(gimple_build_omp_ordered): Return gomp_ordered * instead of
      	gimple *.  Add CLAUSES argument, set ordered clauses to it.
      	(gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
      	GIMPLE_OMP_ORDERED.
      	* gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
      	GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
      	* gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
      	to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
      	GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
      	GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
      	Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
      	GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
      	renumber
      	GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
      	(gomp_critical): Add clauses field.
      	(gomp_ordered): New struct.
      	(is_a_helper <gomp_ordered *>::test): New inline.
      	(gimple_build_omp_critical): Add CLAUSES argument.
      	(gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
      	instead of gimple *.
      	(gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
      	gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
      	gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
      	gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
      	inline functions.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
      	(dump_gimple_omp_target): Handle enter data and exit data.
      	(dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
      	(dump_gimple_omp_critical): Print clauses.
      	(dump_gimple_omp_ordered): New function.
      	(dump_gimple_omp_task): Handle taskloop.
      	(pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
      	GIMPLE_OMP_ORDERED.
      	* gimple-walk.c (walk_gimple_op): Walk clauses on
      	GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
      	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
      	(enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
      	(struct gimplify_omp_ctx): Add loop_iter_var,
      	target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
      	and target_firstprivatize_array_bases fields.
      	(delete_omp_context): Release loop_iter_var.
      	(gimplify_bind_expr): Handle ORT_NONE.
      	(maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
      	ORT_COMBINED_TARGET.
      	(is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
      	OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
      	(omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
      	ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
      	ctx->target_map_scalars_firstprivate.
      	(omp_add_variable): Handle ORT_NONE.  Allow map clause together with
      	data sharing clauses.  For data sharing clause with VLA decl
      	on omp target/target data don't add firstprivate for the pointer.
      	Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
      	(omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
      	the addition of ORT_COMBINED_TARGET.
      	(omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
      	for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
      	pointers as zero length array sections and
      	ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
      	data sharing.
      	(omp_check_private): Handle omp_member_access_dummy_var vars.
      	(find_decl_expr): New function.
      	(gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
      	complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
      	Handle OMP_CLAUSE_GANG separately.  Handle
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
      	clauses.  Diagnose linear clause on combined
      	distribute {, parallel for} simd construct, unless it is the loop
      	iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
      	Handle map clauses with COMPONENT_REF.  Initialize
      	ctx->target_map_scalars_firstprivate,
      	ctx->target_firstprivatize_array_bases and
      	ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
      	linear clause even to target region if combined.  Remove
      	map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
      	OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
      	map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
      	Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
      	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
      	For linear clause on worksharing loop combined with parallel add
      	shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
      	with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
      	omp_member_access_dummy_var vars.  Add lastprivate clause to outer
      	taskloop if needed.
      	(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
      	If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
      	GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
      	GOMP_MAP_POINTER.
      	(gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
      	of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
      	in target body.  Handle removal of struct mapping if struct is not
      	seen in target body.  Remove GOMP_MAP_STRUCT map clause on
      	OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
      	addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
      	instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
      	for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
      	clause appear together.  Handle
      	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
      	clause if it has map-type-modifier always.  Handle
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
      	clauses.
      	(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
      	Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
      	callers.
      	(gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
      	loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
      	iterators in doacross loops.
      	(gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
      	gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
      	for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
      	for the addition of ORT_COMBINED_TARGET.
      	(gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
      	gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
      	and OMP_TARGET_EXIT_DATA.
      	(gimplify_omp_ordered): New function.
      	(gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
      	OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
      	Gimplify clauses on OMP_CRITICAL.
      	* internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
      	expand_GOMP_SIMD_ORDERED_END): New functions.
      	* internal-fn.def (GOMP_SIMD_ORDERED_START,
      	GOMP_SIMD_ORDERED_END): New internal functions.
      	* omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
      	BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
      	BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
      	BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
      	BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
      	(BUILT_IN_GOMP_TASK): Add INT argument to the end.
      	(BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
      	adjust type.
      	(BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
      	GOMP_target_data_41, adjust type.
      	(BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
      	GOMP_target_update_41, adjust type.
      	* omp-low.c (struct omp_region): Adjust comments, add ord_stmt
      	field.
      	(struct omp_for_data): Add ordered and simd_schedule fields.
      	(omp_member_access_dummy_var, unshare_and_remap_1,
      	unshare_and_remap, is_taskloop_ctx): New functions.
      	(is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
      	(extract_omp_for_data): Handle taskloops and doacross loops
      	and simd schedule modifier.
      	(omp_adjust_chunk_size): New function.
      	(get_ws_args_for): Use it.
      	(lookup_sfield): Change first argument to splay_tree_key,
      	add overload with first argument tree.
      	(maybe_lookup_field): Likewise.
      	(use_pointer_for_field): Handle omp_member_access_dummy_var.
      	(omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
      	task_shared_vars, clear TREE_ADDRESSABLE on the copy.
      	(build_outer_var_ref): Add LASTPRIVATE argument, handle
      	taskloops and omp_member_access_dummy_var vars.
      	(build_sender_ref): Change first argument to splay_tree_key,
      	add overload with first argument tree.
      	(install_var_field): For mask & 8 use &DECL_UID as key instead
      	of the tree itself.
      	(fixup_child_record_type): Const qualify *.omp_data_i.
      	(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
      	C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
      	OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
      	on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
      	(create_omp_child_function): Set TREE_READONLY on .omp_data_i.
      	(find_combined_for): Allow searching for different GIMPLE_OMP_FOR
      	kinds.
      	(add_taskreg_looptemp_clauses): New function.
      	(scan_omp_parallel): Use it.
      	(scan_omp_task): Likewise.
      	(finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
      	For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
      	(check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
      	and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
      	sandwiched taskloop constructs.  Type check
      	OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
      	region.  Diagnose depend(source) or depend(sink:...) on
      	target constructs or task/taskloop.
      	(handle_simd_reference): Use get_name.
      	(lower_rec_input_clauses): Likewise.  Ignore all
      	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
      	Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
      	before passing it to omp_clause_{default,copy}_ctor.  Handle
      	OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
      	lastprivate_firstprivate flag for linear that needs copyin and
      	copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
      	(lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
      	on taskloop lookup decl in outer context.  Pass true to
      	build_outer_var_ref lastprivate argument.  Handle
      	OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
      	outside of outer taskloop for.
      	(lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
      	OMP_CLAUSE_DECL.
      	(lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
      	GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
      	omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
      	with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
      	(lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
      	abstract origin.  Handle omp_member_access_dummy_var vars.
      	(expand_parallel_call): Use expand_omp_build_assign.
      	(expand_task_call): Handle taskloop construct expansion.  Add
      	REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
      	integers.  Add priority argument to GOMP_task* calls.  Or in
      	GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
      	GOMP_task call.
      	(expand_omp_build_assign): Add prototype.  Add AFTER
      	argument, if true emit statements after *GSI_P and continue linking.
      	(expand_omp_taskreg): Adjust expand_task_call caller.
      	(expand_omp_for_init_counts): Rename zero_iter_bb argument to
      	zero_iter1_bb and first_zero_iter to first_zero_iter1, add
      	zero_iter2_bb and first_zero_iter2 arguments, handle computation
      	of counts even for ordered loops.
      	(expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
      	(expand_omp_ordered_source, expand_omp_ordered_sink,
      	expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
      	functions.
      	(expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
      	clauses on worksharing loop.  Handle DOACROSS loop expansion.
      	(expand_omp_for_static_nochunk): Handle linear clauses on
      	worksharing loop.  Adjust expand_omp_for_init_counts
      	callers.
      	(expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
      	(expand_omp_simd): Handle addressable fd->loop.v.  Adjust
      	expand_omp_for_init_counts callers.
      	(expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
      	functions.
      	(expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
      	Handle doacross loops.
      	(expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
      	GOMP_target_{41,update_41,enter_exit_data} libcalls.
      	(expand_omp): Don't expand ordered depend constructs here, record
      	ord_stmt instead for later expand_omp_for_generic.
      	(build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
      	clause as stand-alone directive.
      	(lower_omp_ordered_clauses): New function.
      	(lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
      	don't lower anything.
      	(lower_omp_for_lastprivate): Use last _looptemp_ clause
      	on taskloop for comparison.
      	(lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
      	and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
      	expansion for linear adjustments.
      	(create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
      	(lower_depend_clauses): Assert not seeing sink/source depend kinds.
      	Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
      	to tree * pointing to the stmt's clauses.
      	(lower_omp_taskreg): Adjust lower_depend_clauses caller.
      	(lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
      	and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
      	GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
      	map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
      	clauses.  Always use short kind and 8-bit align shift.
      	(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
      	(struct lower_omp_regimplify_operands_data): New type.
      	(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
      	New functions.
      	(lower_omp_1): Use lower_omp_regimplify_operands instead of
      	gimple_regimplify_operands.
      	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
      	clause as stand-alone directive.
      	(simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
      	(simd_clone_mangle): Mangle the various linear kinds
      	per the new ABI.
      	(simd_clone_adjust_argument_types): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
      	(simd_clone_init_simd_arrays): Don't do anything for uval.
      	(simd_clone_adjust): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
      	Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
      	* omp-low.h (omp_member_access_dummy_var): New prototype.
      	* passes.def (pass_simduid_cleanup): Schedule another copy of the
      	pass after all optimizations.
      	* tree.c (omp_clause_code_name): Add entries for
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
      	(omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
      	arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
      	(walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
      	OMP_CLAUSE_REDUCTION 5 arguments.  Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
      	clauses.
      	* tree-core.h (enum omp_clause_linear_kind): New.
      	(struct tree_omp_clause): Change type of map_kind
      	from unsigned char to unsigned int.  Add subcode.if_modifier
      	and subcode.linear_kind fields.
      	(enum omp_clause_code): Add
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
      	(OMP_CLAUSE_REDUCTION): Document
      	OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
      	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
      	* tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
      	(OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
      	operand.
      	(OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
      	operand.
      	(OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
      	codes.
      	* tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
      	(OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
      	char.
      	(OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
      	(OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
      	(OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
      	(OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
      	OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
      	OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
      	OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
      	OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
      	OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
      	OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
      	OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
      	OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
      	* tree-inline.c (remap_gimple_stmt): Handle clauses on
      	GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
      	IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
      	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
      	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
      	clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
      	(convert_local_omp_clauses): Likewise.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
      	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
      	clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
      	OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
      	OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
      	GOMP_MAP_FORCE_DEALLOC.  Handle
      	GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
      	(dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
      	and clauses on OMP_ORDERED and OMP_CRITICAL.
      	* tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
      	Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
      	(vectorize_loops): Adjust comments.
      	(pass_simduid_cleanup::execute): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
      	* wide-int.h (wi::gcd): New.
      gcc/c-family/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
      	DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
      	(c_define_builtins): Likewise.
      	* c-common.h (enum c_omp_clause_split): Add
      	C_OMP_CLAUSE_SPLIT_TASKLOOP.
      	(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
      	(c_finish_omp_for): Add ORIG_DECLV argument.
      	* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
      	201511 instead of 201307.
      	* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
      	OMP_CRITICAL_CLAUSES to it.
      	(c_finish_omp_ordered): Add CLAUSES argument, set
      	OMP_ORDERED_CLAUSES to it.
      	(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
      	to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
      	(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
      	constructs and new OpenMP 4.5 clauses.  Clear
      	OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
      	verification code.
      	* c-pragma.c (omp_pragmas_simd): Add taskloop.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
      	(enum pragma_omp_clause): Add
      	PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
      	and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
      gcc/c/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
      	(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
      	(c_parser_omp_variable_list): Handle structure elements for
      	map, to and from clauses.  Handle array sections in reduction
      	clause.  Formatting fixes.
      	(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
      	if clause modifiers.
      	(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
      	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
      	c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
      	c_parser_omp_clause_is_device_ptr): New functions.
      	(c_parser_omp_clause_ordered): Parse optional parameter.
      	(c_parser_omp_clause_reduction): Handle array reductions.
      	(c_parser_omp_clause_schedule): Parse optional simd modifier.
      	(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
      	functions.
      	(c_parser_omp_clause_linear): Parse linear clause modifiers.
      	(c_parser_omp_clause_depend_sink): New function.
      	(c_parser_omp_clause_depend): Parse source/sink depend kinds.
      	(c_parser_omp_clause_map): Parse release/delete map kinds and
      	optional always modifier.
      	(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
      	and c_finish_omp_clauses callers.
      	(c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
      	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
      	(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
      	(OMP_CRITICAL_CLAUSE_MASK): Define.
      	(c_parser_omp_critical): Parse critical clauses.
      	(c_parser_omp_for_loop): Handle doacross loops, adjust
      	c_finish_omp_for and c_finish_omp_clauses callers.
      	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
      	(c_parser_omp_simd): Allow ordered clause if it has no parameter.
      	(OMP_FOR_CLAUSE_MASK): Add linear clause.
      	(c_parser_omp_for): Disallow ordered clause when combined with
      	distribute.  Disallow linear clause when combined with distribute
      	and not combined with simd.
      	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
      	(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
      	parse clauses and if depend clause is found, don't parse a body.
      	(c_parser_omp_parallel): Disallow copyin clause on target parallel.
      	Allow target parallel without for after it.
      	(OMP_TASK_CLAUSE_MASK): Add priority clause.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
      	(c_parser_omp_target_data): Diagnose no map clauses or clauses with
      	invalid kinds.
      	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
      	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
      	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
      	(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
      	functions.
      	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
      	defaultmap and is_device_ptr clauses.
      	(c_parser_omp_target): Parse target parallel and target simd.  Set
      	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
      	and target exit data.  Diagnose invalid map kinds.
      	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
      	(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
      	construct.
      	(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
      	&omp_priv.
      	(OMP_TASKLOOP_CLAUSE_MASK): Define.
      	(c_parser_omp_taskloop): New function.
      	(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
      	handle PRAGMA_OMP_TASKLOOP.
      	(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
      	* c-tree.h (c_finish_omp_clauses): Add two new arguments.
      	* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
      	Add IS_OMP argument, handle structure element bases, diagnose
      	bitfields, pass IS_OMP recursively, diagnose known zero length
      	array sections in depend clauses, handle array sections in reduction
      	clause, diagnose negative length even for pointers.
      	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
      	types, pass IS_OMP down to handle_omp_array_sections_1, handle
      	array sections in reduction clause, set
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
      	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
      	(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
      	Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
      gcc/cp/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
      	* cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
      	(cp_genericize_r): Likewise.
      	(cxx_omp_finish_clause): Don't diagnose references.
      	(cxx_omp_disregard_value_expr): New function.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
      	* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
      	(DECL_OMP_PRIVATIZED_MEMBER): Define.
      	(finish_omp_declare_simd_methods, push_omp_privatization_clauses,
      	pop_omp_privatization_clauses, save_omp_privatization_clauses,
      	restore_omp_privatization_clauses, omp_privatize_field,
      	cxx_omp_disregard_value_expr): New prototypes.
      	(finish_omp_clauses): Add two new arguments.
      	(finish_omp_for): Add ORIG_DECLV argument.
      	* parser.c (cp_parser_lambda_body): Call
      	save_omp_privatization_clauses and restore_omp_privatization_clauses.
      	(cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
      	(cp_parser_omp_var_list_no_open): Handle structure elements for
      	map, to and from clauses.  Handle array sections in reduction
      	clause.  Parse this keyword.  Formatting fixes.
      	(cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
      	if clause modifiers.
      	(cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
      	cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
      	cp_parser_omp_clause_defaultmap): New functions.
      	(cp_parser_omp_clause_ordered): Parse optional parameter.
      	(cp_parser_omp_clause_reduction): Handle array reductions.
      	(cp_parser_omp_clause_schedule): Parse optional simd modifier.
      	(cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
      	New functions.
      	(cp_parser_omp_clause_linear): Parse linear clause modifiers.
      	(cp_parser_omp_clause_depend_sink): New function.
      	(cp_parser_omp_clause_depend): Parse source/sink depend kinds.
      	(cp_parser_omp_clause_map): Parse release/delete map kinds and
      	optional always modifier.
      	(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
      	and finish_omp_clauses callers.
      	(cp_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
      	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
      	(OMP_CRITICAL_CLAUSE_MASK): Define.
      	(cp_parser_omp_critical): Parse critical clauses.
      	(cp_parser_omp_for_incr): Use cp_tree_equal if
      	processing_template_decl.
      	(cp_parser_omp_for_loop_init): Return tree instead of bool.  Handle
      	non-static data member iterators.
      	(cp_parser_omp_for_loop): Handle doacross loops, adjust
      	finish_omp_for and finish_omp_clauses callers.
      	(cp_omp_split_clauses): Adjust finish_omp_clauses caller.
      	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
      	(cp_parser_omp_simd): Allow ordered clause if it has no parameter.
      	(OMP_FOR_CLAUSE_MASK): Add linear clause.
      	(cp_parser_omp_for): Disallow ordered clause when combined with
      	distribute.  Disallow linear clause when combined with distribute
      	and not combined with simd.
      	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
      	(cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
      	of tree, parse clauses and if depend clause is found, don't parse
      	a body.
      	(cp_parser_omp_parallel): Disallow copyin clause on target parallel.
      	Allow target parallel without for after it.
      	(OMP_TASK_CLAUSE_MASK): Add priority clause.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
      	(cp_parser_omp_target_data): Diagnose no map clauses or clauses with
      	invalid kinds.
      	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
      	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
      	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
      	(cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
      	functions.
      	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
      	defaultmap and is_device_ptr clauses.
      	(cp_parser_omp_target): Parse target parallel and target simd.  Set
      	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
      	and target exit data.  Diagnose invalid map kinds.
      	(cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
      	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
      	(cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
      	construct.
      	(OMP_TASKLOOP_CLAUSE_MASK): Define.
      	(cp_parser_omp_taskloop): New function.
      	(cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
      	handle PRAGMA_OMP_TASKLOOP.
      	(cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
      	handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
      	and pop_omp_privatization_clauses around parsing calls.
      	(cp_parser_cilk_for): Adjust finish_omp_clauses caller.
      	* pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
      	and finish_omp_clauses callers.
      	(tsubst_omp_clause_decl): Return NULL if decl is NULL.
      	For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
      	Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
      	effects.
      	(tsubst_omp_clauses): Add ALLOW_FIELDS argument.  Handle new
      	OpenMP 4.5 clauses.  Use tsubst_omp_clause_decl for more clauses.
      	If ALLOW_FIELDS, handle non-static data members in the clauses.
      	Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
      	(omp_parallel_combined_clauses): New variable.
      	(tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
      	OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
      	Improve handling of clauses on combined constructs.
      	(tsubst_expr): Call push_omp_privatization_clauses and
      	pop_omp_privatization_clauses around instantiation of certain
      	OpenMP constructs, improve handling of clauses on combined
      	constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
      	tsubst_omp_clauses and finish_omp_for callers, handle clauses on
      	critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
      	(instantiate_decl): Call save_omp_privatization_clauses and
      	restore_omp_privatization_clauses around instantiation.
      	(dependent_omp_for_p): Fix up comment typo.  Handle SCOPE_REF.
      	* semantics.c (omp_private_member_map, omp_private_member_vec,
      	omp_private_member_ignore_next): New variables.
      	(finish_non_static_data_member): Return dummy decl for privatized
      	non-static data members.
      	(omp_clause_decl_field, omp_clause_printable_decl,
      	omp_note_field_privatization, omp_privatize_field): New functions.
      	(handle_omp_array_sections_1): Fix comment typo.
      	Add IS_OMP argument, handle structure element bases, diagnose
      	bitfields, pass IS_OMP recursively, diagnose known zero length
      	array sections in depend clauses, handle array sections in reduction
      	clause, diagnose negative length even for pointers.
      	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
      	types, pass IS_OMP down to handle_omp_array_sections_1, handle
      	array sections in reduction clause, set
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
      	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
      	(finish_omp_reduction_clause): Handle array sections and arrays.
      	Use omp_clause_printable_decl.
      	(finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
      	New functions.
      	(finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
      	Handle new OpenMP 4.5 clauses and new restrictions for the old
      	ones, handle non-static data members, reject this keyword when not
      	allowed.
      	(push_omp_privatization_clauses, pop_omp_privatization_clauses,
      	save_omp_privatization_clauses, restore_omp_privatization_clauses):
      	New functions.
      	(handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
      	Add collapse and ordered arguments.  Fix handling of lastprivate
      	iterators in doacross loops.
      	(finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
      	adjust c_finish_omp_for, handle_omp_for_class_iterator and
      	finish_omp_clauses callers.  Fill in OMP_CLAUSE_LINEAR_STEP on simd
      	loops with non-static data member iterators.
      gcc/fortran/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
      	* trans-openmp.c (gfc_trans_omp_clauses): Set
      	OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
      	to NULL.
      	(gfc_trans_omp_critical): Adjust for addition of clauses.
      	(gfc_trans_omp_ordered): Likewise.
      	* types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
      	BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
      	BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
      	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
      gcc/lto/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/jit/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      	* jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/ada/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/testsuite/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-c++-common/gomp/cancel-1.c (f2): Add map clause to target data.
      	* c-c++-common/gomp/clauses-1.c: New test.
      	* c-c++-common/gomp/clauses-2.c: New test.
      	* c-c++-common/gomp/clauses-3.c: New test.
      	* c-c++-common/gomp/clauses-4.c: New test.
      	* c-c++-common/gomp/declare-target-1.c: New test.
      	* c-c++-common/gomp/declare-target-2.c: New test.
      	* c-c++-common/gomp/depend-3.c: New test.
      	* c-c++-common/gomp/depend-4.c: New test.
      	* c-c++-common/gomp/doacross-1.c: New test.
      	* c-c++-common/gomp/if-1.c: New test.
      	* c-c++-common/gomp/if-2.c: New test.
      	* c-c++-common/gomp/linear-1.c: New test.
      	* c-c++-common/gomp/map-2.c: New test.
      	* c-c++-common/gomp/map-3.c: New test.
      	* c-c++-common/gomp/nesting-1.c (f_omp_parallel,
      	f_omp_target_data): Add map clause to target data.
      	* c-c++-common/gomp/nesting-warn-1.c (f_omp_target): Likewise.
      	* c-c++-common/gomp/ordered-1.c: New test.
      	* c-c++-common/gomp/ordered-2.c: New test.
      	* c-c++-common/gomp/ordered-3.c: New test.
      	* c-c++-common/gomp/pr61486-1.c (foo): Remove linear clause
      	on non-iterator.
      	* c-c++-common/gomp/pr61486-2.c (test, test2): Remove ordered
      	clause and ordered construct where no longer allowed.
      	* c-c++-common/gomp/priority-1.c: New test.
      	* c-c++-common/gomp/reduction-1.c: New test.
      	* c-c++-common/gomp/schedule-simd-1.c: New test.
      	* c-c++-common/gomp/sink-1.c: New test.
      	* c-c++-common/gomp/sink-2.c: New test.
      	* c-c++-common/gomp/sink-3.c: New test.
      	* c-c++-common/gomp/sink-4.c: New test.
      	* c-c++-common/gomp/udr-1.c: New test.
      	* c-c++-common/taskloop-1.c: New test.
      	* c-c++-common/cpp/openmp-define-3.c: Adjust for the new
      	value of _OPENMP macro.
      	* c-c++-common/cilk-plus/PS/body.c (foo): Adjust expected diagnostics.
      	* c-c++-common/goacc-gomp/nesting-fail-1.c (f_acc_parallel,
      	f_acc_kernels, f_acc_data, f_acc_loop): Add map clause to target data.
      	* gcc.dg/gomp/clause-1.c:
      	* gcc.dg/gomp/reduction-1.c: New test.
      	* gcc.dg/gomp/sink-fold-1.c: New test.
      	* gcc.dg/gomp/sink-fold-2.c: New test.
      	* gcc.dg/gomp/sink-fold-3.c: New test.
      	* gcc.dg/vect/vect-simd-clone-15.c: New test.
      	* g++.dg/gomp/clause-1.C (T::test): Remove dg-error on privatization
      	of non-static data members.
      	* g++.dg/gomp/clause-3.C (foo): Remove one dg-error directive.
      	Add some linear clause tests.
      	* g++.dg/gomp/declare-simd-3.C: New test.
      	* g++.dg/gomp/linear-1.C: New test.
      	* g++.dg/gomp/member-1.C: New test.
      	* g++.dg/gomp/member-2.C: New test.
      	* g++.dg/gomp/pr66571-2.C: New test.
      	* g++.dg/gomp/pr67504.C (foo): Add test for ordered clause with
      	dependent argument.
      	* g++.dg/gomp/pr67522.C (foo): Add test for invalid array section
      	in reduction clause.
      	* g++.dg/gomp/reference-1.C: New test.
      	* g++.dg/gomp/sink-1.C: New test.
      	* g++.dg/gomp/sink-2.C: New test.
      	* g++.dg/gomp/sink-3.C: New test.
      	* g++.dg/gomp/task-1.C: Remove both dg-error directives.
      	* g++.dg/gomp/this-1.C: New test.
      	* g++.dg/gomp/this-2.C: New test.
      	* g++.dg/vect/simd-clone-2.cc: New test.
      	* g++.dg/vect/simd-clone-2.h: New test.
      	* g++.dg/vect/simd-clone-3.cc: New test.
      	* g++.dg/vect/simd-clone-4.cc: New test.
      	* g++.dg/vect/simd-clone-4.h: New test.
      	* g++.dg/vect/simd-clone-5.cc: New test.
      include/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* gomp-constants.h (GOMP_MAP_FLAG_ALWAYS): Define.
      	(enum gomp_map_kind): Add GOMP_MAP_FIRSTPRIVATE,
      	GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_USE_DEVICE_PTR,
      	GOMP_MAP_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_ALWAYS_TO,
      	GOMP_MAP_ALWAYS_FROM, GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT,
      	GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_DELETE,
      	GOMP_MAP_RELEASE, GOMP_MAP_FIRSTPRIVATE_POINTER.
      	(GOMP_MAP_ALWAYS_TO_P, GOMP_MAP_ALWAYS_FROM_P): Define.
      	(GOMP_TASK_FLAG_UNTIED, GOMP_TASK_FLAG_FINAL, GOMP_TASK_FLAG_MERGEABLE,
      	GOMP_TASK_FLAG_DEPEND, GOMP_TASK_FLAG_PRIORITY, GOMP_TASK_FLAG_UP,
      	GOMP_TASK_FLAG_GRAINSIZE, GOMP_TASK_FLAG_IF, GOMP_TASK_FLAG_NOGROUP,
      	GOMP_TARGET_FLAG_NOWAIT, GOMP_TARGET_FLAG_EXIT_DATA,
      	GOMP_TARGET_FLAG_UPDATE): Define.
      libgomp/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* config/linux/affinity.c (omp_get_place_num_procs,
      	omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
      	* config/linux/doacross.h: New file.
      	* config/posix/affinity.c (omp_get_place_num_procs,
      	omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
      	* config/posix/doacross.h: New file.
      	* env.c: Include gomp-constants.h.
      	(struct gomp_task_icv): Rename run_sched_modifier to
      	run_sched_chunk_size.
      	(gomp_max_task_priority_var): New variable.
      	(parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
      	(handle_omp_display_env): Change _OPENMP value from 201307 to
      	201511.  Print OMP_MAX_TASK_PRIORITY.
      	(initialize_env): Parse OMP_MAX_TASK_PRIORITY.
      	(omp_set_schedule, omp_get_schedule): Rename modifier argument to
      	chunk_size and run_sched_modifier to run_sched_chunk_size.
      	(omp_get_max_task_priority, omp_get_initial_device,
      	omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums): New functions.
      	* fortran.c (omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
      	to chunk_size.
      	(omp_get_num_places_, omp_get_place_num_procs_,
      	omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
      	omp_get_place_proc_ids_8_, omp_get_place_num_,
      	omp_get_partition_num_places_, omp_get_partition_place_nums_,
      	omp_get_partition_place_nums_8_, omp_get_initial_device_,
      	omp_get_max_task_priority_): New functions.
      	* libgomp_g.h (GOMP_loop_doacross_static_start,
      	GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
      	GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
      	GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
      	GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
      	GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
      	GOMP_target_data_41, GOMP_target_update_41,
      	GOMP_target_enter_exit_data): New prototypes.
      	(GOMP_task): Add prototype argument.
      	* libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
      	(struct gomp_doacross_work_share): New type.
      	(struct gomp_work_share): Add doacross field.
      	(struct gomp_task_icv): Rename run_sched_modifier to
      	run_sched_chunk_size.
      	(enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
      	GOMP_TASK_UNDEFERRED.  Add comments.
      	(struct gomp_task_depend_entry): Add comments.
      	(struct gomp_task): Likewise.
      	(struct gomp_taskgroup): Likewise.
      	(struct gomp_target_task): New type.
      	(struct gomp_team): Add comment.
      	(gomp_get_place_proc_ids_8, gomp_doacross_init,
      	gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
      	gomp_create_target_task, gomp_target_task_fn): New prototypes.
      	(struct target_var_desc): New type.
      	(struct target_mem_desc): Adjust comment.  Use struct
      	target_var_desc instead of splay_tree_key for list.
      	(REFCOUNT_INFINITY): Define.
      	(struct splay_tree_key_s): Remove copy_from field.
      	(struct gomp_device_descr): Add dev2dev_func field.
      	(enum gomp_map_vars_kind): New enum.
      	(gomp_map_vars): Add one argument.
      	* libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
      	omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
      	omp_get_place_num_procs, omp_get_place_num_procs_,
      	omp_get_place_num_procs_8_, omp_get_place_proc_ids,
      	omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
      	omp_get_place_num_, omp_get_partition_num_places,
      	omp_get_partition_num_places_, omp_get_partition_place_nums,
      	omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
      	omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
      	omp_target_free, omp_target_is_present, omp_target_memcpy,
      	omp_target_memcpy_rect, omp_target_associate_ptr and
      	omp_target_disassociate_ptr.
      	(GOMP_4.0.2): Renamed to ...
      	(GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
      	GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
      	GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
      	GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
      	GOMP_loop_doacross_static_start, GOMP_doacross_post,
      	GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start,
      	GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
      	GOMP_doacross_ull_wait.
      	* libgomp.texi: Document omp_get_max_task_priority.
      	Rename modifier argument to chunk_size for omp_set_schedule and
      	omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
      	* loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
      	to run_sched_chunk_size renaming.
      	(GOMP_loop_ordered_runtime_start): Likewise.
      	(gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
      	gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
      	GOMP_parallel_loop_runtime_start): New functions.
      	(GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
      	to run_sched_chunk_size renaming.
      	(GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
      	GOMP_loop_doacross_guided_start): New functions or aliases.
      	* loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
      	run_sched_modifier to run_sched_chunk_size renaming.
      	(GOMP_loop_ull_ordered_runtime_start): Likewise.
      	(gomp_loop_ull_doacross_static_start,
      	gomp_loop_ull_doacross_dynamic_start,
      	gomp_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start): New functions.
      	(GOMP_loop_ull_doacross_static_start,
      	GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start): New functions or aliases.
      	* oacc-mem.c (acc_map_data, present_create_copy,
      	gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
      	to gomp_map_vars.
      	(gomp_acc_remove_pointer): Use copy_from from target_var_desc.
      	* oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
      	instead of false to gomp_map_vars.
      	(GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
      	* omp.h.in (omp_lock_hint_t): New type.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority, omp_target_alloc, omp_target_free,
      	omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
      	omp_target_associate_ptr, omp_target_disassociate_ptr): New
      	prototypes.
      	* omp_lib.f90.in (omp_lock_hint_kind): New parameter.
      	(omp_lock_hint_none, omp_lock_hint_uncontended,
      	omp_lock_hint_contended, omp_lock_hint_nonspeculative,
      	omp_lock_hint_speculative): New parameters.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority): New interfaces.
      	(omp_set_schedule, omp_get_schedule): Rename modifier argument
      	to chunk_size.
      	* omp_lib.h.in (omp_lock_hint_kind): New parameter.
      	(omp_lock_hint_none, omp_lock_hint_uncontended,
      	omp_lock_hint_contended, omp_lock_hint_nonspeculative,
      	omp_lock_hint_speculative): New parameters.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority): New functions and subroutines.
      	* ordered.c: Include stdarg.h and string.h.
      	(MAX_COLLAPSED_BITS): Define.
      	(gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
      	gomp_doacross_ull_init, GOMP_doacross_ull_post,
      	GOMP_doacross_ull_wait): New functions.
      	* target.c: Include errno.h.
      	(resolve_device): If device is not initialized, call
      	gomp_init_device on it.
      	(gomp_map_lookup): New function.
      	(gomp_map_vars_existing): Add tgt_var argument, fill it in.
      	Don't bump refcount if REFCOUNT_INFINITY.  Handle
      	GOMP_MAP_ALWAYS_TO_P.
      	(get_kind): Rename is_openacc argument to short_mapkind.
      	(gomp_map_pointer): Use gomp_map_lookup.
      	(gomp_map_fields_existing): New function.
      	(gomp_map_vars): Rename is_openacc argument to short_mapkind
      	and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
      	handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
      	GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
      	Adjust for tgt->list changed type and copy_from living in there.
      	(gomp_copy_from_async): Adjust for tgt->list changed type and
      	copy_from living in there.
      	(gomp_unmap_vars): Likewise.
      	(gomp_update): Likewise.  Rename is_openacc argument to
      	short_mapkind.  Don't fail if object is not mapped.
      	(gomp_load_image_to_device): Initialize refcount to
      	REFCOUNT_INFINITY.
      	(gomp_target_fallback): New function.
      	(gomp_get_target_fn_addr): Likewise.
      	(GOMP_target): Adjust gomp_map_vars caller, use
      	gomp_get_target_fn_addr and gomp_target_fallback.
      	(GOMP_target_41): New function.
      	(gomp_target_data_fallback): New function.
      	(GOMP_target_data): Use it, adjust gomp_map_vars caller.
      	(GOMP_target_data_41): New function.
      	(GOMP_target_update): Adjust gomp_update caller.
      	(GOMP_target_update_41): New function.
      	(gomp_exit_data, GOMP_target_enter_exit_data,
      	gomp_target_task_fn, omp_target_alloc, omp_target_free,
      	omp_target_is_present, omp_target_memcpy,
      	omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
      	omp_target_associate_ptr, omp_target_disassociate_ptr,
      	gomp_load_plugin_for_device): New functions.
      	* task.c: Include gomp-constants.h.  Include taskloop.c
      	twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
      	(gomp_task_handle_depend): New function.
      	(GOMP_task): Use it.  Add priority argument.  Use
      	gomp-constant.h constants instead of hardcoded numbers.
      	Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
      	(gomp_create_target_task): New function.
      	(verify_children_queue, verify_taskgroup_queue,
      	verify_task_queue): New functions.
      	(gomp_task_run_pre): Call verify_*_queue functions.
      	If an upcoming tied task is about to leave the sibling or
      	taskgroup queues in an invalid state, adjust appropriately.
      	Remove taskgroup argument.  Add comments.
      	(gomp_task_run_post_handle_dependers): Add comments.
      	(gomp_task_run_post_remove_parent): Likewise.
      	(gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
      	(GOMP_taskwait): Likewise.  Add comments.
      	(gomp_task_maybe_wait_for_dependencies): Fix scheduling
      	problem such that the first non parent_depends_on task does not
      	end up at the end of the children queue.
      	(GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
      	GOMP_TASK_UNDEFERRED.
      	(GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
      	* taskloop.c: New file.
      	* testsuite/lib/libgomp.exp
      	(check_effective_target_offload_device_nonshared_as): New proc.
      	* testsuite/libgomp.c/affinity-2.c: New test.
      	* testsuite/libgomp.c/doacross-1.c: New test.
      	* testsuite/libgomp.c/doacross-2.c: New test.
      	* testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
      	Add map clause to target.
      	* testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
      	* testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
      	* testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
      	* testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
      	* testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
      	Likewise.
      	* testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
      	* testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
      	* testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
      	* testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
      	not defined.  Use those where needed.
      	* testsuite/libgomp.c/for-4.c: New test.
      	* testsuite/libgomp.c/for-5.c: New test.
      	* testsuite/libgomp.c/for-6.c: New test.
      	* testsuite/libgomp.c/linear-1.c: New test.
      	* testsuite/libgomp.c/ordered-4.c: New test.
      	* testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
      	only allowed on the loop iterator.
      	* testsuite/libgomp.c/pr66199-3.c: New test.
      	* testsuite/libgomp.c/pr66199-4.c: New test.
      	* testsuite/libgomp.c/reduction-7.c: New test.
      	* testsuite/libgomp.c/reduction-8.c: New test.
      	* testsuite/libgomp.c/reduction-9.c: New test.
      	* testsuite/libgomp.c/reduction-10.c: New test.
      	* testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
      	map(tofrom:s).
      	* testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
      	* testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
      	* testsuite/libgomp.c/target-11.c: New test.
      	* testsuite/libgomp.c/target-12.c: New test.
      	* testsuite/libgomp.c/target-13.c: New test.
      	* testsuite/libgomp.c/target-14.c: New test.
      	* testsuite/libgomp.c/target-15.c: New test.
      	* testsuite/libgomp.c/target-16.c: New test.
      	* testsuite/libgomp.c/target-17.c: New test.
      	* testsuite/libgomp.c/target-18.c: New test.
      	* testsuite/libgomp.c/target-19.c: New test.
      	* testsuite/libgomp.c/target-20.c: New test.
      	* testsuite/libgomp.c/target-21.c: New test.
      	* testsuite/libgomp.c/target-22.c: New test.
      	* testsuite/libgomp.c/target-23.c: New test.
      	* testsuite/libgomp.c/target-24.c: New test.
      	* testsuite/libgomp.c/target-25.c: New test.
      	* testsuite/libgomp.c/target-26.c: New test.
      	* testsuite/libgomp.c/target-27.c: New test.
      	* testsuite/libgomp.c/taskloop-1.c: New test.
      	* testsuite/libgomp.c/taskloop-2.c: New test.
      	* testsuite/libgomp.c/taskloop-3.c: New test.
      	* testsuite/libgomp.c/taskloop-4.c: New test.
      	* testsuite/libgomp.c++/ctor-13.C: New test.
      	* testsuite/libgomp.c++/doacross-1.C: New test.
      	* testsuite/libgomp.c++/examples-4/declare_target-2.C:
      	Replace offload_device with offload_device_nonshared_as.
      	* testsuite/libgomp.c++/for-12.C: New test.
      	* testsuite/libgomp.c++/for-13.C: New test.
      	* testsuite/libgomp.c++/for-14.C: New test.
      	* testsuite/libgomp.c++/linear-1.C: New test.
      	* testsuite/libgomp.c++/member-1.C: New test.
      	* testsuite/libgomp.c++/member-2.C: New test.
      	* testsuite/libgomp.c++/member-3.C: New test.
      	* testsuite/libgomp.c++/member-4.C: New test.
      	* testsuite/libgomp.c++/member-5.C: New test.
      	* testsuite/libgomp.c++/ordered-1.C: New test.
      	* testsuite/libgomp.c++/reduction-5.C: New test.
      	* testsuite/libgomp.c++/reduction-6.C: New test.
      	* testsuite/libgomp.c++/reduction-7.C: New test.
      	* testsuite/libgomp.c++/reduction-8.C: New test.
      	* testsuite/libgomp.c++/reduction-9.C: New test.
      	* testsuite/libgomp.c++/reduction-10.C: New test.
      	* testsuite/libgomp.c++/reference-1.C: New test.
      	* testsuite/libgomp.c++/simd14.C: New test.
      	* testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
      	* testsuite/libgomp.c++/target-5.C: New test.
      	* testsuite/libgomp.c++/target-6.C: New test.
      	* testsuite/libgomp.c++/target-7.C: New test.
      	* testsuite/libgomp.c++/target-8.C: New test.
      	* testsuite/libgomp.c++/target-9.C: New test.
      	* testsuite/libgomp.c++/target-10.C: New test.
      	* testsuite/libgomp.c++/target-11.C: New test.
      	* testsuite/libgomp.c++/target-12.C: New test.
      	* testsuite/libgomp.c++/taskloop-1.C: New test.
      	* testsuite/libgomp.c++/taskloop-2.C: New test.
      	* testsuite/libgomp.c++/taskloop-3.C: New test.
      	* testsuite/libgomp.c++/taskloop-4.C: New test.
      	* testsuite/libgomp.c++/taskloop-5.C: New test.
      	* testsuite/libgomp.c++/taskloop-6.C: New test.
      	* testsuite/libgomp.c++/taskloop-7.C: New test.
      	* testsuite/libgomp.c++/taskloop-8.C: New test.
      	* testsuite/libgomp.c++/taskloop-9.C: New test.
      	* testsuite/libgomp.fortran/affinity1.f90: New test.
      	* testsuite/libgomp.fortran/affinity2.f90: New test.
      liboffloadmic/
      2015-10-13  Ilya Verbin  <ilya.verbin@intel.com>
      
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
      	function.
      	* plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New
      	static function, register it in liboffloadmic.
      
      From-SVN: r228777
      Jakub Jelinek committed
  14. 04 Oct, 2015 1 commit
    • Implement N4514, C++ Extensions for Transactional Memory. · b8fd7909
      gcc/
      	* builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
      gcc/c-family/
      	* c-common.c (c_common_reswords): Add C++ TM TS keywords.
      	(c_common_attribute_table): Add transaction_safe_dynamic.
      	transaction_safe now affects type identity.
      	(handle_tm_attribute): Handle transaction_safe_dynamic.
      	* c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
      	RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
      	(OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
      	(D_TRANSMEM): New.
      	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
      	* c-pretty-print.c (pp_c_attributes_display): Don't print
      	transaction_safe in C++.
      gcc/c/
      	* c-parser.c (c_lex_one_token): Handle @synchronized.
      	* c-decl.c (match_builtin_function_types): A declaration of a built-in
      	can change whether the function is transaction_safe.
      gcc/cp/
      	* cp-tree.h (struct cp_declarator): Add tx_qualifier field.
      	(BCS_NORMAL, BCS_TRANSACTION): New enumerators.
      	* lex.c (init_reswords): Limit TM kewords to -fgnu-tm.
      	* parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized.
      	(make_call_declarator): Take tx_qualifier.
      	(cp_parser_tx_qualifier_opt): New.
      	(cp_parser_lambda_declarator_opt): Use it.
      	(cp_parser_direct_declarator): Likewise.
      	(cp_parser_statement): Handle atomic_noexcept, atomic_cancel.
      	(cp_parser_compound_statement): Change in_try parameter to bcs_flags.
      	(cp_parser_std_attribute): Map optimize_for_synchronized to
      	transaction_callable.
      	(cp_parser_transaction): Take the token.  Handle atomic_noexcept.
      	* lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety.
      	* call.c (enum conversion_kind): Add ck_tsafe.
      	(standard_conversion): Handle transaction-safety conversion.
      	(convert_like_real, resolve_address_of_overloaded_function): Likewise.
      	(check_methods): Diagnose transaction_safe_dynamic on non-virtual
      	function.
      	(look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic.
      	* cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant)
      	(can_convert_tx_safety): New.
      	* typeck.c (composite_pointer_type): Handle transaction-safety.
      	* name-lookup.h (enum scope_kind): Add sk_transaction.
      	* name-lookup.c (begin_scope): Handle it.
      	* semantics.c (begin_compound_stmt): Pass it.
      	* decl.c (check_previous_goto_1): Check it.
      	(struct named_label_entry): Add in_transaction_scope.
      	(poplevel_named_label_1): Set it.
      	(check_goto): Check it.
      	(duplicate_decls): A specialization can be transaction_safe
      	independently of its template.
      	(grokdeclarator): Handle tx-qualifier.
      	* rtti.c (ptr_initializer): Handle transaction-safe.
      	* search.c (check_final_overrider): Check transaction_safe_dynamic.
      	Don't check transaction_safe.
      	* mangle.c (write_function_type): Mangle transaction_safe here.
      	(write_CV_qualifiers_for_type): Not here.
      	(write_type): Preserve transaction_safe when stripping attributes.
      	* error.c (dump_type_suffix): Print transaction_safe.
      libiberty/
      	* cp-demangle.c (d_cv_qualifiers): Dx means transaction_safe.
      	(cplus_demangle_type): Let d_cv_qualifiers handle it.
      	(d_dump, d_make_comp, has_return_type, d_encoding)
      	(d_count_templates_scopes, d_print_comp_inner)
      	(d_print_mod_list, d_print_mod, d_print_function_type)
      	(is_ctor_or_dtor): Handle DEMANGLE_COMPONENT_TRANSACTION_SAFE.
      
      From-SVN: r228462
      Jason Merrill committed
  15. 28 Sep, 2015 1 commit
    • gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment. · 3e32ee19
      	inlude/
      	* gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
      	(GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR, GOMP_DIM_MAX,
      	GOMP_DIM_MASK): New.
      	(GOMP_LAUNCH_DIM, GOMP_LAUNCH_ASYNC, GOMP_LAUNCH_WAIT): New.
      	(GOMP_LAUNCH_CODE_SHIFT, GOMP_LAUNCH_DEVICE_SHIFT,
      	GOMP_LAUNCH_OP_SHIFT): New.
      	(GOMP_LAUNCH_PACK, GOMP_LAUNCH_CODE, GOMP_LAUNCH_DEVICE,
      	GOMP_LAUNCH_OP): New.
      	(GOMP_LAUNCH_OP_MAX): New.
      
      	libgomp/
      	* libgomp.h (acc_dispatch_t): Replace separate geometry args with
      	array.
      	* libgomp.map (GOACC_parallel_keyed): New.
      	* oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
      	all callers.
      	(GOACC_parallel_keyed): New interface.  Lose geometry arguments
      	and take keyed varargs list.  Adjust call to exec_func.
      	(GOACC_parallel): Force host fallback.
      	* libgomp_g.h (GOACC_parallel): Remove.
      	(GOACC_parallel_keyed): Declare.
      	* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
      	(stuct targ_gn_descriptor): Replace name field with launch field.
      	(nvptx_exec): Lose separate geometry args, take array.  Process
      	dynamic dimensions and adjust.
      	(struct nvptx_tdata): Replace fn_names field with fn_descs.
      	(GOMP_OFFLOAD_load_image): Adjust for change in function table
      	data.
      	(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
      	passing.
      	* oacc-host.c (host_openacc_exec): Adjust for change in dimension
      	passing.
      
      	gcc/
      	* config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
      	(nvptx_record_offload_symbol): Record function execution geometry.
      	* config/nvptx/mkoffload.c (process): Include launch geometry in
      	function data.
      	* omp-low.c (oacc_launch_pack): New.
      	(replace_oacc_fn_attrib): New.
      	(set_oacc_fn_attrib): New.
      	(get_oacc_fn_attrib): New.
      	(expand_omp_target): Create keyed varargs for GOACC_parallel call
      	generation.
      	* omp-low.h (get_oacc_fn_attrib): Declare.
      	* builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
      	(DEF_FUNCTION_TYPE_VAR_11): Delete.
      	* tree.h (OMP_CLAUSE_EXPR): New.
      	* omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
      
      	gcc/lto/
      	* lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
      	(DEF_FUNCTION_TYPE_VAR_11): Delete.
      
      	gcc/c-family/
      	* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
      	(DEF_FUNCTION_TYPE_VAR_11): Delete.
      
      	gcc/fortran/
      	* f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
      	(DEF_FUNCTION_TYPE_VAR_11): Delete.
      	* types.def (DEF_FUNCTION_TYPE_VAR_6): New.
      	(DEF_FUNCTION_TYPE_VAR_11): Delete.
      
      	gcc/ada/
      	* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define
      
      From-SVN: r228220
      Nathan Sidwell committed
  16. 24 Aug, 2015 1 commit
    • libgomp.map: Add 4.0.2 version. · 2a21ff19
      	libgomp/
      	* libgomp.map: Add 4.0.2 version.
      	* target.c (offload_image_descr): Add version field.
      	(gomp_load_image_to_device): Add version argument.  Adjust plugin
      	call.  Improve load mismatch diagnostic.
      	(gomp_unload_image_from_device): Add version argument.  Adjust plugin
      	call.
      	(GOMP_offload_regster): Make stub function, move bulk to ...
      	(GOMP_offload_register_ver): ... here.  Process version argument.
      	(GOMP_offload_unregister): Make stub function, move bulk to ...
      	(GOMP_offload_unregister_ver): ... here.  Process version argument.
      	(gomp_init_device): Process version field.
      	(gomp_unload_device): Process version field.
      	(gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
      	macros.  Check plugin version.
      	* libgomp.h (gomp_device_descr): Add version function field.  Adjust
      	loader and unloader types.
      	* oacc-host.c: Include gomp-constants.h.
      	(host_version): New.
      	(host_load_image, host_unload_image): Adjust.
      	(host_dispatch): Add host_version.
      	* plugin/plugin-nvptx.c: Include gomp-constants.h.
      	(GOMP_OFFLOAD_version): New.
      	(GOMP_OFFLOAD_load_image): Add version arg and check it.
      	(GOMP_OFFLOAD_unload_image): Likewise.
      	* plugin/plugin-host.c: Include gomp-constants.h.
      	(GOMP_OFFLOAD_version): New.
      	(GOMP_OFFLOAD_load_image): Add version arg.
      	(GOMP_OFFLOAD_unload_image): Likewise.
      
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): New.
      	(GOMP_OFFLOAD_load_image): Add version arg and check it.
      	(GOMP_OFFLOAD_unload_image): Likewise.
      
      	include/
      	* gomp-constants.h (GOMP_VERSION, GOMP_VERSION_NVIDIA_PTX,
      	GOMP_VERSION_INTEL_MIC): New.
      	(GOMP_VERSION_PACK, GOMP_VERSION_LIB, GOMP_VERSION_DEV): New.
      
      	gcc/
      	* config/nvptx/mkoffload.c (process): Replace
      	GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
      
      From-SVN: r227137
      Nathan Sidwell committed
  17. 14 Aug, 2015 2 commits
  18. 11 Aug, 2015 1 commit
  19. 10 Aug, 2015 1 commit
    • [PR libgomp/65742, PR middle-end/66332] libgomp: Remove plugin for non-shared memory host execution · b97e78b7
      	gcc/
      	* builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
      	open-coded sequence.
      	* omp-low.c (oacc_process_reduction_data): Remove handline of
      	GOMP_DEVICE_HOST_NONSHM.
      	gcc/testsuite/
      	* c-c++-common/goacc/acc_on_device-2.c: Remove XFAIL for C.
      	include/
      	* gomp-constants.c (GOMP_DEVICE_HOST_NONSHM): Remove.
      	libgomp/
      	* libgomp-plugin.h (enum offload_target_type): Remove
      	OFFLOAD_TARGET_TYPE_HOST_NONSHM.
      	* openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
      	* openacc.h (enum acc_device_t): Likewise.
      	* openacc_lib.h: Likewise.
      	* oacc-init.c (name_of_acc_device_t): Don't handle it.
      	(acc_on_device): Just use __builtin_acc_on_device.
      	* testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
      	of acc_on_device builtin.
      	* plugin/plugin-host.h: Remove file.
      	* plugin/plugin-host.c: Likewise, but salvage some content into...
      	* oacc-host.c: ... this file.
      	* plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
      	* plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
      	* Makefile.in: Regenerate.
      	* configure: Likewise.
      	* testsuite/lib/libgomp.exp
      	(check_effective_target_openacc_host_nonshm_selected): Remove.
      	* testsuite/libgomp.oacc-c++/c++.exp: Don't handle
      	ACC_DEVICE_TYPE=host_nonshm.
      	* testsuite/libgomp.oacc-c/c.exp: Likewise.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: 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.
      
      From-SVN: r226763
      Thomas Schwinge committed
  20. 14 Jul, 2015 2 commits
  21. 22 May, 2015 1 commit
  22. 19 Mar, 2015 1 commit
  23. 04 Mar, 2015 1 commit
    • re PR target/65261 (bootstrap-ubsan ppc64le: gcc/libcpp/lex.c:552:30: runtime… · 44d95244
      re PR target/65261 (bootstrap-ubsan ppc64le: gcc/libcpp/lex.c:552:30: runtime error: load of misaligned address 0x01002172dfc6 for type 'const uchar', which requires 16 byte alignment)
      
      Fix PR65261
      
      Running bootstrap-ubsan on ppc64le shows many instances of:
      
        libcpp/lex.c:552:30: runtime error: load of misaligned address
        0x01001f31d37a for type 'const uchar', which requires 16 byte alignment
      
      But the unaligned vector loads are intended in this case, because they
      are preferable to forced-alignment on POWER8. So just silence the ubsan
      errors.
      
      2015-03-02  Markus Trippelsdorf  <markus@trippelsdorf.de>
      
      include/
      	PR target/65261
      	* ansidecl.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.
      
      libcpp/
      	PR target/65261
      	* lex.c (search_line_fast): Silence ubsan errors.
      
      From-SVN: r221190
      Markus Trippelsdorf committed
  24. 19 Feb, 2015 2 commits
  25. 04 Feb, 2015 1 commit
    • dwarf2.h (enum dwarf_source_language): Add DW_LANG_Fortran03 and DW_LANG_Fortran08. · de3aebff
      include/
      	* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Fortran03
      	and DW_LANG_Fortran08.
      gcc/
      	* dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
      	or DW_LANG_Fortran08.
      	(lower_bound_default): Return 1 for DW_LANG_Fortran03 or
      	DW_LANG_Fortran08.
      	(gen_compile_unit_die): Handle "GNU Fortran2003" and
      	"GNU Fortran2008" language strings.
      	* dbxout.c (get_lang_number): Use lang_GNU_Fortran.
      	* langhooks.h (lang_GNU_Fortran): New prototype.
      	* langhooks.c (lang_GNU_Fortran): New function.
      	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
      	lang_GNU_Fortran.
      gcc/fortran/
      	* options.c: Include langhooks.h.
      	(gfc_post_options): Change lang_hooks.name based on
      	selected -std= mode.
      
      From-SVN: r220422
      Jakub Jelinek committed
  26. 15 Jan, 2015 1 commit
    • 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
  27. 14 Jan, 2015 1 commit
  28. 24 Dec, 2014 1 commit
    • xasprintf.c: New file. · e8850918
      libiberty/ChangeLog:
      
      	* xasprintf.c: New file.
      	* Makefile.in (CFILES): Add xasprintf.c.
      	(REQUIRED_OFILES): Add xasprintf.$(objext).
      	(xasprintf.$(objext)): New target.
      	* functions.texi: Regenerate.
      
      include/ChangeLog:
      
      	* libiberty.h (xasprintf): Declare.
      
      gcc/ChangeLog:
      
      	* gengtype.h (xasprintf): Remove declaration.
      	* gengtype.c (xasprintf): Remove.
      
      
      Co-Authored-By: Ben Elliston <bje@au.ibm.com>
      Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
      
      From-SVN: r219060
      Uros Bizjak committed
  29. 11 Dec, 2014 1 commit
    • xvasprintf.c: New file. · 01ca36af
      	* xvasprintf.c: New file.
      	* vprintf-support.h: Likewise.
      	* vprintf-support.c: Likewise.
      	* Makefile.in (CFILES): Add vprintf-support.c, xvasprintf.c.
      	(REQUIRED_OFILES): Add vprintf-support.$(objext), xvasprintf.$(objext).
      	(vprintf-support.$(objext), xvasprintf.$(objext)): New targets.
      	(vasprintf.$(objext)): Depend on $(srcdir)/vprintf-support.h.
      	* functions.texi: Regenerate.
      	* vasprintf.c (int_vasprintf): Use libiberty_vprintf_buffer_size.
      
      include/ChangeLog:
      
      	* libiberty.h (xvasprintf): Declare.
      
      libcpp/ChangeLog:
      
      	* directives.c (cpp_define_formatted): Use xvasprintf.
      
      
      Co-Authored-By: Ben Elliston <bje@au.ibm.com>
      Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
      
      From-SVN: r218618
      Uros Bizjak committed
  30. 10 Dec, 2014 1 commit
  31. 08 Dec, 2014 1 commit
  32. 26 Nov, 2014 2 commits
    • PR debug/38757 continued. Handle C11, C++11 and C++14. · 5d45c9c0
      Add experimental (minimal) DWARFv5 support.
      
      This change depends on the new DWARFv5 constants mentioned in the
      following draft: http://dwarfstd.org/doc/dwarf5.20141029.pdf
      
      gcc/ChangeLog
      
      	* doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
      	* opts.c (common_handle_option): Accept -gdwarf-5.
      	* dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
      	DW_LANG_C_plus_plus_14.
      	(lower_bound_default): Likewise. Plus DW_LANG_C11.
      	(gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
      	DW_LANG_C_plus_plus_14 or DW_LANG_C11.
      	(output_compilation_unit_header): Output at most a DWARFv4 header.
      	(output_skeleton_debug_sections): Likewise.
      	(output_line_info): Likewise.
      	(output_aranges): Document header version number.
      
      gcc/testsuite/ChangeLog
      
      	* gcc.dg/debug/dwarf2/lang-c11.c: New test.
      	* gcc.dg/debug/dwarf2/lang-c11-d4-strict.c: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp11.C: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp14.C: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp98.C: Likewise.
      
      include/ChangeLog
      
      	* dwarf2.h: Add DW_LANG_C_plus_plus_11, DW_LANG_C11 and
      	DW_LANG_C_plus_plus_14.
      
      From-SVN: r218077
      Mark Wielaard committed
    • DWARF add DW_AT_noreturn on noreturn function subprogram. · 42bc3520
      This implements the DWARFv5 noreturn proposal:
      http://dwarfstd.org/ShowIssue.php?issue=140331.1
      
      TREE_THIS_VOLATILE on a FUNCTION_DECL node means the function does not
      return normally. This catches the traditional noreturn GNU attribute,
      the C11 _Noreturn keyword and the C++11 [[noreturn]] attribute.
      
      This relies on the DW_AT_noreturn constant defined in the DWARFv5 DRAFT:
      http://www.dwarfstd.org/doc/dwarf5.20141029.pdf
      
      gcc/ChangeLog
      
      	* dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
      	function decl has TREE_THIS_VOLATILE.
      
      gcc/testsuite/ChangeLog
      
      	* g++.dg/debug/dwarf2/noreturn-function.C: New test.
      	* gcc.dg/debug/dwarf2/noreturn-function-attribute.c: Likewise.
      	* gcc.dg/debug/dwarf2/noreturn-function-keyword.c: Likewise.
      
      include/ChangeLog
      
      	* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.
      
      From-SVN: r218075
      Mark Wielaard committed
  33. 14 Nov, 2014 1 commit
  34. 11 Nov, 2014 2 commits
    • re PR driver/36312 (should refuse to overwrite input file with output file) · 3d00119c
      gcc/testsuite/ChangeLog:
      
      2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR driver/36312
      	* gcc.misc-tests/output.exp: New test case for identical input and
      	output files.
      
      include/ChangeLog:
      
      2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR driver/36312
      	* filenames.h: Add prototype for canonical_filename_eq.
      
      gcc/ChangeLog:
      
      2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR driver/36312
      	* diagnostic-core.h: Add prototype for fatal_error.
      	* diagnostic.c (fatal_error): New function fatal_error.
      	* gcc.c (store_arg): Remove have_o_argbuf_index.
      	(process_command): Check if input and output files are the same.
      	* toplev.c (init_asm_output): Check if input and output files are
      	the same.
      
      libiberty/ChangeLog:
      
      2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR driver/36312
      	* filename_cmp.c (canonical_filename_eq): New function to check if
      	file names are the same.
      	* functions.texi: Updated with documentation for new function.
      
      Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
      
      From-SVN: r217391
      Anthony Brandon committed
    • Merger of dmalcolm/jit branch from git · 35485da9
      ChangeLog:
      	* ChangeLog.jit: New.
      	* MAINTAINERS (Various Maintainers): Add myself as jit maintainer.
      
      contrib/ChangeLog:
      	* ChangeLog.jit: New.
      	* jit-coverage-report.py: New file: a script to print crude
      	code-coverage information for the libgccjit API.
      
      gcc/ChangeLog:
      	* ChangeLog.jit: New.
      	* Makefile.in (doc_build_sys): New variable, set to "sphinx" if
      	sphinx is installed, falling back to "texinfo" otherwise.
      	(FULL_DRIVER_NAME): New variable, adapted from the
      	install-driver target.  New target, a symlink within the builddir,
      	linked to "xgcc", for use when running the JIT library from the
      	builddir.
      	(MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
      	(install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
      	out.
      	* configure.ac (doc_build_sys): New variable, set to "sphinx" if
      	sphinx is installed, falling back to "texinfo" otherwise.
      	(GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
      	GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
      	* configure: Regenerate.
      	* doc/install.texi (--enable-host-shared): Specify that this is
      	required when building libgccjit.
      	(Tools/packages necessary for modifying GCC): Add Sphinx.
      	* timevar.def (TV_JIT_REPLAY): New.
      	(TV_ASSEMBLE): New.
      	(TV_LINK): New.
      	(TV_LOAD): New.
      
      gcc/java/ChangeLog:
      	* gcc/ChangeLog.jit: New.
      
      gcc/jit/ChangeLog:
      	* ChangeLog.jit: New.
      	* ChangeLog: New.
      	* Make-lang.in: New.
      	* TODO.rst: New.
      	* config-lang.in: New.
      	* docs/Makefile: New.
      	* docs/_build/texinfo/Makefile: New.
      	* docs/_build/texinfo/factorial.png: New.
      	* docs/_build/texinfo/libgccjit.texi: New.
      	* docs/_build/texinfo/sum-of-squares.png: New.
      	* docs/conf.py: New.
      	* docs/examples/tut01-hello-world.c: New.
      	* docs/examples/tut02-square.c: New.
      	* docs/examples/tut03-sum-of-squares.c: New.
      	* docs/examples/tut04-toyvm/Makefile: New.
      	* docs/examples/tut04-toyvm/factorial.toy: New.
      	* docs/examples/tut04-toyvm/fibonacci.toy: New.
      	* docs/examples/tut04-toyvm/toyvm.c: New.
      	* docs/index.rst: New.
      	* docs/internals/index.rst: New.
      	* docs/intro/factorial.png: New.
      	* docs/intro/index.rst: New.
      	* docs/intro/sum-of-squares.png: New.
      	* docs/intro/tutorial01.rst: New.
      	* docs/intro/tutorial02.rst: New.
      	* docs/intro/tutorial03.rst: New.
      	* docs/intro/tutorial04.rst: New.
      	* docs/topics/contexts.rst: New.
      	* docs/topics/expressions.rst: New.
      	* docs/topics/functions.rst: New.
      	* docs/topics/index.rst: New.
      	* docs/topics/locations.rst: New.
      	* docs/topics/objects.rst: New.
      	* docs/topics/results.rst: New.
      	* docs/topics/types.rst: New.
      	* dummy-frontend.c: New.
      	* jit-builtins.c: New.
      	* jit-builtins.h: New.
      	* jit-common.h: New.
      	* jit-playback.c: New.
      	* jit-playback.h: New.
      	* jit-recording.c: New.
      	* jit-recording.h: New.
      	* libgccjit++.h: New.
      	* libgccjit.c: New.
      	* libgccjit.h: New.
      	* libgccjit.map: New.
      	* notes.txt: New.
      
      gcc/testsuite/ChangeLog:
      	* ChangeLog.jit: New.
      	* jit.dg/all-non-failing-tests.h: New.
      	* jit.dg/harness.h: New.
      	* jit.dg/jit.exp: New.
      	* jit.dg/test-accessing-struct.c: New.
      	* jit.dg/test-accessing-union.c: New.
      	* jit.dg/test-array-as-pointer.c: New.
      	* jit.dg/test-arrays.c: New.
      	* jit.dg/test-calling-external-function.c: New.
      	* jit.dg/test-calling-function-ptr.c: New.
      	* jit.dg/test-combination.c: New.
      	* jit.dg/test-dot-product.c: New.
      	* jit.dg/test-empty.c: New.
      	* jit.dg/test-error-accessing-field-in-other-struct.c: New.
      	* jit.dg/test-error-adding-to-terminated-block.c: New.
      	* jit.dg/test-error-array-as-pointer.c: New.
      	* jit.dg/test-error-bad-cast.c: New.
      	* jit.dg/test-error-block-in-wrong-function.c: New.
      	* jit.dg/test-error-call-through-ptr-with-mismatching-args.c: New.
      	* jit.dg/test-error-call-through-ptr-with-non-function.c: New.
      	* jit.dg/test-error-call-through-ptr-with-non-pointer.c: New.
      	* jit.dg/test-error-call-through-ptr-with-not-enough-args.c: New.
      	* jit.dg/test-error-call-through-ptr-with-too-many-args.c: New.
      	* jit.dg/test-error-call-with-mismatching-args.c: New.
      	* jit.dg/test-error-call-with-not-enough-args.c: New.
      	* jit.dg/test-error-call-with-too-many-args.c: New.
      	* jit.dg/test-error-dereference-field-of-non-pointer.c: New.
      	* jit.dg/test-error-dereference-read-of-non-pointer.c: New.
      	* jit.dg/test-error-get-type-bad-enum.c: New.
      	* jit.dg/test-error-index-not-a-numeric-type.c: New.
      	* jit.dg/test-error-mismatching-types-in-assignment.c: New.
      	* jit.dg/test-error-mismatching-types-in-call.c: New.
      	* jit.dg/test-error-missing-return.c: New.
      	* jit.dg/test-error-new-binary-op-bad-op.c: New.
      	* jit.dg/test-error-new-function-bad-kind.c: New.
      	* jit.dg/test-error-new-unary-op-bad-op.c: New.
      	* jit.dg/test-error-null-passed-to-api.c: New.
      	* jit.dg/test-error-return-within-void-function.c: New.
      	* jit.dg/test-error-unreachable-block.c: New.
      	* jit.dg/test-error-unterminated-block.c: New.
      	* jit.dg/test-error-value-not-a-numeric-type.c: New.
      	* jit.dg/test-expressions.c: New.
      	* jit.dg/test-factorial.c: New.
      	* jit.dg/test-fibonacci.c: New.
      	* jit.dg/test-functions.c: New.
      	* jit.dg/test-fuzzer.c: New.
      	* jit.dg/test-hello-world.c: New.
      	* jit.dg/test-linked-list.c: New.
      	* jit.dg/test-long-names.c: New.
      	* jit.dg/test-nested-contexts.c: New.
      	* jit.dg/test-nested-loops.c: New.
      	* jit.dg/test-operator-overloading.cc: New.
      	* jit.dg/test-quadratic.c: New.
      	* jit.dg/test-quadratic.cc: New.
      	* jit.dg/test-reading-struct.c: New.
      	* jit.dg/test-string-literal.c: New.
      	* jit.dg/test-sum-of-squares.c: New.
      	* jit.dg/test-threads.c: New.
      	* jit.dg/test-types.c: New.
      	* jit.dg/test-using-global.c: New.
      	* jit.dg/test-volatile.c: New.
      
      include/ChangeLog:
      	* ChangeLog.jit: New.
      
      libbacktrace/ChangeLog:
      	* ChangeLog.jit: New.
      
      libcpp/ChangeLog:
      	* ChangeLog.jit: New.
      
      libdecnumber/ChangeLog:
      	* ChangeLog.jit: New.
      
      libiberty/ChangeLog:
      	* ChangeLog.jit: New.
      
      zlib/ChangeLog:
      	* ChangeLog.jit: New.
      
      From-SVN: r217374
      David Malcolm committed