1. 07 Jan, 2020 9 commits
    • ipa-inline: Adjust condition for caller_growth_limits · 6ac22177
      Inline should return failure either (newsize > param_large_function_insns)
      OR (newsize > limit).  Sometimes newsize is larger than
      param_large_function_insns, but smaller than limit, inline doesn't return
      failure even if the new function is a large function.
      Therefore, param_large_function_insns and param_large_function_growth should be
      OR instead of AND, otherwise --param large-function-growth won't
      work correctly with --param large-function-insns.
      
      gcc/ChangeLog:
      
      	2020-01-07  Luo Xiong Hu  <luoxhu@linux.ibm.com>
      
      	* ipa-inline-analysis.c (estimate_growth): Fix typo.
      	* ipa-inline.c (caller_growth_limits): Use OR instead of AND.
      
      From-SVN: r279942
      Luo Xiong Hu committed
    • Refactor some code for a future change. · 1b02c8c3
      2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
      	helper function to return the valid addressing formats for a given
      	hard register and mode.
      	(rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
      
      Index: gcc/config/rs6000/rs6000.c
      ===================================================================
      --- gcc/config/rs6000/rs6000.c	(revision 279912)
      +++ gcc/config/rs6000/rs6000.c	(working copy)
      @@ -6729,6 +6729,30 @@ rs6000_expand_vector_extract (rtx target
           }
       }
       
      +/* Helper function to return an address mask based on a physical register.  */
      +
      +static addr_mask_type
      +hard_reg_and_mode_to_addr_mask (rtx reg, machine_mode mode)
      +{
      +  unsigned int r = reg_or_subregno (reg);
      +  addr_mask_type addr_mask;
      +
      +  gcc_assert (HARD_REGISTER_NUM_P (r));
      +  if (INT_REGNO_P (r))
      +    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_GPR];
      +
      +  else if (FP_REGNO_P (r))
      +    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_FPR];
      +
      +  else if (ALTIVEC_REGNO_P (r))
      +    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_VMX];
      +
      +  else
      +    gcc_unreachable ();
      +
      +  return addr_mask;
      +}
      +
       /* Adjust a memory address (MEM) of a vector type to point to a scalar field
          within the vector (ELEMENT) with a mode (SCALAR_MODE).  Use a base register
          temporary (BASE_TMP) to fixup the address.  Return the new memory address
      @@ -6865,21 +6889,8 @@ rs6000_adjust_vec_address (rtx scalar_re
         if (GET_CODE (new_addr) == PLUS)
           {
             rtx op1 = XEXP (new_addr, 1);
      -      addr_mask_type addr_mask;
      -      unsigned int scalar_regno = reg_or_subregno (scalar_reg);
      -
      -      gcc_assert (HARD_REGISTER_NUM_P (scalar_regno));
      -      if (INT_REGNO_P (scalar_regno))
      -	addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_GPR];
      -
      -      else if (FP_REGNO_P (scalar_regno))
      -	addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_FPR];
      -
      -      else if (ALTIVEC_REGNO_P (scalar_regno))
      -	addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_VMX];
      -
      -      else
      -	gcc_unreachable ();
      +      addr_mask_type addr_mask
      +	= hard_reg_and_mode_to_addr_mask (scalar_reg, scalar_mode);
       
             if (REG_P (op1) || SUBREG_P (op1))
       	valid_addr_p = (addr_mask & RELOAD_REG_INDEXED) != 0;
      
      From-SVN: r279941
      Michael Meissner committed
    • Update ChangeLog for last change · 0a4c673c
      From-SVN: r279940
      Michael Meissner committed
    • Update 'Q' constraint documentation. · e5d3611e
      2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/constraints.md (Q constraint): Update
      	documentation.
      	* doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
      	documentation.
      
      From-SVN: r279939
      Michael Meissner committed
    • Fix bad code of vector extract of PC-relative address with variable element #. · 3d53551b
      2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
      	Use 'Q' for doing vector extract from memory.
      	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
      	memory.
      	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
      	doing vector extract from memory.
      	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
      	extract from memory.
      
      From-SVN: r279938
      Michael Meissner committed
    • Add support for large prefixed address in adjusting a vector address. · dfef3500
      2020-01-06  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
      	for the offset being 34-bits when -mcpu=future is used.
      
      From-SVN: r279937
      Michael Meissner committed
    • PR c++/92552 - ICE with inherited constrained default ctor. · 665e3b21
      We set TYPE_HAS_USER_CONSTRUCTOR on the template type in lookup_using_decl,
      but we didn't copy it to the instantiation.  Setting it in
      one_inherited_ctor is too late, as that gets called after we decide whether
      to set CLASSTYPE_LAZY_DEFAULT_CTOR.  This change affects other testcases as
      well; the changes are fixes for the other inherited constructor tests as
      well.
      
      	* pt.c (instantiate_class_template_1): Copy
      	TYPE_HAS_USER_CONSTRUCTOR.
      	* class.c (one_inherited_ctor): Don't set it here.
      
      From-SVN: r279936
      Jason Merrill committed
    • PR c++/92739 - parsing requires clause with attributes. · e4bcf1f5
      gcc/cp/
      	* parser.c (cp_parser_constraint_requires_parens): Exclude
      	attributes as postfix expressions.
      
      gcc/testsuite/
      	* g++.dg/concepts-pr92739.C: New test.
      
      From-SVN: r279935
      Andrew Sutton committed
    • Daily bump. · bd401fc8
      From-SVN: r279932
      GCC Administrator committed
  2. 06 Jan, 2020 15 commits
    • pa.md: Revert change to use ordered_comparison_operator instead of... · cf319b3f
      	* config/pa/pa.md: Revert change to use ordered_comparison_operator
      	instead of cmpib_comparison_operator in cmpib patterns.
      	* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
      	of cmpib_comparison_operator.  Revise comment.
      
      From-SVN: r279927
      John David Anglin committed
    • Require equal shift amounts for IFN_DIV_POW2 · a0643f02
      IFN_DIV_POW2 currently requires all elements to be shifted by the
      same amount, in a similar way as for WIDEN_LSHIFT_EXPR.  This patch
      enforces that when building the SLP tree.
      
      If in future targets want to support IFN_DIV_POW2 without this
      restriction, we'll probably need the kind of vector-vector/
      vector-scalar split that we already have for normal shifts.
      
      2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
      	in an IFN_DIV_POW2 node to be equal.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/asrdiv_1.c: Remove trailing %s.
      	* gcc.target/aarch64/sve/asrdiv_2.c: New test.
      	* gcc.target/aarch64/sve/asrdiv_3.c: Likewise.
      
      From-SVN: r279908
      Richard Sandiford committed
    • Check mask argument's type when vectorising conditional functions · 8a0ae3c1
      We can't yet vectorise conditional internal functions whose boolean
      condition is fed by a data access (or more generally, by a tree of logic
      ops in which all the leaves are data accesses).  Although we should add
      that eventually, we'd need further work to generate good-quality code.
      
      Unlike vectorizable_load and vectorizalbe_store, vectorizable_call
      wasn't checking whether the mask had a suitable type, leading to an
      ICE on the testcases.
      
      2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
      	(vect_check_scalar_mask): ...this.
      	(vectorizable_store, vectorizable_load): Update call accordingly.
      	(vectorizable_call): Use vect_check_scalar_mask to check the mask
      	argument in calls to conditional internal functions.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-cond-arith-8.c: New test.
      	* gcc.target/aarch64/sve/cond_fmul_5.c: Likewise.
      
      From-SVN: r279907
      Richard Sandiford committed
    • Fix amdgcn issue with '0' constraints · d54fc770
      2020-01-06  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
      	'0' matching inputs.
      	(subv64di3_exec): Likewise.
      
      From-SVN: r279906
      Andrew Stubbs committed
    • mips.c (vr4130_align_insns): Fix typo. · 2b4f0b89
      2020-01-06  Bryan Stenson  <bryan@siliconvortex.com>
      
      	* config/mips/mips.c (vr4130_align_insns): Fix typo.
      	* doc/md.texi (movstr): Likewise.
      
      From-SVN: r279905
      Bryan Stenson committed
    • Fix early-clobber in amdgcn vec_extract · b4d74ed7
      2020-01-06  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
      	clobber.
      
      From-SVN: r279904
      Andrew Stubbs committed
    • PR c++/79592 adjust testcase · 1810a89c
      https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00127.html
      	* g++.dg/ubsan/vptr-4.C: Add expected error.
      
      From-SVN: r279902
      Nathan Sidwell committed
    • [AArch64] Use move-if-change for aarch64-tune.md · 03338111
      If aarch64-tune.md was older than gentune.sh or aarch64-cores.def,
      we'd try to overwrite it even if the current contents were correct.
      This could cause problems with read-only source directories and
      could cause spurious copying for rsync --archive.
      
      2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
      	Depend on...
      	(s-aarch64-tune-md): ...this new stamp file.  Pipe the new contents
      	to a temporary file and use move-if-change to update the real
      	file where necessary.
      
      From-SVN: r279900
      Richard Sandiford committed
    • [AArch64] Fix constraints for CPY /M · 3c2707f3
      The constraints for CPY /M allowed p0-p15 instead of the intended p0-p7.
      This looks like a pasto from the preceding constant pattern, where p0-p15
      is allowed.
      
      2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
      	rather than Upa for CPY /M.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/acle/general/cpy_1.c: New test.
      
      From-SVN: r279899
      Richard Sandiford committed
    • Fix amdgcn inline immediate range · 5960de78
      2020-01-06  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
      	immediate.
      
      From-SVN: r279898
      Andrew Stubbs committed
    • libstdc++: Remove redundant inequality operators in <stop_token> · a4a1f965
      	* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
      	(stop_source): Likewise (LWG 3362).
      	* testsuite/30_threads/stop_token/stop_source.cc: Test equality
      	comparisons.
      
      From-SVN: r279897
      Jonathan Wakely committed
    • libstdc++: Define __cpp_lib_three_way_comparison conditionally · f31a99f7
      The contents of the <compare> header are not complete unless concepts
      are supported, so the feature test macro should depend on the macro for
      concepts.
      
      As a result, the std::lexicographical_compare_three_way function will
      not be defined unless concepts are supported, so there is no need to
      check __cpp_lib_concepts before using concepts in those functions.
      
      	* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
      	(lexicographical_compare_three_way): Do not depend on
      	__cpp_lib_concepts.
      	* include/std/version (__cpp_lib_three_way_comparison): Only define
      	when __cpp_lib_concepts is defined.
      	* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
      
      From-SVN: r279896
      Jonathan Wakely committed
    • Mark param_max_combine_insns with Optimization keyword. · 4ce43ba4
          PR tree-optimization/92860
          * params.opt: Mark param_max_combine_insns with Optimization
          keyword.
      
      From-SVN: r279895
      Martin Liska committed
    • New bitfield testcases. · 8f50e25f
      2020-01-05  Andrew Pinski  <apinski@marvell.com>
      
              * gcc.c-torture/compile/20200105-1.c: New testcase.
              * gcc.c-torture/compile/20200105-2.c: New testcase.
              * gcc.c-torture/compile/20200105-3.c: New testcase.
      
      From-SVN: r279893
      Andrew Pinski committed
    • Daily bump. · 6ce195bd
      From-SVN: r279892
      GCC Administrator committed
  3. 05 Jan, 2020 7 commits
    • discr1.ads: Compile with -gnatc instead of -gnatct. · e9c6bb46
      	* gnat.dg/specs/discr1.ads: Compile with -gnatc instead of -gnatct.
      	* gnat.dg/specs/limited_with4.ads: Likewise.
      	* gnat.dg/specs/limited_with4_pkg.ads: Likewise.
      	* gnat.dg/specs/private1-sub.ads: Likewise.
      	* gnat.dg/specs/task1.ads: Likewise.
      
      From-SVN: r279889
      Eric Botcazou committed
    • [testsuite, Darwin] Fix failing darwin-version-1.c. · 53cfd936
      Recent platform linkers will no longer accept linking for a target
      OS version less than 10.4.  Recent SDKs no longer have the libgcc_s
      shims used for 10.4 and 10.5.  So we need to adjust tests that expect
      these.
      
      gcc/testsuite/ChangeLog:
      
      2020-01-05  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.dg/darwin-version-1.c: Adjust test to use different
      	options for Darwin4-9 and Darwin10+.
      
      From-SVN: r279888
      Iain Sandoe committed
    • re PR target/93141 (Missed optimization : Use of adc when checking overflow) · c57b4c22
      	PR target/93141
      	* config/i386/i386.md (SWIDWI): New mode iterator.
      	(DWI, dwi): Add TImode variants.
      	(addv<mode>4): Use SWIDWI iterator instead of SWI.  Use
      	<general_hilo_operand> instead of <general_operand>.  Use
      	CONST_SCALAR_INT_P instead of CONST_INT_P.
      	(*addv<mode>4_1): Rename to ...
      	(addv<mode>4_1): ... this.
      	(QWI): New mode attribute.
      	(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
      	define_insn_and_split patterns.
      	(*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
      	patterns.
      	(uaddv<mode>4): Use SWIDWI iterator instead of SWI.  Use
      	<general_hilo_operand> instead of <general_operand>.
      	(*addcarry<mode>_1): New define_insn.
      	(*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
      
      	* gcc.target/i386/pr93141-1.c: New test.
      	* gcc.dg/pr67089-6.c: Expect 16 ADD_OVERFLOW calls even on ia32.
      
      From-SVN: r279887
      Jakub Jelinek committed
    • re PR c++/93138 (elaborated type specifier visibility check problem) · 39bec8cd
      	PR c++/93138
      	* parser.c (cp_parser_check_class_key): Disable access checks for the
      	simple name lookup.
      	(cp_parser_maybe_warn_enum_key): Likewise.  Return early if
      	!warn_redundant_tags.
      
      	* g++.dg/warn/Wredundant-tags-2.C: New test.
      
      From-SVN: r279886
      Jakub Jelinek committed
    • Guard inclusion of vxAtomicLib.h from gthr-vxworks.h · 5205a445
      2020-01-05  Olivier Hainque  <hainque@adacore.com>
      
              * config/gthr-vxworks.h: Guard #include vxAtomicLib.h
      	by IN_LIBGCC2.
      
      From-SVN: r279885
      Olivier Hainque committed
    • re PR c++/93046 (ICE in cp_gimplify_init_expr) · 72036b59
      	PR c++/93046
      	* cp-gimplify.c (cp_gimplify_init_expr): Don't look through
      	TARGET_EXPR if it has been gimplified already.
      
      	* g++.dg/ext/cond4.C: New test.
      
      From-SVN: r279884
      Jakub Jelinek committed
    • Daily bump. · 48cb874a
      From-SVN: r279883
      GCC Administrator committed
  4. 04 Jan, 2020 3 commits
  5. 03 Jan, 2020 6 commits