+2019-11-28 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92697
+ * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for
+ ifunc_resolvers.
+ * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag.
+ Removed trailig whitespace.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * profile-count.h (profile_count::combine_with_ipa_count_within):
+ Declare.
+ * profile-count.c (profile_count::combine_with_ipa_count_within):
+ New.
+ * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use
+ it.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions
+ of counters are done same way.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-cp.c (update_profiling_info): Fix scaling.
+
+2019-11-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92645
+ * tree-inline.c (remap_gimple_stmt): When the return value
+ is not wanted, elide GIMPLE_RETURN.
+
+2019-11-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92645
+ * tree-ssa-forwprop.c (get_bit_field_ref_def): Also handle
+ conversions inside a mode class. Remove restriction on
+ preserving the element size.
+ (simplify_vector_constructor): Deal with the above and for
+ identity permutes also try using VEC_UNPACK_[FLOAT_]LO_EXPR
+ and VEC_PACK_TRUNC_EXPR.
+
+2019-11-28 Georg-Johann Lay <avr@gjlay.de>
+
+ Must use push insn to pass varargs arguments of DFmode because
+ otherwise the middle-end generates wrong code.
+
+ PR target/92055
+ * config/avr/avr.md (MPUSH) [DF, DC]: Add modes to mode iterator.
+
+2019-11-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/92691
+ * tree-ssa-strlen.c (handle_store): Clarify return value meaning
+ in function comment.
+ (strlen_check_and_optimize_call): Likewise. For handle_printf_call
+ calls, return !handle_printf_call rather than always returning true.
+ (check_and_optimize_stmt): Describe return value meaning in function
+ comment. Formatting fix.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * profile-count.c (profile_count::to_sreal_scale): Handle correctly
+ combination of globa0 and global counters..
+
+2019-11-28 Kewen Lin <linkw@gcc.gnu.org>
+
+ PR target/92566
+ * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check
+ by VECTOR_UNIT_NONE_P instead.
+
+2019-11-28 Hongtao Liu <hongtao.liu@inte.com>
+
+ * gcc/config/i386/sse.md (avx512f_maskcmp<mode>3):
+ Refine VF to VF_AVX512VL.
+
+2019-11-27 Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/rs6000.md (movsi_internal): Reformat.
+ (movdi_internal64): Reformat.
+
+2019-11-27 Peter Bergner <bergner@linux.ibm.com>
+
+ PR bootstrap/92661
+ * config/rs6000/rs6000-call.c: (def_builtin): Do not define the
+ builtin if we don't have an actual type.
+ (builtin_function_type): If the builtin function uses a DFP type
+ and decimal float has been disabled, then return NULL_TREE.
+
+2019-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/92510
+ * combine.c (gen_lowpart_for_combine): Only transform lowpart subreg
+ of comparison into a comparison with different mode if both imode and
+ omode are scalar integral modes.
+
+2019-11-27 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/90007
+ * recog.c (constrain_operands): Permit hard registers too for
+ memory when LRA is used.
+
+2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
+
+ * config/m68k/m68k.c (m68k_output_compare_fp): Restore differences
+ between Coldfire and regular m68k.
+ * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants.
+
+2019-11-27 Richard Biener <rguenther@suse.de>
+
+ * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
+ * targhooks.c (default_builtin_vectorized_conversion): Likewise.
+ * targhooks.h (default_builtin_vectorized_conversion): Likewise.
+ * optabs-tree.c (supportable_convert_operation): Do not call
+ targetm.vectorize.builtin_conversion. Remove unused decl parameter.
+ * optabs-tree.h (supportable_convert_operation): Adjust.
+ * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
+ * doc/tm.texi: Regenerate.
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust.
+ * tree-vect-generic.c (expand_vector_conversion): Likewise.
+ * tree-vect-stmts.c (vect_gen_widened_results_half): Remove
+ unused decl parameter and adjust.
+ (vect_create_vectorized_promotion_stmts): Likewise.
+ (vectorizable_conversion): Adjust.
+
+2019-11-27 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92690
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
+ converting elements not originally converted.
+
+2019-11-27 Tobias Burnus <tobias@codesourcery.com>
+
+ PR middle-end/92463
+ * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo,
+ do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx,
+ mpfr_rnd_t instead of mp_rnd_t.
+ * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos,
+ do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise.
+ * gimple-ssa-sprintf.c (format_floating_max, format_floating):
+ Use mpfr_exp_t instead of mp_exp_t.
+ * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use
+ MPFR_RNDx instead of GMP_RNDx.
+ * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and
+ mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively.
+ * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead
+ of mp_rnd_t and remove MPFR_RNDx poisoning.
+ * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx.
+
+2019-11-27 Kewen Lin <linkw@gcc.gnu.org>
+
+ PR tree-optimization/91790
+ * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted
+ DR for vect_setup_realignment when first_stmt_info is different
+ from first_stmt_info_for_drptr.
+
+2019-11-27 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92645
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
+ CTORs with just a subset of the original vectors.
+
+2019-11-27 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/92674
+ * tree-inline.c (expand_call_inline): Delay purging EH/abnormal
+ edges and instead record blocks in bitmap.
+ (gimple_expand_calls_inline): Adjust.
+ (fold_marked_statements): Delay EH cleanup until all folding is
+ done.
+ (optimize_inline_calls): Do EH/abnormal cleanup for calls after
+ inlining finished.
+
+2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
+
+ * auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless
+ LRA is enabled.
+ * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is
+ disabled.
+
+2019-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/92664
+ * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
+
+2019-11-26 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/92683
+ * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test
+ inadvertently removed in a previous change. Rename local variable
+ for clarity.
+
+2019-11-26 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/92669
+ * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with
+ NULL pre_order.
+
+2019-11-26 Robin Dapp <rdapp@linux.ibm.com>
+
+ * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx.
+
+2019-11-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/92644
+ * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
+ next to INTEGER_CST checks.
+
+2019-11-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92645
+ * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops
+ do not build the operation from scalars if the operand is.
+
+2019-11-25 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map,
+ func_ids, funcs_tail, var_ids, vars_tail) Remove unused
+ definitions.
+
+2019-11-25 Martin Liska <mliska@suse.cz>
+
+ * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean
+ up used dump message.
+
+2019-11-25 Martin Liska <mliska@suse.cz>
+
+ PR bootstrap/92653
+ * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out
+ too strict checking assert.
+
+2019-11-25 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/91985
+ * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128)
+ (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to
+ error_mark_node if corresponding global tree node is NULL.
+ * tree.c (build_common_tree_nodes): Do not initialize
+ dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if
+ decimal floating-point not supported.
+
+2019-11-25 Joseph Myers <joseph@codesourcery.com>
+
+ * attribs.c (decl_attributes): Do not ignore C++11 attributes on
+ types.
+
+2019-11-25 Bernd Schmidt <bernds_cb1@t-online.de>
+
+ * config/m68k/m68k.c (output_move_himode, output_move_qimode):
+ Replace code for non-CONST_INT constants with gcc_unreachable.
+ * config/m68k/m68k.md (cbranchdi): Don't generate individual
+ compare and test.
+ (CMPMODE): New mode_iterator.
+ (cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with
+ cbranch<mode>4.
+ (cstoresi4, cstoreqi4, cstorehi4): Replace expanders with
+ cstore<mode>4.
+ (cmp<mode>_68881): Remove 'F' constraint from first comparison
+ operand.
+ (bit test insns patterns): Use nonimmediate_operand, not
+ register_operand, for source operands that allow memory in
+ their constraints.
+ (divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns):
+ Use register_operand, not nonimmediate_operand, for the
+ destinations.
+ (DBCC): New mode_iterator.
+ (dbcc peepholes): Use it to reduce duplication.
+ (trap): Use const_true_rtx, not const1_rtx.
+ * config/m68k/predicates.md (m68k_comparison_operand): Renamed
+ from m68k_subword_comparison_operand and changed to handle
+ SImode.
+
+ PR target/91851
+ * config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust
+ declaration.
+ (m68k_init_cc): New declaration.
+ (m68k_output_compare_di, m68k_output_compare_si)
+ (m68k_output_compare_hi, m68k_output_compare_qi)
+ (m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst)
+ (m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float)
+ (m68k_output_branch_integer, m68k_output_branch_integer_rev.
+ m68k_output_branch_float, m68k_output_branch_float_rev):
+ Likewise.
+ (valid_dbcc_comparison_p_2, flags_in_68881)
+ (output_btst): Remove declaration.
+ * config/m68k/m68k.c (INCLDUE_STRING): Define.
+ (TARGET_ASM_FINAL_POSTSCAN_INSN): Define.
+ (valid_dbcc_comparison_p_2, flags_in_68881): Delete functions.
+ (flags_compare_op0, flags_compare_op1, flags_operand1,
+ flags_operand2, flags_valid): New static variables.
+ (m68k_find_flags_value, m68k_init_cc): New functions.
+ (handle_flags_for_move, m68k_asm_final_postscan_insn,
+ remember_compare_flags): New static functions.
+ (output_dbcc_and_branch): New argument CODE. Use it, and add
+ PLUS and MINUS to the possible codes. All callers changed.
+ (m68k_output_btst): Renamed from output_btst. Remove OPERANDS
+ and INSN arguments, add CODE arg. Return the comparison code
+ to use. All callers changed. Use CODE instead of
+ next_insn_tests_no_inequality, and replace cc_status management
+ with changing the return code.
+ (m68k_rtx_costs): Instead of testing for COMPARE, test for
+ RTX_COMPARE or RTX_COMM_COMPARE.
+ (output_move_simode, output_move_qimode): Call
+ handle_flags_for_move.
+ (notice_update_cc): Delete function.
+ (m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si,
+ m68k_output_compare_hi, m68k_output_compare_qi,
+ m68k_output_compare_fp, m68k_output_branch_integer,
+ m68k_output_branch_integer_rev, m68k_output_scc,
+ m68k_output_branch_float, m68k_output_branch_float_rev,
+ m68k_output_scc_float): New functions.
+ (output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT
+ once at the start, and set flags_valid and flags_operand1 if the
+ flags are usable.
+ * config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC,
+ CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove
+ definitions.
+ (CC_STATUS_INIT): Define.
+ * config/m68k/m68k.md (flags_valid): New define_attr.
+ (tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal,
+ tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal,
+ cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf,
+ cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns,
+ tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc,
+ sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1,
+ sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
+ bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu,
+ ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle,
+ bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev,
+ blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev,
+ bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev,
+ bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4,
+ ctrapqi4, conditional_trap): Delete patterns.
+ (cbranchdi4_insn): New pattern.
+ (cbranchdi4): Don't generate cc0 patterns. When testing LT or GE,
+ test high part only. When testing EQ or NE, generate beq0_di
+ and bne0_di patterns directly.
+ (cstoredi4): When testing LT or GE, test high part only.
+ (both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0
+ patterns.
+ (scc0_constraints, cmp1_constraints, cmp2_constraints,
+ scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints,
+ cmp2_cf_predicate): New define_mode_attrs.
+ (cbranch<mode>4_insn, cbranch<mode>4_insn_rev,
+ cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev,
+ cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes)
+ New patterns.
+ (cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881):
+ (cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf,
+ cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP):
+ New patterns.
+ (cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn,
+ cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1):
+ Likewise.
+ (BTST): New define_mode_iterator.
+ (btst_predicate, btst_constraint, btst_range): New
+ define_mode_attrs.
+ (cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New
+ patterns.
+ (movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns,
+ unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf
+ patterns): Set attr "flags_valid".
+ (truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS
+ management. Set attr "flags_valid".
+ (extendsidi2, extendplussidi, unnamed float_extendsfdf pattern,
+ extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2,
+ addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf,
+ addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove
+ manual CC_STATUS management.
+ (addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3,
+ unnamed strict_lowpart subhi and subqi patterns): Set attr
+ "flags_valid".
+ (unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise.
+ Remove code to operate on address regs and assert the case
+ does not occur.
+ (unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove
+ manual CC_STATUS_INIT.
+ (andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3,
+ xorsi3_internal, xorhi3, xorqi3, negsi2_internal,
+ negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2,
+ one_cmplqi2, unnamed strict_lowpart patterns
+ for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi,
+ one_cmplhi and one_cmplqi): Set attr "flags_valid".
+ (iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT.
+ (ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual
+ CC_STATUS_INIT.
+ (ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3,
+ lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3,
+ rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3,
+ unnamed strict_low_part patterns for HI and
+ QI versions): Set attr "flags_valid".
+ (bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg,
+ bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem,
+ insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg,
+ insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi,
+ dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management.
+ (various unnamed peepholes): Adjust compare/branch sequences
+ for new cbranch patterns.
+ (dbcc peepholes): Likewise, and output the comparison here
+ as well.
+ * config/m68k/predicates.md (valid_dbcc_comparison_p): Delete.
+ (fp_src_operand): Allow constant zero.
+ (address_reg_operand): New predicate.
+
+ * rtl.h (inequality_comparisons_p): Remove declaration.
+ * recog.h (next_insn_tests_no_inequality): Likewise.
+ * rtlanal.c (inequality_comparisons_p): Delete function.
+ * recog.c (next_insn_tests_no_inequality): Likewise.
+
+2019-11-25 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion.
+ (vect_detect_hybrid_slp): Swap lane and instance iteration,
+ properly re-building the visited hash-map for each lane.
+
+2019-11-25 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
+ gcn_md_reorg): Remove unused variables.
+ (gcn_emutls_var_init): Add missing (but unreachable) return
+ to silence warning.
+ (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure
+ target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use
+ an uninitialized variable.
+
+2019-11-25 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92109
+ * cgraph.h (cgraph_node::remove_from_clone_tree): Declare.
+ * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method.
+ (cgraph_materialize_clone): Move removel from clone tree to the
+ the new method and use it instead.
+ * ipa.c (symbol_table::remove_unreachable_nodes): When removing
+ bodies of clones, also remove it from the clone tree.
+
+2019-11-25 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/91956
+ * ipa-sra.c (process_isra_node_results): Put the new node to the
+ same comdat group as the original node.
+
+2019-11-25 Georg-Johann Lay <avr@gjlay.de>
+
+ Build double32 / long-double32 multilibs if needed.
+
+ PR target/92055
+ * config/avr/t-avr:
+ (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars.
+ (HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE)
+ (HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from
+ tm_defines and pass to genmultilib.awk.
+ * config/avr/genmultilib.awk: Use these variables to add double32
+ and / or long-double32 multilib(s) as needed.
+ * config/avr/driver-avr.c (avr_double_lib): Adjust comment.
+
+2019-11-25 Richard Biener <rguenther@suse.de>
+
+ * cfgloop.h (get_loop_exit_edges): Add extra parameter denoting
+ loop body, defaulted to NULL.
+ (single_likely_exit): Add exit vector argument
+ * tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument.
+ (number_of_iterations_exit): Likewise.
+ (number_of_iterations_exit_assumptions): Likewise.
+ * cfgloop.c (get_loop_exit_edges): Use passed in loop body
+ if not NULL.
+ * cfgloopanal.c (single_likely_exit): Use passed in exit vector.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Compute exit vector around call to single_likely_exit.
+ * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down
+ loop body to loop_only_exit_p.
+ * tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from
+ caller.
+ (number_of_iterations_exit_assumptions): Get loop body from caller
+ if not NULL.
+ (number_of_iterations_exit): Pass through new loop body arg.
+ (infer_loop_bounds_from_undefined): Get loop body from caller.
+ (estimate_numbers_of_iterations): Compute loop body once.
+
+2019-11-25 Richard Biener <rguenther@suse.de>
+
+ * cfganal.c (pre_and_rev_post_order_compute_fn): Use an
+ auto_bb_flag instead of an sbitmap for visited handling.
+
+2019-11-25 Kewen Lin <linkw@gcc.gnu.org>
+
+ * config/rs6000/vector.md (vector_fp_comparison_simple): New code
+ iterator.
+ (vector_fp_comparison_complex): Likewise.
+ (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New
+ define_and_split.
+ (vector_<code><mode> for VEC_F and vector_fp_comparison_complex):
+ Likewise.
+ (vector_lt<mode> for VEC_F): Refactor with
+ vector_fp_comparison_simple.
+ (vector_le<mode> for VEC_F): Likewise.
+ (vector_unge<mode> for VEC_F): Likewise.
+ (vector_unle<mode> for VEC_F): Likewise.
+ (vector_ne<mode> for VEC_F): Likewise.
+ (vector_ungt<mode> for VEC_F): Likewise.
+ (vector_unlt<mode> for VEC_F): Likewise.
+ (vector_ltgt<mode> for VEC_F): Refactor with
+ vector_fp_comparison_complex.
+ (vector_ordered<mode> for VEC_F): Likewise.
+ (vector_uneq<mode> for VEC_F): Likewise.
+ (vector_unordered<mode> for VEC_F): Likewise.
+
+2019-11-24 Bernd Schmidt <bernds_cb1@t-online.de>
+
+ * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a
+ COMPARE, representing an overflow detection.
+
+ * combine.c (combine_instructions): Record costs for jumps.
+
+ * combine.c (can_combine_p): Allow autoinc in jumps.
+
+2019-11-23 Jan Hubicka <hubicka@ucw.cz>
+
+ * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove.
+ * doc/invoke.texi (max-inline-insns-single-O2,
+ inline-heuristics-hint-percent-O2, inline-min-speedup-O2,
+ early-inlining-insns-O2): Remove documentation.
+ * ipa-fnsummary.c (analyze_function_body,
+ compute_fn_summary): Use opt_for_fn when accessing parameters.
+ * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
+ inline_insns_auto, can_inline_edge_by_limits_p,
+ want_early_inline_function_p, big_speedup_p,
+ want_inline_small_function_p, want_inline_self_recursive_call_p,
+ recursive_inlining, compute_max_insns, inline_small_functions):
+ Likewise.
+ * opts.c (default_options): Add -O3 defaults for
+ OPT__param_early_inlining_insns_,
+ OPT__param_inline_heuristics_hint_percent_,
+ OPT__param_inline_min_speedup_, OPT__param_max_inline_insns_single_.
+ * params.opt (-param=early-inlining-insns-O2=,
+ -param=inline-heuristics-hint-percent-O2=,
+ -param=inline-min-speedup-O2=, -param=max-inline-insns-single-O2=
+ -param=early-inlining-insns=, -param=inline-heuristics-hint-percent=,
+ -param=inline-min-speedup=, -param=inline-unit-growth=,
+ -param=large-function-growth=, -param=large-stack-frame=,
+ -param=large-stack-frame-growth=, -param=large-unit-insns=,
+ -param=max-inline-insns-recursive=,
+ -param=max-inline-insns-recursive-auto=,
+ -param=max-inline-insns-single=,
+ -param=max-inline-insns-size=, -param=max-inline-insns-small=,
+ -param=max-inline-recursive-depth=,
+ -param=max-inline-recursive-depth-auto=,
+ -param=min-inline-recursive-probability=,
+ -param=partial-inlining-entry-probability=,
+ -param=uninlined-function-insns=, -param=uninlined-function-time=,
+ -param=uninlined-thunk-insns=, -param=uninlined-thunk-time=): Add
+ Optimization.
+
+2019-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ * ipa-fnsummary.c: Fix comment typos.
+ * ipa-ref.h: Likewise.
+ * ipa-predicate.h: Likewise.
+ * ipa-split.c: Likewise.
+ * ipa-inline-analysis.c: Likewise.
+ * ipa-predicate.c: Likewise.
+ * ipa-devirt.c: Likewise.
+ * ipa-icf.h: Likewise.
+ * profile-count.c: Likewise.
+ * ipa-icf.c: Likewise.
+ (sem_function::equals_wpa): Fix typos in dump messages.
+ * ipa-icf-gimple.h: Fix comment typos.
+ * ipa-inline-transform.c: Likewise.
+ * ipa-polymorphic-call.c: Likewise.
+ * ipa-fnsummary.h: Likewise.
+ * ipa-inline.c: Likewise.
+ (dump_inline_stats): Fix typo in debug dump message.
+ * profile-count.h: Fix comment typos.
+
+ PR target/92615
+ * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
+ GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
+ register_operand, force x into register before storing it into dest.
+ Formatting fix.
+
+ PR middle-end/83859
+ * doc/extend.texi (attribute access): Fix a typo.
+
+ PR rtl-optimization/92610
+ * cse.c (rest_of_handle_cse2): Call cleanup_cfg (0) also if
+ cse_cfg_altered is set, even when tem is 0.
+ (rest_of_handle_cse_after_global_opts): Likewise.
+
+2019-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/92458
+ * tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash,
+ tree_hash): Move to ...
+ * tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here.
+ (struct decl_tree_cache_traits, struct type_tree_cache_traits): New
+ types.
+ (decl_tree_cache_map, tree_tree_cache_map): New typedefs.
+
+ PR tree-optimization/92618
+ * tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct
+ containing the auto_vec and a tree.
+ (undistribute_bitref_for_vector): Handle the case when element type
+ of vec is not the same as type of the BIT_FIELD_REF. Formatting
+ fixes.
+
+2019-11-22 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/83859
+ * attribs.h (struct attr_access): New.
+ * attribs.c (decl_attributes): Add an informational note.
+ * builtins.c (check_access): Make extern. Consistently set no-warning
+ after issuing a warning. Handle calls through function pointers. Set
+ no-warning.
+ * builtins.h (check_access): Declare.
+ * calls.c (rdwr_access_hash): New type.
+ (rdwr_map): Same.
+ (init_attr_rdwr_indices): New function.
+ (maybe_warn_rdwr_sizes): Same.
+ (initialize_argument_information): Call init_attr_rdwr_indices.
+ Call maybe_warn_rdwr_sizes.
+ (get_size_range): Avoid null argument.
+ * doc/extend.texi (attribute access): Document new attribute.
+
+2019-11-22 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.c (OMP_LDS_SIZE): Define.
+ (ACC_LDS_SIZE): Define.
+ (OTHER_LDS_SIZE): Define.
+ (LDS_SIZE): Redefine using above.
+ (gcn_expand_prologue): Initialize m0 with LDS_SIZE-1.
+
+2019-11-22 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/88226
+ * builtins.c (check_nul_terminated_array): New function.
+ (fold_builtin_0): Remove declaration.
+ (fold_builtin_1): Same.
+ (fold_builtin_2): Same.
+ (fold_builtin_3): Same.
+ (fold_builtin_strpbrk): Add argument.
+ (fold_builtin_strspn): Same.
+ (fold_builtin_strcspn): Same.
+ (expand_builtin_strcat): Call it. Remove unused argument.
+ (expand_builtin_stpncpy): Same.
+ (expand_builtin_strncat): Same.
+ (expand_builtin_strncpy): Same. Adjust indentation.
+ (expand_builtin_strcmp): Same.
+ (expand_builtin_strncmp): Same.
+ (expand_builtin_fork_or_exec): Same.
+ (expand_builtin): Handle more built-ins.
+ (fold_builtin_2): Add argument.
+ (fold_builtin_n): Make static. Add argument.
+ (fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2.
+ (fold_builtin_call_array): Pass new argument to fold_builtin_n.
+ (fold_builtin_strpbrk): Add argument. Call check_nul_terminated_array.
+ (fold_call_stmt): Pass new argument to fold_builtin_n.
+ * builtins.h: Correct a comment.
+ * gimple-fold.c (gimple_fold_builtin_strchr): Call
+ check_nul_terminated_array.
+ * tree-ssa-strlen.c (handle_builtin_strlen): Call
+ check_nul_terminated_array.
+ (handle_builtin_strchr): Same.
+ (handle_builtin_string_cmp): Same.
+
+2019-11-22 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/92501
+ * gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp
+ handle unterminated arrays. Rename local variables for clarity.
+
+2019-11-22 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate
+ granulated_sgprs according to architecture.
+
+2019-11-22 Jan Hubicka <jh@suse.cz>
+
+ * ggc-page.c (ggc_collect): Call memory_block_pool::trim.
+ * memory-block.cc (memory_block_pool::clear_free_list): Rename to ...
+ (memory_block_pool::reduce_free_list): ... this one.
+ (memory_block_pool::trim): New static function.
+ * memory-block.h (memory_block_pool::freelist_size): New constant
+ (memory_block_pool::clear_free_list): Rename to ...
+ (memory_block_pool::reduce_free_list): ... this one.
+ (memory_block_pool::trim): Declare.
+
+2019-11-22 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vect-stmts.c (vect_model_simple_cost): Take an optional
+ vect_cost_for_stmt.
+ (vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION
+ here rather than...
+ * tree-vect-loop.c (vect_model_reduction_cost): ...here.
+
+2019-11-22 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.md (bic_f): Use cc_set_register predicate.
+ (bic_cmp0_noout): New pattern.
+ (bic_cmp0): Likewise.
+ (neg_scc_insn): Remove pattern.
+ (not_scc_insn): Likewise.
+
+2019-11-21 Harald van Dijk <harald@gigawatt.nl>
+
+ * doc/invoke.texi (-fcommon): Remove claim about ISO C.
+
+2019-11-21 Joseph Myers <joseph@codesourcery.com>
+
+ * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use
+ pedwarn instead of warning_at for fallthrough not preceding a case
+ or default label.
+
+2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+
+ PR tree-optimization/92608
+ * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
+ of dyn_cast.
+
+2019-11-21 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/predicates.md (extra_insn_branch_comparison_operator):
+ New predicate.
+ * config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration.
+ * config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything
+ special for FP comparisons that need a cror instruction eventually.
+ (rs6000_emit_fp_cror): New function.
+ (rs6000_emit_sCOND): Expand all floating point comparisons to one
+ instruction, for normal FP modes, with HONOR_NANS.
+ (rs6000_emit_cbranch): Reformat.
+ * config/rs6000/rs6000.md (fp_rev): New iterator.
+ (fp_two): New iterator.
+ *<code><mode>_cc for fp_rev and GPR: New define_insn_and_split.
+ *<code><mode>_cc for fp_two and GPR: New define_insn_and_split.
+ *cbranch_2insn: New define_insn_and_split.
+
+2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/92526
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject
+ versioning for alignment if the accesses do not have a consistent
+ mask, rather than asserting that the masks are consistent.
+
+2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/92595
+ * tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P
+ check.
+ (vectorizable_store, vectorizable_load): Likewise.
+
+2019-11-21 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE.
+ (resolve_noninline_speculation, inline_small_functions): Avoid
+ redundant updates.
+
+2019-11-21 Richard Biener <rguenther@suse.de>
+
+ * lra.c (lra_insn_recog_data_pool): New.
+ (free_insn_recog_data): Adjust.
+ (finish_insn_recog_data): Release lra_insn_recog_data_pool.
+ (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
+
+2019-11-21 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92596
+ * tree-vect-slp.c (vect_build_slp_tree): Fix pasto.
+
+2019-11-21 Jan Hubicka <jh@suse.cz>
+
+ * ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
+ ready for some vectors to not be allocated.
+ (evaluate_properties_for_edge): Document better; make
+ known_vals and known_aggs caller allocated; avoid determining
+ values of parameters which are not used.
+ (ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
+ known_aggs.
+ * ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
+ (do_estimate_edge_size): Likewise.
+ (do_estimate_edge_hints): Likewise.
+ * ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
+ values are not known.
+ (ipa_release_agg_values): Add option to not release vector itself.
+ * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR.
+
+2019-11-21 Richard Biener <rguenther@suse.de>
+
+ * cfgloop.h (loop_iterator::~loop_iterator): Remove.
+ (loop_iterator::to_visit): Use an auto_vec with internal storage.
+ (loop_iterator::loop_iterator): Adjust.
+ * cfganal.c (compute_dominance_frontiers_1): Fold into...
+ (compute_dominance_frontiers): ... this. Hoist invariant
+ get_immediate_dominator call.
+ (compute_idf): Use a work-set instead of a work-list for more
+ optimal iteration order and duplicate avoidance.
+ * tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating
+ the vector all the time, instead pre-allocate the vector only
+ once.
+ (delete_update_ssa): Simplify.
+ * vec.h (va_heap::release): Disable -Wfree-nonheap-object around it.
+
+2019-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/91355
+ * tree-ssa-sink.c (select_best_block): Use >= rather than >
+ for early_bb scaled count with best_bb count comparison.
+
+ * ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo,
+ preffer -> prefer.
+ * ipa-inline.c (edge_badness): Likewise.
+ * lto-streamer.h (class lto_location_cache): Likewise.
+ * tree-ssa-sink.c (select_best_block): Likewise. Fix comment typos,
+ gratutious -> gratuitous.
+
+2019-11-21 Richard Biener <rguenther@suse.de>
+
+ Revert
+ 2019-09-17 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/91790
+ * tree-vect-stmts.c (vectorizable_load): For BB vectorization
+ use the correct DR for setting up realignment.
+
+2019-11-21 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (equiv_class_hasher): Change to nofree.
+ (equiv_class_obstack): New.
+ (equiv_class_lookup_or_add): Allocate from equiv_class_obstack.
+ (perform_var_substitution): Initialize equiv_class_obstack.
+ (free_var_substitution_info): Free equiv_class_obstack.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (want_early_inline_function_p): Do not estimate
+ edge growth when callee function is very large.
+ * ipa-inline.h (estimate_min_edge_growth): New.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow
+ negative time in calls summary; correct roundoff errors
+ leading to negative times.
+ (ipa_merge_fn_summary_after_inlining): Update calls size time table
+ if present.
+ (ipa_update_overall_fn_summary): Add RESET parameter.
+ * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype.
+ * ipa-inline-transform.c (inline_call): Enable incremental updates.
+
+2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
+ def types for two-operation SLP.
+
+2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR testsuite/92366
+ * doc/sourcebuild.texi (vect_char_add): Document.
+
+2019-11-20 Alexandre Oliva <oliva@adacore.com>
+
+ * function.h (CALLEE_FROM_CGRAPH_P): Remove.
+ * function.c (record_final_call): Record even calls that might
+ have been in the cgraph.
+ * toplev.c (dump_final_node_vcg): Skip iteration over cgraph
+ callees.
+
+2019-11-20 Janne Blomqvist <jb@gcc.gnu.org>
+
+ * configure.ac: Use https for gcc.gnu.org
+ * configure: Regenerated.
+ * doc/install.texi: Use https for gcc.gnu.org.
+ * doc/sourcebuild.texi: Likewise.
+
+2019-11-20 Julian Brown <julian@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL
+ parameter and update call_size_time_table.
+ (ipa_fn_summary::max_size_time_table_size): New constant.
+ (estimate_calls_size_and_time_1): Break out from ...
+ (estimate_calls_size_and_time): ... here; implement summary production.
+ (summarize_calls_size_and_time): New function.
+ (ipa_call_context::estimate_size_and_time): Bypass
+ estimate_calls_size_and_time for leaf functions.
+ (ipa_update_overall_fn_summary): Likewise.
+ * ipa-fnsummary.h (call_size_time_table): New.
+ (ipa_fn_summary::account_size_time): Update prototype.
+
+2019-11-20 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/invoke.texi (-Wc11-c2x-compat): Document.
+
+2019-11-20 Wilco Dijkstra <wdijkstr@arm.com>
+
+ PR85678
+ * common.opt (fcommon): Change init to 1.
+ * doc/invoke.texi (-fcommon): Update documentation.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
+ to ordinary array.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap):
+ Add allocator parameter.
+ (fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction.
+ (fibonacci_heap<K,V>::m_allocator): New.
+ (fibonacci_heap<K,V>::m_own_allocator): New.
+ (fibonacci_heap<K,V>::insert): Use allocator.
+ (fibonacci_heap<K,V>::extract_min): Likewise.
+ (fibonacci_heap<K,V>::union_with): Assert that both heaps share
+ allocator.
+ (fibonacci_heap<K,V>::consolidate): Allocate constant sized vector
+ on stack.
+ * fibonacci_heap.c: Include alloc-pool
+ (test_empty_heap): Initialize allocator.
+ (test_union): Likewise.
+ * bb-reorder.c: Include alloc-pool.h.
+ * tracer.c: Inlclude alloc-pool.h.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (DFS::sccstack): Turn into auto-vec.
+ Preallocate for 32 entries.
+ (DFS::worklist): Likewise.
+ (DFS::DFS): Do not initialize sccstack and worklist.
+ (DFS::~DFS): Do not release sccstack.
+
+2019-11-20 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/92573
+ * config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD):
+ Handle UNORDERED if !HONOR_NANS.
+
+2019-11-20 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ...
+ (edge_badness): ... here.
+ (inline_small_functions): Use monotonicity of badness calculation
+ to avoid redundant updates.
+
2019-11-20 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_analyze_slp_instance): Dump