1. 20 Sep, 2016 2 commits
    • Add IPA VRP · 8bc5448f
      gcc/lto/ChangeLog:
      2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* lto-partition.c: Include tree-vrp.h.
      	* lto.c: Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* g++.dg/ipa/pure-const-3.C: Add -fno-ipa-vrp. Else constant arguments
      	will be optimized away.
      	* gcc.dg/ipa/vrp1.c: New test.
      	* gcc.dg/ipa/vrp2.c: New test.
      	* gcc.dg/ipa/vrp3.c: New test.
      
      gcc/ChangeLog:
      
      2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* common.opt: New option -fipa-vrp.
      	* ipa-cp.c (ipa_get_vr_lat): New.
      	(ipcp_vr_lattice::print): Likewise.
      	(print_all_lattices): Call ipcp_vr_lattice::print.
      	(ipcp_vr_lattice::meet_with): New.
      	(ipcp_vr_lattice::meet_with_1): Likewise.
      	(ipcp_vr_lattice::top_p): Likewise.
      	(ipcp_vr_lattice::bottom_p): Likewsie.
      	(ipcp_vr_lattice::set_to_bottom): Likewise.
      	(set_all_contains_variable): Call VR set_to_bottom.
      	(initialize_node_lattices): Init VR lattices.
      	(propagate_vr_accross_jump_function): New.
      	(propagate_constants_accross_call): Call
      	propagate_vr_accross_jump_function.
      	(ipcp_store_vr_results): New.
      	(ipcp_driver): Handle VR.
      	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
      	(ipa_set_jf_unknown): Likewise.
      	(ipa_compute_jump_functions_for_edge): Likewise.
      	(ipa_node_params_t::duplicate): Likewise.
      	(ipa_write_jump_function): Likewise.
      	(ipa_read_jump_function): Likewise.
      	(write_ipcp_transformation_info): Likewise.
      	(read_ipcp_transformation_info): Likewise.
      	(ipcp_update_vr): New.
      	(ipcp_transform_function): Handle VR.
      	* ipa-prop.h (struct ipa_vr): New.
      	* cgraph.c: Include tree-vrp.h.
      	* cgraphunit.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa.c: Likewise.
      
      From-SVN: r240292
      Kugan Vivekanandarajah committed
    • debug.h (gcc_debug_hooks): Add filename parameter to early_finish hook. · 68317985
      2016-09-20  Richard Biener  <rguenther@suse.de>
      
      	* debug.h (gcc_debug_hooks): Add filename parameter to early_finish
      	hook.
      	* debug.c (do_nothing_debug_hooks): Adjust.
      	* dbxout.c (dbx_debug_hooks): Likewise.
      	* sdbout.c (sdb_debug_hooks): Likewise.
      	* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
      	(dwarf2out_finish): Move producer, filename and
      	path annotation ...
      	(dwarf2out_early_finish): ... here.  Remove in_lto_p special-casing.
      	* cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
      
      	lto/
      	* lto.c (lto_main): Call early_finish with "<artificial>" as
      	filename.
      
      From-SVN: r240255
      Richard Biener committed
  2. 19 Sep, 2016 1 commit
    • dwarf2out.c (early_dwarf_finished): New global. · 321e76fb
      2016-09-16  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (early_dwarf_finished): New global.
      	(set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
      	is false.
      	(dwarf2out_early_finish): Set early_dwarf_finished at the end,
      	if called from LTO exit early.
      	(dwarf2out_late_global_decl): When being during the early
      	debug phase do not add locations but only const value attributes.
      	Adjust the way we generate early DIEs for LTO.
      
      	lto/
      	* lto.c (lto_main): Invoke early_finish debug hook.
      
      From-SVN: r240228
      Richard Biener committed
  3. 05 Sep, 2016 1 commit
  4. 25 Jul, 2016 1 commit
    • cgraph.c (cgraph_node::verify_node): Compare against builtin by using… · ea6e17d5
      cgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
      
      2016-07-25  Richard Biener  <rguenther@suse.de>
      
      	* cgraph.c (cgraph_node::verify_node): Compare against builtin
      	by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
      	* tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
      	* tree-streamer.h (streamer_handle_as_builtin_p): Remove.
      	(streamer_get_builtin_tree): Likewise.
      	(streamer_write_builtin): Likewise.
      	* lto-streamer.h (LTO_builtin_decl): Remove.
      	* lto-streamer-in.c (lto_read_tree_1): Remove assert.
      	(lto_input_scc): Remove LTO_builtin_decl handling.
      	(lto_input_tree_1): Liekwise.
      	* lto-streamer-out.c (lto_output_tree_1): Remove special
      	handling of builtins.
      	(DFS::DFS): Likewise.
      	* tree-streamer-in.c (streamer_get_builtin_tree): Remove.
      	* tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
      	assert.
      	(streamer_write_builtin): Remove.
      
      	lto/
      	* lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses.
      	(unify_scc): Likewise.
      	(lto_read_decls): Likewise.
      
      From-SVN: r238709
      Richard Biener committed
  5. 28 Jun, 2016 1 commit
  6. 23 Jun, 2016 1 commit
    • Add make autoprofiledbootstrap · 277d7ee0
      Add support for profiledbootstrap with autofdo. Will be useful
      to get better testing coverage of autofdo.
      
      This requires Linux perf and autofdo to be installed, only
      really for x86_64 linux on Intel so far.
      
      Profile the whole build process with perf, then convert the file,
      and pass it back to the compiler in the feedback stage.
      
      The conversion has to be done per language, as only that knows
      the name of the binary. Currently we only do it for C and C++,
      as the other languages don't have enough coverage during a normal
      bootstrap.
      
      For lto1 it is also disabled, because it would only be useful during a LTO
      bootstrap, but right now autofdo and LTO are not working together due to
      PR66229
      
      For common backend files always the profile output of the C++ compiler
      is used. In theory multiple inputs could be merged here, but so far
      that is not implemented.
      
      The method is not friendly to partial rebuilds, as only the profile
      information from the current rebuild is used. So if an error
      occurs it is best to clean and restart, otherwise the code
      quality may be worse.
      
      This patch is fairly large, but most of it is auto generated from
      autogen in Makefile.in. for the new stage targets.
      
      Passes profiledbootstrap and normal bootstrap on x86_64-linux.
      autoprofiledbootstrap is currently not working due to
      PR70427 (but it finishes with that worked around)
      
      The autofdo'ed compiler is ~7% faster on insn-recog.i (vs ~11% for
      profiledfeedback), and ~4% faster for tramp3d-v4 (vs 10% for
      profiledfeedback) on a Sandy Bridge system.
      
      gcc/lto/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo (disabled for now)
      
      gcc/cp/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      gcc/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.in: Regenerate.
      	* doc/install.texi: Document autoprofiledbootstrap.
      
      /:
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.def: Add autoprofiledbootstrap.
      	* Makefile.tpl: Dito.
      	* Makefile.in: Regenerate.
      
      gcc/c/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      From-SVN: r237733
      Andi Kleen committed
  7. 10 Jun, 2016 1 commit
    • PR c/71392 - SEGV calling integer overflow built-ins with a null pointer · 4d926e34
      gcc/ChangeLog:
      2016-06-10  Martin Sebor  <msebor@redhat.com>
      
      	PR c/71392
      	* builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
      	(ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
      	* builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
      	them.
      	(BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
      	(BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
      	(BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
      	(BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
      	(BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
      	(BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
      	(BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
      	(BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW):
      
      gcc/ada/ChangeLog:
      2016-06-10  Martin Sebor  <msebor@redhat.com>
      
      	PR c/71392
      	* gcc/ada/gcc-interface/utils.c (handle_nonnull_attribute): Accept
      	the nonnull attribute in type-generic builtins.
      
      gcc/c-family/ChangeLog:
      2016-06-10  Martin Sebor  <msebor@redhat.com>
      
      	PR c/71392
      	* gcc/c-family/c-common.c (handle_nonnull_attribute): Accept
      	the nonnull attribute in type-generic builtins.
      
      gcc/lto/ChangeLog:
      2016-06-10  Martin Sebor  <msebor@redhat.com>
      
      	PR c/71392
      	* gcc/lto/lto-lang.c (handle_nonnull_attribute): Accept the nonnull
      	attribute in type-generic builtins.
      
      gcc/testsuite/ChangeLog:
      2016-06-10  Martin Sebor  <msebor@redhat.com>
      
      	PR c/71392
      	* c-c++-common/builtin-arith-overflow-1.c: Add test cases.
      
      From-SVN: r237314
      Martin Sebor committed
  8. 16 May, 2016 1 commit
  9. 03 May, 2016 1 commit
    • cgraph.c (symbol_table::create_edge): Set inline_failed. · 1a0bf5e1
      	* cgraph.c (symbol_table::create_edge): Set inline_failed.
      	(cgraph_edge::make_direct): Likewise.
      	(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
      	* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
      	* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
      	(CIF_THUNK): New code.
      	* ipa-inline-analysis.c (initialize_inline_failed): Preserve
      	CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
      	(compute_inline_parameters): Set inline_failed for thunks.
      	(inline_analyze_function): Cleanup.
      	* ipa-inline.c (can_inline_edge_p): Do not deal with
      	call_stmt_cannot_inline_p.
      	(can_early_inline_edge_p): Likewise.
      	(early_inliner): Initialize inline_failed.
      	* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
      
      	* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.
      
      From-SVN: r235839
      Jan Hubicka committed
  10. 27 Apr, 2016 1 commit
    • params.def (MAX_PARTITION_SIZE): New param. · a2e76867
      2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* params.def (MAX_PARTITION_SIZE): New param.
      	* invoke.texi: Document lto-max-partition.
      lto/
      	* lto-partition.h (lto_balanced_map): New parameter.
      	* lto-partition.c (lto_balanced_map): New parameter
      	max_partition_size.
      	Check if partition size is greater than max_partition_size.
      	* lto.c (do_whole_program_analysis): Adjust calls to
      	lto_balanced_map() to pass 2nd argument.
      
      From-SVN: r235478
      Prathamesh Kulkarni committed
  11. 17 Mar, 2016 1 commit
  12. 08 Mar, 2016 1 commit
    • ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling - becuase -> because. · 56aae4b7
      	* ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
      	- becuase -> because.
      	* ipa-reference.c (ignore_module_statics): Likewise.
      	* cgraph.c (cgraph_node::get_body): Likewise.
      	* ipa-inline.c (early_inliner): Likewise.
      	* ipa-devirt.c (types_same_for_odr): Likewise.
      	* tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
      	* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
      cp/
      	* decl.c (duplicate_decls): Fix spelling - becuase -> because.
      lto/
      	* lto-symtab.h (lto_symtab_prevail_decl): Fix spelling
      	- becuase -> because.
      
      From-SVN: r234061
      Jakub Jelinek committed
  13. 15 Feb, 2016 1 commit
  14. 08 Feb, 2016 1 commit
    • Remove -fshort-double · a011cd92
      	PR target/60410
      	* tree.c (build_common_tree_nodes): Remove short_double argument.
      	All callers changed.
      	* tree.h (build_common_tree_nodes): Adjust declaration.
      	* doc/invoke.texi (-fshort-double): Remove documentation.
      	* config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
      	MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
      	* lto-wrapper.c (merge_and_complain, append_compiler_options,
      	append_linker_options): Don't handle OPT_fshort_double.
      	
      c-family/
      	PR target/60410
      	* c.opt (fshort-double): Remove.
      
      testsuite/
      	PR target/60410
      	* gcc.dg/lto/pr55113_0.c: Remove test.
      
      From-SVN: r233218
      Bernd Schmidt committed
  15. 27 Jan, 2016 1 commit
  16. 19 Jan, 2016 2 commits
    • re PR lto/69136 (ICE in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:991) · e49d321f
      	PR lto/69136
      	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
      	decls have no assemblernames.
      	* g++.dg/torture/pr69136.C: New testcase.
      
      From-SVN: r232553
      Jan Hubicka committed
    • 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
  17. 18 Jan, 2016 2 commits
  18. 12 Jan, 2016 1 commit
  19. 04 Jan, 2016 1 commit
  20. 16 Dec, 2015 1 commit
  21. 15 Dec, 2015 1 commit
    • c-common.c (c_common_attribute_table): Handle "omp declare target link" attribute. · 4a38b02b
      gcc/c-family/
      	* c-common.c (c_common_attribute_table): Handle "omp declare target
      	link" attribute.
      gcc/
      	* cgraphunit.c (output_in_order): Do not assemble "omp declare target
      	link" variables in ACCEL_COMPILER.
      	* gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of
      	"omp declare target link" variables.
      	* omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp
      	declare target link" variables.
      	(add_decls_addresses_to_decl_constructor): For "omp declare target link"
      	variables output address of the artificial pointer instead of address of
      	the variable.  Set most significant bit of the size to mark them.
      	(pass_data_omp_target_link): New pass_data.
      	(pass_omp_target_link): New class.
      	(find_link_var_op): New static function.
      	(make_pass_omp_target_link): New function.
      	* passes.def: Add pass_omp_target_link.
      	* tree-pass.h (make_pass_omp_target_link): Declare.
      	* varpool.c (symbol_table::output_variables): Do not assemble "omp
      	declare target link" variables in ACCEL_COMPILER.
      gcc/lto/
      	* lto.c: Include stringpool.h and fold-const.h.
      	(offload_handle_link_vars): New static function.
      	(lto_main): Call offload_handle_link_vars.
      libgomp/
      	* libgomp.h (REFCOUNT_LINK): Define.
      	(struct splay_tree_key_s): Add link_key.
      	* target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
      	Replace target address of the pointer with target address of newly
      	mapped object in the splay tree.  Set link pointer on target to the
      	device address of the mapped object.
      	(gomp_unmap_vars): Restore target address of the pointer in the splay
      	tree for REFCOUNT_LINK objects after unmapping.
      	(gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
      	declare target link" objects.
      	(gomp_unload_image_from_device): Replace j with i.  Force unmap of all
      	"omp declare target link" objects, which were mapped for the image.
      	(gomp_exit_data): Restore target address of the pointer in the splay
      	tree for REFCOUNT_LINK objects after unmapping.
      	* testsuite/libgomp.c/target-link-1.c: New file.
      
      From-SVN: r231655
      Ilya Verbin committed
  22. 13 Dec, 2015 1 commit
    • cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data. · ca834876
      	* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
      	flag to lto_get_section_data.
      	* varpool.c (varpool_node::get_constructor): Likewise.
      	* lto-section-in.c (lto_get_section_data): Add new flag decompress.
      	(lto_free_section_data): Likewise.
      	(lto_get_raw_section_data): New function.
      	(lto_free_raw_section_data): New function.
      	(copy_function_or_variable): Copy sections w/o decompressing.
      	(lto_output_decl_state_refs): Picke compressed bit.
      	* lto-streamer.h (lto_in_decl_state): New flag compressed.
      	(lto_out_decl_state): Likewise.
      	(lto_get_section_data, lto_free_section_data): Update prototypes
      	(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
      	(lto_write_raw_data): Declare.
      	(lto_begin_section): Remove FIXME.
      	(lto_write_raw_data): New function.
      	(lto_write_stream): Remove FIXME.
      	(lto_new_out_decl_state): Set compressed flag.
      
      	* lto.c (lto_read_in_decl_state): Unpickle compressed bit.
      
      From-SVN: r231593
      Jan Hubicka committed
  23. 10 Dec, 2015 1 commit
  24. 09 Dec, 2015 3 commits
    • re PR lto/68811 (ICE: in get, at cgraph.h:1218) · da20571a
      	PR lto/68811
      	* lto.c (lto_fixup_prevailing_decls): Do not check TREE_CHAIN of
      	DECL.
      	(LTO_NO_PREVAIL): Use gcc_checking_assert.
      
      From-SVN: r231477
      Jan Hubicka committed
    • re PR lto/68811 (ICE: in get, at cgraph.h:1218) · 378004b9
      	PR lto/68811
      	* g++.dg/lto/pr68811_0.C: New testcase.
      	* g++.dg/lto/pr68811_1.C: New testcase.
      
      	* lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed
      	by itself.
      
      From-SVN: r231473
      Jan Hubicka committed
    • re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2) · 6b9ac179
      
      	PR ipa/61886
      	* lto-streamer.h (lto_symtab_merge_decls, lto_symtab_merge_symbols,
      	lto_symtab_prevailing_decl): MOve to lto-symtab.h.
      	* lto-streamer-out.c (DFS::DFS_write_tree_body): Check that
      	DECL_ABSTRACT_ORIGIN is not error_mark_node.
      
      	* lto-symtab.c: Include lto-symtab.h.
      	(lto_cgraph_replace_node): Do not merge profiles here.
      	(lto_symtab_merge_p): New function.
      	(lto_symtab_merge_decls_2): Honor lto_symtab_merge_p.
      	(lto_symtab_merge_symbols_1): Turn unmerged decls into transparent
      	aliases.
      	(lto_symtab_merge_symbols): Do not clear node->aux; we no longer use it.
      	(lto_symtab_prevailing_decl): Move to lto-symtab.h; rewrite.
      	* lto.c: Include lto-symtab.h
      	* lto-symtab.h: New.
      
      From-SVN: r231438
      Jan Hubicka committed
  25. 08 Dec, 2015 1 commit
  26. 07 Dec, 2015 1 commit
    • re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2) · 71e54687
      	PR ipa/61886
      	* symtab.c (ultimate_transparent_alias_target): New inline function.
      	(symbol_table::assembler_names_equal_p): New method; break out from ...
      	(symbol_table::decl_assembler_name_equal): ... here.
      	(symbol_table::change_decl_assembler_name): Also update names and
      	translation links of transparent aliases.
      	(symtab_node::dump_base): Dump transparent_alias.
      	(symtab_node::verify_base): Implement basic transparent alias
      	verification.
      	(symtab_node::make_decl_local): Support localization of weakrefs;
      	recurse to transparent aliases; set TREE_STATIC.
      	(symtab_node::ultimate_alias_target_1): Handle visibility of
      	transparent aliases.
      	(symtab_node::resolve_alias): New parmaeter transparent; handle
      	transparent aliases; recurse to aliases of aliases to fix comdat
      	groups.
      	(symtab_node::get_partitioning_class): Handle transparent aliases.
      	* ipa-visibility.c (cgraph_externally_visible_p,
      	varpool_node::externally_visible_p): Visibility of transparent alias
      	depends on its target.
      	(function_and_variable_visibility): Do not tweak visibility of
      	transparent laiases.
      	(function_and_variable_visibility): Likewise.
      	* ipa.c (symbol_table::remove_unreachable_nodes): Clear
      	transparent_alias flag.
      	* alias.c (cgraph_node::create_alias, cgraph_node::get_availability):
      	Support transparent aliases.
      	* cgraph.h (symtab_node): Update prototype of resolve_alias;
      	add transparent_alias flag.
      	(symbol_table: Add assembler_names_equal_p.
      	(symtab_node::real_symbol_p): Skip transparent aliases.
      	* cgraphunit.c (cgraph_node::reset): Reset transparent_alias flag.
      	(handle_alias_pairs): Set transparent_alias for weakref.
      	(cgraph_node::assemble_thunks_and_aliases): Do not asemble transparent
      	aliases.
      	* lto-cgraph.c (lto_output_node): When outputting same_comdat_group
      	skip symbols not put into boundary; stream transparent_alias.
      	(lto_output_varpool_node): Likewise.
      	(input_overwrite_node, input_varpool_node): Stream transparent alias.
      	* varpool.c (ctor_for_folding, varpool_node::get_availability,
      	varpool_node::assemble_aliases,
      	symbol_table::remove_unreferenced_decls): Handle transparent aliase.
      	(varpool_node::create_alias): Set transparent_alias.
      
      	* lto-partition.c (add_symbol_to_partition_1, contained_in_symbol,
      	rename_statics, rename_statics): Handle transparent aliases.
      
      From-SVN: r231373
      Jan Hubicka committed
  27. 04 Dec, 2015 1 commit
    • * ipa-inline.c (can_inline_edge_p) Use merged_comdat. · 88636b62
      	* cgraphclones.c (cgraph_node::create_clone): Use merged_comdat.
      	* cgraph.c (cgraph_node::dump): Dump merged_comdat.
      	* ipa-icf.c (sem_function::merge): Drop merged_comdat when merging
      	comdat and non-comdat.
      	* cgraph.h (cgraph_node): Rename merged to merged_comdat.
      	* ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat
      	and icf_merged.
      
      	* lto-symtab.c (lto_cgraph_replace_node): Update code computing
      	merged_comdat.
      
      From-SVN: r231291
      Jan Hubicka committed
  28. 01 Dec, 2015 1 commit
  29. 25 Nov, 2015 2 commits
    • re PR lto/67548 (LTO drops weak binding with "ld -r") · 1ff9ed6f
      	PR lto/67548
      	* lto-plugin.c (linker_output, linker_output_set): New statics.
      	(all_symbols_read_handler): Add -flinker-output option.
      	(onload): Record linker_output info.
      
      	* ipa-visibility.c (cgraph_externally_visible_p,
      	varpool_node::externally_visible_p): When doing incremental linking,
      	hidden symbols may be still used later.
      	(update_visibility_by_resolution_info): Do not drop weak during
      	incremental link.
      	(function_and_variable_visibility): Fix formating.
      	* flag-types.h (lto_linker_output): Declare.
      	* common.opt 9flag_incremental_link): New flag.
      
      	* lto-lang.c (lto_post_options): Process flag_lto_linker_output.
      	* lang.opt (lto_linker_output): New enum.
      	(flinker_output): New flag.
      
      From-SVN: r230915
      Jan Hubicka committed
    • lto-symtab.c: Include alias.h · 22bea0be
      	* lto-symtab.c: Include alias.h
      	(warn_type_compatibility_p): Replace types_compatible_p checks by
      	TBAA and size checks; set bit 2 if locations are TBAA incompatible.
      	(lto_symtab_merge): Compare DECL sizes.
      	(lto_symtab_merge_decls_2): Warn about TBAA in compatibility.
      	* gfortran.dg/lto/bind_c-6_0.f90: New testcase.
      	* gfortran.dg/lto/bind_c-6_1.c: New testcase.
      
      From-SVN: r230911
      Jan Hubicka committed
  30. 24 Nov, 2015 2 commits
    • lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for… · aea50b45
      lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them.
      
      	* lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
      	only for types where LTO sets them.
      	* tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
      	(make_vector_type): Likewise.
      	(gimple_canonical_types_compatible_p): Use canonical_type_used_p.
      	* tree.h (canonical_type_used_p): New inline.
      	* alias.c (get_alias_set): Handle structural equality for all
      	types that pass canonical_type_used_p.
      	(record_component_aliases): Look through all types with
      	record_component_aliases for possible pointers; sanity check that
      	the alias sets match.
      
      	* lto.c (iterative_hash_canonical_type): Recruse for all types
      	which pass !canonical_type_used_p.
      	(gimple_register_canonical_type_1): Sanity check we do not compute
      	canonical type of anything with !canonical_type_used_p.
      	(gimple_register_canonical_type): Skip all types that are
      	!canonical_type_used_p
      
      From-SVN: r230835
      Jan Hubicka committed
    • tree.c (free_node): New function. · deb3dae6
      	* tree.c (free_node): New function.
      	(type_hash_canon): Use it.
      	* tree.h (free_node): Declare.
      	* lto.c (unify_scc): Use free_node.
      
      From-SVN: r230833
      Jan Hubicka committed
  31. 21 Nov, 2015 2 commits
    • lto.c (iterative_hash_canonical_type): Always recurse for pointers. · f85d2487
      	* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
      	(gimple_register_canonical_type_1): Check that pointers do not get
      	canonical types.
      	(gimple_register_canonical_type): Do not register pointers.
      
      	* tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
      	In LTO we do not compute TYPE_CANONICAL of pointers.
      	(gimple_canonical_types_compatible_p): Improve coments; sanity check
      	that pointers do not have canonical type that would make us believe
      	they are different.
      	* alias.c (get_alias_set): Do structural type equality on pointers;
      	enable pointer path for LTO; also glob pointer to vector with pointer
      	to vector element; glob pointers and references for LTO; do more strict
      	sanity checking about build_pointer_type returning the canonical type
      	which is also the main variant.
      	(record_component_aliases): When component type is pointer and we
      	do LTO; record void_type_node alias set.
      
      From-SVN: r230715
      Jan Hubicka committed
    • lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch flag for types… · feb391fc
      lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch flag for types that are not ODR...
      
      	* lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch
      	flag for types that are not ODR; fix loop walking parameters.
      
      From-SVN: r230712
      Jan Hubicka committed
  32. 11 Nov, 2015 1 commit
    • decl.c: Remove unused header files. · 69f293c9
      ada
      
      	* gcc-interface/decl.c: Remove unused header files.
      	* gcc-interface/misc.c: Likewise.
      	* gcc-interface/targtyps.c: Likewise.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      c
      
      	* c-array-notation.c: Remove unused header files.
      	* c-aux-info.c: Likewise.
      	* c-convert.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-errors.c: Likewise.
      	* c-lang.c: Likewise.
      	* c-objc-common.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gccspec.c: Likewise.
      
      c-family
      
      	* array-notation-common.c: Remove unused header files.
      	* c-ada-spec.c: Likewise.
      	* c-cilkplus.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-dump.c: Likewise.
      	* c-format.c: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-indentation.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pch.c: Likewise.
      	* c-ppoutput.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-semantics.c: Likewise.
      	* c-ubsan.c: Likewise.
      	* cilk.c: Likewise.
      	* stub-objc.c: Likewise.
      
      cp
      
      	* call.c: Remove unused header files.
      	* class.c: Likewise.
      	* constexpr.c: Likewise.
      	* cp-array-notation.c: Likewise.
      	* cp-cilkplus.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* cp-lang.c: Likewise.
      	* cp-objcp-common.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* cxx-pretty-print.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* dump.c: Likewise.
      	* error.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* friend.c: Likewise.
      	* g++spec.c: Likewise.
      	* init.c: Likewise.
      	* lambda.c: Likewise.
      	* lex.c: Likewise.
      	* mangle.c: Likewise.
      	* method.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* ptree.c: Likewise.
      	* repo.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* tree.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      	* vtable-class-hierarchy.c: Likewise.
      
      Fortran
      
      	* array.c: Remove unused header files.
      	* convert.c: Likewise.
      	* cpp.c: Likewise.
      	* decl.c: Likewise.
      	* f95-lang.c: Likewise.
      	* frontend-passes.c: Likewise.
      	* iresolve.c: Likewise.
      	* match.c: Likewise.
      	* module.c: Likewise.
      	* options.c: Likewise.
      	* parse.c: Likewise.
      	* target-memory.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-common.c: Likewise.
      	* trans-const.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-expr.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-io.c: Likewise.
      	* trans-openmp.c: Likewise.
      	* trans-stmt.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      go
      
      	* go-backend.c: Remove unused header files.
      	* go-gcc.cc: Likewise.
      	* go-lang.c: Likewise.
      	* gospec.c: Likewise.
      
      Java
      
      	* boehm.c: Remove unused header files.
      	* builtins.c: Likewise.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* java-gimplify.c: Likewise.
      	* jcf-dump.c: Likewise.
      	* jcf-io.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* jvgenmain.c: Likewise.
      	* lang.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      	* verify-impl.c: Likewise.
      	* zextract.c: Likewise.
      
      jit
      
      	* dummy-frontend.c: Remove unused header files.
      	* jit-builtins.c: Likewise.
      	* jit-playback.c: Likewise.
      	* jit-recording.c: Likewise.
      	* jit-spec.c: Likewise.
      	* libgccjit.c: Likewise.
      
      lto
      
      	* lto-lang.c: Remove unused header files.
      	* lto-object.c: Likewise.
      	* lto-partition.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      objc
      
      	* objc-act.c: Remove unused header files.
      	* objc-encoding.c: Likewise.
      	* objc-gnu-runtime-abi-01.c: Likewise.
      	* objc-lang.c: Likewise.
      	* objc-map.c: Likewise.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      	* objc-runtime-shared-support.c: Likewise.
      
      objcp
      
      	* objcp-decl.c: Remove unused header files.
      	* objcp-lang.c: Likewise.
      
      From-SVN: r230166
      Andrew MacLeod committed