1. 03 Oct, 2019 7 commits
    • re PR jit/91928 (libgccjit fails on subsequent compilations in ipa-cp) · 12e088ba
      PR jit/91928
      
      	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
      	* ipa-prop.c (ipcp_free_transformation_sum): New function.
      	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
      
      From-SVN: r276507
      Andrea Corallo committed
    • re PR fortran/84487 (Large rodate section increase in 465.tonto with r254427) · 3aad513c
      2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/84487
      	* trans-decl.c (gfc_get_symbol_decl): For __def_init, set
      	DECL_ARTIFICAL and do not set TREE_READONLY.
      
      2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/84487
      	* gfortran.dg/typebound_call_22.f03: xfail.
      
      From-SVN: r276506
      Thomas Koenig committed
    • Character typenames in errors and warnings · f61e54e5
          
      Character type names now incorporate length, kind is only shown if
      the default character is not being used.
          
      Examples:
         
        character(7) is reported as CHARACTER(7)
        character(len=20,kind=4) is reported as CHARACTER(20,4)
         
      dummy character variables with assumed length:
          
        character(*) is reported as CHARACTER(*)
        character(*,kind=4) is reported as CHARACTER(*,4)
      
      From-SVN: r276505
      Mark Eggleston committed
    • Makefile.in (OBJS): Add range.o and range-op.o. · 38a73435
      	* Makefile.in (OBJS): Add range.o and range-op.o.
      	Remove wide-int-range.o.
      	* function-tests.c (test_ranges): New.
      	(function_tests_c_tests): Call test_ranges.
      	* ipa-cp.c (ipa_vr_operation_and_type_effects): Call
      	range_fold_unary_expr instead of extract_range_from_unary_expr.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
      	* range-op.cc: New file.
      	* range-op.h: New file.
      	* range.cc: New file.
      	* range.h: New file.
      	* selftest.h (range_tests): New prototype.
      	* ssa.h: Include range.h.
      	* tree-vrp.c (value_range_base::value_range_base): New
      	constructors.
      	(value_range_base::singleton_p): Do not call
      	ranges_from_anti_range until sure we will need to.
      	(value_range_base::type): Rename gcc_assert to
      	gcc_checking_assert.
      	(vrp_val_is_max): New argument.
      	(vrp_val_is_min): Same.
      	(wide_int_range_set_zero_nonzero_bits): Move from
      	wide-int-range.cc.
      	(extract_range_into_wide_ints): Remove.
      	(extract_range_from_multiplicative_op): Remove.
      	(extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
      	from extract_range_from_binary_expr.
      	(extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
      	from extract_range_from_binary_expr.
      	(extract_range_from_binary_expr): Remove.
      	(normalize_for_range_ops): New.
      	(range_fold_binary_expr): New.
      	(range_fold_unary_expr): New.
      	(value_range_base::num_pairs): New.
      	(value_range_base::lower_bound): New.
      	(value_range_base::upper_bound): New.
      	(value_range_base::upper_bound): New.
      	(value_range_base::contains_p): New.
      	(value_range_base::invert): New.
      	(value_range_base::union_): New.
      	(value_range_base::intersect): New.
      	(range_compatible_p): New.
      	(value_range_base::operator==): New.
      	(determine_value_range_1): Call range_fold_*expr instead of
      	extract_range_from_*expr.
      	* tree-vrp.h (class value_range_base): Add new constructors.
      	Add methods for union_, intersect, operator==, contains_p,
      	num_pairs, lower_bound, upper_bound, invert.
      	(vrp_val_is_min): Add handle_pointers argument.
      	(vrp_val_is_max): Same.
      	(extract_range_from_unary_expr): Remove.
      	(extract_range_from_binary_expr): Remove.
      	(range_fold_unary_expr): New.
      	(range_fold_binary_expr): New.
      	* vr-values.c (vr_values::extract_range_from_binary_expr): Call
      	range_fold_binary_expr instead of extract_range_from_binary_expr.
      	(vr_values::extract_range_basic): Same.
      	(vr_values::extract_range_from_unary_expr): Call
      	range_fold_unary_expr instead of extract_range_from_unary_expr.
      	* wide-int-range.cc: Remove.
      	* wide-int-range.h: Remove.
      
      From-SVN: r276504
      Aldy Hernandez committed
    • Daily bump. · e6f53878
      From-SVN: r276502
      GCC Administrator committed
    • Use the SIGNED_16BIT_OFFSET_EXTRA_P macro for 16-bit signed tests. · e5ec901c
      2019-10-02   Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (mem_operand_gpr): Use
      	SIGNED_16BIT_OFFSET_EXTRA_P.
      	(mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P.
      	(rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P.
      
      From-SVN: r276498
      Michael Meissner committed
  2. 02 Oct, 2019 33 commits
    • Define WIDTH macros for C2x. · 202be586
      As part of the integration of TS 18661-1 into C2x, many features
      became unconditional features not depending on any feature test macro
      being defined.  This patch updates the conditionals on the *_WIDTH
      macros in limits.h and stdint.h accordingly so that they are defined
      for C2x.  The macro CR_DECIMAL_DIG in float.h does still require
      __STDC_WANT_IEC_60559_BFP_EXT__ to be defined, and a test for this is
      added.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
      	condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
      	(__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
      	* glimits.h: Likewise.
      
      gcc/testsuite:
      	* gcc.dg/cr-decimal-dig-2.c: New test.
      	* gcc.dg/limits-width-2.c: New test.  Based on limits-width-1.c.
      	* gcc.dg/stdint-width-2.c: New test.  Based on stdint-width-1.c.
      
      From-SVN: r276497
      Joseph Myers committed
    • init.c (build_new): Use cp_expr_loc_or_input_loc in two places. · f5fc32e4
      /cp
      2019-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* init.c (build_new): Use cp_expr_loc_or_input_loc in two places.
      	* name-lookup.c (do_pushdecl): Use DECL_SOURCE_LOCATION.
      	(push_class_level_binding_1): Likewise.
      	(set_decl_namespace): Likewise.
      
      /testsuite
      2019-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/integral-array-size-1.C: New.
      	* g++.dg/cpp0x/alias-decl-1.C: Test location(s) too.
      	* g++.dg/init/new43.C: Likewise.
      	* g++.dg/lookup/friend12.C: Likewise.
      	* g++.dg/lookup/pr79766.C: Likewise.
      	* g++.dg/lookup/pr84375.C: Likewise.
      	* g++.dg/other/new-size-type.C: Likewise.
      
      From-SVN: r276496
      Paolo Carlini committed
    • re PR rtl-optimization/91976 (RTL check: expected code 'const_int', have 'reg'… · 775eaa4d
      re PR rtl-optimization/91976 (RTL check: expected code 'const_int', have 'reg' in emit_block_move_hints, at expr.c:1627)
      
      	PR rtl-optimization/91976
      	* expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
      	size is not CONST_INT_P, set pieces_ok to false in that case.  Simplify
      	CONST_INT_P (size) && pieces_ok to pieces_ok.  Formatting fix.
      
      From-SVN: r276495
      Jakub Jelinek committed
    • constexpr.c (cxx_eval_constant_expression): If not skipping upon entry to body... · 1006c9d4
      	* constexpr.c (cxx_eval_constant_expression) <case CLEANUP_STMT>: If
      	not skipping upon entry to body, run cleanup with the same *jump_target
      	as it started to run the cleanup even if the body returns, breaks or
      	continues.
      	(potential_constant_expression_1): Allow CLEANUP_STMT.
      
      	* g++.dg/ext/constexpr-attr-cleanup1.C: New test.
      
      From-SVN: r276494
      Jakub Jelinek committed
    • constexpr.c (cxx_eval_store_expression): Formatting fix. · 276a52d5
      	* constexpr.c (cxx_eval_store_expression): Formatting fix.  Handle
      	const_object_being_modified with array type.
      
      From-SVN: r276493
      Jakub Jelinek committed
    • Add changelog entries for r276491. · bead5784
      From-SVN: r276492
      Martin Sebor committed
    • PR tree-optimization/80936 - bcmp, bcopy, and bzero not declared nonnull · d1090a8a
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/80936
      	* gcc.dg/Wnonnull-2.c: New test.
      	* gcc.dg/Wnonnull-3.c: New test.
      	* gcc.dg/nonnull-3.c: Expect more warnings.
      
      gcc/ChangeLog:
      
      	PR tree-optimization/80936
      	* builtins.def (bcmp, bcopy, bzero): Declare nonnull.
      
      From-SVN: r276491
      Martin Sebor committed
    • Fix ALL_REGS thinko in initialisation of function_used_regs · aa29ed6d
      My change to the -fipa-ra bookkeeping used ALL_REGS as the supposedly
      safe default assumption, but ALL_REGS isn't literally all registers,
      just a close approximation.
      
      This caused a bootstrap failure on arm-linux-gnu, where the condition
      code register isn't in ALL_REGS and so was being masked out of some
      call-clobbered sets.
      
      2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
      	instead of reg_class_contents[ALL_REGS].
      
      From-SVN: r276489
      Richard Sandiford committed
    • runtime: mark go-context.S as no-executable-stack and split-stack supported · b7c41230
          
          The .note.GNU-stack section tells the linker that this object does not
          require an executable stack.
          
          The .note.GNU-split-stack section tells the linker that functions in
          this object can be called directly by split-stack functions, without
          require a large stack.
          
          The .note.GNU-no-split-stack section tells the linker that functions
          in this object do not have a split-stack prologue.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/198440
      
      From-SVN: r276488
      Ian Lance Taylor committed
    • Improve C++ fold caching efficiency. · b830c28b
      While looking at concepts caching I noticed that we were clearing the caches
      unnecessarily for non-constant initialization, which shouldn't affect
      folding.
      
      	* typeck2.c (store_init_value): Only clear_cv_and_fold_caches if the
      	value is constant.
      
      From-SVN: r276487
      Jason Merrill committed
    • Add some hash_map_safe_* functions like vec_safe_*. · c89844e5
      gcc/
      	* hash-map.h (default_hash_map_size): New variable.
      	(create_ggc): Use it as default argument.
      	(hash_map_maybe_create, hash_map_safe_get)
      	(hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
      gcc/cp/
      	* constexpr.c (maybe_initialize_fundef_copies_table): Remove.
      	(get_fundef_copy): Use hash_map_safe_get_or_insert.
      	* cp-objcp-common.c (cp_get_debug_type): Use hash_map_safe_*.
      	* decl.c (store_decomp_type): Remove.
      	(cp_finish_decomp): Use hash_map_safe_put.
      	* init.c (get_nsdmi): Use hash_map_safe_*.
      	* pt.c (store_defaulted_ttp, lookup_defaulted_ttp): Remove.
      	(add_defaults_to_ttp): Use hash_map_safe_*.
      
      From-SVN: r276484
      Jason Merrill committed
    • Testsuite, remove alloca header · d61bff85
      2019-10-02  Andreas Tobler  <andreast@gcc.gnu.org>
      
      	* testsuite/libgomp.oacc-c-c++-common/loop-default.h: Remove alloca.h
      	include. Replace alloca () with __builtin_alloca ().
      	* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Likewise.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r276479
      Andreas Tobler committed
    • re PR fortran/91784 (ICE in gfc_real2complex, at fortran/arith.c:2208) · c20a90e0
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91784
      	* simplify.c (gfc_convert_constant): Simplify expression if the
      	expres	ion type is EXPR_OP.
      
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91784
      	* gfortran.dg/pr91784.f90: New test.
      
      From-SVN: r276474
      Steven G. Kargl committed
    • re PR fortran/91785 (ICE in check_assumed_size_reference, at fortran/resolve.c:1601) · 307de100
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91785
      	* primary.c (gfc_match_varspec): Ensure an inquiry parameter has
      	it locus set.
      
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91785
      	* gfortran.dg/pr91785.f90: New test.
      
      From-SVN: r276473
      Steven G. Kargl committed
    • re PR fortran/91942 (ICE in match_vtag, at fortran/io.c:1485) · 939e9f69
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91942
      	* io.c (match_vtag): Check for non-NULL result->symtree.
      	(match_out_tag): Check for invalid constant due to inquiry parameter.
      	(match_filepos): Instead of a syntax error, go to cleanup to get better
      	error messages.
      
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91942
      	* gfortran.dg/pr91587.f90: Update dg-error regex.
      	* gfortran.dg/pr91942.f90: New test.
      
      From-SVN: r276472
      Steven G. Kargl committed
    • re PR fortran/91943 (ICE in gfc_conv_constant_to_tree, at fortran/trans-const.c:370) · 8b4e5e71
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91943
      	* match.c (gfc_match_call): BOZ cannot be an actual argument in
      	a subroutine reference.
      	* resolve.c (resolve_function): BOZ cannot be an actual argument in
      	a function reference.
       
      2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91943
      	gfortran.dg/pr91943.f90
      
      From-SVN: r276471
      Steven G. Kargl committed
    • cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, [...]): New. · b1fb82e5
      
      	* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
      	MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
      	* ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
      	(can_inline_edge_by_limits_p): Use it.
      	(big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
      	(want_inline_small_function_p): Use O2 bounds.
      	(edge_badness): LIkewise.
      	* opts.c (default_options): Add OPT_finline_functions.
      	* params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
      	PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
      	New parameters.
      
      	* g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param
      	max-inline-insns-single-O2=200.
      	* gcc.c-torture/execute/builtins/builtins.exp: Add
      	-fno-inline-functions to additional_flags.
      	* gcc.dg/ipa/inline-7.c: Add -fno-inline-functions.
      	* gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions.
      	* gcc.dg/tree-ssa/ssa-thread-12.c: Add --param
      	early-inlining-insns-O2=14 -fno-inline-functions; revert previous
      	change.
      	* gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1
      	--param inline-min-speedup-O2=100
      	instead of --param max-inline-insns-single=1 --param
      	inline-min-speedup=100
      
      	* invoke.texi (-finline-functions): Update documentation.
      	(max-inline-insns-single-O2, max-inline-insns-auto-O2,
      	inline-min-speedup-O2): Document.
      	(early-inlining-insns-O2): Simplify docs.
      
      From-SVN: r276470
      Jan Hubicka committed
    • cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, [...]): New. · 562d1e95
      
      	* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
      	MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
      	* ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
      	(can_inline_edge_by_limits_p): Use it.
      	(big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
      	(want_inline_small_function_p): Use O2 bounds.
      	(edge_badness): LIkewise.
      	* opts.c (default_options): Add OPT_finline_functions.
      	* params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
      	PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
      	New parameters.
      
      	* g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param
      	max-inline-insns-single-O2=200.
      	* gcc.c-torture/execute/builtins/builtins.exp: Add
      	-fno-inline-functions to additional_flags.
      	* gcc.dg/ipa/inline-7.c: Add -fno-inline-functions.
      	* gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions.
      	* gcc.dg/tree-ssa/ssa-thread-12.c: Add --param
      	early-inlining-insns-O2=14 -fno-inline-functions; revert previous
      	change.
      	* gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1
      	--param inline-min-speedup-O2=100
      	instead of --param max-inline-insns-single=1 --param
      	inline-min-speedup=100
      
      	* invoke.texi (-finline-functions): Update documentation.
      	(max-inline-insns-single-O2, max-inline-insns-auto-O2,
      	inline-min-speedup-O2): Document.
      	(early-inlining-insns-O2): Simplify docs.
      
      From-SVN: r276469
      Jan Hubicka committed
    • Remove greedy wildcards from libstdc++ linker script · 352d2690
      The only symbols matched by std::e[a-q]* and std::e[s-z]* that are
      supposed to be in the GLIBCXX_3.4 version are std::exception::* and
      std::endl and std::ends. The latter two already have explicit patterns
      matching them, so we just need to match std::exception::*.
      
      This change ensures that any new symbols with a return type of
      std::enable_if<...> are not added to the GLIBCXX_3.4 version.
      
      	* config/abi/pre/gnu.ver: Tighten up greedy wildcards.
      
      From-SVN: r276468
      Jonathan Wakely committed
    • ifcvt: improve cost estimation (PR 87047) · 1764d63b
      	PR rtl-optimization/87047
      	* ifcvt.c (average_cost): New static function.  Use it...
      	(noce_process_if_block): ... here.
      
      testsuite/
      	* gcc.dg/pr87047.c: New test.
      
      From-SVN: r276466
      Alexander Monakov committed
    • [PR testsuite/91842] Skip gcc.dg/ipa/ipa-sra-19.c on power · a264ea9a
      2019-10-02  Martin Jambor  <mjambor@suse.cz>
      
      	PR testsuite/91842
      	* gcc.dg/ipa/ipa-sra-19.c: Skip on powerpc.
      
      From-SVN: r276465
      Martin Jambor committed
    • module.c (load_commons): Initialize flags to 0 to silecne -Wmaybe-uninitialized warning. · 408b33fc
      
      	* module.c (load_commons): Initialize flags to 0 to silecne
      	-Wmaybe-uninitialized warning.
      	(read_module): Likewise for n and comp_name.
      
      From-SVN: r276464
      Jan Hubicka committed
    • Document non-conformance of parallel mode to recent C++ standards · 709310e7
      	* doc/xml/manual/parallel_mode.xml: Add caveat about support for
      	recent standards.
      	* doc/html/*: Regenerate.
      
      From-SVN: r276463
      Jonathan Wakely committed
    • rs6000-protos.h (expand_block_move): Change prototype. · c8241327
      2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
      
      	* config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
      	* config/rs6000/rs6000-string.c (expand_block_move): Add
      	might_overlap parm.
      	* config/rs6000/rs6000.md (movmemsi): Add new pattern.
      	(cpymemsi): Add might_overlap parm to expand_block_move() call.
      
      From-SVN: r276462
      Aaron Sawdey committed
    • builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm. · 03a9b90a
      2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
      
      	* builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
      	(expand_builtin_memcpy): Use might_overlap parm.
      	(expand_builtin_mempcpy_args): Use might_overlap parm.
      	(expand_builtin_memmove): Call expand_builtin_memory_copy_args.
      	(expand_builtin_memory_copy_args): Add might_overlap parm.
      	* expr.c (emit_block_move_via_cpymem): Rename to
      	emit_block_move_via_pattern, add might_overlap parm, use cpymem
      	or movmem optab as appropriate.
      	(emit_block_move_hints): Add might_overlap parm, do the right
      	thing for might_overlap==true.
      	* expr.h (emit_block_move_hints): Update prototype.
      
      From-SVN: r276461
      Aaron Sawdey committed
    • tree-eh.h (unsplit_eh_edges): Declare. · 629387a6
      	* tree-eh.h (unsplit_eh_edges): Declare.
      	* tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
      	(unsplit_eh_edges): New function wrapping unsplit_all_eh.
      	* gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
      	(struct store_immediate_info): Add lp_nr field.
      	(store_immediate_info::store_immediate_info): Add NR2 parameter and
      	initialize lp_nr with it.
      	(struct merged_store_group): Add lp_nr and only_constants fields.
      	(merged_store_group::merged_store_group): Initialize them.
      	(merged_store_group::can_be_merged_into): Deal with them.
      	(pass_store_merging): Rename terminate_and_release_chain into
      	terminate_and_process_chain.
      	(pass_store_merging::terminate_and_process_all_chains): Adjust to above
      	renaming and remove useless assertions.
      	(pass_store_merging::terminate_all_aliasing_chains): Small tweak.
      	(stmts_may_clobber_ref_p): Be prepared for different basic blocks.
      	(imm_store_chain_info::coalesce_immediate_stores): Use only_constants
      	instead of always recomputing it and compare lp_nr.
      	(imm_store_chain_info::output_merged_store): If the group is in an
      	active EH region, register new stores if they can throw.  Moreover,
      	if the insertion has created new basic blocks, adjust the PHI nodes
      	of the post landing pad.
      	(imm_store_chain_info::output_merged_stores): If the original stores
      	are in an active EH region, deregister them.
      	(lhs_valid_for_store_merging_p): Prettify.
      	(adjust_bit_pos): New function extracted from...
      	(mem_valid_for_store_merging): ...here.  Use it for the base address
      	and also for the offset if it is the addition of a constant.
      	(lp_nr_for_store): New function.
      	(pass_store_merging::process_store): Change return type to bool.
      	Call lp_nr_for_store to initialize the store info.  Propagate the
      	return status of various called functions to the return value.
      	(store_valid_for_store_merging_p): New predicate.
      	(enum basic_block_status): New enumeration.
      	(get_status_for_store_merging): New function.
      	(pass_store_merging::execute): If the function can throw and catch
      	non-call exceptions, unsplit the EH edges on entry and clean up the
      	CFG on exit if something changed.  Call get_status_for_store_merging
      	for every basic block and keep the chains open across basic blocks
      	when possible.  Terminate and process open chains at the end, if any.
      
      From-SVN: r276459
      Eric Botcazou committed
    • Fix shadowing in globalize_reg · ea4b29d5
      2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* reginfo.c (globalize_reg): Fix shadowed variable in
      	function_abis walk.
      
      From-SVN: r276457
      Richard Sandiford committed
    • Fix MIPS call-clobbered-*.c tests · 4bdb8c3d
      Jeff pointed out that gcc.target/mips/call-clobbered-4.c started
      failing after the function-abi series.  This is because IRA used
      to treat partly call-clobbered registers as hard conflicts and
      so wouldn't consider them for -fcaller-saves.  Now that we treat
      call clobbers the same way regardless of where they come from,
      we can use $f21 as a caller-save register.  This in turn means
      that -Os is no longer a special case in call-clobbered-3.c.
      
      (The new code is the same size as the old code.)
      
      2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/mips/call-clobbered-3.c: Remove skip for -Os.
      	* gcc.target/mips/call-clobbered-4.c: Delete.
      
      From-SVN: r276456
      Richard Sandiford committed
    • [PATCH] Do not check call type compatibility when cloning cgraph-edges · 3187c8a5
      2019-10-02  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.c (symbol_table::create_edge): New parameter cloning_p,
      	do not compute some stuff when set.
      	(cgraph_node::create_edge): Likewise.
      	(cgraph_node::create_indirect_edge): Renamed last parameter to
      	coning_p and flipped its meaning, don't even calculate
      	inline_failed when set.
      	* cgraph.h (cgraph_node::create_edge): Add new parameter.
      	(symbol_table::::create_edge): Likewise.
      	(cgraph_node::create_indirect_edge): Rename last parameter, flip
      	the default value.
      	* cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
      	call graph edge creating functions.
      
      From-SVN: r276455
      Martin Jambor committed
    • re PR c++/91222 (507.cactuBSSN_r build fails in warn_types_mismatch at… · 569651fd
      re PR c++/91222 (507.cactuBSSN_r build fails in warn_types_mismatch at ipa-devirt.c:1006 since r273571)
      
      	PR c++/91222
      	* ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
      	namespace types.
      
      From-SVN: r276454
      Jan Hubicka committed
    • [ARC] Pass along "-mcode-density" flag to "as" · d94b1602
      This change makes sure that if the driver is invoked with
      "-mcode-density" flag, then the assembler will receive it
      too.
      
      gcc/
      xxxx-xx-xx  Shahab Vahedi  <shahab@synopsys.com>
      
              * config/arc/arc.h (ASM_SPEC): pass -mcode-density
      
      From-SVN: r276453
      Shahab Vahedi committed
    • tree-vectorizer.h (vect_transform_reduction): Declare. · 9f4d9a36
      2019-10-02  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (vect_transform_reduction): Declare.
      	* tree-vect-stmts.c (vect_transform_stmt): Use it.
      	* tree-vect-loop.c (vectorizable_reduction): Split out reduction
      	stmt transform to ...
      	(vect_transform_reduction): ... this.
      
      From-SVN: r276452
      Richard Biener committed
    • Support OpenMP's use_device_addr in Fortran · ef4add8e
              gcc/fortran/
      	* dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR.
      	* gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR.
      	* openmp.c (omp_mask1): Likewise.
      	(gfc_match_omp_clauses): Match 'use_device_addr'.
      	(OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR.
      	(resolve_omp_clauses): Add it; add is_device_ptr checks.
      
              gcc/testsuite/
      	* gfortran.dg/gomp/is_device_ptr-1.f90: New.
      
      From-SVN: r276449
      Tobias Burnus committed