Commit Graph

111191 Commits

Author SHA1 Message Date
Bernd Schmidt
60418b5d25 c6x.md (indirect_jump_shadow): Tweak representation to make computed_jump_p return true.
* config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
	to make computed_jump_p return true.

From-SVN: r177968
2011-08-22 18:00:33 +00:00
Rainer Orth
e3aa9ebaf7 Centralize PICFLAG configuration
config:
	* picflag.m4: New file.

	gcc:
	* configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
	(PICFLAG_FOR_TARGET): Substitute.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	gcc/ada:
	* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
	(GNATLIBCFLAGS_FOR_C): Replace
	TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
	(gnatlib-shared-default, gnatlib-shared-dual-win32)
	(gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
	(gnatlib-sjlj, gnatlib-zcx): Likewise.

	libada:
	* configure.ac: Include ../config/picflag.m4.
	(GCC_PICFLAG): Call it.
	Substitute.
	* configure: Regenerate.
	* Makefile.in (TARGET_LIBGCC2_CFLAGS): Replace by PICFLAG.
	(GNATLIBCFLAGS_FOR_C): Replace TARGET_LIBGCC2_CFLAGS by PICFLAG.
	(LIBADA_FLAGS_TO_PASS): Pass PICFLAG as PICFLAG_FOR_TARGET.
	Don't include $(GCC_DIR)/libgcc.mvars.

	libiberty:
	* aclocal.m4: Include ../config/picflag.m4.
	* configure.ac (GCC_PICFLAG): Call it.
	(enable_shared): Clear PICFLAG unless shared.
	* configure: Regenerate.

From-SVN: r177967
2011-08-22 16:54:02 +00:00
Uros Bizjak
eb3e9f6047 * ChangeLog: Fix and enhance ChangeLog entry.
From-SVN: r177966
2011-08-22 18:50:10 +02:00
Dodji Seketeli
671d9f12cf Avoid dangling line table after loading pch
gcc/

	* c-family/c-pch.c (c_common_read_pch): Re-set line table right
	after reading in the pch.

From-SVN: r177964
2011-08-22 18:00:32 +02:00
H.J. Lu
b0894e1f4f Use .init_array section only if __ELF__ is defined.
2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>

	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
	defined.
	* configure: Regenerated.

From-SVN: r177963
2011-08-22 08:53:13 -07:00
Jakub Jelinek
ad88538650 re PR tree-optimization/50133 (ICE: SIGSEGV in vect_finish_stmt_generation (gimple.h:4821) with -ftree-vectorize -fno-tree-loop-im)
PR tree-optimization/50133
	* tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
	from stmt instead of some statement around gsi.

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

From-SVN: r177958
2011-08-22 17:01:42 +02:00
Jakub Jelinek
e4269c7843 re PR middle-end/50141 (ICE: tree check: expected var_decl, have parm_decl in get_bit_range, at expr.c:4357 with --param allow-store-data-races=0 and bitfields)
PR middle-end/50141
	* expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
	innerdecl is a VAR_DECL.

	* c-c++-common/cxxbitfields-6.c: New test.

From-SVN: r177957
2011-08-22 17:00:06 +02:00
Mikael Morin
7d7212ec2b re PR fortran/50050 (Internal compiler error free_expr0 at expr.c:3709 via gfc_done_2)
2011-08-22  Mikael Morin  <mikael.morin@gcc.gnu.org>

	PR fortran/50050
	* gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
	* expr.c (gfc_clear_shape, gfc_free_shape): New functions.
	(free_expr0): Re-use gfc_free_shape.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	* trans-io.c (transfer_array_component): Ditto.
	* resolve.c (check_host_association): Ditto.
	(gfc_expr_to_initialize): Don't force the rank value and free the shape
	after updating the expression. Recalculate shape and rank.
	(resolve_where_shape): Re-use gfc_clear_shape.
	* array.c (gfc_array_ref_shape): Ditto.

2011-08-22  Mikael Morin  <mikael.morin@gcc.gnu.org>

	PR fortran/50050
	* gfortran.dg/alloc_comp_initializer_3.f90: New test.

From-SVN: r177956
2011-08-22 14:07:30 +00:00
Kirill Yukhin
977e83a3ed Add support for AVX2 builtin functions.
2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx2intrin.h: New file.
	* config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
	PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
	V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
	V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
	V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
	V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
	V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
	V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
	V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
	V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
	V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
	V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
	V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
	V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
	V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
	V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
	V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
	V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
	VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
	VOID_FTYPE_PV8SI_V8SI_V8SI,
	V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
	V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
	V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
	V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
	V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
	V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
	V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
	V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
	V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
	V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
	V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
	V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
	V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
	V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
	V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
	V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
	V4DI_FTYPE_V4DI_INT_CONVERT,
	V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
	IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
	IX86_BUILTIN_VBROADCASTSS_PS256,
	IX86_BUILTIN_VBROADCASTSD_PD256,
	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
	IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
	IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
	IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
	IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
	IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
	IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
	IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
	IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
	(bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
	(bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
	IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
	IX86_BUILTIN_VBROADCASTSD_PD256,
	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
	(ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
	IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
	IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
	IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
	IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
	IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
	IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
	IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
	IX86_BUILTIN_GATHERDIV8SI.
	(ix86_preferred_simd_mode): Support AVX2 modes.
	(ix86_expand_args_builtin): Support AVX2 built-ins.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.
	* config/i386/i386.md (UNSPEC_VPERMSI): New.
	(UNSPEC_VPERMDF): Likewise.
	(UNSPEC_VPERMSF): Likewise.
	(UNSPEC_VPERMDI): Likewise.
	(UNSPEC_VPERMTI): Likewise.
	(UNSPEC_GATHER): Likewise.
	(ssemodesuffix): Extend.
	* config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
	is defined.
	* config/i386/predicates.md (const1248_operand): New.
	* config/i386/sse.md (VI_AVX2):
	(VI1_AVX2): Likewise.
	(VI2_AVX2): Likewise.
	(VI4_AVX2): Likewise.
	(VI8_AVX2): Likewise.
	(VIMAX_AVX2): Likewise.
	(SSESCALARMODE): Likewise.
	(VI12_AVX2): Likewise.
	(VI24_AVX2): Likewise.
	(VI124_AVX2): Likeuse_submit_for_speed = 1
	wise.
	(VI248_AVX2): Likewise.
	(VI48_AVX2): Likewise.
	(VI4SD_AVX2): Likewise.
	(V48_AVX2): Likewise.
	(avx2modesuffix): Likewise.
	(sse_avx2): Likewise.
	(sse2_avx2): Likewise.
	(ssse3_avx2): Likewise.
	(sse4_1_avx2): Likewise.
	(avx_avx2): Likewise.
	(lshift)<code_oterator>: Likewise.
	(lshift_insn): Likewise.
	(lshift)<code_attr>: Likewise.
	(SSESHORTMODE): Likewise.
	(SSELONGMODE): Likewise.
	(SSEBYTEMODE): Likewise.
	(AVXTOSSEMODE): Likewise.
	(shortmode): Likewise.
	(ssescalarmodesuffix): Update.
	(sseunpackmode): Likewise.
	(ssepackmode): Likewise.
	(AVX256MODEI): New.
	(AVX256MODE124): Likewise.
	(AVX256MODE1248): Likewise.
	(AVX256MODE248): Likewise.
	(AVXMODE48P_SI): Likewise.
	(AVXMODE48P_SI): Likewise.
	(AVXMODE48P_DI): Likewise.
	(AVXMODE48P_DI): Likewise.
	(gthrfirstp): Likewise.
	(gthrlastp): Likewise.
	(avx2): Likwise.
	(ssevecsize): Likewise.
	(ssedoublesizemode): Likewise.
	(avxvecmode): Likewise.
	(avxvecsize): Likewise.
	(avxhalfvecmode): Likewise.
	(avxscalarmode): Likewise.
	(avxpermvecmode): Likewise.
	(avxmodesuffixp): Likewise.
	(avxmodesuffix): Likewise.
	(avx2_vec_dupv4sf): New.
	(avx2_vec_dupv8sf): Likewise.
	(avx2_interleave_highv4di): Likewise.
	(avx2_interleave_lowv4di): Likewise.
	(<plusminus_insn><mode>3): Update.
	(*<plusminus_insn><mode>3): Likewise.
	(sse2_<plusminus_insn><mode>3): Rename to ...
	("<sse2_avx2>_<plusminus_insn><mode>3): ... this. updated.
	(*sse2_<plusminus_insn><mode>3): Likewise.
	(*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
	(mulv8hi3): Likewise.
	(mul<mode>3): Likewise.
	(*mulv8hi3): Likewise.
	(*mul<mode>3): Likewise.
	(<s>mulv8hi3_highpart): Likewise.
	(<s>mul<mode>3_highpart): Likewise.
	(*<s>mulv8hi3_highpart): Likewise.
	(*<s>mul<mode>3_highpart): Likewise.
	(avx2_umulv4siv4di3): Likewise.
	(*avx_umulv4siv4di3): Likewise.
	(sse4_1_mulv2siv2di3): Likewise.
	(<sse4_1_avx2>_mul<shortmode><mode>3): Likewise.
	(*sse4_1_mulv2siv2di3): Likewise.
	(*<sse4_1_avx2>_mulv2siv2di3): Likewise.
	(avx2_pmaddwd): New.
	(*avx2_pmaddwd): Likewise.
	(mulv4si3): Rename to ...
	(mul<mode>3): ... this. Update.
	(*sse4_1_mulv4si3): Likewise.
	(*<sse4_1_avx2>_mul<mode>3): Likewise.
	(ashr<mode>3): Update.
	(avx2_lshrqv4di3): New.
	(lshr<mode>3): Update.
	(avx2_lshlqv4di3): New.
	(avx2_lshl<mode>3): Likewise.
	(sse2_ashlv1ti3): Rename to ...
	(<sse2_avx2>_ashl<mode>3): ... this. Update.
	(avx2_<code><mode>3)<umaxmin>: New.
	(*avx2_<code><mode>3)<umaxmin>: Likewise.
	(avx2_<code><mode>3)<smaxmin>: New.
	(*avx2_<code><mode>3)<smaxmin>: Likewise.
	(avx2_eq<mode>3): Likewise.
	(*avx2_eq<mode>3): Likewise.
	(avx2_gt<mode>3): Likewise.
	(sse2_andnot<mode>3): Rename to ...
	(<sse2_avx2>_andnot<mode>3): ... this. Update.
	(*andnot<mode>3): Update.
	(<code><mode>3)<any_logic>: Update.
	(*<code><mode>3)<any_logic>: Likewise.
	(sse2_packsswb): Rename to ...
	(<sse2_avx2>_packsswb): ... this. Update.
	(sse2_packssdw): Likewise.
	(<sse2_avx2>_packssdw): Likewise.
	(sse2_packuswb): Likewise.
	(<sse2_avx2>_packuswb): Likewise.
	(avx2_interleave_highv32qi): New.
	(avx2_interleave_lowv32qi): Likewise.
	(avx2_interleave_highv16hi): Likewise.
	(avx2_interleave_lowv16hi): Likewise.
	(avx2_interleave_highv8si): Likewise.
	(avx2_interleave_lowv8si): Likewise.
	(avx2_pshufd): New
	(avx2_pshufd_1): Likewise.
	(avx2_pshuflwv3): Likewise.
	(avx2_pshuflw_1): Likewise.
	(avx2_pshufhwv3): Likewise.
	(avx2_pshufhw_1): Likewise.
	(avx2_uavgv32qi3): Likewise.
	(*avx2_uavgv32qi3): Likewise.
	(avx2_uavgv16hi3): Likewise.
	(*avx2_uavgv16hi3): Likewise.
	(sse2_psadbw): Rename to ...
	(<sse2_avx2>_psadbw): ... this. Update.
	(avx2_pmovmskb): New.
	(avx2_phaddwv16hi3): Likewise.
	(avx2_phadddv8si3): Likewise.
	(avx2_phaddswv16hi3): Likewise.
	(avx2_phsubwv16hi3): Likewise.
	(avx2_phsubdv8si3): Likewise.
	(avx2_phsubswv16hi3): Likewise.
	(avx2_pmaddubsw256): Likewise.
	(avx2_umulhrswv16hi3): Likewise.
	(*avx2_umulhrswv16hi3): Likewise.
	(ssse3_pshufbv16qi3): Rename to ...
	(<ssse3_avx2>_pshufb<mode>3): ... this. Update.
	(ssse3_psign<mode>3): Likewise.
	(<ssse3_avx2>_psign<mode>3): Likewise.
	(ssse3_palignrti): Likewise.
	(<ssse3_avx2>_palignr<mode>): Likewise.
	(abs<mode>2): Likewise.
	(sse4_1_movntdqa): Rename to ...
	(<sse4_1_avx2>_movntdqa): ... this. Update.
	(sse4_1_mpsadbw): Likewise.
	(<sse4_1_avx2>_mpsadbw): Likewise.
	(avx2_packusdw): New.
	(sse4_1_pblendvb): Rename to ...
	(<sse4_1_avx2>_pblendvb): ... this. Update.
	(sse4_1_pblendw): Likewise.
	(<sse4_1_avx2>_pblendw): Likewise.
	(avx2_pblendd<mode>): New.
	(avx2_<code>v16qiv16hi2): Likewise.
	(avx2_<code>v8qiv8si2): Likewise.
	(avx2_<code>v8hiv8si2): Likewise.
	(avx2_<code>v4qiv4di2): Likewise.
	(avx2_<code>v4hiv4di2): Likewise.
	(avx2_<code>v4siv4di2): Likewise.
	(avx2_pbroadcast<mode>): Likewise.
	(avx2_permvarv8si): Likewise.
	(avx2_permv4df): Likewise.
	(avx2_permvarv8sf): Likewise.
	(avx2_permv4di): Likewise.
	(avx2_permv2ti): Likewise.
	(avx2_vec_dupv4df): Likewise.
	(avx2_vbroadcasti128_<mode>): Likewise.
	(avx2_vec_set_lo_v4di): Likewise.
	(avx2_vec_set_hi_v4di): Likewise.
	(avx_maskload<ssemodesuffix><avxsizesuffix>): Rename to ...
	(<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): ... this.
	Update.
	(avx_maskstore<ssemodesuffix><avxsizesuffix>): Likewise.
	(<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Likewise.
	(*avx2_maskmov<avx2modesuffix><avxmodesuffix>): New.
	(avx2_extracti128): Likewise.
	(avx2_inserti128): Likewise.
	(avx2_ashrvv8si): Likewise.
	(avx2_ashrvv4si): Likewise.
	(avx2_<lshift>vv8si): Likewise.
	(avx2_<lshift>v<mode>): Likewise.
	(avx2_<lshift>vv2di): Likewise.
	(avx2_gathersi<mode>): Likewise.
	(*avx2_gathersi<mode>): Likewise.
	(avx2_gatherdi<mode>): Likewise.
	(*avx2_gatherdi<mode>): Likewise.
	(avx2_gatherdi<mode>256): Likewise.
	(*avx2_gatherdi<mode>256): Likewise.
	* doc/extend.texi: Document AVX2 built-in functions.
	* doc/invoke.texi: Document -mavx2.

From-SVN: r177955
2011-08-22 06:57:18 -07:00
Georg-Johann Lay
bdb7daebd2 pr49994-2.c: Add dg-require-effective-target scheduling.
* gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling.
	* gcc.dg/pr49994-3.c: Ditto.

From-SVN: r177954
2011-08-22 13:57:12 +00:00
Matthias Klose
1ad1ae8093 revert: t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if tm_defines contains MIPS_ABI_DEFAULT ABI_32...
2011-08-22  Matthias Klose <doko@debian.org>

        Revert:
        2011-07-11  Arthur Loiret  <aloiret@debian.org>
                    Matthias Klose <doko@debian.org>
        * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
        tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
        convention.
        * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.

From-SVN: r177953
2011-08-22 11:21:55 +00:00
Richard Guenther
ed90b6734c re PR middle-end/50145 (FAIL: gcc.dg/torture/pr50067-*.c -O* execution test on powerpc*-*-*)
2011-08-22  Richard Guenther  <rguenther@suse.de>

	PR testsuite/50145
	* gcc.dg/torture/pr50067-1.c: Run on little-endian systems only.
	* gcc.dg/torture/pr50067-2.c: Likewise.

From-SVN: r177952
2011-08-22 10:27:42 +00:00
Mikael Pettersson
fbddb81da4 re PR bootstrap/50146 (unused variable saved_nregs in ira-color.c broke arm-linux-gnueabi bootstrap)
PR bootstrap/50146
	* ira-color.c (assign_hard_reg): Move saved_nregs declaration
	to #ifndef HONOR_REG_ALLOC_ORDER block.

From-SVN: r177951
2011-08-22 11:38:14 +02:00
GCC Administrator
ba259d527a Daily bump.
From-SVN: r177949
2011-08-22 00:18:46 +00:00
Gerald Pfeifer
589ef536a6 Fix ChangeLog format for revision 177257.
From-SVN: r177945
2011-08-21 19:24:31 +00:00
Richard Henderson
8f06d483ec rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
* rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
        * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
        * resource.c (next_insn_no_annul): Likewise.
        (mark_set_resources): Likewise.
        * reorg.c (delete_from_delay_slot): Likewise.
        (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
        (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.

From-SVN: r177944
2011-08-21 11:49:49 -07:00
Gerald Pfeifer
b2f7ebc145 Fix ChangeLog format for revision 177258.
From-SVN: r177943
2011-08-21 18:38:13 +00:00
Thomas Koenig
6cd1d48e9e re PR fortran/47659 (-Wconversion[-extra] should emit warning for constant expressions)
2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47659
	* expr.c (gfc_check_assign): Check for type conversions when the
	right-hand side is a constant REAL/COMPLEX contstant the left-hand
	side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
	for REAL does not change the value of the constant.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47659
	* gfortran.dg/warn_conversion_2.f90:  Also warn about conversion
	of a constant resulting from simplification.
	* gfortran.dg/warn_conversion_3.f90:  New test.

From-SVN: r177942
2011-08-21 16:35:28 +00:00
Uros Bizjak
38acd2910a i386.md (any_div): Remove.
* config/i386/i386.md (any_div): Remove.
	(sgnprefix): Update for removal.
	(u): Ditto.

From-SVN: r177941
2011-08-21 18:19:14 +02:00
Thomas Koenig
2d27cb4477 re PR fortran/50130 (ICE with invalid array slice)
2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50130
	* resolve.c (resolve_array_ref):  Don't calculate upper bound
	if the stride is zero.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/50130
	* gfortran.dg/zero_stride_1.f90:  New test.

From-SVN: r177940
2011-08-21 12:02:12 +00:00
Vladimir Makarov
5193535841 ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class for ira_reg_class_max_nregs.
2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
	for ira_reg_class_max_nregs.  Increase pressure by 1.
	(mark_pseudo_regno_subword_dead): Use allocno class
	for ira_reg_class_max_nregs.

From-SVN: r177939
2011-08-21 02:14:37 +00:00
GCC Administrator
e60041479d Daily bump.
From-SVN: r177938
2011-08-21 00:18:09 +00:00
Richard Henderson
2b28ecea19 eqd.c, [...]: Adjust include path for soft-fp.
* config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
        config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
        config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
        config/c6x/ltf.c: Adjust include path for soft-fp.

From-SVN: r177934
2011-08-20 15:28:19 -07:00
H.J. Lu
9ce7ad7f3a Use .init_arrary/.fini_array sections if possible.
2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/46770
	* config.gcc (tm_file): Add initfini-array.h if
	.init_arrary/.fini_array are supported.

	* crtstuff.c: Don't generate .ctors nor .dtors sections if
	USE_INITFINI_ARRAY is defined.

	* output.h (default_elf_init_array_asm_out_constructor): New.
	(default_elf_fini_array_asm_out_destructor): Likewise.
	* varasm.c (elf_init_array_section): Likewise.
	(elf_fini_array_section): Likewise.
	(get_elf_initfini_array_priority_section): Likewise.
	(default_elf_init_array_asm_out_constructor): Likewise.
	(default_elf_fini_array_asm_out_destructor): Likewise.

	* config/initfini-array.h: New.

From-SVN: r177933
2011-08-20 13:02:17 -07:00
Janus Weil
13001f33ca re PR fortran/49638 ([OOP] length parameter is ignored when overriding type bound character functions with constant length.)
2011-08-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49638
	* dependency.c (gfc_dep_compare_expr): Add new result value "-3".
	(gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
	result value "-3".
        * frontend-passes.c (optimize_comparison): Ditto.
	* interface.c (gfc_check_typebound_override): Ditto.


2011-08-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49638
	* gfortran.dg/typebound_override_1.f90: Modified.

From-SVN: r177932
2011-08-20 21:11:56 +02:00
Richard Sandiford
894113c35c mips.c (mips_class_max_nregs): Check that the mode is OK for ST_REGS and FP_REGS before taking those classes...
gcc/
	* config/mips/mips.c (mips_class_max_nregs): Check that the mode is
	OK for ST_REGS and FP_REGS before taking those classes into account.

From-SVN: r177931
2011-08-20 19:00:40 +00:00
Richard Sandiford
9e187b317b mips.c (mips_reorg_process_insns): Check for jumps before checking for annulled branches.
gcc/
	* config/mips/mips.c (mips_reorg_process_insns): Check for jumps
	before checking for annulled branches.

From-SVN: r177930
2011-08-20 18:55:49 +00:00
Uros Bizjak
f0cac80bf6 i386.c (ix86_binary_operator_ok): Use satisfies_constraint_L.
* config/i386/i386.c (ix86_binary_operator_ok): Use
	satisfies_constraint_L.

From-SVN: r177928
2011-08-20 13:05:43 +02:00
Uros Bizjak
198cb1664a i386.c (ix86_expand_round_sse4): Expand as trunc (a + copysign (nextafter (0.5, 0.0), a)).
* config/i386/i386.c (ix86_expand_round_sse4): Expand as
	trunc (a + copysign (nextafter (0.5, 0.0), a)).

From-SVN: r177927
2011-08-20 12:15:59 +02:00
Anatoly Sokolov
f47a61f332 tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_preferred_output_reload_class): Don't use
	PREFERRED_OUTPUT_RELOAD_CLASS macro.
	* system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.

From-SVN: r177926
2011-08-20 13:18:35 +04:00
Jakub Jelinek
94e3faf665 re PR tree-optimization/48739 (ICE in check_loop_closed_ssa_use() with "-ftree-parallelize-loops=2 -fno-tree-dominator-opts")
PR tree-optimization/48739
	* tree-ssa.c: Include cfgloop.h.
	(execute_update_addresses_taken): When updating ssa, if in
	loop closed SSA form, call rewrite_into_loop_closed_ssa instead of
	update_ssa.
	* Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).

	* gcc.dg/pr48739-1.c: New test.
	* gcc.dg/pr48739-2.c: New test.

From-SVN: r177924
2011-08-20 09:48:35 +02:00
Tobias Burnus
b915664244 interchange-1.f: Remove xfail.
2011-08-20  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/graphite/interchange-1.f: Remove xfail.

From-SVN: r177923
2011-08-20 09:00:42 +02:00
GCC Administrator
e860bce4d0 Daily bump.
From-SVN: r177922
2011-08-20 00:18:07 +00:00
Mikael Morin
176a6603d5 re PR fortran/50129 (ICE on where statement)
2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/50129
	* parse.c (parse_where): Undo changes after emitting an error. 

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

	PR fortran/50129
	* gfortran.dg/where_3.f90: New test.

From-SVN: r177918
2011-08-19 23:20:30 +00:00
Vladimir Makarov
3bb19a90c8 re PR rtl-optimization/49936 (IRA handles CANNOT_CHANGE_MODE_CLASS poorly, + spills to memory on 4.7)
2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49936
	* ira.c (ira_init_register_move_cost): Ignore too small subclasses
	for calculation of max register move costs.

From-SVN: r177916
2011-08-19 22:17:26 +00:00
Joseph Myers
02ee3d3153 c-parser.c (c_parser_postfix_expression): Convert operands of __builtin_complex to their semantic types.
* c-parser.c (c_parser_postfix_expression): Convert operands of
	__builtin_complex to their semantic types.

From-SVN: r177915
2011-08-19 22:55:44 +01:00
H.J. Lu
54f6892e4b Permute conversion and addition of constant for zero-extend.
gcc/

2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/49721
	* explow.c (convert_memory_address_addr_space): Also permute the
	conversion and addition of constant for zero-extend.

gcc/testsuite/

2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/49721
	* gfortran.dg/pr49721-1.f: New.
	* gfortran.fortran-torture/compile/pr49721-1.f: Likewise.

From-SVN: r177914
2011-08-19 14:18:03 -07:00
Joseph Myers
d4a83c103c c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
* c-parser.c (c_parser_postfix_expression): Handle
	RID_BUILTIN_COMPLEX.
	* doc/extend.texi (__builtin_complex): Document.

c-family:
	* c-common.c (c_common_reswords): Add __builtin_complex.
	* c-common.h (RID_BUILTIN_COMPLEX): New.

testsuite:
	* gcc.dg/builtin-complex-err-1.c, gcc.dg/builtin-complex-err-2.c,
	gcc.dg/dfp/builtin-complex.c, gcc.dg/torture/builtin-complex-1.c:
	New tests.

From-SVN: r177911
2011-08-19 16:53:51 +01:00
Andrew Stubbs
a6f969f4cb tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants beyond conversions.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
	beyond conversions.
	(convert_mult_to_widen): Convert constant inputs to the right type.
	(convert_plusminus_to_widen): Don't automatically reject inputs that
	are not an SSA_NAME.
	Convert constant inputs to the right type.

	gcc/testsuite/
	* gcc.target/arm/wmul-11.c: New file.
	* gcc.target/arm/wmul-12.c: New file.
	* gcc.target/arm/wmul-13.c: New file.

From-SVN: r177910
2011-08-19 15:05:22 +00:00
Andrew Stubbs
75161d2ca5 tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs to the correct type.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
	to the correct type.

	gcc/testsuite/
	* gcc.target/arm/wmul-10.c: New file.

From-SVN: r177909
2011-08-19 15:01:41 +00:00
Andrew Stubbs
6a228c2c0e tree-ssa-math-opts.c (convert_mult_to_widen): Better handle unsigned inputs of different modes.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
	unsigned inputs of different modes.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.target/arm/wmul-9.c: New file.
	* gcc.target/arm/wmul-bitfield-2.c: New file.

From-SVN: r177908
2011-08-19 14:56:24 +00:00
Andrew Stubbs
26a855d7e0 tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument 'type'.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
	'type'.
	Use 'type' from caller, not inferred from 'rhs'.
	Don't reject non-conversion statements. Do return lhs in this case.
	(is_widening_mult_p): Add new argument 'type'.
	Use 'type' from caller, not inferred from 'stmt'.
	Pass type to is_widening_mult_rhs_p.
	(convert_mult_to_widen): Pass type to is_widening_mult_p.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.target/arm/wmul-8.c: New file.

From-SVN: r177907
2011-08-19 14:45:56 +00:00
Andrew Stubbs
ff63d754c1 tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
	Ensure the the larger type is the first operand.

	gcc/testsuite/
	* gcc.target/arm/wmul-7.c: New file.

From-SVN: r177906
2011-08-19 14:41:34 +00:00
Andrew Stubbs
db719f507b tree-ssa-math-opts.c (convert_mult_to_widen): Convert unsupported unsigned multiplies to signed.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (convert_mult_to_widen): Convert
	unsupported unsigned multiplies to signed.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.target/arm/wmul-6.c: New file.

From-SVN: r177905
2011-08-19 14:36:34 +00:00
Andrew Stubbs
cefb4d4f60 tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single conversion statement separating multiply-and-accumulate.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
	conversion statement separating multiply-and-accumulate.

	gcc/testsuite/
	* gcc.target/arm/wmul-5.c: New file.
	* gcc.target/arm/no-wmla-1.c: New file.

From-SVN: r177904
2011-08-19 14:31:30 +00:00
Richard Guenther
2946bd342d re PR tree-optimization/50067 (Wrong code with -fpredictive-commoning)
2011-08-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50067
	* tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
	offset only if we accounted for it.

From-SVN: r177903
2011-08-19 14:26:13 +00:00
Andrew Stubbs
5dfe80ba71 arm.md (maddhidi4): Remove '*' from name.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.md (maddhidi4): Remove '*' from name.
	* expr.c (expand_expr_real_2): Use find_widening_optab_handler.
	* optabs.c (find_widening_optab_handler_and_mode): New function.
	(expand_widen_pattern_expr): Use find_widening_optab_handler.
	(expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	* optabs.h (find_widening_optab_handler): New macro define.
	(find_widening_optab_handler_and_mode): New prototype.
	* tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
	type precision rules.
	(verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
	* tree-ssa-math-opts.c (build_and_insert_cast): New function.
	(is_widening_mult_rhs_p): Allow widening by more than one mode.
	Explicitly disallow mis-matched input types.
	(convert_mult_to_widen): Use find_widening_optab_handler, and cast
	input types to fit the new handler.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.target/arm/wmul-bitfield-1.c: New file.

From-SVN: r177902
2011-08-19 14:21:48 +00:00
Andrew Stubbs
a484f6bae0 expr.c (expand_expr_real_2): Use widening_optab_handler.
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* expr.c (expand_expr_real_2): Use widening_optab_handler.
	* genopinit.c (optabs): Use set_widening_optab_handler for $N.
	(gen_insn): $N now means $a must be wider than $b, not consecutive.
	* optabs.c (widened_mode): New function.
	(expand_widen_pattern_expr): Use widening_optab_handler.
	(expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	* optabs.h (widening_optab_handlers): New struct.
	(optab_d): New member, 'widening'.
	(widening_optab_handler): New function.
	(set_widening_optab_handler): New function.
	* tree-ssa-math-opts.c (convert_mult_to_widen): Use
	widening_optab_handler.
	(convert_plusminus_to_widen): Likewise.

From-SVN: r177901
2011-08-19 14:12:32 +00:00
Joseph Myers
c4b3a0a0b9 c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if pedantic.
* c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
	pedantic.
	* c-parser.c (c_parser_declspecs): Include _Noreturn in syntax
	comment.
	* ginclude/stdnoreturn.h (noreturn): Don't define for C++.

testsuite:
	* gcc.dg/c90-noreturn-1.c, gcc.dg/c99-noreturn-1.c: New tests.

From-SVN: r177899
2011-08-19 14:25:51 +01:00
Jakub Jelinek
c26dffff5c re PR fortran/49792 (OpenMP workshare: Wrong result with array assignment)
PR fortran/49792
	* trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
	bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
	lhs needs reallocation.
	* trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
	code is NULL, emit a barrier if workshare emitted no code at all
	and NOWAIT clause isn't present.

	* testsuite/libgomp.fortran/pr49792-1.f90: New test.
	* testsuite/libgomp.fortran/pr49792-2.f90: New test.

From-SVN: r177898
2011-08-19 15:25:22 +02:00