+2018-08-04 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/86571
+ * gimple-ssa-sprintf.c (format_floating): Extend upper bound of
+ NaN output to 4.
+
+2018-08-03 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define.
+
+2018-08-03 Jeff Law <law@redhat.com>
+
+ PR target/86795
+ * config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+2018-08-03 David Malcolm <dmalcolm@redhat.com>
+
+ * doc/gcov.texi (-x): Remove duplicate "to".
+ * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls".
+ (-Wif-not-aligned): Remove duplicate "is".
+ (-flto): Remove duplicate "the".
+ (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove
+ duplicate "v5.00.b".
+ (MSP430 Options): Remove duplicate "and" from the description
+ of "-mgprel-sec=regexp".
+ (x86 Options): Remove duplicate copies of "vmldLog102" and
+ vmlsLog104 from description of "-mveclibabi=type".
+
+2018-08-03 Richard Sandiford <richard.sandiford@arm.com>
+
+ * internal-fn.h (first_commutative_argument): Declare.
+ * internal-fn.c (first_commutative_argument): New function.
+ * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra
+ restrictions for pattern statements. Use first_commutative_argument
+ to look for commutative operands in calls to internal functions.
+
+2018-08-03 Aldy Hernandez <aldyh@redhat.com>
+
+ * Makefile.in (wide-int-range.o): New.
+ * tree-vrp.c: Move all the wide_int_* functions to...
+ * wide-int-range.cc: ...here.
+ * tree-vrp.h: Move all the wide_int_* prototypes to...
+ * wide-int-range.h: ...here.
+
+2018-08-03 Tom de Vries <tdevries@suse.de>
+
+ * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return
+ UI_NONE.
+ * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define.
+ * except.c (output_function_exception_table): Do early exit if
+ targetm_common.except_unwind_info (&global_options) == UI_NONE.
+
+2018-08-03 Martin Liska <mliska@suse.cz>
+
+ * predict.c (dump_prediction): Change to 2 digits
+ in fraction part.
+
+2018-08-03 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move
+ neon_dup_q to...
+ (falkor_am_1_gtov_gtov): ... a new insn reservation.
+
+2018-07-19 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=.
+ * df-problems.c (df_remove_dead_eq_notes): Replace > with >=.
+ * dwarf2out.c (mem_loc_descriptor): Replace > with >=.
+ * lra-constraints.c (spill_hard_reg_in_range): Replace <= with <.
+ * lra-remat.c (call_used_input_regno_present_p): Replace <= with <.
+
+2018-08-02 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-show-locus.c (diagnostic_show_locus): Use
+ pp_take_prefix when saving the existing prefix.
+ * diagnostic.c (diagnostic_append_note): Likewise.
+ * langhooks.c (lhd_print_error_function): Likewise.
+ * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix"
+ param's type. Free the existing prefix.
+ (pp_take_prefix): New function.
+ (pretty_printer::pretty_printer): Drop the prefix parameter.
+ Rename the length parameter to match the comment.
+ (pretty_printer::~pretty_printer): Free the prefix.
+ * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix
+ parameter.
+ (struct pretty_printer): Drop the "const" from "prefix" field's
+ type and clarify memory management.
+ (pp_set_prefix): Drop the "const" from the 2nd param.
+ (pp_take_prefix): New decl.
+
+2018-08-02 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ * config/rs6000/rs6000-string.c (select_block_compare_mode): Move test
+ for word_mode_ok here instead of passing as argument.
+ (expand_block_compare): Change select_block_compare_mode() call.
+ (expand_strncmp_gpr_sequence): New function.
+ (expand_strn_compare): Make use of expand_strncmp_gpr_sequence.
+
+2018-08-02 Jeff Law <law@redhat.com>
+
+ PR target/86790
+ * config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86784
+ * config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+2018-08-02 Tom de Vries <tdevries@suse.de>
+
+ PR target/86660
+ * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New
+ function. Return UI_TARGET unconditionally.
+ (TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info.
+ * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'.
+
+2018-08-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * genemit.c (print_overload_test): Fix typo.
+
+2018-08-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/86816
+ * tree-ssa-tail-merge.c (tail_merge_valueize): New function
+ which checks for value availability before querying it.
+ (gvn_uses_equal): Use it.
+ (same_succ_hash): Likewise.
+ (gimple_equal_p): Likewise.
+
+2018-08-02 Nick Clifton <nickc@redhat.com>
+
+ PR target/86813
+ * config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86810
+ * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86810
+ * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86803
+ * config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86797
+ * config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86791
+ * config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86789
+ * config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86787
+ * config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ Define to speculation_safe_value_not_needed.
+
+ PR target/86782
+ * config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to
+ speculation_safe_value_not_needed.
+
+ PR target/86781
+ * config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define
+ to speculation_safe_value_not_needed.
+
+2018-08-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * doc/md.texi: Expand the documentation of instruction names
+ to mention port-local uses. Document '@' in pattern names.
+ * read-md.h (overloaded_instance, overloaded_name): New structs.
+ (mapping): Declare.
+ (md_reader::handle_overloaded_name): New member function.
+ (md_reader::get_overloads): Likewise.
+ (md_reader::m_first_overload): New member variable.
+ (md_reader::m_next_overload_ptr): Likewise.
+ (md_reader::m_overloads_htab): Likewise.
+ * read-md.c (md_reader::md_reader): Initialize m_first_overload,
+ m_next_overload_ptr and m_overloads_htab.
+ * read-rtl.c (iterator_group): Add "type" and "get_c_token" fields.
+ (get_mode_token, get_code_token, get_int_token): New functions.
+ (map_attr_string): Add an optional argument that passes back
+ the associated iterator.
+ (overloaded_name_hash, overloaded_name_eq_p, named_rtx_p):
+ (md_reader::handle_overloaded_name, add_overload_instance): New
+ functions.
+ (apply_iterators): Handle '@' names. Report an error if '@'
+ is used without iterators.
+ (initialize_iterators): Initialize the new iterator_group fields.
+ * genopinit.c (handle_overloaded_code_for)
+ (handle_overloaded_gen): New functions.
+ (main): Use them to print declarations of maybe_code_for_* and
+ maybe_gen_* functions, and inline definitions of code_for_* and gen_*.
+ * genemit.c (print_overload_arguments, print_overload_test)
+ (handle_overloaded_code_for, handle_overloaded_gen): New functions.
+ (main): Use it to print definitions of maybe_code_for_* and
+ maybe_gen_* functions.
+ * config/aarch64/aarch64.c (aarch64_split_128bit_move): Use
+ gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high}
+ instead of explicit mode checks.
+ (aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine.
+ (aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov.
+ (aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive.
+ (aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive.
+ (aarch64_expand_compare_and_swap): Likewise
+ gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse
+ (aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas.
+ (aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp.
+ (aarch64_constant_pool_reload_icode): Delete.
+ (aarch64_secondary_reload): Use code_for_aarch64_reload_movcp
+ instead of aarch64_constant_pool_reload_icode. Use
+ code_for_aarch64_reload_mov instead of explicit mode checks.
+ (rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete.
+ (aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of
+ get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type.
+ (recpe_type, get_recpe_type, recps_type, get_recps_type): Delete.
+ (aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of
+ get_recpe_type and gen_aarch64_frecps instead of get_recps_type.
+ (aarch64_atomic_load_op_code): Delete.
+ (aarch64_emit_atomic_load_op): Likewise.
+ (aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of
+ aarch64_atomic_load_op_code. Use gen_aarch64_atomic_load
+ instead of aarch64_emit_atomic_load_op.
+ * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>)
+ (aarch64_reload_movcp<VALL:mode><P:mode>, aarch64_reload_mov<mode>)
+ (aarch64_movdi_<mode>low, aarch64_movdi_<mode>high)
+ (aarch64_mov<mode>high_di, aarch64_mov<mode>low_di): Add a '@'
+ character before the pattern name.
+ * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
+ (aarch64_rsqrte<mode>, aarch64_rsqrts<mode>)
+ (aarch64_simd_combine<mode>, aarch64_frecpe<mode>)
+ (aarch64_frecps<mode>): Likewise.
+ * config/aarch64/atomics.md (atomic_compare_and_swap<mode>)
+ (aarch64_compare_and_swap<mode>, aarch64_compare_and_swap<mode>_lse)
+ (aarch64_load_exclusive<mode>, aarch64_store_exclusive<mode>)
+ (aarch64_atomic_swp<mode>, aarch64_atomic_cas<mode>)
+ (aarch64_atomic_load<atomic_ldop><mode>): Likewise.
+
+2018-08-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
+ Allow HFmode constants if TARGET_FP_F16INST.
+
+2018-08-02 Jackson Woodruff <jackson.woodruff@arm.com>
+
+ PR target/86014
+ * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
+ No longer check last store for clobber of address register.
+
+2018-08-02 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/86817
+ * gcov.c (process_all_functions): New function.
+ (main): Call it.
+ (process_file): Move functions processing to
+ process_all_functions.
+
+2018-08-02 David Malcolm <dmalcolm@redhat.com>
+
+ * dumpfile.c (dump_user_location_t::dump_user_location_t): Add
+ "const" to the "gimple *" and "rtx_insn *" parameters.
+ * dumpfile.h (dump_user_location_t::dump_user_location_t):
+ Likewise.
+ (dump_location_t::dump_location_t): Likewise.
+
+2018-08-01 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/86650
+ * gimple-pretty-print.c (percent_G_format): Accept a "gimple *"
+ rather than a "gcall *". Directly pass the data of interest
+ to percent_K_format, rather than building a temporary CALL_EXPR
+ to hold it.
+ * gimple-fold.c (gimple_fold_builtin_strncpy): Adjust.
+ (gimple_fold_builtin_strncat): Adjust.
+ * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace
+ gcall* argument with gimple*.
+ * gimple-ssa-warn-restrict.c (check_call): Same.
+ (wrestrict_dom_walker::before_dom_children): Same.
+ (builtin_access::builtin_access): Same.
+ (check_bounds_or_overlap): Same
+ (maybe_diag_overlap): Same.
+ (maybe_diag_offset_bounds): Same.
+ * tree-diagnostic.c (default_tree_printer): Move usage of
+ EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format
+ to this callsite.
+ * tree-pretty-print.c (percent_K_format): Add argument.
+ * tree-pretty-print.h: Add argument.
+ * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust.
+ * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust.
+ (maybe_diag_stxncpy_trunc): Same.
+ (handle_builtin_stxncpy): Same.
+ (handle_builtin_strcat): Same.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * match.pd: Optimise pointer range checks.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/86758
+ * tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try
+ to remove pattern statements.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the
+ result of dfs_enumerate_from when constructing stmt_vec_infos,
+ instead of additionally calling get_loop_body.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p
+ parameter.
+ * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
+ When creating an iv, assert that the step is not known to be zero.
+ (vect_setup_realignment): Update call accordingly.
+ * tree-vect-stmts.c (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise. Handle VMAT_INVARIANT separately.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vectorizer.h (vect_stmt_to_vectorize): New function.
+ * tree-vect-loop.c (vect_update_vf_for_slp): Use it.
+ (vectorizable_reduction): Likewise.
+ * tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
+ (vect_detect_hybrid_slp_stmts): Likewise.
+ * tree-vect-stmts.c (vect_is_simple_use): Likewise.
+
+2018-08-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-vrp (zero_nonzero_bits_from_bounds): Rename to...
+ (wide_int_set_zero_nonzero_bits): ...this.
+ (zero_nonzero_bits_from_vr): Rename to...
+ (vrp_set_zero_nonzero_bits): ...this.
+ (extract_range_from_multiplicative_op_1): Abstract wide int
+ code...
+ (wide_int_range_multiplicative_op): ...here.
+ (extract_range_from_binary_expr_1): Extract wide int binary
+ operations into their own functions.
+ (wide_int_range_lshift): New.
+ (wide_int_range_can_optimize_bit_op): New.
+ (wide_int_range_shift_undefined_p): New.
+ (wide_int_range_bit_xor): New.
+ (wide_int_range_bit_ior): New.
+ (wide_int_range_bit_and): New.
+ (wide_int_range_trunc_mod): New.
+ (extract_range_into_wide_ints): New.
+ (vrp_shift_undefined_p): New.
+ (extract_range_from_multiplicative_op): New.
+ (vrp_can_optimize_bit_op): New.
+ * tree-vrp.h (value_range::dump): New.
+ (wide_int_range_multiplicative_op): New.
+ (wide_int_range_lshift):New.
+ (wide_int_range_shift_undefined_p): New.
+ (wide_int_range_bit_xor): New.
+ (wide_int_range_bit_ior): New.
+ (wide_int_range_bit_and): New.
+ (wide_int_range_trunc_mod): New.
+ (zero_nonzero_bits_from_bounds): Rename to...
+ (wide_int_set_zero_nonzero_bits): ...this.
+ (zero_nonzero_bits_from_vr): Rename to...
+ (vrp_set_zero_nonzero_bits): ...this.
+ (range_easy_mask_min_max): Rename to...
+ (wide_int_range_can_optimize_bit_op): this.
+ * vr-values.c (simplify_bit_ops_using_ranges): Rename
+ zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vectorizer.h (vect_orig_stmt): New function.
+ * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it.
+ * tree-vect-loop.c (vect_model_reduction_cost): Likewise.
+ (vect_create_epilog_for_reduction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise.
+ (vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise.
+ * tree-vect-stmts.c (vectorizable_call): Likewise.
+ (vectorizable_simd_clone_call, vect_remove_stores): Likewise.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vectorizer.h (vect_transform_stmt): Remove grouped_store
+ argument.
+ * tree-vect-stmts.c (vect_transform_stmt): Likewise.
+ * tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly.
+ (vect_transform_loop): Likewise.
+ * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vectorizer.h (vect_schedule_slp): Return void.
+ * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
+ (vect_schedule_slp): Likewise.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled
+ argument.
+ (vect_transform_loop): Update calls accordingly. Schedule SLP
+ instances before the main loop, if any exist.
+
+2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/86749
+ * tree-vect-patterns.c (vect_determine_min_output_precision_1):
+ If the lhs is used in a COND_EXPR, check that it is being used
+ as the "then" or "else" value.
+
+2018-08-01 Tom de Vries <tdevries@suse.de>
+
+ PR target/86800
+ * config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to
+ speculation_safe_value_not_needed.
+
+2018-08-01 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses
+ as base and offset.
+
+2018-08-01 Martin Liska <mliska@suse.cz>
+
+ * value-prof.c (gimple_divmod_fixed_value_transform): Unify
+ format how successful transformation is dumped.
+ (gimple_mod_pow2_value_transform): Likewise.
+ (gimple_mod_subtract_transform): Likewise.
+ (gimple_stringops_transform): Likewise.
+
+2018-08-01 Martin Liska <mliska@suse.cz>
+
+ PR value-prof/35543
+ * value-prof.c (interesting_stringop_to_profile_p):
+ Simplify the code and add BUILT_IN_MEMMOVE.
+ (gimple_stringops_transform): Likewise.
+
+2018-08-01 Sam Tebbs <sam.tebbs@arm.com>
+
+ * config/aarch64/aarch64-simd.md
+ (*aarch64_get_lane_zero_extendsi<mode>): Rename to...
+ (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): ... This and
+ use GPI iterator instead of SI mode.
+
+2018-08-01 Richard Earnshaw <rearnsha@arm.com>
+
+ * config/rs6000/rs6000.md (speculation_barrier): Renamed from
+ rs6000_speculation_barrier.
+ * config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for
+ new barrier pattern name.
+
+2018-08-01 Richard Earnshaw <rearnsha@arm.com>
+
+ * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
+ (speculation_barrier): New insn.
+
2018-08-01 Richard Biener <rguenther@suse.de>
PR bootstrap/86724