+2017-06-06 Tom de Vries <tom@codesourcery.com>
+
+ * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
+ gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
+
+2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
+ Use aarch64_reg_or_zero predicate for operand 4.
+ (aarch64_compare_and_swap<mode> define_insn_and_split):
+ Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
+ (aarch64_store_exclusive<mode>): Likewise for operand 2.
+
+2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
+ (arm_compute_save_core_reg_mask): This.
+ (thumb1_compute_save_reg_mask): Rename into ...
+ (thumb1_compute_save_core_reg_mask): This.
+ (arm_compute_save_reg0_reg12_mask): Adapt comment.
+ (arm_compute_frame_layout): Likewise.
+
+2017-06-06 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/80974
+ * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
+ keep or clear leaders SSA info.
+
+2017-06-06 Tom de Vries <tom@codesourcery.com>
+
+ * config/nvptx/nvptx.c (split_mode_p): New function.
+ (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
+
+2017-06-06 Tom de Vries <tom@codesourcery.com>
+
+ * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
+
+2017-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ PR bootstrap/80978
+ * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
+ profile.
+
+2017-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ * shrink-wrap.c (handle_simple_exit): Update profile.
+ (try_shrink_wrapping): Upate profile.
+
+2017-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
+ (tree_guess_outgoing_edge_probabilities): New.
+ * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
+ * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
+
+2017-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-split.c (split_function): Initialize return bb profile.
+
+2017-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ * profile.c (compute_branch_probabilities): Also initialize
+ EXIT_BLOCK profile.
+
+2017-06-06 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/80928
+ * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
+ (vect_analyze_loop_operations): Properly guard analysis for
+ pure SLP case.
+ (vect_transform_loop): Likewise.
+ (vect_analyze_loop_2): Also reset SLP type on PHIs.
+ (vect_model_induction_cost): Do not cost for pure SLP.
+ (vectorizable_induction): Pass in SLP node, implement SLP vectorization
+ of induction in inner loop vectorization.
+ * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
+ (vect_get_and_check_slp_defs): Handle vect_induction_def.
+ (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
+ recursion.
+ (vect_analyze_slp_cost_1): Cost induction.
+ (vect_detect_hybrid_slp_stmts): Handle PHIs.
+ (vect_get_slp_vect_defs): Likewise.
+ * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
+ (vect_transform_stmt): Handle SLP reductions.
+ * tree-vectorizer.h (vectorizable_induction): Adjust.
+
+2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000.c (make_resolver_func): Update
+ init_lowered_empty_function call.
+
+2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * doc/invoke.texi: Document the -fprofile-abs-path option.
+ * common.opt (fprofile-abs-path): New option.
+ * gcov-io.h (gcov_write_filename): Declare.
+ * gcov-io.c (gcov_write_filename): New function.
+ * coverage.c (coverage_begin_function): Use gcov_write_filename.
+ * profile.c (output_location): Likewise.
+
+2017-06-05 Jan Hubicka <hubicka@ucw.cz>
+
+ * shring-wrap.c: Revert accidental commit.
+
+2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
+
+2017-06-05 Jan Hubicka <hubicka@ucw.cz>
+
+ * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
+ new edge.
+ * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
+ profile in callgraph edge.
+ * profile-count.h (apply_probability): If THIS is 0, then result is 0
+ (apply_scale): Likewise.
+ * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
+ Also scale profile when inlining function with zero profile.
+ (initialize_cfun): Update exit block profile even when it is zero.
+ * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
+ when profile is read.
+
+2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000.c (toplevel): Include attribs.h.
+ (CLONE_*): New constants to define the processors we can generate
+ code for with the target_clone attribute.
+ (rs6000_clone_map): New array to identify which clone processors
+ the current program is running on.
+ (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
+ target_clone attribute.
+ (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
+ (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
+ (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
+ (cpu_expand_builtin): Add support for target_clone attribute.
+ (rs6000_valid_attribute_p): Allow "default" attribute.
+ (get_decl_name): New debug function to simplify printing the
+ current function name in debugging statements.
+ (rs6000_clone_priority): New functions to support the target_clone
+ attribute, and be able to generate code to switch between ISA 2.05
+ through ISA 3.0 (power6 through power9).
+ (rs6000_compare_version_priority): Likewise.
+ (rs6000_get_function_versions_dispatcher): Likewise.
+ (make_resolver_func): Likewise.
+ (add_condition_to_bb): Likewise.
+ (dispatch_function_versions): Likewise.
+ (rs6000_generate_version_dispatcher_body): Likewise.
+ (rs6000_can_inline_p): Call get_decl_name for debugging usage.
+ (fusion_gpr_load_p): Fix a spacing issue.
+ * doc/extend.texi (Common Function Attributes): Document that the
+ PowerPC supports the target_clone attribute.
+
+2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * config/arm/arm.h: explain F symbol found in description of ARM
+ register allocation in its legend.
+
+2017-06-05 Jan Hubicka <hubicka@ucw.cz>
+
+ * config/mips/frame-header-opt.c: Include profile-count.h.
+ * config/riscv/riscv.c: Include profile-count.h
+
+2017-06-05 Jan Hubicka <hubicka@ucw.cz>
+
+ * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
+ update profile.
+ (sm_set_flag_if_changed): Add bbs field.
+ (execute_sm_if_changed_flag_set): Pass BBS.
+ (execute_sm): Update.
+
+2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
+ New pattern.
+
+2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
+ (peephole2): New peephole2 to emit the above.
+ * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
+
+2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.c (define_peephole2 above
+ *sub_<shift>_<mode>): New peephole.
+
+2017-05-23 Jan Hubicka <hubicka@ucw.cz>
+
+ * config/i386/i386.c (make_resolver_func): Update.
+ * Makefile.in: Add profile-count.h and profile-count.o
+ * auto-profile.c (afdo_indirect_call): Update to new API.
+ (afdo_set_bb_count): Update.
+ (afdo_propagate_edge): Update.
+ (afdo_propagate_circuit): Update.
+ (afdo_calculate_branch_prob): Update.
+ (afdo_annotate_cfg): Update.
+ * basic-block.h: Include profile-count.h
+ (struct edge_def): Turn count to profile_count.
+ (struct basic_block_def): Likewie.
+ (REG_BR_PROB_BASE): Move to profile-count.h
+ (RDIV): Move to profile-count.h
+ * bb-reorder.c (max_entry_count): Turn to profile_count.
+ (find_traces): Update.
+ (rotate_loop):Update.
+ (connect_traces):Update.
+ (sanitize_hot_paths):Update.
+ * bt-load.c (migrate_btr_defs): Update.
+ * cfg.c (RDIV): Remove.
+ (init_flow): Use alloc_block.
+ (alloc_block): Uninitialize count.
+ (unchecked_make_edge): Uninitialize count.
+ (check_bb_profile): Update.
+ (dump_edge_info): Update.
+ (dump_bb_info): Update.
+ (update_bb_profile_for_threading): Update.
+ (scale_bbs_frequencies_int): Update.
+ (scale_bbs_frequencies_gcov_type): Update.
+ (scale_bbs_frequencies_profile_count): New.
+ * cfg.h (update_bb_profile_for_threading): Update.
+ (scale_bbs_frequencies_profile_count): Declare.
+ * cfgbuild.c (compute_outgoing_frequencies): Update.
+ (find_many_sub_basic_blocks): Update.
+ * cfgcleanup.c (try_forward_edges): Update.
+ (try_crossjump_to_edge): Update.
+ * cfgexpand.c (expand_gimple_tailcall): Update.
+ (construct_exit_block): Update.
+ * cfghooks.c (verify_flow_info): Update.
+ (dump_bb_for_graph): Update.
+ (split_edge): Update.
+ (make_forwarder_block): Update.
+ (duplicate_block): Update.
+ (account_profile_record): Update.
+ * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
+ (get_estimated_loop_iterations): Update.
+ * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
+ (single_likely_exit): Update.
+ * cfgloopmanip.c (scale_loop_profile): Update.
+ (loopify): Update.
+ (set_zero_probability): Update.
+ (lv_adjust_loop_entry_edge): Update.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Update.
+ (purge_dead_edges): Update.
+ (rtl_account_profile_record): Update.
+ * cgraph.c (cgraph_node::create): Uninitialize count.
+ (symbol_table::create_edge): Uninitialize count.
+ (cgraph_update_edges_for_call_stmt_node): Update.
+ (cgraph_edge::dump_edge_flags): Update.
+ (cgraph_node::dump): Update.
+ (cgraph_edge::maybe_hot_p): Update.
+ * cgraph.h: Include profile-count.h
+ (create_clone), create_edge, create_indirect_edge): Update.
+ (cgraph_node): Turn count to profile_count.
+ (cgraph_edge0: Likewise.
+ (make_speculative, clone): Update.
+ (create_edge): Update.
+ (init_lowered_empty_function): Update.
+ * cgraphclones.c (cgraph_edge::clone): Update.
+ (duplicate_thunk_for_node): Update.
+ (cgraph_node::create_clone): Update.
+ * cgraphunit.c (cgraph_node::analyze): Update.
+ (cgraph_node::expand_thunk): Update.
+ * final.c (dump_basic_block_info): Update.
+ * gimple-streamer-in.c (input_bb): Update.
+ * gimple-streamer-out.c (output_bb): Update.
+ * graphite.c (print_global_statistics): Update.
+ (print_graphite_scop_statistics): Update.
+ * hsa-brig.c: Include basic-block.h.
+ * hsa-dump.c: Include basic-block.h.
+ * hsa-gen.c (T sum_slice): Update.
+ (convert_switch_statements):Update.
+ * hsa-regalloc.c: Include basic-block.h.
+ * ipa-chkp.c (chkp_produce_thunks): Update.
+ * ipa-cp.c (struct caller_statistics): Update.
+ (init_caller_stats): Update.
+ (gather_caller_stats): Update.
+ (ipcp_cloning_candidate_p): Update.
+ (good_cloning_opportunity_p): Update.
+ (get_info_about_necessary_edges): Update.
+ (dump_profile_updates): Update.
+ (update_profiling_info): Update.
+ (update_specialized_profile): Update.
+ (perhaps_add_new_callers): Update.
+ (decide_about_value): Update.
+ (ipa_cp_c_finalize): Update.
+ * ipa-devirt.c (struct odr_type_warn_count): Update.
+ (struct decl_warn_count): Update.
+ (struct final_warning_record): Update.
+ (possible_polymorphic_call_targets): Update.
+ (ipa_devirt): Update.
+ * ipa-fnsummary.c (redirect_to_unreachable): Update.
+ * ipa-icf.c (sem_function::merge): Update.
+ * ipa-inline-analysis.c (do_estimate_edge_time): Update.
+ * ipa-inline.c (compute_uninlined_call_time): Update.
+ (compute_inlined_call_time): Update.
+ (want_inline_small_function_p): Update.
+ (want_inline_self_recursive_call_p): Update.
+ (edge_badness): Update.
+ (lookup_recursive_calls): Update.
+ (recursive_inlining): Update.
+ (inline_small_functions): Update.
+ (dump_overall_stats): Update.
+ (dump_inline_stats): Update.
+ * ipa-profile.c (ipa_profile_generate_summary): Update.
+ (ipa_propagate_frequency): Update.
+ (ipa_profile): Update.
+ * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
+ * ipa-utils.c (ipa_merge_profiles): Update.
+ * loop-doloop.c (doloop_modify): Update.
+ * loop-unroll.c (report_unroll): Update.
+ (unroll_loop_runtime_iterations): Update.
+ * lto-cgraph.c (lto_output_edge): Update.
+ (lto_output_node): Update.
+ (input_node): Update.
+ (input_edge): Update.
+ (merge_profile_summaries): Update.
+ * lto-streamer-in.c (input_cfg): Update.
+ * lto-streamer-out.c (output_cfg): Update.
+ * mcf.c (create_fixup_graph): Update.
+ (adjust_cfg_counts): Update.
+ (sum_edge_counts): Update.
+ * modulo-sched.c (sms_schedule): Update.
+ * postreload-gcse.c (eliminate_partially_redundant_load): Update.
+ * predict.c (maybe_hot_count_p): Update.
+ (probably_never_executed): Update.
+ (dump_prediction): Update.
+ (combine_predictions_for_bb): Update.
+ (propagate_freq): Update.
+ (handle_missing_profiles): Update.
+ (counts_to_freqs): Update.
+ (rebuild_frequencies): Update.
+ (force_edge_cold): Update.
+ * predict.h: Include profile-count.h
+ (maybe_hot_count_p, counts_to_freqs): UPdate.
+ * print-rtl-function.c: Do not include cfg.h
+ * print-rtl.c: Include basic-block.h
+ * profile-count.c: New file.
+ * profile-count.h: New file.
+ * profile.c (is_edge_inconsistent): Update.
+ (correct_negative_edge_counts): Update.
+ (is_inconsistent): Update.
+ (set_bb_counts): Update.
+ (read_profile_edge_counts): Update.
+ (compute_frequency_overlap): Update.
+ (compute_branch_probabilities): Update; Initialize and deinitialize
+ gcov_count tables.
+ (branch_prob): Update.
+ * profile.h (bb_gcov_counts, edge_gcov_counts): New.
+ (edge_gcov_count): New.
+ (bb_gcov_count): New.
+ * shrink-wrap.c (try_shrink_wrapping): Update.
+ * tracer.c (better_p): Update.
+ * trans-mem.c (expand_transaction): Update.
+ (ipa_tm_insert_irr_call): Update.
+ (ipa_tm_insert_gettmclone_call): Update.
+ * tree-call-cdce.c: Update.
+ * tree-cfg.c (gimple_duplicate_sese_region): Update.
+ (gimple_duplicate_sese_tail): Update.
+ (gimple_account_profile_record): Update.
+ (execute_fixup_cfg): Update.
+ * tree-inline.c (copy_bb): Update.
+ (copy_edges_for_bb): Update.
+ (initialize_cfun): Update.
+ (freqs_to_counts): Update.
+ (copy_cfg_body): Update.
+ (expand_call_inline): Update.
+ * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
+ * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
+ (try_unroll_loop_completely): Update.
+ (try_peel_loop): Update.
+ * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
+ * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
+ * tree-ssa-loop-split.c (connect_loops): Update.
+ * tree-ssa-loop-unswitch.c (hoist_guard): Update.
+ * tree-ssa-reassoc.c (branch_fixup): Update.
+ * tree-ssa-tail-merge.c (replace_block_by): Update.
+ * tree-ssa-threadupdate.c (create_block_for_threading): Update.
+ (compute_path_counts): Update.
+ (update_profile): Update.
+ (recompute_probabilities): Update.
+ (update_joiner_offpath_counts): Update.
+ (estimated_freqs_path): Update.
+ (freqs_to_counts_path): Update.
+ (clear_counts_path): Update.
+ (ssa_fix_duplicate_block_edges): Update.
+ (duplicate_thread_path): Update.
+ * tree-switch-conversion.c (case_bit_test_cmp): Update.
+ (struct switch_conv_info): Update.
+ * tree-tailcall.c (decrease_profile): Update.
+ * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
+ * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
+ * value-prof.c (check_counter): Update.
+ (gimple_divmod_fixed_value): Update.
+ (gimple_mod_pow2): Update.
+ (gimple_mod_subtract): Update.
+ (gimple_ic_transform): Update.
+ (gimple_stringop_fixed_value): Update.
+ * value-prof.h (gimple_ic): Update.
+
+2017-06-02 Carl Love <cel@us.ibm.com>
+
+ * config/rs6000/rs6000-c: Add support for built-in functions
+ vector double vec_doublee (vector signed int);
+ vector double vec_doublee (vector unsigned int);
+ vector double vec_doublee (vector float);
+ vector double vec_doubleh (vector signed int);
+ vector double vec_doubleh (vector unsigned int);
+ vector double vec_doubleh (vector float);
+ vector double vec_doublel (vector signed int);
+ vector double vec_doublel (vector unsigned int);
+ vector double vec_doublel (vector float);
+ vector double vec_doubleo (vector signed int);
+ vector double vec_doubleo (vector unsigned int);
+ vector double vec_doubleo (vector float);.
+ * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
+ DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
+ UNS_DOUBLEL.
+ * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
+ unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
+ unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
+ VS_sxwsp.
+ * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
+ vec_doublel, vec_doubleh.
+ * doc/extend.texi: Update the built-in documentation file for the
+ new built-in functions.
+
+2017-06-02 David Malcolm <dmalcolm@redhat.com>
+
+ PR jit/80954
+ * ipa-inline-analysis.c (free_growth_caches): Set
+ edge_removal_hook_holder to NULL after removing it.
+
+2017-06-02 Sudakshina Das <sudi.das@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
+ comparision with zero.
+
+2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
+ * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
+ for early expansion of vec_min and vec_max builtins.
+ (builtin_function_type): Add min/max unsigned variants to those
+ identified as having unsigned arguments.
+
+2017-06-02 Olivier Hainque <hainque@adacore.com>
+
+ * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
+
+2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
+ Use VALL_F16 iterator rather than VALL.
+
+2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
+ Emit CBNZ inside loop when doing a strong exchange and comparing
+ against zero. Generate the CC flags after the loop.
+
+2017-06-02 David Edelsohn <dje.gcc@gmail.com>
+
+ * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
+ (dl_section_ref): New.
+ (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
+ On AIX, append an expression to subtract the size of the
+ section length to dl_section_ref.
+
+2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
+ for early expansion of vector absolute builtins.
+
+2017-06-02 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
+ what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
+
+2017-06-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/80948
+ * tree-tailcall.c (find_tail_calls): Track stmts to move in
+ stmt order as well.
+
+2017-06-02 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
+ PHIs are ok.
+ * tree-vect-stmts.c (process_use): Do not mark backedge defs
+ for inductions as relevant.
+
+2017-06-02 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
+ (vectorizable_induction): ... this. Remove dead code.
+
+2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * builtins. (expand_builtin_alloca): Remove second parameter and
+ infer its value from the first parameter instead.
+ (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
+
+2017-06-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/80903
+ * loop-doloop.c (add_test): Unshare sequence.
+
+2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
+
+2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
+ static.
+ (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
+ xlogue_layout::get_instance, logue_layout::xlogue_layout,
+ sp_valid_at, fp_valid_at, choose_basereg): Formatting.
+ (xlogue_layout::get_stub_rtx): Make static.
+ (xlogue_layout::get_stub_name): Avoid const-cast, make static.
+ (xlogue_layout::compute_stub_managed_regs): Rename to...
+ (xlogue_layout::count_stub_managed_regs): ...this.
+ (xlogue_layout::is_stub_managed_reg): New function.
+ (xlogue_layout::m_stub_names): Rename to...
+ (xlogue_layout::s_stub_names): ...this, make static.
+ (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
+ xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
+ xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
+ xlogue_layout::s_stub_names): Instantiate statics.
+ (stub_managed_regs): Remove.
+ (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
+ (disable_call_ms2sysv_xlogues): Rename to...
+ (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
+ (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
+ warning logic.
+ (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
+ change after reload_completed.
+ (ix86_can_use_return_insn_p): Use the ix86_frame data structure
+ directly.
+ (ix86_expand_prologue): Likewise.
+ (ix86_expand_epilogue): Likewise.
+ (ix86_expand_split_stack_prologue): Likewise.
+ (ix86_compute_frame_layout): Remove frame parameter ...
+ (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
+ (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
+ only if necessary.
+ (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
+ (ix86_frame): Move from here ...
+ * config/i386/i386.h (ix86_frame): ... to here.
+ (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
+ complete ix86_frame data structure instead. Remove some_ld_name.
+
+2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
+ symbols that hold a DECL_VALUE_EXPR.
+
+2017-06-01 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/80898
+ * tree-sra.c (process_subtree_disqualification): Removed.
+ (disqualify_candidate): Do not acll
+ process_subtree_disqualification.
+ (subtree_mark_written_and_enqueue): New function.
+ (propagate_all_subaccesses): Set grp_write of LHS subtree if the
+ RHS has been disqualified and re-queue LHS if necessary. Apart
+ from that, ignore disqualified RHS.
+
+2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_emit_epilogue): Disable early return
+ address fetch for z10 or later.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (tst_movb): Add guard when splitting.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_can_eliminate): Test against
+ arc_frame_pointer_needed.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
+ to prevent store reordering.
+ * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
+ (type): Add block type.
+ (stack_tie): Define special instruction to be used in
+ expand_prologue.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
+ constraint. It is not valid for the pattern.
+ (noncommutative_binary_comparison): Likewise.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
+ scaled addresses.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
+ be used by the reg-alloc.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (mulsi3): Avoid use of hard registers before
+ reg-alloc when having mul64 or mul32x16 instructions.
+ (mulsidi3): Likewise.
+ (umulsidi3): Likewise.
+ (mulsi32x16): New pattern.
+ (mulsi64): Likewise.
+ (mulsidi64): Likewise.
+ (umulsidi64): Likewise.
+ (MUL32x16_REG): Define.
+ (mul64_600): Use MUL32x16_REG.
+ (mac64_600): Likewise.
+ (umul64_600): Likewise.
+ (umac64_600): Likewise.
+
+2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (mulsi3_700): Make it commutative.
+
+2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
+ type for movstouw.
+ (*sign_extendsidi2_insn): Likewise for movstosw.
+
+2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
+ the type of the input discriminant value. Convert the
+ discriminant value of signedness vary.
+
+2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
+
+ * doc/invoke.texi (-Wcatch-value): Document new shortcut.
+ Add to -Wall section.
+
+2017-06-01 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/66313
+ * fold-const.c (fold_plusminus_mult_expr): If the factored
+ factor may be zero use a wrapping type for the inner operation.
+ * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
+ and handle moved defs.
+ (process_assignment): Properly guard the unary op case. Return a
+ tri-state indicating that moving the stmt before the call may allow
+ to continue. Pass through to_move.
+ (find_tail_calls): Handle moving unrelated defs before
+ the call.
+
+2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/80618
+ * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
+ splitter result in the canonical way.
+
+2017-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
+ also for 32bit target. Update insn attributes.
+ (zero-extendsidi2 splitter): Allow all registers for operand 1.
+
+2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
+
+ * config/i386/avx512fintrin.h (_mm_mask_max_sd)
+ (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
+ (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
+ (_mm_maskz_min_ss): New intrinsics.
+
+2017-05-31 Martin Liska <mliska@suse.cz>
+
+ * tree-vect-loop.c (vect_create_epilog_for_reduction):
+ Change comment style to one we normally use.
+ (vectorizable_reduction): Likewise.
+ (vectorizable_induction): Likewise.
+ * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
+ (vectorizable_call): Likewise.
+ (vectorizable_simd_clone_call): Likewise.
+ (vectorizable_conversion): Likewise.
+ (vectorizable_assignment): Likewise.
+ (vectorizable_shift): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+ * tree-vectorizer.h: Likewise.
+
+2017-05-31 Alexander Monakov <amonakov@ispras.ru>
+
+ * passes.c (emergency_dump_function): New.
+ * tree-pass.h (emergency_dump_function): Declare.
+ * plugin.c (plugins_internal_error_function): Remove.
+ * plugin.h (plugins_internal_error_function): Remove declaration.
+ * toplev.c (internal_error_function): New static function. Use it...
+ (general_init): ...here.
+
+2017-05-31 Graham Markall <graham.markall@embecosm.com>
+
+ * config/arc/arc.c (arc_print_operand): Handle constant operands.
+ (arc_rtx_costs): Add costs for new patterns.
+ * config/arc/arc.md: Additional *add_n and *sub_n patterns.
+ * config/arc/predicates.md: Add _1_2_3_operand predicate.
+
+2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * tree-ssa-strlen.c (get_next_strinfo): New function.
+ (get_stridx_plus_constant): Use it.
+ (zero_length_string): Likewise.
+ (adjust_related_strinfos): Likewise.
+ (adjust_last_stmt): Likewise.
+
+2017-05-31 Richard Biener <rguenther@suse.de>
+
+ PR target/80880
+ * config/i386/i386.c (ix86_expand_builtin): Remove assert
+ for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
+
+2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
+ loop_vinfo argument and use of dependence distance vectors.
+ Check instead whether the two references differ only in their
+ initial value and assume that they have the same alignment if the
+ difference is a multiple of the vector alignment.
+ (vect_analyze_data_refs_alignment): Update call accordingly.
+
+2017-05-31 Martin Liska <mliska@suse.cz>
+
+ PR target/79155
+ * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
+
+2017-05-31 Bin Cheng <bin.cheng@arm.com>
+
+ * tree-vect-loop-manip.c (create_intersect_range_checks_index)
+ (create_intersect_range_checks): Move from ...
+ * tree-data-ref.c (create_intersect_range_checks_index)
+ (create_intersect_range_checks): ... to here.
+ (create_runtime_alias_checks): New function factored from ...
+ * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
+ here. Call above function.
+ * tree-data-ref.h (create_runtime_alias_checks): New function.
+
+2017-05-31 Bin Cheng <bin.cheng@arm.com>
+
+ * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
+ segment length for dr_b and compute it in wide_int.
+
+2017-05-31 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/80906
+ * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
+ and pass through iv_map.
+ (copy_bb_and_scalar_dependences): Adjust.
+ (translate_pending_phi_nodes): Likewise.
+ (copy_loop_close_phi_args): Handle code-generating IVs instead
+ of ICEing.
+
+2017-05-30 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-color.c (color_dict): Add "type-diff".
+ (parse_gcc_colors): Update comment.
+ * doc/invoke.texi (Diagnostic Message Formatting Options): Add
+ -fdiagnostics-show-template-tree and -fno-elide-type.
+ (GCC_COLORS): Add type-diff to example.
+ (type-diff=): New.
+ (-fdiagnostics-show-template-tree): New.
+ (-fno-elide-type): New.
+ * pretty-print.c (pp_format): Pass quote and formatters[argno] to
+ the pp_format_decoder callback. Call any m_format_postprocessor's
+ "handle" method.
+ (pretty_printer::pretty_printer): Initialize
+ m_format_postprocessor.
+ (pretty_printer::~pretty_printer): Delete any
+ m_format_postprocessor.
+ * pretty-print.h (printer_fn): Add bool and const char ** parameters.
+ (class format_postprocessor): New class.
+ (struct pretty_printer::format_decoder): Document the new parameters.
+ (struct pretty_printer::m_format_postprocessor): New field.
+ * tree-diagnostic.c (default_tree_printer): Update for new
+ bool and const char ** params.
+ * tree-diagnostic.h (default_tree_printer): Likewise.
+
+2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
+ (lwa_operand): Delete rs6000_gen_cell_microcode test.
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
+ rs6000_gen_cell_microcode code.
+ (rs6000_final_prescan_insn): Delete.
+ (rs6000_opt_vars): Delete the "gen-cell-microcode" and
+ "warn-cell-microcode" entries.
+ * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
+ * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
+ throughout. Change cc_reg_not_micro_cr0_operand to
+ cc_reg_not_cr0_operand throughout.
+ (*extendhi<mode>2_noload): Delete.
+ * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
+ (mwarn-cell-microcode): Delete.
+ * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
+ -mgen-cell-microcode and -mwarn-cell-microcode.
+
+2017-05-30 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/80833
+ * config/i386/constraints.md (Yd): New constraint.
+ (Ye): Ditto.
+ * config/i386/i386.md (*movti_internal): Add (?r, Ye)
+ and (?Yd, r) alternatives. Update insn attributes.
+ * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
+ and (?*Yd, r) alternatives. Update insn attributes.
+ (double-mode inter-unit splitters): Add new GR<->XMM splitters.
+
+2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * gimplify.c (gimplify_modify_expr): Don't create a
+ DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
+ function.
+
+2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
+
+2017-05-30 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
+ and reduc_def fields.
+ (STMT_VINFO_REDUC_TYPE): New define.
+ (STMT_VINFO_REDUC_DEF): Likewise.
+ (vect_force_simple_reduction): Adjust prototype.
+ * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
+ (vect_is_simple_reduction): Remove check_reduction argument.
+ (vect_force_simple_reduction): Adjust and set
+ STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
+ (vectorizable_reduction): Do not re-do reduction analysis
+ but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
+ * tree-parloops.c (gather_scalar_reductions): Adjust.
+
+2017-05-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/80901
+ * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
+ split_edge code.
+
+2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
+
+ * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
+ Introduce unknown_misalignment parameter and remove vf.
+ (vect_peeling_hash_get_lowest_cost):
+ Pass unknown_misalignment parameter.
+ (vect_enhance_data_refs_alignment):
+ Fix unsupportable data ref treatment.
+
+2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
+
+ * tree-vect-data-refs.c (vect_get_data_access_cost):
+ Workaround for SLP handling.
+ (vect_enhance_data_refs_alignment):
+ Compute costs for doing no peeling at all, compare to the best
+ peeling costs so far and avoid peeling if cheaper.
+
+2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
+
+ * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
+ Return peeling info and set costs to zero for unlimited cost
+ model.
+ (vect_enhance_data_refs_alignment): Also inspect all datarefs
+ with unknown misalignment. Compute and costs for unknown
+ misalignment, compare them to the costs for known misalignment
+ and choose the cheapest for peeling.
+
+2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
+
+ * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
+ (vect_get_peeling_costs_all_drs): Create function.
+ (vect_peeling_hash_get_lowest_cost):
+ Use vect_get_peeling_costs_all_drs.
+ (vect_peeling_supportable): Create function.
+ (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
+
+2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
+
+ * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
+ DR_HAS_NEGATIVE_STEP.
+ (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
+ (vect_enhance_data_refs_alignment): Use.
+ (vect_duplicate_ssa_name_ptr_info): Use.
+ * tree-vectorizer.h (dr_misalignment): Use.
+ (known_alignment_for_access_p): Use.
+
+2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
+
+ PR target/78838
+ * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
+ .lowtext.
+ (has_section_name): New function.
+
+2017-05-30 Martin Liska <mliska@suse.cz>
+
+ PR other/80909
+ * auto-profile.c (get_function_decl_from_block): Fix
+ parenthesis.
+
+2017-05-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/80876
+ * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
+
+2017-05-30 Martin Liska <mliska@suse.cz>
+
+ * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
+ * dumpfile.h (struct dump_file_info): Remove ctors.
+
+2017-05-30 Martin Liska <mliska@suse.cz>
+
+ * predict.def: Fix GNU coding style.
+
2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
* config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
2017-05-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/80844
- * tree-vectorizer.c (adjust_simduid_builtins): Propagate
- results.
+ * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>