- 07 Jan, 2020 9 commits
-
-
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 -
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 -
From-SVN: r279940
Michael Meissner committed -
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 -
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 -
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 -
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 -
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 -
From-SVN: r279932
GCC Administrator committed
-
- 06 Jan, 2020 15 commits
-
-
* 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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
* 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 -
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 -
PR tree-optimization/92860 * params.opt: Mark param_max_combine_insns with Optimization keyword. From-SVN: r279895
Martin Liska committed -
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 -
From-SVN: r279892
GCC Administrator committed
-
- 05 Jan, 2020 7 commits
-
-
* 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 -
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 -
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 -
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 -
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 -
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 -
From-SVN: r279883
GCC Administrator committed
-
- 04 Jan, 2020 3 commits
-
-
From-SVN: r279880
Eric Botcazou committed -
PR fortran/91640 * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable arguments to contiguous dummy args. Avoid re-checking whether fsym is NULL. PR fortran/91640 * gfortran.dg/contiguous_10.f90: New. From-SVN: r279879
Tobias Burnus committed -
From-SVN: r279876
GCC Administrator committed
-
- 03 Jan, 2020 6 commits
-
-
The split_nonconstant_init piece is the only one necessary to fix the testcase, but it occurred to me that we might as well not split when -fno-exceptions. * typeck2.c (split_nonconstant_init): Unshare non-decl. * cp-gimplify.c (cp_gimplify_init_expr): Only split if -fexceptions. From-SVN: r279871
Jason Merrill committed -
* pt.c (invalid_nontype_parm_type_p): Reject class placeholder in C++17. From-SVN: r279870
Jason Merrill committed -
These tests currently fail on targets that do not support intel asm syntax. gcc/testsuite/ChangeLog: 2020-01-03 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/i386/avx512bw-pr92686-vpcmp-intelasm-1.c: Require effective target masm_intel. * gcc.target/i386/avx512vl-pr92686-vpcmp-intelasm-1.c: Likewise. From-SVN: r279869
Iain Sandoe committed -
Calling a function foo in gdb as "set foo()" results in a warning. Disregarding, it looks wrong to call a function with "set". Let's use "call" instead. 2019-11-14 Konstantin Kharlamov <Hi-Angel@yandex.ru> * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm): Use "call" instead of "set". From-SVN: r279866
Konstantin Kharlamov committed -
Clang now supports three-way comparisons. That causes both overloads of std::lexicographical_compare_three_way to be defined, but the second one uses std::compare_three_way which depends on concepts. Clang does not yet support concepts, so the second overload should also depend on __cpp_lib_concepts. * include/bits/stl_algobase.h (lexicographical_compare_three_way): Only define four-argument overload when __cpp_lib_concepts is defined. From-SVN: r279861
Jonathan Wakely committed -
2020-01-03 Martin Jambor <mjambor@suse.cz> PR ipa/92917 * ipa-cp.c (print_all_lattices): Skip functions without info. From-SVN: r279859
Martin Jambor committed
-