Age | Commit message (Collapse) | Author | Files | Lines |
|
2018-03-19 Tom de Vries <tom@codesourcery.com>
* gcc.dg/tree-ssa/pr84512.c: Don't require effective target
vect_int_mult. Add nvptx xfail for PR84958.
From-SVN: r258656
|
|
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00890.html
PR c++/84835
* lambda.c (maybe_add_lambda_conv_op): Force C++ linkage.
* pt.c (build_template_decl): Propagate language linkage.
PR c++/84835
* g++.dg/cpp1y/pr84835.C: New.
From-SVN: r258655
|
|
This patch fixes the inconsistent behavior observed at -O3 for the unordered
comparisons. According to the online docs (https://gcc.gnu.org/onlinedocs
/gcc-7.2.0/gccint/Unary-and-Binary-Expressions.html), all of the following
should not raise an FP exception:
- UNGE_EXPR
- UNGT_EXPR
- UNLE_EXPR
- UNLT_EXPR
- UNEQ_EXPR
Also ORDERED_EXPR and UNORDERED_EXPR should only return zero or one.
The aarch64-simd.md handling of these were generating exception raising
instructions such as fcmgt. This patch changes the instructions that are
emitted in order to not give out the exceptions. We first check each
operand for NaNs and force any elements containing NaN to zero before using
them in the compare.
Example: UN<cc> (a, b) -> UNORDERED (a, b)
| (cm<cc> (isnan (a) ? 0.0 : a, isnan (b) ? 0.0 : b))
The ORDERED_EXPR is now handled as (cmeq (a, a) & cmeq (b, b)) and
UNORDERED_EXPR as ~ORDERED_EXPR and UNEQ as (~ORDERED_EXPR | cmeq (a,b)).
ChangeLog Entries:
*** gcc/ChangeLog ***
2018-03-19 Sudakshina Das <sudi.das@arm.com>
PR target/81647
* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify
instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
*** gcc/testsuite/ChangeLog ***
2018-03-19 Sudakshina Das <sudi.das@arm.com>
PR target/81647
* gcc.target/aarch64/pr81647.c: New.
From-SVN: r258653
|
|
From-SVN: r258651
|
|
gcc/
PR bootstrap/84856
* config/riscv/riscv.c (riscv_function_arg_boundary): Use
PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY.
(riscv_first_stack_step): Likewise.
(riscv_option_override): Use STACK_BOUNDARY instead of
MIN_STACK_BOUNDARY.
* config/riscv/riscv.h (STACK_BOUNDARY): Renamed from
MIN_STACK_BOUNDARY.
(BIGGEST_ALIGNMENT): Set to 128.
(PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY.
(RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of
STACK_BOUNDARY.
From-SVN: r258650
|
|
since r257852)
2018-03-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/84933
* tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound
values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE.
* g++.dg/pr84933.C: New testcase.
From-SVN: r258646
|
|
2018-03-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/84859
* tree-ssa-phiopt.c (single_trailing_store_in_bb): New function.
(cond_if_else_store_replacement): Perform sinking operation on
single-store BBs regardless of MAX_STORES_TO_SINK setting.
Generalize what a BB with a single eligible store is.
* gcc.dg/tree-ssa/pr84859.c: New testcase.
* gcc.dg/tree-ssa/pr35286.c: Disable cselim.
* gcc.dg/tree-ssa/split-path-6.c: Likewise.
* gcc.dg/tree-ssa/split-path-7.c: Likewise.
From-SVN: r258645
|
|
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00872.html
PR c++/84812
* name-lookup.c (set_local_extern_decl_linkage): Defend against
ambiguous lookups.
PR c++/84812
* g++.dg/lookup/pr84812.C: New.
From-SVN: r258644
|
|
tree check: expected polynomial_chrec, have nop_expr in analyze_siv_subscript_cst_affine, at tree-data-ref.c:3018)
2018-03-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/84929
* tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard
chrec_is_positive against non-chrec arg.
* gcc.dg/torture/pr84929.c: New testcase.
From-SVN: r258643
|
|
mode to a scalar mode.)
gcc/
2018-03-19 Tamar Christina <tamar.christina@arm.com>
PR target/84711
* config/arm/arm.c (arm_can_change_mode_class): revert r258554.
gcc/testsuite/
2018-03-19 Tamar Christina <tamar.christina@arm.com>
PR target/84711
* gcc.target/arm/big-endian-subreg.c: Delete.
From-SVN: r258642
|
|
implied-do-object goes sideways)
2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/84931
* simplify.c (gfc_convert_constant): Correctly handle iterators
for type conversion.
2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/84931
* gfortran.dg/array_constructor_52.f90: New test.
From-SVN: r258641
|
|
From-SVN: r258640
|
|
2018-03-18 Martin Liska <mliska@suse.cz>
PR rtl-optimization/84635
* regrename.c (build_def_use): Use matches_mode only when
matches >= 0.
From-SVN: r258634
|
|
fortran/trans-decl.c:2410)
2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77414
* decl.c (get_proc_name): Check for a subroutine re-defined in
the contain portion of a subroutine. Change language of existing
error message to better describe the issue. While here fix whitespace
issues.
2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77414
* gfortran.dg/pr77414.f90: New test.
* gfortran.dg/internal_references_1.f90: Adjust error message.
From-SVN: r258633
|
|
2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/65453
* decl.c (get_proc_name): Catch clash between a procedure statement
and a contained subprogram
2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/65453
* gfortran.dg/pr65453.f90: New test.
From-SVN: r258632
|
|
The testcase ICEd for both SVE and AVX512 because we were trying
to vectorise a chain of COND_EXPRs as a reduction and getting
confused by reduc_index == -1.
2018-03-18 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
PR tree-optimization/84913
* tree-vect-loop.c (vectorizable_reduction): Don't try to
vectorize chains of COND_EXPRs.
gcc/testsuite/
PR tree-optimization/84913
* gfortran.dg/vect/pr84913.f90: New test.
From-SVN: r258631
|
|
4294967291 exceeds maximum object size 2147483647)
2018-03-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/79929
* gfortran.dg/warn_concat.f90: New test.
From-SVN: r258630
|
|
gcc/
* config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
From-SVN: r258629
|
|
gcc/
* config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
From-SVN: r258628
|
|
gcc/
* config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
From-SVN: r258627
|
|
From-SVN: r258626
|
|
gcc/
* config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare.
* config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array.
(nds32_adjust_reg_alloc_order): New function.
* config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define.
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
From-SVN: r258621
|
|
gcc/
* config/nds32/nds32.c (nds32_asm_output_mi_thunk,
nds32_print_operand, nds32_print_operand_address): Use
HOST_WIDE_INT_PRINT_DEC instead.
From-SVN: r258620
|
|
gcc/
* config/nds32/nds32.c (nds32_register_priority): Modify cost.
From-SVN: r258619
|
|
-Ofast -march=native on Zen since r258518)
PR target/84902
* config/i386/i386.c (initial_ix86_tune_features,
initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than
unsigned long long.
(set_ix86_tune_features): Change ix86_tune_mask from unsigned int
to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune
rather than 1u << ix86_tune. Formatting fix.
(ix86_option_override_internal): Change ix86_arch_mask from
unsigned int to unsigned HOST_WIDE_INT, initialize to
HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch.
(ix86_function_specific_restore): Likewise.
From-SVN: r258618
|
|
From-SVN: r258617
|
|
From-SVN: r258614
|
|
not split insn))
PR target/84899
* postreload.c (reload_combine_recognize_pattern): Perform
INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
truncate_int_for_mode the result for the destination's mode.
* gcc.dg/pr84899.c: New test.
From-SVN: r258610
|
|
PR c/84909
* c-warn.c (conversion_warning): Replace "to to" with "to" in
diagnostics.
* hsa-gen.c (mem_type_for_type): Fix comment typo.
* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
Likewise.
* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
Likewise.
From-SVN: r258609
|
|
PR c/84910
* c-warn.c (diagnose_mismatched_attributes): Remove trailing space from
diagnostics.
* parser.c (cp_parser_lambda_introducer): Remove trailing space from
diagnostics.
* method.c (synthesize_method): Likewise.
* pt.c (convert_nontype_argument): Likewise.
From-SVN: r258608
|
|
dimensions+codimensions)
2018-03-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69395
* decl.c (merge_array_spec): Correct the error condition.
2018-03-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69395
* gfortran.dg/pr69395.f90: Add test for max dimensions
From-SVN: r258607
|
|
Also add noinst_DATA to CHECK_DEPS; it's not needed in practice since
`make` will build noinst_DATA, but it's logically required and will
make a difference if any of the noinst_DATA sources change between
`make` and `make check`.
Tony Reix figured out why omitting packages from noinst_DATA didn't
seem to matter: because if gccgo can't find foo.gox, it will fall back
to reading the export data in foo.o, and foo.o will exist because
these packages go into libgo.a.
Reviewed-on: https://go-review.googlesource.com/101077
From-SVN: r258606
|
|
* pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference.
(convert_nontype_argument): Revert earlier change.
From-SVN: r258605
|
|
* decl.c (compute_array_index_type): Use
build_converted_constant_expr and valid_constant_size_p.
From-SVN: r258604
|
|
* call.c (build_user_type_conversion_1): Set need_temporary_p on
ambiguous conversion.
(convert_like_real): Check it.
From-SVN: r258603
|
|
gcc/lra-assigns.c:1601 since r258504)
2018-03-16 Vladimir Makarov <vmakarov@redhat.com>
PR target/84876
* lra-assigns.c (lra_split_hard_reg_for): Don't use
regno_allocno_class_array and sorted_pseudos.
* lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in
insns where regno is used.
2018-03-16 Vladimir Makarov <vmakarov@redhat.com>
PR target/84876
* gcc.target/i386/pr84876.c: New test.
From-SVN: r258602
|
|
From-SVN: r258601
|
|
From-SVN: r258599
|
|
2018-03-16 Martin Liska <mliska@suse.cz>
PR ipa/84833
* multiple_target.c (create_dispatcher_calls): Redirect
reference in the symbol table.
2018-03-16 Martin Liska <mliska@suse.cz>
PR ipa/84833
* gcc.target/i386/mvc11.c: New test.
From-SVN: r258596
|
|
2018-03-16 Martin Liska <mliska@suse.cz>
PR ipa/84722
* multiple_target.c (create_dispatcher_calls): Redirect also
an alias.
2018-03-16 Martin Liska <mliska@suse.cz>
PR ipa/84722
* gcc.target/i386/mvc10.c: New test.
From-SVN: r258595
|
|
* call.c (build_special_member_call): Don't convert an init-list
argument directly to the class type.
From-SVN: r258594
|
|
PR c++/79937
PR c++/82410
* tree.h (TARGET_EXPR_NO_ELIDE): Define.
* gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.
* cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define.
(find_placeholder): Declare.
* tree.c (struct replace_placeholders_t): Add exp member.
(replace_placeholders_r): Don't walk into ctors with
CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to
d->exp. Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x.
(replace_placeholders): Initialize data.exp.
(find_placeholders_r, find_placeholders): New functions.
* typeck2.c (process_init_constructor_record,
process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY
if adding NSDMI on which find_placeholder returns true.
* call.c (build_over_call): Don't call replace_placeholders here.
* cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on
TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on
TARGET_EXPR_INITIAL.
(cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new
ctor.
* g++.dg/cpp1y/pr79937-1.C: New test.
* g++.dg/cpp1y/pr79937-2.C: New test.
* g++.dg/cpp1y/pr79937-3.C: New test.
* g++.dg/cpp1y/pr79937-4.C: New test.
* g++.dg/cpp1y/pr82410.C: New test.
From-SVN: r258593
|
|
* cp-gimplify.c (cp_genericize_r): Replace versioned function with
dispatchere here.
* call.c (build_over_call): Not here.
PR c++/83911 - ICE with multiversioned constructor.
From-SVN: r258592
|
|
dominate use in block 4))
2018-03-16 Richard Biener <rguenther@suse.de>
PR c/84873
* c-gimplify.c (c_gimplify_expr): Revert previous change. Instead
unshare the possibly folded expression.
From-SVN: r258591
|
|
2018-03-16 Tom de Vries <tom@codesourcery.com>
* gcc.dg/tree-ssa/pr84512.c: Require effective target vect_int_mult.
From-SVN: r258590
|
|
2018-03-16 Tom de Vries <tom@codesourcery.com>
* gcc.dg/builtin-unreachable-6.c: Require effective target label_values.
From-SVN: r258589
|
|
cp/decl.c:5800)
PR c++/84874
* g++.dg/cpp2a/desig8.C: New test.
From-SVN: r258588
|
|
gcc/
* doc/invoke.texi (Skylake Server): Add CLWB.
Cannonlake): Remove CLWB.
From-SVN: r258587
|
|
real_cst in rewrite_expr_tree_parallel, at tree-ssa-reassoc.c:4624)
PR tree-optimization/84841
* tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
1 << 3.
(FLOAT_ONE_CONST_TYPE): Define.
(constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
(sort_by_operand_rank): Put entries with higher constant_type last
rather than first to match comments.
* gcc.dg/pr84841.c: New test.
From-SVN: r258586
|
|
cp/decl.c:5800)
PR c++/84874
* decl.c (reshape_init_class): Don't assert d->cur->index == field
if d->cur->index is a FIELD_DECL, instead set field to d->cur->index.
* g++.dg/cpp2a/desig7.C: New test.
From-SVN: r258585
|