x86: Don't generate vzeroupper if caller passes AVX/AVX512 registers
[gcc.git] / gcc / ChangeLog
index a57567cd8c92777012657441e96d686d35566f72..7b4f6e5270b2603eae870d303bb6a2c56eb1edcd 100644 (file)
@@ -1,6 +1,530 @@
+2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/88717
+       * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
+       ix86_avx_u128_mode_entry.
+
+2019-01-08  Martin Liska  <mliska@suse.cz>
+
+       PR tree-optimization/88753
+       * tree-switch-conversion.c (switch_conversion::build_one_array):
+       Come up with local variable constructor.  Convert first to
+       type of constructor values.
+
+2019-01-08  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/86554
+       * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
+       rpo_avail): Move earlier.
+       (visit_nary_op): When value-numbering to expressions
+       with different overflow behavior make sure there's an
+       available expression on the path.
+
+2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
+
+       * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
+       aarch64_parse_branch_protection,
+       struct aarch64_branch_protect_type,
+       aarch64_handle_no_branch_protection,
+       aarch64_handle_standard_branch_protection,
+       aarch64_validate_mbranch_protection,
+       aarch64_handle_pac_ret_protection,
+       aarch64_handle_attr_branch_protection,
+       accepted_branch_protection_string,
+       aarch64_pac_ret_subtypes,
+       aarch64_branch_protect_types,
+       aarch64_handle_pac_ret_leaf): Define.
+       (aarch64_override_options_after_change_1, aarch64_override_options):
+       Add check for accepted_branch_protection_string.
+       (aarch64_option_save): Save accepted_branch_protection_string.
+       (aarch64_option_restore): Save accepted_branch_protection_string.
+       * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
+       * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
+       msign-return-address.
+       * doc/invoke.texi: Add mbranch-protection.
+
+2019-01-08  Alan Modra  <amodra@gmail.com>
+
+       PR target/88614
+       * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
+       Delete "unknownp" parameter.  Adjust callers.  Handle
+       CONST_INT, PLUS, MINUS, and MULT.
+       (attr_value_aligned): Renamed from or_attr_value.
+       (min_attr_value): Return INT_MIN for unhandled rtl case..
+       (min_fn): ..and translate to INT_MAX here.
+       (write_length_unit_log): Modify to cope without "unknown".
+       (write_attr_value): Handle IF_THEN_ELSE.
+
+2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
+       optimization for masked stores.
+
+2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR middle-end/88567
+       * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
+       output vector directly to duplicate_and_interleave instead of
+       going through a temporary.  Postpone insertion of ctor_seq to
+       the end of the loop.
+
+2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/86891
+       * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
+       unsigned_p.  Handle signed and unsigned overflow correction as
+       required.
+       * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
+       prototype.
+       * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
+       for operand 2.
+       (add<mode>3_compareV_imm): Make this callable for expanding.
+       (subv<GPI:mode>4): Use register_operand for operand 1.  Use
+       aarch64_plus_operand for operand 2.
+       (subv<GPI:mode>_insn): New insn pattern.
+       (subv<GPI:mode>_imm): Likewise.
+       (negv<GPI:mode>3): New expand pattern.
+       (negv<GPI:mode>_insn): New insn pattern.
+       (negv<GPI:mode>_cmp_only): Likewise.
+       (cmpv<GPI:mode>_insn): Likewise.
+       (subvti4): Use register_operand for operand 1.  Update call to
+       aarch64_expand_subvti.
+       (usubvti4): Likewise.
+       (negvti3): New expand pattern.
+       (negdi_carryout): New insn pattern.
+       (negvdi_carryinV): New insn pattern.
+       (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
+       version the named version.
+       (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
+       operands.
+       (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
+       patterns.
+       (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
+       patterns.
+       (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
+       (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
+       (sub<mode>3_carryinCV): Delete.
+       (sub<GPI:mode>3_carryinV): New expand pattern.
+       sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
+
+2019-01-07  Richard Biener  <rguenther@suse.de>
+
+       * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
+       of tree_operand_hash.
+
+2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/88598
+       * tree.h (single_nonzero_element): Declare.
+       * tree.c (single_nonzero_element): New function.
+       * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
+       if I is the only nonzero element of CST.
+
+2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/88598
+       * tree.h (initializer_each_zero_or_onep): Declare.
+       * tree.c (initializer_each_zero_or_onep): New function.
+       (signed_or_unsigned_type_for): Handle float types too.
+       (unsigned_type_for, signed_type_for): Update comments accordingly.
+       * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
+       x & { 0 or -1, 0 or -1, ... }.
+
+2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
+       with x86_64-pc-linux-gnu.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       PR target/85486
+       * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
+       function.
+       (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
+       routines.
+
+2019-01-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
+       V_256_512 iterator instead of V_512 and TARGET_AVX instead of
+       TARGET_AVX512F as condition.
+
+       PR debug/88723
+       * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
+       const_not_ok_for_debug_p target hook.
+       (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
+       on UNSPEC and subexpressions thereof if all subexpressions of the
+       UNSPEC are CONSTANT_P.
+
+       PR tree-optimization/88676
+       * tree-ssa-phiopt.c (two_value_replacement): New function.
+       (tree_ssa_phiopt_worker): Call it.
+
+       PR sanitizer/88619
+       * cfgexpand.c (expand_stack_vars): Only align prev_offset to
+       ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
+
+       PR c++/85052
+       * tree-vect-generic.c: Include insn-config.h and recog.h.
+       (expand_vector_piecewise): Add defaulted ret_type argument,
+       if non-NULL, use that in preference to type for the result type.
+       (expand_vector_parallel): Formatting fix.
+       (do_vec_conversion, do_vec_narrowing_conversion,
+       expand_vector_conversion): New functions.
+       (expand_vector_operations_1): Call expand_vector_conversion
+       for VEC_CONVERT ifn calls.
+       * internal-fn.def (VEC_CONVERT): New internal function.
+       * internal-fn.c (expand_VEC_CONVERT): New function.
+       * fold-const-call.c (fold_const_vec_convert): New function.
+       (fold_const_call): Use it for CFN_VEC_CONVERT.
+       * doc/extend.texi (__builtin_convertvector): Document.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
+       * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
+       vector_red_partition, vector_red_sym): New global variables.
+       (nvptx_option_override): Initialize vector_red_sym.
+       (nvptx_declare_function_name): Restore red_partition register.
+       (nvptx_file_end): Emit code to declare the vector reduction variables.
+       (nvptx_output_red_partition): New function.
+       (nvptx_expand_shared_addr): Add vector argument. Use it to handle
+       large vector reductions.
+       (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
+       (nvptx_init_builtins): Add VECTOR_ADDR.
+       (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
+       Handle nvptx_expand_shared_addr.
+       (nvptx_get_shared_red_addr): Add vector argument and handle large
+       vectors.
+       (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
+       large vectors.
+       (nvptx_goacc_reduction_init): Likewise.
+       (nvptx_goacc_reduction_fini): Likewise.
+       (nvptx_goacc_reduction_teardown): Likewise.
+       (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
+       init,fini,teardown}.
+       (nvptx_init_axis_predicate): Initialize vector_red_partition.
+       (nvptx_set_current_function): Init vector_red_partition.
+       * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
+       (nvptx_red_partition): New insn.
+       * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       PR target/85381
+       * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
+       empty loops.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
+       (nvptx_option_override): Init oacc_bcast_partition.
+       (nvptx_init_oacc_workers): New function.
+       (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
+       (nvptx_needs_shared_bcast): New function.
+       (nvptx_find_par): Generalize to enable vectors to use shared-memory
+       to propagate state.
+       (nvptx_shared_propagate): Initialize vector bcast partition and
+       synchronization state.
+       (nvptx_single):  Generalize to enable vectors to use shared-memory
+       to propagate state.
+       (nvptx_process_pars): Likewise.
+       (nvptx_set_current_function): Initialize oacc_broadcast_partition.
+       * config/nvptx/nvptx.h (struct machine_function): Add
+       bcast_partition and sync_bar members.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
+       (nvptx_apply_dim_limits): New function.
+       (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
+       PTX_WARP_SIZE.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
+       as late as possible.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
+       (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
+       (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
+       (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
+       PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
+
+2019-01-07  Tom de Vries  <tdevries@suse.de>
+
+       * omp-offload.c (oacc_get_min_dim): New function.
+       * omp-offload.h (oacc_get_min_dim): Declare.
+
+2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
+
+       PR target/88521
+       * config/i386/i386.c (function_value_ms_64): Return small sturct in
+       AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
+
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR tree-opt/86020
+       Revert:
+       2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
+       
+        * ipa-inline.c (edge_badness): Use inlined_time instead of
+        inline_summaries->get.
+
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * opts.c (enable_fdo_optimizations): Enable
+       version-loops-for-strides, loop-interchange, unrol-and-jam
+       and tree-loop-distribution.
+       * invoke.texi: Document newly enabled options.
+
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * doc/invoke.texi (max-inline-insns-small): New parameters.
+       * ipa-inline.c (want_early_inline_function_p): simplify.
+       (want_inline_small_function_p): Fix pasto from previous patch;
+       use max-inline-insns-small bound.
+       * params.def (max-inline-insns-small): New param.
+       * ipa-fnsummary.c (analyze_function_body): Initialize time/size
+       variables correctly.
+
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * doc/invoke.texi: Document max-inline-insns-size,
+       uninlined-function-insns, uninlined-function-time,
+       uninlined-thunk-insns and uninlined-thunk-time.
+       * params.def: Add max-inline-insns-size,
+       uninlined-function-insns, uninlined-function-time,
+       uninlined-thunk-insns and uninlined-thunk-time.
+       * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
+       new parameters.
+       * ipa-inline.c (can_inline_edge_by_limits_p,
+       want_inline_small_function_p): Use new parameters.
+
+2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
+
+2019-01-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/82564
+       PR target/88620
+       * expr.c (expand_assignment): For calls returning VLA structures
+       if to_rtx is not a MEM, force it into a stack temporary.
+
+       PR debug/88635
+       * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
+       SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
+       Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
+       subexpressions of both operands.
+       (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
+       subrtxes are CONSTANT_P.
+       * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
+       2018-11-09 changes.
+
+2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
+
+       * params.def (hot-bb-count-ws-permille): Set to 990.
+
+2019-01-04  Martin Sebor  <msebor@redhat.com>
+
+       PR c/88546
+       * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
+       leaf.
+
+2019-01-04  Martin Sebor  <msebor@redhat.com>
+
+       PR c/88363
+       * doc/extend.texi (attribute alloc_align, alloc_size): Update.
+
+2019-01-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * gdbinit.in: Turn off pagination for the skip commands, restore
+       it to previous state afterwards.
+
+2019-01-04  Sam Tebbs  <sam.tebbs@arm.com>
+
+       PR gcc/87763
+       * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
+       count to 18.
+
+2019-01-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/88594
+       * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
+       of GET_MODE (opN) as modes of the libcall arguments.
+
+2019-01-04  Jan Beulich  <jbeulich@suse.com>
+
+       * config/i386/sse.md
+       (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
+       <avx512>_cmp<mode>3<mask_scalar_merge_name>,
+       <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
+       <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
+       avx512f_vmcmp<mode>3<round_saeonly_name>,
+       avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
+       avx512f_maskcmp<mode>3,
+       <avx512>_cvt<ssemodesuffix>2mask<mode>,
+       <avx512>_cvt<ssemodesuffix>2mask<mode>,
+       *<avx512>_cvtmask2<ssemodesuffix><mode>,
+       *<avx512>_cvtmask2<ssemodesuffix><mode>,
+       <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
+       <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
+       <avx512>_gt<mode>3<mask_scalar_merge_name>,
+       <avx512>_gt<mode>3<mask_scalar_merge_name>,
+       <avx512>_testm<mode>3<mask_scalar_merge_name>,
+       <avx512>_testnm<mode>3<mask_scalar_merge_name>,
+       *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
+       *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
+       *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
+       *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
+       avx512cd_maskb_vec_dup<mode>,
+       avx512cd_maskw_vec_dup<mode>,
+       avx512dq_fpclass<mode><mask_scalar_merge_name>,
+       avx512dq_vmfpclass<mode>,
+       avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
+       instead of =Yk.
+
+2019-01-03  Martin Sebor  <msebor@redhat.com>
+
+       PR tree-optimization/88659
+       * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
+
+2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
+
+       * config/rs6000/rs6000-string.c (expand_block_move): Don't use
+       unaligned vsx and avoid lxvd2x/stxvd2x.
+       (gen_lvx_v4si_move): New function.
+
+2019-01-03  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
+       (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
+       function.
+       * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
+
+2019-01-03  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (struct offload_attrs): New.
+       (populate_offload_attrs): New function.  Factor mask extraction out of
+       nvptx_reorg.  Add extraction of dimensions.
+       (nvptx_reorg): Use populate_offload_attrs.
+
+2019-01-03  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
+       cases for oacc_min_dims_p and routine_p.  Add asserts for
+       oacc_default_dims_p and offload_region_p.
+
+2019-01-03  Tom de Vries  <tdevries@suse.de>
+
+       * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
+       factored out of ...
+       (nvptx_goacc_validate_dims): ... here.
+
+2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR tree-optimization/85574
+       * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
+       structure.
+       (struct ssa_equip_hash_traits): Declare.
+       (val_ssa_equiv): Use custom hash traits using operand_equal_p.
+
+2019-01-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/88644
+       * dwarf2out.c (modified_type_die): If type is equal to sizetype,
+       change it to qualified_type.
+
+2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
+       (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
+
+2019-01-02  Martin Sebor  <msebor@redhat.com>
+            Jeff Law  <law@redhat.com>
+
+       * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
+       (get_range_strlen_tree): Update appropriately.
+       (get_range_strlen)
+       * gimple-fold.h (get_range_strlen): Drop unused last argument.
+
+       * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
+       rather than set_range_info.
+       * tree-ssa-strlen.c (set_strlen_range): Extracted from
+       maybe_set_strlen_range.  Handle potentially boundary crossing
+       cases more conservatively.
+       (maybe_set_strlen_range): Parts refactored into set_strlen_range.
+       Call set_strlen_range.
+       * tree-ssa-strlen.h (set_strlen_range): Add prototype.
+
+       PR middle-end/88663
+       * gimple-fold.c (get_range_strlen): Update prototype to no longer
+       need the flexp argument.
+       (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
+       from calls to get_range_strlen.  Update comments.  Just update
+       VAL for an unterminated const char array and let the reset of the
+       code handle it normally.  No longer try to set *flexp.  Adjust
+       return value.
+       (get_range_strlen): Update for the new get_range_strlen API.
+       (get_maxval_strlen): Similarly.
+       (gimple_fold_builtin_strlen): Handle update meaning of return value
+       from get_range_strlen.
+       * gimple-ssa-sprintf.c (get_string_length): Update for the new
+       get_range_strlen API.
+
+2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR lto/88130
+       * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
+       false at WPA time when body was removed.
+
+2019-01-02  Martin Liska  <mliska@suse.cz>
+
+       PR tree-optimization/88650
+       * predict.c (set_even_probabilities): Calculate probability
+       remainer only when really used.
+
+2019-01-02  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/88651
+       * tree-data-ref.c (analyze_subscript_affine_affine): Use
+       widest_ints when mangling max_stmt_execution results.
+
+2019-01-02  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/88621
+       * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
+       bitfields when canoncalizing.
+
+2019-01-02  Richard Biener  <rguenther@suse.de>
+
+       PR target/87545
+       * config/i386/x86-tune-costs.h (intel_cost): Adjust
+       cost of cheap SSE instruction.
+
+2019-01-02  Richard Biener  <rguenther@suse.de>
+
+       PR ipa/85574
+       * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
+       * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
+       function.
+       (sem_item_optimizer::do_congruence_step_f): Sort the congruence
+       set after UIDs before splitting them.
+
 2019-01-01  Martin Sebor  <msebor@redhat.com>
             Jeff Law  <law@redhat.com>
 
+       * gimple-fold.c (get_range_strlen_tree): Record if the computed
+       length is optimistic.  If it is, then arrange to compute the
+       conservative length as well.
+
        * gimple-fold.h (get_range_strlen): Update prototype.
        * builtins.c (check_access): Update call to get_range_strlen to use
        c_strlen_data pointer.   Change various variable accesses to instead