Commit Graph

153081 Commits

Author SHA1 Message Date
Uros Bizjak
114e5a84ae backport: re PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486)
Backport from mainline
	2017-05-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68491
	* config/i386/cpuid.h (__get_cpuid): Always return 0 when
	__get_cpuid_max returns 0.
	(__get_cpuid_count): Ditto.

From-SVN: r247523
2017-05-02 22:36:26 +02:00
Joseph Myers
a411c8bfb5 * fr.po: Update.
From-SVN: r247521
2017-05-02 18:27:50 +01:00
Jakub Jelinek
1f5e8060cd backport: Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the environment.
Backported from mainline
	2017-04-25 Jakub Jelinek <jakub@redhat.com>

	* Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
	environment.

From-SVN: r247513
2017-05-02 18:12:40 +02:00
Jakub Jelinek
3c19ece144 * BASE-VER: Set to 7.1.1.
From-SVN: r247506
2017-05-02 17:29:37 +02:00
GCC Administrator
303f81ad7e Update ChangeLog and version files for release
From-SVN: r247493
2017-05-02 12:42:24 +00:00
Jakub Jelinek
0f942c6aaf * gennews (files): Add files for GCC 7.
From-SVN: r247492
2017-05-02 14:38:31 +02:00
Richard Biener
cdd7941640 re PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809)
2017-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80591
	Revert
	2017-04-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Properly handle
	asm inputs.

	* gcc.dg/torture/pr80591.c: New testcase.

From-SVN: r247487
2017-05-02 11:26:25 +00:00
GCC Administrator
12bdf10b34 Daily bump.
From-SVN: r247458
2017-05-02 00:16:14 +00:00
Joseph Myers
7bb5d3b9e4 Regenerate .pot files.
gcc/po:
	* gcc.pot: Regenerate.

libcpp/po:
	* cpplib.pot: Regenerate.

From-SVN: r247448
2017-05-01 23:28:48 +01:00
GCC Administrator
38a50ebc56 Daily bump.
From-SVN: r247424
2017-05-01 00:16:28 +00:00
Joseph Myers
63e838b127 * fr.po: Update.
From-SVN: r247421
2017-05-01 00:21:04 +01:00
Joseph Myers
90393627bc Update .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
	zh_TW.po: Update.

From-SVN: r247419
2017-05-01 00:16:59 +01:00
GCC Administrator
21268e17c9 Daily bump.
From-SVN: r247415
2017-04-30 00:16:18 +00:00
GCC Administrator
934d79ae1a Daily bump.
From-SVN: r247404
2017-04-29 00:16:13 +00:00
Jakub Jelinek
82052c2822 re PR bootstrap/80531 (RC1 bootstrap comparison failure)
PR bootstrap/80531
	* cgraph.h (symtab_node::debug_symtab): No longer inline.
	* symtab.c (symtab_node::debug_symtab): Move definition here.

From-SVN: r247368
2017-04-28 13:42:14 +02:00
GCC Administrator
9a4ea63e40 Daily bump.
From-SVN: r247360
2017-04-28 00:16:19 +00:00
Jakub Jelinek
4c41782be3 re PR bootstrap/80531 (RC1 bootstrap comparison failure)
PR bootstrap/80531
	* configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
	bootstrap compare failures.

From-SVN: r247351
2017-04-27 22:03:38 +02:00
Richard Earnshaw
c2f36c35da [AArch64] Fix for gcc-7 regression PR 80530
This patch fixes the regression caused by the changes to add square root
estimation when compiling for xgene-1 or exynos-m1 targets.

The issue is that the expand path for the reciprocal estimate square
root pattern assumes that pattern cannot fail once it has been decided
that this expansion path is available, but because the logic deep inside
aarch64_emit_approx_sqrt() differs from use_rsqrt_p() the two disagree
as to what is safe.

This patch refactors the logic to ensure that we cannot unknowingly make
different choices here.

	PR target/80530
	* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
	that the logic for permitting reciprocal estimates matches that
	in use_rsqrt_p.

From-SVN: r247341
2017-04-27 14:11:47 +00:00
Jakub Jelinek
a240da2d3a re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration, at cp/semantics.c:2963)
PR c++/80534
	* tree.c (type_cache_hasher::equal): Only compare
	TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
	(build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
	non-aggregate element types.
	* tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
	about the flag on ARRAY_TYPEs in the comment, formatting fix.
c-family/
	* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
	flag on non-aggregate element types.
testsuite/
	* g++.dg/other/pr80534-1.C: New test.
	* g++.dg/other/pr80534-2.C: New test.

From-SVN: r247337
2017-04-27 15:47:54 +02:00
Jakub Jelinek
e469603e97 re PR target/79430 (action of statement incorrectly optimised away)
PR target/79430
	* reg-stack.c (emit_swap_insn): If i1src mentions the stack pointer,
	punt if tmp contains autoinc of stack pointer.

From-SVN: r247308
2017-04-27 11:58:43 +02:00
Jakub Jelinek
a22d92795b re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
	(aarch64_function_arg_alignment): Return unsigned int again, but still
	ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
	Don't emit -Wpsabi note.
	(aarch64_function_arg_boundary): Likewise.
	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
	caller.
testsuite/
	* g++.dg/abi/pr77728-2.C: Don't expect -Wpsabi notes.

From-SVN: r247293
2017-04-27 09:14:24 +02:00
GCC Administrator
2879a3773d Daily bump.
From-SVN: r247290
2017-04-27 00:16:17 +00:00
GCC Administrator
140360e969 Daily bump.
From-SVN: r247272
2017-04-26 00:16:18 +00:00
Martin Sebor
8550e48ac4 PR tree-optimization/80497 - ICE at -O1 and above on valid code on x86_64-linux-gnu in tree_to_uhwi
gcc/ChangeLog:

	PR tree-optimization/80497
	* gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
	constants are representable in HOST_WIDE_INT.
	(parse_directive): Ditto.

gcc/testsuite/ChangeLog:

	PR tree-optimization/80497
	* gcc.dg/tree-ssa/builtin-sprintf-warn-17.c: New test.

From-SVN: r247264
2017-04-25 11:58:32 -06:00
Marek Polacek
8ef2085d4c re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message)
PR sanitizer/80349
	* fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
	first argument to type.

	* g++.dg/ubsan/pr80349-2.C: New test.

From-SVN: r247260
2017-04-25 17:02:27 +00:00
Ramana Radhakrishnan
6bcf239ec5 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/arm/arm.c: Include gimple.h.
	(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
	returns negative, increment ncrn only if it returned positive.
	(arm_needs_doubleword_align): Return int instead of bool,
	ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
	members, but if there is any such non-FIELD_DECL
	> PARM_BOUNDARY aligned decl, return -1 instead of false.
	(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
	returns negative, increment nregs only if it returned positive.
	(arm_setup_incoming_varargs): Likewise.
	(arm_function_arg_boundary): Emit -Wpsabi note if
	arm_needs_doubleword_align returns negative, return
	DOUBLEWORD_ALIGNMENT only if it returned positive.
testsuite/
	* g++.dg/abi/pr77728-1.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r247259
2017-04-25 18:47:32 +02:00
Bill Seurer
d3de3474fc [PATCH, rs6000] pr80482 Relax vector builtin parameter checks
PR target/80482
Backport from mainline

This patch changes the parameter testing for powerpc vector builtins to relax
the existing requirement that the parameters be identical to instead that they
be compatible.  This allows for mixing parameters with differing qualified
(const, volatile, etc.) types.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80482 for more information.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64be-unknown-linux-gnu with no regressions.  Is this ok for trunk?

[gcc]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	Backport from mainline
	PR target/80482
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
	type checks to test for compatibility instead of equality.

[gcc/testsuite]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	Backport from mainline
	PR target/80482
	* gcc.target/powerpc/vec-constvolatile.c: New test.

From-SVN: r247256
2017-04-25 16:16:13 +00:00
Ramana Radhakrishnan
fd8de490a7 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
	type.
	(aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
	struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
	the alignment computation, but return their maximum in warn_alignment.
	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
	Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
	is smaller.
	(aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
	caller.
testsuite/
	* g++.dg/abi/pr77728-2.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r247241
2017-04-25 15:56:10 +02:00
Andreas Krebbel
1ab303de18 S/390: PR80464: Split MEM->GPR vector moves
We do this already for TImode values but it was missing for vector
modes.

gcc/ChangeLog:

2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/80464
	* config/s390/vector.md: Split MEM->GPR vector moves for
	non-s_operand addresses.

gcc/testsuite/ChangeLog:

2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/80464
	* gfortran.fortran-torture/compile/pr80464.f90: New test.

From-SVN: r247191
2017-04-25 11:18:52 +00:00
Andreas Krebbel
e898f963a6 S/390: PR79895: Fix TImode constant handling
The P constraint letter is supposed to match every constant which is
acceptable during reload.  However, constraints do not appear to be
able to handle const_wide_int yet.  It works with predicates so the
alternative is modelled with a new predicate now.

gcc/ChangeLog:

2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/79895
	* config/s390/predicates.md (reload_const_wide_int_operand): New
	predicate.
	* config/s390/s390.md ("movti"): Remove d/P alternative.
	("movti_bigconst"): New pattern definition.

gcc/testsuite/ChangeLog:

2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/79895
	* gcc.target/s390/pr79895.c: New test.

From-SVN: r247190
2017-04-25 11:15:44 +00:00
Dominik Vogt
d2780ff270 S/390: PR80080: Optimize atomic patterns.
The attached patch optimizes the atomic_exchange and atomic_compare
patterns on s390 and s390x (mostly limited to SImode and DImode).
Among general optimizaation, the changes fix most of the problems
reported in PR 80080:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80080

gcc/ChangeLog:

2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/80080
	* s390-protos.h (s390_expand_cs_hqi): Removed.
	(s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
	* config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
	modes as well as CCZ1mode and CCZmode.
	(s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
	signature of s390_emit_compare_and_swap.
	(s390_expand_cs_hqi): Likewise, make static.
	(s390_expand_cs_tdsi): Generate an explicit compare before trying
	compare-and-swap, in some cases.
	(s390_expand_cs): Wrapper function.
	(s390_expand_atomic_exchange_tdsi): New backend specific expander for
	atomic_exchange.
	(s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
	* config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
	patterns for small and large integers.  Forbid symref memory operands.
	Move expander to s390.c.  Require cc register.
	("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
	("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
	("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
	("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
	symref memory operands.  Remove CC mode and call s390_match_ccmode
	instead.
	("atomic_exchange<mode>"): Allow and implement all integer modes.

gcc/testsuite/ChangeLog:

2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/80080
	* gcc.target/s390/md/atomic_compare_exchange-1.c: New test.
	* gcc.target/s390/md/atomic_compare_exchange-1.inc: New test.
	* gcc.target/s390/md/atomic_exchange-1.inc: New test.

From-SVN: r247189
2017-04-25 11:11:48 +00:00
Dominik Vogt
009c145997 S/390: Load and test peephole.
gcc/ChangeLog:

2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

        * config/s390/s390.md (define_peephole2): New peephole to help
        combining the load-and-test pattern with volatile memory.

From-SVN: r247188
2017-04-25 11:08:06 +00:00
Dominik Vogt
16fce46b16 S/390: Load and test peephole.
gcc/ChangeLog:

2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

        * config/s390/s390.md (define_peephole2): New peephole to help
        combining the load-and-test pattern with volatile memory.

From-SVN: r247187
2017-04-25 11:04:42 +00:00
Jakub Jelinek
31a66be10f re PR rtl-optimization/80501 (Wrong code w/ a signed char, a shift, and a conversion to int)
PR rtl-optimization/80501
	* combine.c (make_compound_operation_int): Set subreg_code to SET
	even for AND with mask of the sign bit of mode.

	* gcc.c-torture/execute/pr80501.c: New test.

From-SVN: r247129
2017-04-25 09:29:21 +02:00
Jakub Jelinek
75092192da re PR rtl-optimization/80500 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn))
PR rtl-optimization/80500
	* loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
	sum's initial value.

	* gcc.dg/pr80500.c: New test.

From-SVN: r247127
2017-04-25 09:27:47 +02:00
GCC Administrator
a1f0186093 Daily bump.
From-SVN: r247120
2017-04-25 00:16:16 +00:00
Joseph Myers
c77308d68c Regenerate .pot files.
gcc/po:
	* gcc.pot: Regenerate.

libcpp/po:
	* cpplib.pot: Regenerate.

From-SVN: r247114
2017-04-24 21:40:51 +01:00
Martin Liska
84341de847 Subject: Backport r247097
2017-04-24  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-24  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/79931
	* ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
2017-04-24  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-24  Martin Liska  <mliska@suse.cz>

	PR middle-end/79931
	* g++.dg/ipa/pr79931.C: New test.

From-SVN: r247102
2017-04-24 14:48:43 +00:00
GCC Administrator
5871268a1b Daily bump.
From-SVN: r247087
2017-04-24 00:16:21 +00:00
GCC Administrator
77dfeb2356 Daily bump.
From-SVN: r247080
2017-04-23 00:16:24 +00:00
GCC Administrator
e58b279337 Daily bump.
From-SVN: r247074
2017-04-22 00:16:21 +00:00
Joseph Myers
722f47c6c0 * es.po, fr.po: Update.
From-SVN: r247060
2017-04-21 11:38:05 +01:00
Eric Botcazou
989ac84fcf re PR tree-optimization/80426 (wrong manipulation of range based on INT_MIN)
PR tree-optimization/80426
	* gcc.c-torture/execute/20170429-1.c: Rename into...
	* gcc.c-torture/execute/20170419-1.c: ...this.

From-SVN: r247047
2017-04-21 08:08:03 +00:00
GCC Administrator
a90c12b85d Daily bump.
From-SVN: r247044
2017-04-21 00:16:23 +00:00
Jonathan Wakely
e9dcea2ae3 PR c++/80473 allow suppressing notes about over-aligned new
Backport from mainline r247033
gcc/cp:

	PR c++/80473
	* init.c (build_new_1): Suppress notes about over-aligned new when
	the warning is suppressed.

gcc/testsuite:

	PR c++/80473
	* g++.dg/diagnostic/pr80473.C: New test.

From-SVN: r247035
2017-04-20 19:36:27 +01:00
Alexander Monakov
70cae6302a omp-low: fix lastprivate/linear lowering for SIMT
Backport from mainline r247029
gcc/
	* omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
	lastprivate clauses in SIMT case.

libgomp/
	* testsuite/libgomp.c/target-36.c: New testcase.

From-SVN: r247032
2017-04-20 20:59:25 +03:00
Matthew Fortune
120fbfd0ee MIPS: Prevent buffer overrun in uninitialised variable fix
Backport from mainline
2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>

gcc/
	* config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
	uninitialized variable warning to avoid buffer overrun.

From-SVN: r247023
2017-04-20 13:39:50 +00:00
Jakub Jelinek
6eceeed7af * DEV-PHASE: Set to prerelease.
From-SVN: r247019
2017-04-20 12:48:41 +02:00
Thomas Preud'homme
633c65dda8 [ARM] Fix type for .init_array.* and .fini_array.* sections
2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
    priority .init_array and .fini_array section with SECTION_NOTYPE
    flag.

From-SVN: r247015
2017-04-20 09:44:18 +00:00
Jakub Jelinek
8a59d4660c re PR middle-end/80423 (GC related -fcompare-debug failure)
PR middle-end/80423
	* tree.h (build_array_type): Add typeless_storage default argument.
	* tree.c (type_cache_hasher::equal): Also compare
	TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
	(build_array_type): Add typeless_storage argument, set
	TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
	recursive call.
	(build_nonshared_array_type): Adjust build_array_type_1 caller.
	(build_array_type): Likewise.  Add typeless_storage argument.
c-family/
	* c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
cp/
	* tree.c (build_cplus_array_type): Call build_array_type
	with the intended TYPE_TYPELESS_STORAGE flag value, instead
	of calling build_array_type and modifying later TYPE_TYPELESS_STORAGE
	on the shared type.
testsuite/
	* g++.dg/other/pr80423.C: New test.

From-SVN: r247014
2017-04-20 11:18:02 +02:00