Jeff Law [Mon, 10 Apr 2017 19:19:42 +0000 (13:19 -0600)]
re PR tree-optimization/80374 (ICE in fold_convert_loc, at fold-const.c:2384)
PR tree-optimization/80374
* tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
record anything if we can not convert integer_zero_node to the
desired type.
PR tree-optimization/80374
* g++.dg/pr80374.c: New test.
re PR target/80108 (ICE in aggregate_value_p at function.c:2028)
gcc/ChangeLog:
2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/80108
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Enhance special handling given to the TARGET_P9_MINMAX option in
relation to certain other options.
gcc/testsuite/ChangeLog:
2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/80108
* gcc.target/powerpc/ppc-fortran/ppc-fortran.exp: New file.
* gcc.target/powerpc/ppc-fortran/pr80108-1.f90: New test.
Bin Cheng [Mon, 10 Apr 2017 16:54:14 +0000 (16:54 +0000)]
re PR tree-optimization/80153 (ivopt generate wrong code)
PR tree-optimization/80153
* tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
remove POINTER_PLUS_EXPR's base part directly, rather than through
aff_tree.
Bin Cheng [Mon, 10 Apr 2017 16:51:44 +0000 (16:51 +0000)]
re PR tree-optimization/80153 (ivopt generate wrong code)
PR tree-optimization/80153
* tree-affine.c (aff_combination_to_tree): Get base pointer from
the first element of pointer type aff_tree. Build result expr in
aff_tree's type.
(add_elt_to_tree): Convert to type unconditionally. Remove other
fold_convert calls.
* tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
(rewrite_use_nonlinear_expr): Check invariant using iv information.
gcc/testsuite
PR tree-optimization/80153
* gcc.c-torture/execute/pr80153.c: New.
PR rtl-optimization/70478
* lra-constraints.c (curr_small_class_check): New.
(update_and_check_small_class_inputs): New.
(process_alt_operands): Update curr_small_class_check. Disfavor
alternative insn memory operands. Check available regs for small
class operands.
Martin Liska [Mon, 10 Apr 2017 11:37:14 +0000 (13:37 +0200)]
Support multiple files w/ -i option in gcov (PR gcov-profile/80224).
2017-04-10 Martin Liska <mliska@suse.cz>
PR gcov-profile/80224
* gcov.c (print_usage): Fix usage string.
(get_gcov_intermediate_filename): Remove.
(output_gcov_file): Use both for normal and intermediate format.
(generate_results): Do not initialize special file for
intermediate format.
* gcc.target/i386/avx512f-undefined-1.c: New test.
* gcc.target/i386/avx512f-cvtsd-1.c: New test.
* gcc.target/i386/avx-cvtsd-1.c: New test.
* gcc.target/i386/avx512f-cvtss-1.c: New test.
* gcc.target/i386/avx512f-abspd-1.c: New test.
* gcc.target/i386/avx-cvtss-1.c: New test.
* gcc.target/i386/avx512f-absps-1.c: New test.
* gcc.target/i386/avx512f-int2mask-1.c: New test.
* gcc.target/i386/avx512f-mask2int-1.c: New test.
Marek Polacek [Fri, 7 Apr 2017 18:09:55 +0000 (18:09 +0000)]
re PR c++/80095 (ICE with this pointer in NSDMI)
PR c++/80095
* call.c (build_over_call): Don't check cxx_dialect.
* cp-gimplify.c (cp_gimplify_init_expr): Don't check cxx_dialect nor
whether SUB is a CONSTRUCTOR.
* init.c (build_new_1): Don't check cxx_dialect.
* tree.c (replace_placeholders): Add a function comment. Return if
not in C++14, or if the object isn't a (member of a) class.
* typeck2.c (store_init_value): Don't check cxx_dialect nor whether
TYPE is CLASS_TYPE_P.
Jeff Law [Fri, 7 Apr 2017 16:11:57 +0000 (10:11 -0600)]
Makefile.in: Swap definition of LIBGCC_LINKS and inclusion of target makefile fragment.
* Makefile.in: Swap definition of LIBGCC_LINKS and inclusion of
target makefile fragment.
* config/sh/t-sh (unwind-dw2-Os-4-200.o): Depend on LIBGCC_LINKS.
Richard Biener [Fri, 7 Apr 2017 08:20:24 +0000 (08:20 +0000)]
re PR middle-end/80341 (gcc miscompiles division of signed char)
2017-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/80341
* tree.c (get_unwidened): Also handle ! for_type case for
INTEGER_CSTs.
* convert.c (do_narrow): Split out from ...
(convert_to_integer_1): ... here. Do not pass final truncation
type to get_unwidened for TRUNC_DIV_EXPR.
Jakub Jelinek [Wed, 5 Apr 2017 19:10:17 +0000 (21:10 +0200)]
re PR c++/80309 (ICE: canonical types differ for identical types _Args2 and _Args2)
PR c++/80309
* pt.c (canonical_type_parameter): Use vec_safe_grow_cleared instead
of a loop doing vec_safe_push of NULL. Formatting fixes.
(rewrite_template_parm): Copy TEMPLATE_PARM_PARAMETER_PACK from oldidx
to newidx before calling canonical_type_parameter on newtype.
re PR target/80298 (<x86intrin.h> incompatible with -mno-sse)
PR target/80298
* config/i386/mmintrin.h: Add -msse target option when __SSE__ is
not defined for x86_64 target. Add -mmmx target option when __SSE2__
is not defined.
* config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
for x86_64 target. Handle -m3dnowa option.
re PR rtl-optimization/70703 (Regression in register usage on x86)
2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/70703
* ira-color.c (update_costs_from_allocno): Use the smallest mode.
(update_conflict_hard_regno_costs): Use long instead of unsigned
arithmetic for cost calculation.
Eric Botcazou [Wed, 5 Apr 2017 11:48:02 +0000 (11:48 +0000)]
re PR target/78002 (gcc.target/aarch64/stack-checking.c ICEs with -mabi=ilp32)
PR target/78002
* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
ptr_mode with Pmode throughout.
* config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
into probe_stack_range and use DImode.
re PR go/80302 (FAIL: time on systems with tzdata2017b installed)
PR go/80302
time: make the ParseInLocation test more robust
This is a backport of https://golang.org/cl/37964 from the gc toolchain.
Original description:
The tzdata 2017a update (2017-02-28) changed the abbreviation of the
Asia/Baghdad time zone (used in TestParseInLocation) from 'AST' to the
numeric '+03'.
Update the test so that it skips the checks if we're using a recent
tzdata release.
Jakub Jelinek [Tue, 4 Apr 2017 19:14:47 +0000 (21:14 +0200)]
re PR c++/80297 (Compiler time crash: type mismatch in binary expression)
PR c++/80297
* genmatch.c (capture::gen_transform): For GENERIC unshare_expr
captures used multiple times, except for the last use.
* generic-match-head.c: Include gimplify.h.
* g++.dg/torture/pr80297.C: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r246693
2017-04-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR target/80307
* config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
instructions for small multiply cores.
gcc/testsuite/
PR target/80307
* gcc.target/arm/small-multiply-m0-1.c: Do not skip test if not
targeting any CPU or architecture.
* gcc.target/arm/small-multiply-m0-2.c: Likewise.
* gcc.target/arm/small-multiply-m0-3.c: Likewise.
* gcc.target/arm/small-multiply-m0plus-1.c: Likewise.
* gcc.target/arm/small-multiply-m0plus-2.c: Likewise.
* gcc.target/arm/small-multiply-m0plus-3.c: Likewise.
* gcc.target/arm/small-multiply-m1-1.c: Likewise.
* gcc.target/arm/small-multiply-m1-2.c: Likewise.
* gcc.target/arm/small-multiply-m1-3.c: Likewise.
Jeff Law [Tue, 4 Apr 2017 15:30:30 +0000 (09:30 -0600)]
mips.c (mips_multi_add): Zero initialize the newly added member.
* config/mips/mips.c (mips_multi_add): Zero initialize the newly
added member.
(mips_expand_vec_perm_const): Initialize elements in orig_perm
that are not set by the loop over the elements.
Nicolas Koenig [Tue, 4 Apr 2017 13:41:41 +0000 (15:41 +0200)]
[multiple changes]
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/69498
* symbol.c (gfc_delete_symtree): If there is a period in the name, ignore
everything before it.
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/69498
* gfortran.dg/submodule_unexp.f90: New test.
Jakub Jelinek [Tue, 4 Apr 2017 10:45:55 +0000 (12:45 +0200)]
re PR target/80286 (AVX2 _mm_cvtsi128_si32 doesn't return a proper 32bits int)
PR target/80286
* config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
int mode, convert_modes it to mode as unsigned, otherwise use
lowpart_subreg to mode rather than SImode.
* config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
Use DImode instead of SImode for the shift count operand.
* config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
Likewise.
testsuite/
* gcc.target/i386/avx-pr80286.c: New test.
* gcc.dg/pr80286.c: New test.
Jakub Jelinek [Tue, 4 Apr 2017 10:41:33 +0000 (12:41 +0200)]
re PR libgomp/79876 (FAIL: libgomp.fortran/strassen.f90 -O execution test on x86_64-apple-darwin16)
PR libgomp/79876
* config/posix/thread-stacksize.h: New file.
* config/darwin/thread-stacksize.h: New file.
* config/nvptx/thread-stacksize.h: New file.
* env.c: Include thread-stacksize.h.
(initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
instead of 0. Call pthread_attr_setstacksize even if
GOMP_DEFAULT_STACKSIZE is non-zero.
Richard Biener [Tue, 4 Apr 2017 09:06:04 +0000 (09:06 +0000)]
re PR tree-optimization/80281 (Wrong constant folding)
2017-04-04 Richard Biener <rguenther@suse.de>
PR middle-end/80281
* match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
arithmetic done for the negate or the plus. Simplify.
(A - (-B) -> A + B): Likewise.
* fold-const.c (split_tree): Make sure to not negate pointers.
simplify-rtx: Fix compare of comparisons (PR60818)
The function simplify_binary_operation_1 has code that does
/* Convert (compare (gt (flags) 0) (lt (flags) 0)) to (flags). */
but this transformation is only valid if "flags" has the same machine
mode as the outer compare. This fixes it.
PR rtl-optimization/60818
* simplify-rtx.c (simplify_binary_operation_1): Do not replace
a compare of comparisons with the thing compared if this results
in a different machine mode.
gcc/testsuite/
PR rtl-optimization/60818
* gcc.c-torture/compile/pr60818.c: New testcase.