Age | Commit message (Collapse) | Author | Files | Lines |
|
2020-01-07 Martin Liska <mliska@suse.cz>
* params.opt: Add Optimization for various parameters.
From-SVN: r279949
|
|
2020-01-07 Martin Liska <mliska@suse.cz>
PR ipa/83411
* doc/extend.texi: Explain cloning for target_clone
attribute.
From-SVN: r279948
|
|
2020-01-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/92860
* common.opt: Make in Optimization option
as it is affected by -O0, which is an Optimization
option.
* tree-inline.c (tree_inlinable_function_p):
Use opt_for_fn for warn_inline.
(expand_call_inline): Likewise.
2020-01-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/92860
* gcc.dg/pr92860-2.c: New test.
From-SVN: r279947
|
|
From-SVN: r279946
|
|
2020-01-07 Martin Liska <mliska@suse.cz>
PR optimization/92860
* params.opt: Mark param_min_crossjump_insns with Optimization
keyword.
From-SVN: r279945
|
|
of value 145992800, which is not a valid value for type 'ar_type' since r279628)
PR fortran/93162
* trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
before testing u.ar.type == AR_FULL.
From-SVN: r279944
|
|
PR c++/91369
* constexpr.c (struct constexpr_global_ctx): Add heap_alloc_count
member, initialize it to zero in ctor.
(cxx_eval_call_expression): Bump heap_dealloc_count when deleting
a heap object. Don't cache calls to functions which allocate some
heap objects and don't deallocate them or deallocate some heap
objects they didn't allocate.
* g++.dg/cpp1y/constexpr-new.C: Expect an error explaining why
static_assert failed for C++2a.
* g++.dg/cpp2a/constexpr-new9.C: New test.
From-SVN: r279943
|
|
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
|
|
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
|
|
From-SVN: r279940
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r279932
|
|
* 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00127.html
* g++.dg/ubsan/vptr-4.C: Add expected error.
From-SVN: r279902
|
|
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
|
|
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
|
|
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
|
|
* 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
|
|
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
|
|
PR tree-optimization/92860
* params.opt: Mark param_max_combine_insns with Optimization
keyword.
From-SVN: r279895
|
|
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
|
|
From-SVN: r279892
|
|
* 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
|
|
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
|
|
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
|
|
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
|
|
2020-01-05 Olivier Hainque <hainque@adacore.com>
* config/gthr-vxworks.h: Guard #include vxAtomicLib.h
by IN_LIBGCC2.
From-SVN: r279885
|
|
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
|
|
From-SVN: r279883
|
|
From-SVN: r279880
|
|
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
|
|
From-SVN: r279876
|
|
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
|
|
* pt.c (invalid_nontype_parm_type_p): Reject class placeholder in
C++17.
From-SVN: r279870
|
|
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
|
|
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
|
|
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
|
|
2020-01-03 Martin Jambor <mjambor@suse.cz>
PR ipa/92917
* ipa-cp.c (print_all_lattices): Skip functions without info.
From-SVN: r279859
|
|
gcc/fortran/
* trans-openmp.c (gfc_omp_check_optional_argument): Always return a
Boolean expression; handle unallocated/disassociated actual arguments
as absent if passed to nonallocatable/nonpointer dummy array arguments.
(gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
(gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
array-data variable if the argument is absent. Simplify code as
'present' is now a Boolean expression.
libgomp/
* testsuite/libgomp.fortran/optional-map.f90: Add test for
unallocated/disassociated actual arguments to nonallocatable/nonpointer
dummy arguments; those are/shall be regarded as absent arguments.
* testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto.
* testsuite/libgomp.fortran/use_device_ptr-optional-3.f90: New.
From-SVN: r279858
|
|
PR target/93089
* config/i386/i386-options.c (ix86_simd_clone_adjust): If
TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
for 'e' simd clones.
* gcc.target/i386/pr93089-2.c: New test.
* gcc.target/i386/pr93089-3.c: New test.
From-SVN: r279857
|
|
PR target/93089
* config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
entry.
(mprefer-vector-width=): Add Save.
* config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
-mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
(ix86_debug_options, ix86_function_specific_print): Adjust
ix86_target_string callers.
(ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
(ix86_valid_target_attribute_tree): Likewise.
* config/i386/i386-options.h (ix86_target_string): Add PVW argument.
* config/i386/i386-expand.c (ix86_expand_builtin): Adjust
ix86_target_string caller.
* gcc.target/i386/pr93089-1.c: New test.
From-SVN: r279856
|