Commit Graph

144122 Commits

Author SHA1 Message Date
Richard Sandiford
2692b5c857 PR 69577: Invalid RA of destination subregs
In PR 69577 we have:

      A: (set (reg:V2TI X) ...)
      B: (set (subreg:TI (reg:V2TI X) 0) ...)

X gets allocated to an AVX register, as usual for V2TI.  The problem is
that the movti for B doesn't then preserve the other half of X, even
though the subreg semantics are supposed to guarantee that.

If instead the same value had been set by:

      A': (set (subreg:TI (reg:V2TI X) 16) ...)
      B: (set (subreg:TI (reg:V2TI X) 0) ...)

the subreg in A' would have prevented the use of AVX registers for X,
since you can't directly access the high part.

IMO these are really the same thing.  An alternative way to view it
is that the original sequence is equivalent to:

      A: (set (reg:V2TI X) ...)
      B1: (set (subreg:TI (reg:V2TI X) 0) ...)
      B2: (set (subreg:TI (reg:V2TI X) 16) (subreg:TI (reg:V2TI X) 16))

in which B2 is a no-op and therefore implicit.  The handling ought
to be the same regardless of whether there is an rtl insn that
explicitly assigns to (subreg:TI (reg:V2TI X) 16).

This patch implements that idea.  Hopefully the comments explain
what's going on.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabihf.

gcc/
	PR rtl-optimization/69577
	* reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
	(find_subregs_of_mode): Update accordingly.  Iterate over partial
	definitions.

gcc/testsuite/
	PR rtl-optimization/69577
	* gcc.target/i386/pr69577.c: New test.

From-SVN: r233143
2016-02-04 15:01:15 +00:00
Alan Lawrence
1d10863481 [ARM] Remove neon_reinterpret, use casts
* config/arm/arm-protos.h (neon_reinterpret): Remove.
	* config/arm/arm.c (neon_reinterpret): Remove.
	* config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
	vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
	vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
	vreinterpretti): Remove.
	* config/arm/neon.md (neon_vreinterpretv8qi<mode>,
	neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
	neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
	neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
	neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
	neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
	* config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
	vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
	vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
	vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
	vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
	vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
	vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
	vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
	vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
	vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
	vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
	vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
	vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
	vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
	vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
	vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
	vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
	vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
	vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
	vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
	vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
	vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
	vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
	vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
	vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
	vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
	vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
	vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
	vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
	vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
	vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
	vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
	vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
	vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
	vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
	vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
	vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
	vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
	vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
	vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
	vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
	vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
	vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
	vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
	vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
	vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
	vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
	vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
	vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
	vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
	vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
	vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
	vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
	vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
	vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
	vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
	vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
	vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
	vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
	vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
	vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
	vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
	vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
	vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
	vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
	vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
	vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
	vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
	vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
	vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
	vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
	vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
	vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
	vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
	vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
	vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
	vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
	vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
	vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
	vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
	vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
	vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
	vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
	vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
	vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
	vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
	vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
	vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
	vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
	vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
	vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
	vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
	vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
	vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
	vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
	vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
	vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.

From-SVN: r233142
2016-02-04 14:49:02 +00:00
Joseph Myers
d44cb386b8 Update gcc .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: r233141
2016-02-04 14:17:21 +00:00
Joseph Myers
ed84c4aaf8 Update cpplib .po files.
* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
	id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
	vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r233140
2016-02-04 14:15:08 +00:00
Martin Liska
7db337c247 re PR sanitizer/69276 (Address sanitizer does not handle heap overflow)
Fix PR sanitizer/69276

	* g++.dg/asan/pr69276.C: New test.
	PR sanitizer/PR69276
	* asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
	that are gimple_store_p.
	(maybe_instrument_call): Likewise.

From-SVN: r233137
2016-02-04 11:50:40 +00:00
Bin Cheng
60d27907cc aarch64.c (aarch64_legitimize_address): Force register scaling out of memory reference and comment why.
* config/aarch64/aarch64.c (aarch64_legitimize_address): Force
	register scaling out of memory reference and comment why.

From-SVN: r233136
2016-02-04 11:05:46 +00:00
Jakub Jelinek
d1243d278c class.c (find_flexarrays): Don't declare dom variable.
* class.c (find_flexarrays): Don't declare dom variable.
	(diagnose_flexarray): Likewise.

From-SVN: r233135
2016-02-04 12:04:07 +01:00
Kyrylo Tkachov
cc9c0829f7 [ARM][4/4] Adjust gcc.target/arm/wmul-[123].c tests
PR target/65932
	PR target/67714
	* gcc.target/arm/wmul-3.c: Simplify test to generate just
	a single smulbb instruction.
	* gcc.target/amr/wmul-1.c: Add -mtune=cortex-a9 to dg-options.
	* gcc.target/amr/wmul-2.c: Likewise.

From-SVN: r233134
2016-02-04 09:57:36 +00:00
Kyrylo Tkachov
625d55afc1 [cse][3/4] Don't overwrite original rtx when folding source of set
PR target/65932
	PR target/67714
	* cse.c (cse_insn): Pass NULL to fold_rtx when initially
	folding the source of a SET.

From-SVN: r233133
2016-02-04 09:56:13 +00:00
Kyrylo Tkachov
9fec9595fb [ARM][2/4] Fix operand costing logic for SMUL[TB][TB]
PR target/65932
	PR target/67714
	* config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
	the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.

From-SVN: r233132
2016-02-04 09:54:37 +00:00
Kyrylo Tkachov
eb9feb52f9 [ARM][1/4] PR target/65932: Add testcase
PR target/65932
	PR target/67714
	* gcc.c-torture/execute/pr67714.c: New test.

From-SVN: r233131
2016-02-04 09:51:35 +00:00
Jim Wilson
8644f49f75 [ARM] PR target/65932: stop changing signedness in PROMOTE_MODE
2016-02-04  Jim Wilson  <jim.wilson@linaro.org>

	PR target/65932
	PR target/67714
	* config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
	HImode.

From-SVN: r233130
2016-02-04 09:50:12 +00:00
Christian Bruel
e8449decaf arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
2016-02-04  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
	* config/arm/arm.c (arm_set_current_function): Likewise.

From-SVN: r233129
2016-02-04 10:06:32 +01:00
Jakub Jelinek
61f727fe02 re PR target/69454 (ix86_expand_prologue internal compiler error: Segmentation fault)
PR target/69454
	* config/i386/i386.c (convert_scalars_to_vector): Remove
	stack alignment fixes.
	(ix86_option_override_internal): Disable TARGET_STV if stack
	might not be aligned enough.
	(ix86_minimum_alignment): Assert that TARGET_STV is false.

	* gcc.target/i386/pr69454-1.c: New test.
	* gcc.target/i386/pr69454-2.c: New test.

From-SVN: r233128
2016-02-04 10:02:01 +01:00
Victoria Stepanyan
07d88205a6 Disable auto prefetcher for -march=znver1.
2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>

        * gcc/config/i386/x86-tune.def: Disable default prefetching
        for -march=znver1.

From-SVN: r233127
2016-02-04 07:52:08 +00:00
Martin Sebor
05dd97db3c PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array
PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array
               member
PR c++/69253 - [6 Regression] ICE in cxx_incomplete_type_diagnostic initializing
               a flexible array member with empty string
PR c++/69290 - [6 Regression] ICE on invalid initialization of a flexible array
               member
PR c++/69277 - [6 Regression] ICE mangling a flexible array member
PR c++/69349 - template substitution error for flexible array members

gcc/testsuite/ChangeLog:
2016-02-03  Martin Sebor  <msebor@redhat.com>

	PR c++/69251
	PR c++/69253
	PR c++/69290
	PR c++/69277
	PR c++/69349
	* g++.dg/ext/flexarray-mangle-2.C: New test.
	* g++.dg/ext/flexarray-mangle.C: New test.
	* g++.dg/ext/flexarray-subst.C: New test.
	* g++.dg/ext/flexary11.C: New test.
	* g++.dg/ext/flexary12.C: New test.
	* g++.dg/ext/flexary13.C: New test.
	* g++.dg/ext/flexary14.C: New test.
	* g++.dg/other/dump-ada-spec-2.C: Adjust.

gcc/cp/ChangeLog:
2016-02-03  Martain Sebor  <msebor@redhat.com>

	PR c++/69251
	PR c++/69253
	PR c++/69290
	PR c++/69277
	PR c++/69349
	* class.c (walk_subobject_offsets): Avoid testing the upper bound
	of a flexible array member for equality to null.
	(find_flexarrays): Remove spurious whitespace introduced in r231665.
	(diagnose_flexarrays): Avoid checking the upper bound of arrays.
	(check_flexarrays): Same.
	* decl.c (compute_array_index_type): Avoid special case for flexible
	array members.
	(grokdeclarator): Avoid calling compute_array_index_type for flexible
	array members.
	* error.c (dump_type_suffix): Revert changes introduced in r231665
	and rendered unnecessary by the changes above.
	* pt.c (tsubst):  Same.
	* tree.c (build_ctor_subob_ref): Handle flexible array members.
	* typeck2.c (digest_init_r): Revert changes introduced in r231665.
	(process_init_constructor_array): Same.
	(process_init_constructor_record): Same.

From-SVN: r233126
2016-02-03 21:50:42 -07:00
H.J. Lu
dac2fc2918 Define check_union_passing6 only for CHECK_FLOAT128
* gcc.target/i386/iamcu/test_passing_unions.c (check_union_passing6):
	Define only if CHECK_FLOAT128 is defined.
	(main): Properly initialize u5.

From-SVN: r233124
2016-02-03 17:46:17 -08:00
Michael Meissner
5a01e0c761 re PR target/69461 (ICE in lra_set_insn_recog_data, at lra.c:964)
2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69461
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
	in validating fused toc addresses.


Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>

From-SVN: r233120
2016-02-04 00:39:34 +00:00
GCC Administrator
20279ed091 Daily bump.
From-SVN: r233119
2016-02-04 00:16:12 +00:00
Jakub Jelinek
0afbb81bb6 re PR c/69627 (Conditional jump or move depends on uninitialised value(s) in (anonymous namespace)::layout::get_state_at_point)
PR c/69627
	* diagnostic-show-locus.c (layout::get_state_at_point): Don't read
	range->m_caret fields if range->m_show_caret_p is false.

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

From-SVN: r233114
2016-02-03 23:40:22 +01:00
Jakub Jelinek
eadb8035ac re PR target/69644 (ICE with -O on __sync_bool_compare_and_swap with short in extract_insn, at recog.c:2286)
PR target/69644
	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
	Force oldval into register if it does not satisfy reg_or_short_operand
	predicate.  Fix up formatting.

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

From-SVN: r233113
2016-02-03 23:38:56 +01:00
Mike Stump
b12d4923c4 compat.exp (compat-get-options-main): Add dg-timeout-factor support for struct-layout-1.exp.
* lib/compat.exp (compat-get-options-main): Add dg-timeout-factor
	support for struct-layout-1.exp.

From-SVN: r233112
2016-02-03 22:23:57 +00:00
Andreas Tobler
68750bce88 re PR bootstrap/69611 (Bootstrap broken on PowerPC FreeBSD, IEEE 128-bit floating point support.)
2016-02-03  Andreas Tobler  <andreast@gcc.gnu.org>

    PR bootstrap/69611
    * config/rs6000/sfp-machine.h: Guard __sfp_exceptions with
    __FLOAT128__ to compile only for __float128 capable targets.

From-SVN: r233111
2016-02-03 23:15:21 +01:00
Ian Lance Taylor
f98dd1a338 libgo: Update to go1.6rc1.
Reviewed-on: https://go-review.googlesource.com/19200

From-SVN: r233110
2016-02-03 21:58:02 +00:00
H.J. Lu
b081ed4efc Add the new IA MCU test
From-SVN: r233109
2016-02-03 12:17:24 -08:00
Patrick Palka
ab4bae0c13 Fix PR c++/69056 (argument pack deduction failure during overload resolution)
gcc/cp/ChangeLog:

	PR c++/69056
	* pt.c (try_one_overload): Handle comparing argument packs so
	that there is no conflict if we deduced more arguments of an
	argument pack than were explicitly specified.

gcc/testsuite/ChangeLog:

	PR c++/69056
	g++.dg/cpp0x/pr69056.C: New test.

From-SVN: r233108
2016-02-03 20:14:43 +00:00
Vladimir Makarov
95831c01a2 re PR target/69461 (ICE in lra_set_insn_recog_data, at lra.c:964)
2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR target/69461
	* lra-constraints.c (simplify_operand_subreg): Check additionally
	address validity after potential reloading.
	(process_address_1): Check insns validity.  In case of failure do
	nothing.

2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR target/69461
	* gcc.target/powerpc/pr69461.c: New.


Co-Authored-By: Alexandre Oliva <aoliva@redhat.com>

From-SVN: r233107
2016-02-03 17:58:34 +00:00
Uros Bizjak
ccc71ab85a tsan-dg.exp (tsan_init): Move check if tsan executable works from here ...
* lib/tsan-dg.exp (tsan_init): Move check if tsan executable
	works from here ...
	(check_effective_target_fsanitize_thread): ... to here.  Do not
	specify additional compile flags for the test source.
	* lib/asan-dg.exp (check_effective_target_fsanitize_address): Do not
	specify additional compile flags for the test source.

From-SVN: r233106
2016-02-03 18:01:01 +01:00
Kirill Yukhin
203ae08bb3 re PR target/69118 (Wrong condition in avx512f_maskcmp<mode>3)
PR target/69118

gcc/
	* config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
	Fix target.

From-SVN: r233103
2016-02-03 13:44:50 +00:00
Wilco Dijkstra
96299640d4 Fix the ccmp_1.c test back to use '0' as regular expressions don't work correctly.
Fix the ccmp_1.c test back to use '0' as regular expressions don't work
correctly. '0' is right due to compare with zero now printing as
'CMP w0, 0' rather than 'CMP w0, wzr'.

2016-02-03  Wilco Dijkstra  <wdijkstr@arm.com>

gcc/testsuite/
	* gcc.target/aarch64/ccmp_1.c: Fix test issue.

From-SVN: r233102
2016-02-03 12:18:19 +00:00
Andre Vehreschild
781d83d96d re PR fortran/67451 ([F08] ICE with sourced allocation from coarray.)
gcc/testsuite/ChangeLog:

2016-02-03  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/67451
	PR fortran/69418
	* gfortran.dg/coarray_allocate_2.f08: New test.
	* gfortran.dg/coarray_allocate_3.f08: New test.
	* gfortran.dg/coarray_allocate_4.f08: New test.


gcc/fortran/ChangeLog:

2016-02-03  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/67451
	PR fortran/69418
	* trans-expr.c (gfc_copy_class_to_class): For coarrays just the
	pointer is passed.  Take it as is without trying to deref the
	_data component.
	* trans-stmt.c (gfc_trans_allocate): Take care of coarrays as
	argument to source=-expression.

From-SVN: r233101
2016-02-03 11:39:09 +01:00
Alan Lawrence
d8208e6d4c [Testsuite] Fix scan-tree-dump failures with vect_multiple_sizes
* gcc.dg/vect/vect-outer-1-big-array.c: Drop vect_multiple_sizes;
	use same scan-tree-dump-times on all platforms.
	* gcc.dg/vect/vect-outer-1.c: Likewise.
	* gcc.dg/vect/vect-outer-1a-big-array.c: Likewise.
	* gcc.dg/vect/vect-outer-1a.c: Likewise.
	* gcc.dg/vect/vect-outer-1b-big-array.c: Likewise.
	* gcc.dg/vect/vect-outer-1b.c: Likewise.
	* gcc.dg/vect/vect-outer-2b.c: Likewise.
	* gcc.dg/vect/vect-outer-3b.c: Likewise.
	* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.

From-SVN: r233100
2016-02-03 10:33:03 +00:00
Ian Lance Taylor
06caa02ccf compiler, runtime: mark stub methods, ignore them in runtime.Caller.
This fixes the long-standing bug in which the testing package misreports
    the file/line of an error.
    
    Reviewed-on: https://go-review.googlesource.com/19179

From-SVN: r233098
2016-02-03 06:54:41 +00:00
Ian Lance Taylor
e2bd26b722 compiler: Unpack method names when sorting them.
Reviewed-on: https://go-review.googlesource.com/19177

From-SVN: r233097
2016-02-03 05:27:16 +00:00
GCC Administrator
6f4949afaf Daily bump.
From-SVN: r233096
2016-02-03 00:16:12 +00:00
Segher Boessenkool
a8394fa0fa This testcase fails on 32-bit powerpc-linux with
vector-compare-4.c

This testcase fails on 32-bit powerpc-linux with

Excess errors:
/home/segher/src/gcc/gcc/testsuite/c-c++-common/vector-compare-4.c:31:1: warning: GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee

Fix this as in vector-compare-2.c .


testsuite/
	* c-c++-common/vector-compare-4.c: Prune "non-standard ABI extension"
	warning.

From-SVN: r233093
2016-02-02 21:38:06 +01:00
Jakub Jelinek
321a2b65f8 wide-int.cc (canonize_uhwi): New function.
* wide-int.cc (canonize_uhwi): New function.
	(wi::divmod_internal): Use it.

From-SVN: r233092
2016-02-02 20:44:16 +01:00
H.J. Lu
f3baa1d3ed Add IA MCU tests for passing/returning of empty structures/unions
* gcc.target/i386/iamcu/test_empty_structs_and_unions.c: New test.

From-SVN: r233090
2016-02-02 11:22:04 -08:00
James Norris
eb07751679 gimplify.c (omp_notice_variable): Add usage check.
gcc/
	* gimplify.c (omp_notice_variable): Add usage check.

	gcc/testsuite/
	* c-c++-common/goacc/routine-5.c: Add tests.

From-SVN: r233089
2016-02-02 19:17:37 +00:00
Alexander Monakov
578fb2259b nvptx: do not use alternative spelling of unsigned comparisons
gcc/ChangeLog:
	* config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
        like LE, GE, LT, GT when emitting relational operator.

gcc/testsuite/ChangeLog:
	* gcc.target/nvptx/unsigned-cmp.c: New test.

From-SVN: r233088
2016-02-02 21:24:25 +03:00
Alexander Monakov
5854ee30ca libgomp: fix target-31.c testcase
* testsuite/libgomp.c/target-31.c: Fix testcase.

From-SVN: r233087
2016-02-02 21:18:43 +03:00
Alexander Monakov
e70b6ad754 libgomp: fix teams-3/4 testcases
* testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
	clause.
	* testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
	* testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
	reduction and map clauses.
	* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.

From-SVN: r233086
2016-02-02 21:15:58 +03:00
Wilco Dijkstra
31e2b5a3d8 Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook.
Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook.  It turns out there
is another case where the register allocator uses the union of register classes
without checking that the cost of the resulting register class is lower than
both (see https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01765.html ).  This
happens when the cost of the best and alternative class are both lower than the
memory cost.  In this case we typically end up with ALL_REGS as the allocno
class, which almost invariably results in bad allocations with many redundant
int<->FP moves (which are expensive on various cores).  AArch64 is affected by
this significantly due to supporting many scalar integer operations in SIMD.

Currently the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook forces the class to
GENERAL_REGS if the allocno class is ALL_REGS and the register has an integer
mode.  This is bad if the best class happens to be FP_REGS.  To handle this
case as well, an extra argument is needed in the hook to pass the best class.
If the allocno class is ALL_REGS, but the best class isn't, we use the best
class instead (rather than using the mode to force to GENERAL_REGS or FP_REGS).

Previously this might happen:

r79: preferred FP_REGS, alternative GENERAL_REGS, allocno GENERAL_REGS
     a1 (r79,l0) best GENERAL_REGS, allocno GENERAL_REGS

a1(r79,l0) costs: CALLER_SAVE_REGS:5000,5000 GENERAL_REGS:5000,5000
                  FP_LO_REGS:0,0 FP_REGS:0,0 ALL_REGS:10000,10000 MEM:9000,9000

The proposed allocno is ALL_REGS (despite having the highest cost!) and is then
forced by the hook to GENERAL_REGS because r79 has integer mode.  However
FP_REGS has the lowest cost.  After this patch the choice is as follows:

r79: preferred FP_REGS, alternative GENERAL_REGS, allocno FP_REGS
     a1 (r79,l0) best FP_REGS, allocno FP_REGS

As a result it is now no longer a requirement to use register move costs that 
are larger than the memory move cost.  So it will be feasible to use realistic
costs for both without a huge penalty.


2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
        * ira-costs.c (find_costs_and_classes): Add extra argument.
        * target.def (ira_change_pseudo_allocno_class): Add parameter.
        * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
        * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
        * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
        Add best_class parameter, and return it if not ALL_REGS.
        * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
        Add parameter.
        * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
        Update target hook.

From-SVN: r233084
2016-02-02 17:12:56 +00:00
Wilco Dijkstra
c64f7d3714 This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook.
When the cost of GENERAL_REGS and FP_REGS is identical, the register allocator
always uses ALL_REGS even when it has a much higher cost. The hook changes the
class to either FP_REGS or GENERAL_REGS depending on the mode of the register.
This results in better register allocation overall, fewer spills and reduced
codesize - particularly in SPEC2006 gamess.

2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
	* config/aarch64/aarch64.c
	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
	(aarch64_ira_change_pseudo_allocno_class): New function.

    gcc/testsuite/
	* gcc.target/aarch64/scalar_shift_1.c
	(test_corners_sisd_di): Improve force to SIMD register.
	(test_corners_sisd_si): Likewise.
	* gcc.target/aarch64/vect-ld1r-compile-fp.c:
	Remove scan-assembler check for ldr.

From-SVN: r233083
2016-02-02 17:03:05 +00:00
James Norris
bd78a45fa0 * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
From-SVN: r233082
2016-02-02 16:22:26 +00:00
Uros Bizjak
0de7e22ccb re PR target/67032 (Geode optimizations incorrectly return -NaN)
PR target/67032
	* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.

From-SVN: r233079
2016-02-02 17:07:24 +01:00
Senthil Kumar Selvaraj
c7088aeac8 avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1.
* config/avr/avr.c (avr_option_override): Set
	PARAM_ALLOW_STORE_DATA_RACES to 1.

From-SVN: r233078
2016-02-02 19:01:45 +03:00
Claudiu Zissulescu
80cfaff84a MAINTAINERS (Write After Approval): Add myself
2016-02-02  Claudiu Zissulescu  <claziss@synopsys.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r233077
2016-02-02 16:24:22 +01:00
Richard Biener
90c6f26c8b re PR tree-optimization/69595 (Bogus -Warray-bound warning due to missed optimization)
2016-02-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69595
	* match.pd: Add range test simplifications to true/false.

	* gcc.dg/Warray-bounds-17.c: New testcase.

From-SVN: r233076
2016-02-02 15:19:32 +00:00
Thomas Schwinge
18f6014649 Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START
gcc/
	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
	* omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
	instead.
	libgomp/
	* libgomp.map (GOACC_2.0): Remove GOACC_host_data.
	* oacc-parallel.c (GOACC_host_data): Remove function definition.

From-SVN: r233074
2016-02-02 14:53:55 +01:00