1. 25 Jul, 2019 10 commits
    • tree-vrp.c (extract_range_from_multiplicative_op): Add type parameter and use it… · e2cfa983
      tree-vrp.c (extract_range_from_multiplicative_op): Add type parameter and use it instead of guessing expression type from the...
      
      2019-07-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.c (extract_range_from_multiplicative_op): Add
      	type parameter and use it instead of guessing expression
      	type from the first operand.
      	(extract_range_from_binary_expr): Pass expr_type down.
      
      From-SVN: r273797
      Richard Biener committed
    • [arm][committed] Clean up code iterator usage in satsi* patterns · c9357dc1
      
      GCC 10 now supports having RTL codes being code attributes (thanks
      Richard) allowing us to map smax to smin and vice versa.
      This means we can clean up their use in the saturation patterns that do
      the cross product of [smin, smax] and use the pattern
      predicate to cancel out the nonsense ones.
      
      	* config/arm/arm.md (SATrev): Change to code attribute.
      	(*satsi_<SAT:code>): Adjust for the above.
      	(*satsi_<SAT:code>_shift): Likewise.
      
      From-SVN: r273796
      Kyrylo Tkachov committed
    • gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): Make… · 0982acbe
      gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): Make value_range * temporary const.
      
      2019-07-25  Richard Biener  <rguenther@suse.de>
      
      	* gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
      	Make value_range * temporary const.
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
      	Likewise.
      	(evrp_range_analyzer::record_ranges_from_): Likewise.
      	(evrp_range_analyzer::pop_value_range): Return a const value_range *,
      	deal with having recorded a const one.
      	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
      	Return a const value_range *.
      	(evrp_range_analyzer::pop_value_range): Likewise.
      	(evrp_range_analyzer::stack): Record const value_range *s.
      	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
      	Adjust.
      	* gimple-ssa-sprintf.c (get_int_range): Likewise.
      	(format_integer): Likewise.
      	(sprintf_dom_walker::handle_gimple_call): Likewise.
      	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
      	* tree-vrp.c (vrp_prop::set_def_to_varying): Add.
      	(vrp_prop::get_value_range): Adjust.
      	(vrp_prop::vrp_initialize): Use set_def_to_varying instead of
      	modifying the lattice in-place.
      	(vrp_prop::visit_stmt): Likewise.
      	* vr-values.c (vr_values::get_lattice_entry): New private method.
      	(vr_values::get_value_range): Wrap it and return a const
      	value_range *.
      	(vr_values::set_def_to_varying): New.
      	(vr_values::set_defs_to_varying): Use it.
      	(vr_values::update_value_range): Likewise.
      	(vr_values::vrp_stmt_computes_nonzero): Adjust.
      	(values::op_with_constant_singleton_va): Likewise.
      	(vr_values::extract_range_for_var_from_co): Likewise.
      	(vr_values::extract_range_from_ssa_name): Likewise.
      	(vr_values::extract_range_from_cond_expr): Likewise.
      	(vr_values::extract_range_basic): Likewise.
      	(compare_ranges): Take const value_range *, adjust.
      	(compare_range_with_value): Likewise.
      	(vrp_valueize): Adjust.
      	(vrp_valueize_1): Likewise.
      	(vr_values::get_vr_for_comparison): Return a const value_range *.
      	(vr_values::compare_name_with_value): Adjust.
      	(vr_values::compare_names): Likewise.
      	(vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
      	Likewise.
      	(vr_values::vrp_evaluate_conditional): Likewise.
      	(find_case_label_ranges): Take a const value_range *.
      	(vr_values::vrp_visit_switch_stmt): Adjust.
      	(vr_values::extract_range_from_phi_node): Likewise.
      	(vr_values::simplify_div_or_mod_using_ran): Likewise.
      	(vr_values::simplify_abs_using_ranges): Likewise.
      	(test_for_singularity): Take a const value_range *.
      	(range_fits_type_p): Likewise.
      	(vr_values::simplify_cond_using_ranges_1): Adjust.
      	(vr_values::simplify_cond_using_ranges_2): Likewise.
      	(vr_values::simplify_switch_using_ranges): Likewise.
      	(vr_values::simplify_float_conversion_usi): Likewise.
      	(vr_values::two_valued_val_range_p): Likewise.
      	* vr-values.h (vr_values::get_value_range): Return a const
      	value_range *.
      	(vr_values::set_def_to_varying): New.
      	(vr_values::get_lattice_entry): New private method.
      	(vr_values::get_vr_for_comparison): Return a const value_range *.
      
      From-SVN: r273792
      Richard Biener committed
    • Extend DCE to remove unnecessary new/delete-pairs (PR c++/23383). · 6343b6bf
      2019-07-25  Martin Liska  <mliska@suse.cz>
      	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
      
      	PR c++/23383
      	* common.opt: Add -fallocation-dce
      	* gimple.c (gimple_call_operator_delete_p): New.
      	* gimple.h (gimple_call_operator_delete_p): Likewise.
      	* tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
      	DECL_IS_OPERATOR_DELETE_P.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	(propagate_necessity): Likewise.
      	(eliminate_unnecessary_stmts): Handle
      	gimple_call_operator_delete_p.
      	* tree-streamer-in.c (unpack_ts_function_decl_value_fields):
      	Add packing of OPERATOR_DELETE.
      	* tree-streamer-out.c (pack_ts_function_decl_value_fields):
      	Similarly here.
      	* tree.h (DECL_IS_OPERATOR_DELETE_P): New.
      	(DECL_SET_IS_OPERATOR_DELETE): New.
      	(DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
      2019-07-25  Martin Liska  <mliska@suse.cz>
      	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
      
      	PR c++/23383
      	* c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.
      2019-07-25  Martin Liska  <mliska@suse.cz>
      	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
      
      	PR c++/23383
      	* decl.c (cxx_init_decl_processing): Mark delete operators
      	with DECL_SET_IS_OPERATOR_DELETE.
      2019-07-25  Martin Liska  <mliska@suse.cz
      	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
      
      	PR c++/23383
      	* g++.dg/cpp1y/new1.C: New test.
      2019-07-25  Martin Liska  <mliska@suse.cz>
      	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
      
      	PR c++/23383
      	* testsuite/ext/bitmap_allocator/check_delete.cc: Add
      	-fno-allocation-dce.
      	* testsuite/ext/bitmap_allocator/check_new.cc: Likewise.
      	* testsuite/ext/new_allocator/check_delete.cc: Likewise.
      	* testsuite/ext/new_allocator/check_new.cc: Likewise.
      
      Co-Authored-By: Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
      
      From-SVN: r273791
      Martin Liska committed
    • Come up with function_decl_type and use it in tree_function_decl. · cb50701e
      2019-07-25  Martin Liska  <mliska@suse.cz>
      
      	* calls.c (maybe_warn_alloc_args_overflow): Use new macros
      	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
      	* coverage.c (coverage_begin_function): Likewise.
      	* fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
      	* gimple.c (gimple_call_nonnull_result_p): Likewise.
      	* ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
      	(sem_item::hash_referenced_symbol_properties): Likewise.
      	* lto-streamer-out.c (hash_tree): Likewise.
      	* predict.c (expr_expected_value_1): Likewise.
      	* tree-inline.c (expand_call_inline): Likewise.
      	* tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
      	* tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
      	* tree-core.h (enum function_decl_type): New enum.
      	(struct tree_function_decl): Remove operator_new_flag and lambda_function.
      	* tree.h (FUNCTION_DECL_DECL_TYPE): New.
      	(set_function_decl_type): Likewise.
      	(DECL_IS_OPERATOR_NEW_P): New.
      	(DECL_SET_IS_OPERATOR_NEW): Likewise.
      	(DECL_LAMBDA_FUNCTION): Likewise.
      	(DECL_LAMBDA_FUNCTION_P): Likewise.
      	(DECL_IS_OPERATOR_NEW): Remove.
      	(DECL_SET_LAMBDA_FUNCTION): Likewise.
      2019-07-25  Martin Liska  <mliska@suse.cz>
      
      	* c-decl.c (merge_decls): Use new macros
      	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
      2019-07-25  Martin Liska  <mliska@suse.cz>
      
      	* decl.c (duplicate_decls): Use new macros
      	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
      	(cxx_init_decl_processing): Likewise.
      	(grok_op_properties): Likewise.
      	* parser.c (cp_parser_lambda_declarator_opt): Likewise.
      2019-07-25  Martin Liska  <mliska@suse.cz>
      
      	* lto-common.c (compare_tree_sccs_1): Use new macros
      	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
      
      From-SVN: r273790
      Martin Liska committed
    • Generalize get_most_common_single_value to return n_th value & count · 982b1497
      Currently get_most_common_single_value could only return the max hist
      <value, count>, add sort after reading from disk, then it return nth value
      in later use.  Rename it to get_nth_most_common_value.
      
      gcc/ChangeLog:
      
      2019-07-15  Xiong Hu Luo  <luoxhu@linux.ibm.com>
      
      	* ipa-profile.c (get_most_common_single_value): Use
      	get_nth_most_common_value.
      	* profile.c (sort_hist_value): New function.
      	(compute_value_histograms): Call sort_hist_value to sort the
      	values after loading from disk.
      	* value-prof.c (get_most_common_single_value): Rename to ...
      	get_nth_most_common_value.  Add input params n, return
      	the n_th value and count.
      	(gimple_divmod_fixed_value_transform): Use
      	get_nth_most_common_value.
      	(gimple_ic_transform): Likewise.
      	(gimple_stringops_transform): Likewise.
      	* value-prof.h (get_most_common_single_value): Add input params
      	n, default to 0.
      
      From-SVN: r273789
      Xiong Hu Luo committed
    • re PR testsuite/91245 (gnat.dg/float_value1.adb FAILs) · 25b46fc9
      	PR testsuite/91245
      	* gnat.dg/float_value1.adb: Only run on x86.
      
      From-SVN: r273788
      Eric Botcazou committed
    • re PR tree-optimization/91236 (ICE in walk_non_aliased_vuses at… · 599331c8
      re PR tree-optimization/91236 (ICE in walk_non_aliased_vuses at gcc/tree-ssa-alias.c:3395 on aarch64)
      
      2019-07-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91236
      	* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
      	size of CONSTRUCTOR write.  Fix buffer size we pass to
      	native_encode_expr.
      
      From-SVN: r273787
      Richard Biener committed
    • PR tree-optimization/91183 - strlen of a strcpy result with a conditional source not folded · b631bdb3
      PR tree-optimization/91183 - strlen of a strcpy result with a conditional source not folded
      PR tree-optimization/86688 - missing -Wstringop-overflow using a non-string local array in strnlen with excessive bound
      
      gcc/ChangeLog:
      
      	PR tree-optimization/91183
      	PR tree-optimization/86688
      	* builtins.c (compute_objsize): Handle MEM_REF.
      	* tree-ssa-strlen.c (class ssa_name_limit_t): New.
      	(get_min_string_length): Remove.
      	(count_nonzero_bytes): New function.
      	(handle_char_store): Rename...
      	(handle_store): to this.  Handle multibyte stores via integer types.
      	(strlen_check_and_optimize_stmt): Adjust conditional and the called
      	function name.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/91183
      	PR tree-optimization/86688
      	* gcc.dg/Wstringop-overflow-14.c: New test.
      	* gcc.dg/attr-nonstring-2.c: Remove xfails.
      	* gcc.dg/strlenopt-70.c: New test.
      	* gcc.dg/strlenopt-71.c: New test.
      	* gcc.dg/strlenopt-72.c: New test.
      	* gcc.dg/strlenopt-8.c: Remove xfails.
      
      From-SVN: r273783
      Martin Sebor committed
    • Daily bump. · 7214f11d
      From-SVN: r273782
      GCC Administrator committed
  2. 24 Jul, 2019 14 commits
    • Fix non-GNU style in previous commits · 378a578a
      2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
      	* config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
      	r273773.
      
      From-SVN: r273775
      Jozef Lawrynowicz committed
    • config.gcc (msp430*-*-*): Enable initfini_array by default unless explicitly disabled with... · c46d1717
      2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config.gcc (msp430*-*-*): Enable initfini_array by default unless
      	explicitly disabled with --disable-initfini-array.
      
      From-SVN: r273774
      Jozef Lawrynowicz committed
    • msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in if-exists. · d4c972b7
      2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
      	if-exists.
      
      From-SVN: r273773
      Jozef Lawrynowicz committed
    • PR driver/80545 - option -Wstringop-overflow not recognized by Fortran · fa5baeed
      gcc/cp/ChangeLog:
      
      	PR driver/80545
      	* decl.c (finish_function): Use lang_mask.
      
      gcc/testsuite/ChangeLog:
      
      	PR driver/80545
      	* gcc.misc-tests/help.exp: Add tests.
      	* lib/options.exp: Handle C++.
      
      gcc/ChangeLog:
      
      	PR driver/80545
      	* diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
      	(diagnostic_report_diagnostic): Same.
      	* diagnostic.h (diagnostic_context::option_enabled): Add an argument.
      	(diagnostic_context::lang_mask): New data member.
      	* ipa-pure-const.c (suggest_attribute): Use
      	lang_hooks.option_lang_mask ().
      	* opts-common.c (option_enabled): Handle new argument.
      	(get_option_state): Pass an additional argument.
      	* opts.c (print_filtered_help): Print supported languages for
      	unsupported options.  Adjust printing of current state.
      	* opts.h (option_enabled): Add argument.
      	* toplev.c (print_switch_values): Use lang_mask.
      	(general_init): Set global_dc->lang_mask.
      
      From-SVN: r273771
      Martin Sebor committed
    • [Darwin] Partial reversion of 273749. · e3461674
      We still need to cater for pr80556, for the single-arch case.
      
      2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      gcc/
      
      	PR bootstrap/87030
      	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert r273749.
      
      From-SVN: r273768
      Iain Sandoe committed
    • cgraphunit.c (symbol_table::compile): Start and stop TV_CGRAPH_IPA_PASSES and… · 856bb3ef
      cgraphunit.c (symbol_table::compile): Start and stop TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
      
      	* cgraphunit.c (symbol_table::compile): Start and stop
      	TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
      	* timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
      
      From-SVN: r273767
      Giuliano Belinassi committed
    • gimplify.c (flag_instrument_functions_exclude_p): Include namespace/class… · efab3e3a
      gimplify.c (flag_instrument_functions_exclude_p): Include namespace/class information in the printable name.
      
      	* gimplify.c (flag_instrument_functions_exclude_p): Include
      	namespace/class information in the printable name.
      	* opts.c (add_comma_separated_to_vector): Add NUL terminator
      	to tokens entered into the vector.
      
      From-SVN: r273766
      Oliver Browne committed
    • tree-nested.c (build_simple_mem_ref_notrap): New function. · 58f3f2c3
      	* tree-nested.c (build_simple_mem_ref_notrap): New function.
      	(get_static_chain): Call it instead of build_simple_mem_ref.
      	(get_frame_field): Likewise.
      	(get_nonlocal_debug_decl): Likewise.
      	(convert_nonlocal_reference_op): Likewise.
      
      From-SVN: r273763
      Eric Botcazou committed
    • [ARC] Fix and refurbish the interrupts. · ce9dbf20
      When entering an interrupt, not only the call save registers needs to
      be place on stack but also the call clobbers one. More over, the
      ARC700 return from interrupt instruction needs to be rtie, the same
      like ARCv2 CPUs. While the ARC6xx family uses j.f [ilinkX]
      instruction. Additionally, we need to save the state of the ZOL
      machinery, namely the lp_count, lp_end and lp_start registers. For
      architectures which are using extension registers (i.e., HS48) we need
      to save/restore them as well.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_output_function_epilogue): Delete
      	declaration.
      	(arc_compute_frame_size): Millicode is disabled when compiling
      	ISR.
      	(arc_return_address_register): Likewise.
      	(arc_compute_function_type): Likewise.
      	(arc_compute_frame_size): Likewise.
      	(secondary_reload_info): Likewise.
      	(arc_get_unalign): Likewise.
      	(arc_can_use_return_insn): Declare.
      	* config/arc/arc.c (AUX_LP_START): Define
      	(AUX_LP_END): Likewise.
      	(arc_frame_info): Update gmask member to 64-bit datum.
      	(GMASK_LEN): Update.
      	(arc_compute_function_type): Make it static, move it forward.
      	(arc_must_save_register): Update, consider the extra regs.
      	(arc_compute_millicode_save_restore_regs): Update to use the 64
      	bit gmask.
      	(arc_compute_frame_size): Likewise.
      	(arc_enter_leave_p): Likewise.
      	(arc_save_callee_saves): Likewise.
      	(arc_restore_callee_saves): Likewise.
      	(arc_save_callee_enter): Likewise.
      	(arc_restore_callee_leave): Likewise.
      	(arc_save_callee_milli): Likewise.
      	(arc_restore_callee_milli): Likewise.
      	(arc_expand_prologue): Add new interrupt handling.
      	(arc_return_address_register): Make it static, move it forward.
      	(arc_expand_epilogue): Add new interrupt handling.
      	(arc_get_unalign): Delete.
      	(arc_epilogue_uses): Make sure we do not remove the extra
      	saved/restored registers when interrupt.
      	(arc_can_use_return_insn): New function.
      	(push_reg): Likewise.
      	(pop_reg): Likewise.
      	(arc_save_callee_saves): Add ZOL and FPX aux registers saving
      	procedures.
      	(arc_restore_callee_saves): Likewise, but restoring.
      	* config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
      	(R33_REG): Likewise.
      	(R34_REG): Likewise.
      	(R35_REG): Likewise.
      	(R36_REG): Likewise.
      	(R37_REG): Likewise.
      	(R38_REG): Likewise.
      	(R39_REG): Likewise.
      	(R45_REG): Likewise.
      	(R46_REG): Likewise.
      	(R47_REG): Likewise.
      	(R48_REG): Likewise.
      	(R49_REG): Likewise.
      	(R50_REG): Likewise.
      	(R51_REG): Likewise.
      	(R52_REG): Likewise.
      	(R53_REG): Likewise.
      	(R54_REG): Likewise.
      	(R55_REG): Likewise.
      	(R56_REG): Likewise.
      	(R58_REG): Likewise.
      	(type): Add rtie attribute.
      	(in_call_delay_slot): Use RETURN_ADDR_REGNUM.
      	(movsi_insn): Accept moves to lp_count.
      	(rtie): Update pattern.
      	(simple_return): Simplify it, don't use this pattern as a return
      	from an interrupt.
      	(arc600_rtie): New pattern.
      	(p_return_i): Clean up.
      	(return): Likewise.
      	* config/arc/builtins.def (rtie): Only available for non ARC6xx
      	family CPUs.
      	* config/arc/predicates.md (move_src_operand): Consider lp_count
      	as a register.
      
      gcc/testsuite
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/arc.exp (check_effective_target_accregs): New
      	predicate.
      	* gcc.target/arc/builtin_special.c: Update test/
      	* gcc.target/arc/interrupt-1.c: Likewise.
      	* gcc.target/arc/interrupt-10.c: New test.
      	* gcc.target/arc/interrupt-11.c: Likewise.
      	* gcc.target/arc/interrupt-12.c: Likewise.
      
      update
      
      From-SVN: r273761
      Claudiu Zissulescu committed
    • S/390: Add add/sub/mul overflow check patterns · 4caa6bab
      This patch implements the addv, subv, and mulv patterns for signed
      integers.
      
      gcc/ChangeLog:
      
      2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/predicates.md (addv_const_operand): New predicate.
      	* config/s390/s390-modes.def (CCO): New condition code mode.
      	* config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
      	(s390_branch_condition_mask): Likewise.
      	* config/s390/s390.md ("addv<mode>4", "subv<mode>4")
      	("mulv<mode>4"): New expanders.
      	("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
      	("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
      	pattern definitions.
      
      gcc/testsuite/ChangeLog:
      
      2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/addsub-signed-overflow-1.c: New test.
      	* gcc.target/s390/addsub-signed-overflow-2.c: New test.
      	* gcc.target/s390/mul-signed-overflow-1.c: New test.
      	* gcc.target/s390/mul-signed-overflow-2.c: New test.
      
      From-SVN: r273759
      Andreas Krebbel committed
    • re PR middle-end/91166 ([SVE] Unfolded ZIPs of constants) · 21caa1a2
      2019-07-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR middle-end/91166
      	* match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
      	(define_predicates): Add entry for uniform_vector_p.
      	(vec_same_elem_p): New match pattern.
      
      testsuite/
      	* gcc.target/aarch64/sve/pr91166.c: New test.
      
      From-SVN: r273758
      Prathamesh Kulkarni committed
    • Fix off-by-one in simple-object-elf.c (PR lto/91228). · 70121844
      2019-07-24  Martin Liska  <mliska@suse.cz>
      
      	PR lto/91228
      	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
      	Find first '\0' starting from gnu_lto + 1.
      
      From-SVN: r273757
      Martin Liska committed
    • Fixup ChangeLog entry for revision 273570. · fe1a06fc
      From-SVN: r273756
      Bin Cheng committed
    • Daily bump. · 55ac9c5c
      From-SVN: r273753
      GCC Administrator committed
  3. 23 Jul, 2019 16 commits
    • [Darwin] Fix PR87030 add missed commit hunks. · c2ff7104
      Messed up the commit, and missed changes to gcc/config.gcc and to the comments
      in some of the headers.
      
      2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      gcc/
      
      	PR bootstrap/87030
      	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
      	* config/i386/darwin32-biarch.h .. to here.
      	* config/i386/darwin64-biarch.h: Adjust comments.
      	* config/rs6000/darwin32-biarch.h: Likewise.
      	* config/rs6000/darwin64-biarch.h: Likewise.
      	* config.gcc: Missed commit from r273746
      	(*-*-darwin*): Don't include CPU t-darwin here.
      	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
      	an error message if i686-darwin configuration is attempted for
      	Darwin >= 18.
      
      From-SVN: r273749
      Iain Sandoe committed
    • re PR fortran/54072 (BOZ with -std=f2008: wrongly accepted to TRANSFER/ABS/...;… · c078c9f4
      re PR fortran/54072 (BOZ with -std=f2008: wrongly accepted to TRANSFER/ABS/...; two BOZ not rejected for IOR/IEOR/IAND)
      
      2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       PR fortran/54072
       * check.c (gfc_invalid_boz): Fix comment.
       (illegal_boz_arg): New function.
       (gfc_check_transfer): Use to arguments.
       (gfc_check_storage_size): Ditto.
       (gfc_check_complex): Remove leftover comment from BOZ patch.
       * primary.c (match_boz_constant): Remove leftover comment. 
      
      2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       PR fortran/54072
       * gfortran.dg/illegal_boz_arg_1.f90: New tests.
      
      From-SVN: r273748
      Steven G. Kargl committed
    • arith.c (gfc_convert_integer, [...]): Move to ... · 8dc63166
      2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
      	Move to ...
      	* primary.c (convert_integer, convert_real, convert_complex): ... here.
      	Rename and make static functions.
      	(match_integer_constant): Use convert_integer
      	(match_real_constant): Use convert_real.
      	(match_complex_constant: Use convert_complex.
      	* arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
      	Remove prototypes.
      	* array.c (match_array_cons_element): A BOZ cannot be a data 
      	statement value.  Jump to a common exit point.
      	* check.c (gfc_invalid_boz): New function.  Emit error or warning
      	for a BOZ in an invalid context.
      	(boz_args_check): Move to top of file to prevent need of forward
      	declaration.
      	(is_boz_constant): New function.  Check that BOZ expr is constant.
      	(gfc_b	z2real): New function. In-place conversion of BOZ literal
      	constant to REAL in accordance to F2018.
      	(gfc_boz2int): New function. In-place conversion of BOZ literal
       	onstant to INTEGER in accordance to F2018.
      	(gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz.
      	Convert BOZ as needed.
      	(gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE, 
      	BGT, BLE, and BLT intrinsic functions.
      	(gfc_check_cmplx): Re-organize to check kind, if present, first.
      	Convert BOZ real and/or imaginary parts as needed in accordance to
      	F2018.
      	(gfc_check_complex):  Use gfc_invalid_boz.  Convert BOZ as needed.
      	(gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed.
      	(gfc_check_dshift):  Make dshift[lr] conform to F2018 standard.
      	 gfc_check_float (gfc_expr *a)
      	(gfc_check_iand_ieor_ior):  Make IAND, IEOR, and IOR conform to 
      	F2018 standard.
      	(gfc_check_int): Conform to F2018 standard.
      	(gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and
      	INT.  Simply return for a BOZ argument. See gfc_simplify_intconv.
      	(gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018
      	standard.
      	(gfc_check_real): Remove incorrect comment. Check kind, if present,
      	first.  Simply return for a BOZ argument. See gfc_simplify_real.
      	(gfc_check_and): Re-do error handling for BOZ arguments.  Remove
      	special casing ts.type != BT_INTEGER or BT_LOGICAL.
      	* decl.c (match_old_style_init): Check for BOZ in old-style
      	initialization.  Issue error or warning depending on
      	-fallow-invalid-boz option.  Issue error if variable is not an
      	INTEGER or REAL and the value is BOZ.
      	* expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr.
      	(gfc_check_assign): Re-do error handling for a BOZ in an assignment
      	statement.  Do in-place conversion of RHS based on LHS type of
      	INTEGER or REAL.
      	* gfortran.h (gfc_expr): Add a boz component.  Remove is_boz component.
      	(gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes.
      	* interface.c (gfc_extend_assign): Guard against replacing an 
      	intrinsic involving a BOZ literal constant on RHS.
      	* invoke.texi: Doument -fallow-invalid-boz.
      	* lang.opt: New option. -fallow-invalid-boz.
      	* libgfortran.h (bt): Elevate BOZ to a basic type.
      	* misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ.
      	* primary.c (convert_integer, convert_real, convert_complex): to here.
      	Rename and make static functions.
      	* primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do
      	error handling.  Deprecate 'X' for hexidecimal and postfix notation.
      	Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code.
      	* resolve.c (resolve_ordinary_assign): Rework a RHS that is a
      	BOZ literal constant.  Use gfc_invalid_boz to allow previous
      	nonstandard behavior.  Remove range checking of BOZ conversion.
      	* simplify.c (convert_boz): Remove function.
      	(simplify_cmplx): Remove conversion of BOZ constants, because
      	conversion is done in gfc_check_cmplx.
      	(gfc_simplify_float): Remove conversion of BOZ constant, because
      	conversion is done in gfc_check_float.
      	(simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER.
      	Remove range checking for BOZ conversion.
      	(gfc_simplify_real): Use k, if present, to determine kind.  Convert
      	BOZ to REAL.  Remove range checking for BOZ conversion.
      	target-memory.c (gfc_convert_boz): Rewrite to deal with convert of
      	a BOZ to a REAL value.
      
      2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* gfortran.dg/achar_5.f90: Fix for new BOZ handling.
      	* arithmetic_overflow_1.f90: Ditto.
      	* gfortran.dg/boz_11.f90: Ditto.
      	* gfortran.dg/boz_12.f90: Ditto.
      	* gfortran.dg/boz_4.f90: Ditto.
      	* gfortran.dg/boz_5.f90: Ditto.
      	* gfortran.dg/boz_6.f90: Ditto.
      	* gfortran.dg/boz_7.f90: Ditto.
      	* gfortran.dg/boz_8.f90: Ditto.
      	* gfortran.dg/dec_structure_6.f90: Ditto.
      	* gfortran.dg/dec_union_1.f90: Ditto.
      	* gfortran.dg/dec_union_2.f90: Ditto.
      	* gfortran.dg/dec_union_5.f90: Ditto.
      	* gfortran.dg/dshift_3.f90: Ditto.
      	* gfortran.dg/gnu_logical_2.f90: Ditto.
      	* gfortran.dg/int_conv_1.f90: Ditto.
      	* gfortran.dg/ishft_1.f90: Ditto.
      	* gfortran.dg/nan_4.f90: Ditto.
      	* gfortran.dg/no_range_check_3.f90: Ditto.
      	* gfortran.dg/pr16433.f: Ditto.
      	* gfortran.dg/pr44491.f90: Ditto.
      	* gfortran.dg/pr58027.f90: Ditto.
      	* gfortran.dg/pr81509_2.f90: Ditto.
      	* gfortran.dg/unf_io_convert_1.f90: Ditto.
      	* gfortran.dg/unf_io_convert_2.f90: Ditto.
      	* gfortran.fortran-torture/execute/intrinsic_fraction_exponent.f90:
      	Ditto.
      	* gfortran.fortran-torture/execute/intrinsic_mvbits.f90: Ditto.
      	* gfortran.fortran-torture/execute/intrinsic_nearest.f90: Ditto.
      	* gfortran.fortran-torture/execute/seq_io.f90: Ditto.
      	* gfortran.dg/gnu_logical_1.F: Delete test.
      	* gfortran.dg/merge_bits_3.f90: New test.
      	* gfortran.dg/merge_bits_3.f90: Ditto.
      	* gfortran.dg/boz_int.f90: Ditto.
      	* gfortran.dg/boz_bge.f90: Ditto.
      	* gfortran.dg/boz_complex_1.f90: Ditto.
      	* gfortran.dg/boz_complex_2.f90: Ditto.
      	* gfortran.dg/boz_complex_3.f90: Ditto.
      	* gfortran.dg/boz_dble.f90: Ditto.
      	* gfortran.dg/boz_dshift_1.f90: Ditto.
      	* gfortran.dg/boz_dshift_2.f90: Ditto.
      	* gfortran.dg/boz_float_1.f90: Ditto.
      	* gfortran.dg/boz_float_2.f90: Ditto.
      	* gfortran.dg/boz_float_3.f90: Ditto.
      	* gfortran.dg/boz_iand_1.f90: Ditto.
      	* gfortran.dg/boz_iand_2.f90: Ditto.
      
      2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* testsuite/libgomp.fortran/reduction4.f90: Update BOZ usage
      	* testsuite/libgomp.fortran/reduction5.f90: Ditto.
      
      From-SVN: r273747
      Steven G. Kargl committed
    • [Darwin] Fix PR87030 and tidy config fragments. · 000a0020
      This is about 32/64b host and multilib support across the range of Darwin
      systems.
      
      Prior to Darwin8 (OS X 10.4), the toolchains support only PowerPC and only 32b.
      
      On Darwin8 it is possible to target a 64b multilib, but with support limited
      to a few of the main libraries on the system (not a recommended configuration).
      
      From Darwin9 to Darwin17 (OSX 10.5 to 10.13) it is possible to have either
      32 or 64b hosted toolchains, with support for a 64 or 32b multilib respectively.
      
      On Darwin9 the kernel is 32b, but with support for 64b executables, so it's
      conventional to build a 32b host toolchain supporting a 64b multilib.  However
      this is not enforced (merely a convention).
      
      There is also some platform hardware supporting Darwin10/11 which is only 32b
      and for which the same situation applies.  However, from Darwin10 to Darwin17,
      the majority of platform hardware supports a 64b kernel and it's conventional
      to build a 64b host toolchain with support for a 32b multilib.
      
      On/from Darwin18 (OS X 10.14), the development headers (in the SDK) no longer
      expose the interfaces for the 32b multilib support (although sufficient runtime
      support remains installed that the testsuite can be run for a 32b multilib).
      
      The PR is raised against this latter situation since the absence of exposed
      interfaces causes a 'default' bootstrap fail regardless of the availability of
      the runtimes.  Given the number of permutations, I felt it warranted a general
      solution, especially since the current scheme of target headers and t-make
      fragments has become somewhat messy.
      
      The changes here enforce the single 32b PowerPC multilib for Darwin < 8 and the
      single X86 64b multilib for Darwin >= 18.  This means that there is no longer
      any need to configure Darwin18+ '--disable-multilib', but also that if you want
      to use the ability to continue to test the compiler's 32b multilib there, you
      need to make a configuration targeting an earlier OS version (and using the
      SDK from that).
      
      gcc/
      
      	PR bootstrap/87030
      	* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
      	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
      	an error message if i686-darwin configuration is attempted for
      	Darwin >= 18.
      	(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
      	(powerpc-*-darwin*): Use biarch files where needed.
      	(powerpc64-*-darwin*): Likewise.
      	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
      	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
      	arch case.
      	* config/i386/darwin32-biarch.h: New.
      	* config/i386/darwin64.h: Rename.
      	* gcc/config/i386/darwin64-biarch.h: To this.
      	* config/i386/t-darwin: Rename.
      	* gcc/config/i386/t-darwin32-biarch: To this.
      	* config/i386/t-darwin64: Rename.
      	* gcc/config/i386/t-darwin64-biarch: To this.
      	* config/rs6000/darwin32-biarch.h: New.
      	* config/rs6000/darwin64.h: Rename.
      	* config/rs6000/darwin64-biarch.h: To this.
      	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
      	arch case.
      	* config/rs6000/t-darwin8: Rename.
      	* config/rs6000/t-darwin32-biarch: To this.
      	* config/rs6000/t-darwin64 Rename.
      	* config/rs6000/t-darwin64-biarch: To this.
      
      From-SVN: r273746
      Iain Sandoe committed
    • Add PR markers to recent DSE changes. And... · d8e54c62
      	PR tree-optimization/86061
      	* gcc.dg/tree-ssa/pr86061.c: New test.
      
      From-SVN: r273745
      Jeff Law committed
    • compiler: use correct value type in 2-case select send · 40768ee0
          
          In the channel-send case, the value to be sent may needs an
          (implicit) type conversion to the channel element type. This CL
          ensures that we use the correct value type for the send.
          
          Fixes golang/go#33235.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/187177
      
      From-SVN: r273743
      Ian Lance Taylor committed
    • configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311. · 9bf40084
      gcc/ChangeLog:
      	* configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
      
      From-SVN: r273742
      Martin Sebor committed
    • gdbinit.in: add reload-gdbhooks (rh) command · d894bafc
      gcc/ChangeLog:
      
      2019-07-23  Vladislav Ivanishin <vlad@ispras.ru>
      
      	* gdbinit.in (reload-gdbhooks): New command with an attached doc string.
      	(rh): New alias for it.
      
      From-SVN: r273738
      Vladislav Ivanishin committed
    • make gdbhooks.py idempotent with respect to reloading · e41dd068
      gcc/ChangeLog:
      
      2019-07-23  Vladislav Ivanishin <vlad@ispras.ru>
      
      	* gdbhooks.py: Pass replace=True to
      	gdb.printing.register_pretty_printer.
      
      From-SVN: r273737
      Vladislav Ivanishin committed
    • re PR debug/91231 (ICE in dwarf2out_inline_entry, at dwarf2out.c:27642) · 0bd65f4f
      2019-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR debug/91231
      	* lto-streamer-in.c (input_function): Drop inline-entry markers
      	that ended up with an unknown location block.
      
      From-SVN: r273733
      Richard Biener committed
    • re PR tree-optimization/83518 (Missing optimization: useless instructions should be dropped) · 62e3e66f
      2019-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83518
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
      	init from a constant even when partial defs are already recorded.
      
      	c/
      	* gimple-parser.c (c_parser_parse_gimple_body): When we have
      	a CFG also rebuild cgraph edges.
      
      	* gcc.dg/tree-ssa/ssa-fre-79.c: New testcase.
      
      From-SVN: r273732
      Richard Biener committed
    • i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. · e1eb82f5
      	* i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
      	* config/i386/znver1.md: Enable patterns for znver2 and add store
      	variants which use extra AGU unit.
      
      From-SVN: r273731
      Jan Hubicka committed
    • i386-options.c (ix86_option_override_internal): Default PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. · 105c2795
      	* config/i386/i386-options.c (ix86_option_override_internal): Default
      	PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
      
      From-SVN: r273730
      Jan Hubicka committed
    • x86-tune-costs.h (znver2_memcpy): Update. · 187dd65d
      	* config/i386/x86-tune-costs.h (znver2_memcpy): Update.
      	(znver2_costs): Update 256 bit SSE costs and multiplication.
      
      From-SVN: r273728
      Jan Hubicka committed
    • [Ada] Aspect CPU may depend on a discriminant of a task type · 4e2a1652
      2019-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
      	Freeze_Entity_Checks): Include Aspect_CPU with other aspects
      	whose expresssion may depend on a discriminant, and thus require
      	that components of the type be made visible.
      
      gcc/testsuite/
      
      	* gnat.dg/task4.adb: New testcase.
      
      From-SVN: r273726
      Ed Schonberg committed