1. 26 Jul, 2019 5 commits
    • AArch64: Make processing less fragile in config.gcc · 3644cadf
      Due to config.gcc all the options need to be on one line because of the grep
      lines which would select only the first line of the option.
      
      This causes it not to select the right bits on options that are spread over
      multiple lines when the --with-arch configure option is used.  The issue happens
      silently and you just get a compiler with an incorrect set of default flags.
      
      The current rules are quite rigid:
      
         1) No space between the AARCH64_OPT_EXTENSION and the opening (.
         2) No space between the opening ( and the extension name.
         3) No space after the extension name before the ,.
         4) Spaces are only allowed after a , and around |.
      
      This patch makes this a lot less fragile by using the C pre-processor to flatten
      the list and then provides much more flexible regex using group matching to
      process the options instead of string replacement.  This removes all the
      restrictions above and makes the code a bit more readable.
      
      gcc/ChangeLog:
      
      	PR target/89517
      	* config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
      	* config/aarch64/aarch64-option-extensions.def: Add new comments
      	and restore easier to read options.
      
      From-SVN: r273827
      Tamar Christina committed
    • Add rules to strip away unneeded type casts in expressions · 8f5331b2
      This patch moves part of the type conversion code from convert.c to match.pd
      because match.pd is able to apply these transformations in the presence of
      intermediate temporary variables.
      
      Concretely it makes both these cases behave the same
      
        float e = (float)a * (float)b;
        *c = (_Float16)e;
      
      and 
      
        *c = (_Float16)((float)a * (float)b);
      
      gcc/ChangeLog:
      
      	* convert.c (convert_to_real_1): Move part of conversion code...
      	* match.pd: ...To here.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/type-convert-var.c: New test.
      
      From-SVN: r273826
      Tamar Christina committed
    • [PR 89330] Remove non-useful speculations from new_edges · 4517b378
      2019-07-26  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/89330
      	* ipa-inline-transform.c (check_speculations_1): New function.
      	(push_all_edges_in_set_to_vec): Likewise.
      	(check_speculations): Use check_speculations_1, new parameter
      	new_edges.
      	(inline_call): Pass new_edges to check_speculations.
      	* ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
      	NULL.
      	(speculation_useful_p): Early return true if edge is inlined, remove
      	later checks for inline_failed.
      
      	testsuite/
      	* g++.dg/lto/pr89330_[01].C: New test.
      	* g++.dg/tree-prof/devirt.C: Added -fno-profile-values to dg-options.
      
      From-SVN: r273825
      Martin Jambor committed
    • 2019-07-26 François Dumont <fdumont@gcc.gnu.org> · ac2dca4d
      	* testsuite/util/testsuite_iterators.h
      	(bidirectional_iterator_wrapper): Fix type comment.
      	(random_access_iterator_wrapper): Likewise.
      
      From-SVN: r273824
      François Dumont committed
    • Daily bump. · cc00790c
      From-SVN: r273823
      GCC Administrator committed
  2. 25 Jul, 2019 20 commits
    • Relocate std::endian from <type_traits> to <bit> · 45c7215c
      This change to an early C++2a feature was just approved (P1612R1).
      
      	* include/std/bit (endian): Move definition here as per P1612R1.
      	* include/std/type_traits (endian): Remove definition from here.
      	* testsuite/20_util/endian/1.cc: Rename to ...
      	* testsuite/26_numerics/endian/1.cc: ... here. Adjust header.
      
      From-SVN: r273816
      Jonathan Wakely committed
    • Wstringop-overflow-14.c: Disable for stricly aligned targets. · 599780d6
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wstringop-overflow-14.c: Disable for stricly aligned targets.
      
      From-SVN: r273814
      Martin Sebor committed
    • re PR tree-optimization/91183 (strlen of a strcpy result with a conditional source not folded) · f2d52e00
      PR tree-optimization/91183
      PR tree-optimization/86688
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/strlenopt-70.c: Fix bugs.
      	* gcc.dg/strlenopt-71.c: Same.
      	* gcc.dg/strlenopt-72.c: Same.
      
      From-SVN: r273812
      Martin Sebor committed
    • re PR rtl-optimization/91223 (ICE: in curr_insn_transform, at lra-constraints.c:4459) · 9f41de41
      2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/91223
      	* lra-constraints.c (process_alt_operands): Fail for unsuccessful
      	matching with INOUT operand.
      
      2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/91223
      	* gcc.target/i386/pr91223.c: New test.
      
      From-SVN: r273810
      Vladimir Makarov committed
    • [Darwin, testsuite] Address PR91087 - XFAIL parts of pr16855.C. · 7649f2e4
      The testcase is failing to instrument part of the source because of a bug
      in the ordering of static DTORs.  It seems unlikely that this is generically
      fixable in the toolchain (and given that it's likely to be a dynamic loader
      change would not be expected to be applied retrospectively to OS versions
      that are out of support).  To avoid the testsuite noise, xfail the count lines
      that don't match (we can adjust the xfails as/when the upstream bug is fixed).
      
      dejagnu xfails do not seem to work when embedded in a line like:
        ~Test (void) { .... /* count(1) { xfail ... } */ }
      the closing brace seems to confuse the parser.  The solution is to exapnd the
      text onto three lines.
      
      2019-07-25  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR gcov-profile/91087
      	* g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
      	"final" line for the failure summaries.  Adjust source layout so that
      	dejagnu xfail expressions work.
      
      From-SVN: r273809
      Iain Sandoe committed
    • re PR fortran/65819 (overzealous checking in gfc_check_dependency for identical=true) · 40e1ed26
      2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/65819
      	* dependency.h (gfc_dep_resovler): Add optional argument identical.
      	* dependency.c (gfc_check_dependency): Do not alway return 1 if
      	the symbol is the same. Pass on identical to gfc_dep_resolver.
      	(gfc_check_element_vs_element): Whitespace fix.
      	(gfc_dep_resolver): Adjust comment for function.  If identical is
      	true, return 1 if any overlap has been found.
      
      2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/65819
      	* gfortran.dg/dependency_54.f90: New test.
      
      From-SVN: r273807
      Thomas Koenig committed
    • stmt.c (expand_case): Try to narrow the index type if it's larger than a word. · 0dfa7ba1
      	* stmt.c (expand_case): Try to narrow the index type if it's larger
      	than a word.  Tidy up.
      
      From-SVN: r273805
      Eric Botcazou committed
    • cif-code.def (NEVER_CALL): New code. · 5ab2422a
      	* cif-code.def (NEVER_CALL): New code.
      	* ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
      	Set the failure to CIF_NEVER_CALL if the IPA count is zero.
      
      From-SVN: r273804
      Eric Botcazou committed
    • Fix low reg issue in Thumb-2 movsi patterns · 75088696
      The Thumb-2 movsi patterns try to prefer low registers for loads and stores.
      However this is done incorrectly by using 2 separate variants with 'l' and 'h'
      register classes.  The register allocator will only use low registers, and
      as a result we end up with significantly more spills and moves to high
      registers.  Fix this by merging the alternatives and use 'l*r' to indicate
      preference for low registers.  This saves ~400 instructions from the pr77308
      testcase.
      
          gcc/
      	* config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
      	* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
      
      From-SVN: r273802
      Wilco Dijkstra committed
    • * ipa-devirt.c (add_type_duplicate): Fix return value. · 2fc233b7
      From-SVN: r273800
      Jan Hubicka committed
    • 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
  3. 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
  4. 23 Jul, 2019 1 commit
    • [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