- 28 Aug, 2008 27 commits
-
-
2008-08-28 Joey Ye <joey.ye@intel.com> * doc/extend.texi: Document AVX built-in functions. * doc/invoke.texi: Document -mavx. From-SVN: r139727
Joey Ye committed -
2008-08-28 H.J. Lu <hongjiu.lu@intel.com> Joey Ye <joey.ye@intel.com> Xuepeng Guo <xuepeng.guo@intel.com> * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64. * config/i386/cpuid.h (bit_FMA): New. (bit_XSAVE): Likewise. (bit_OSXSAVE): Likewise. (bit_AVX): Likewise. * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before define. Use ASM_OUTPUT_AVX_PREFIX. * config/i386/gmmintrin.h: New. * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS. (OPTION_MASK_ISA_AVX_SET): New. (OPTION_MASK_ISA_FMA_SET): Likewise. (OPTION_MASK_ISA_AVX_UNSET): Likewise. (OPTION_MASK_ISA_FMA_SET): Likewise. (OPTION_MASK_ISA_SSE4_2_UNSET): Updated. (ix86_handle_option): Handle OPT_mavx and OPT_mfma. (pta_flags): Add PTA_AVX and PTA_FMA. (override_options): Handle PTA_AVX and PTA_FMA. (init_cumulative_args): Handle warn_avx. (classify_argument): Return 0 for COImode and OImode. Return 1 and X86_64_AVX_CLASS for 256bit vector types. (examine_argument): Handle X86_64_AVX_CLASS. (construct_container): Likewise. (function_arg_advance_32): Pass OImode and 256bit vector types in AVX register. (function_arg_advance_64): Take a new argument to indicate if a parameter is named. Handle 256bit vector types. Return immediately for unnamed 256bit vector mode parameters. (function_arg_advance): Updated. (function_arg_32): Add comments for TImode. Handle OImode and 256bit vector types. (function_arg_64): Take a new argument to indicate if a parameter is named. Handle 256bit vector types. Return NULL for unnamed 256bit vector mode parameters. (function_arg): Updated. (setup_incoming_varargs_64): Support AVX encoding for *sse_prologue_save_insn. (ix86_gimplify_va_arg): Handle 256bit vector mode parameters. (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't enabled. For all 1s in 256bit vector modes, return 3 if AVX is enabled, otherwise return -3. (standard_sse_constant_opcode): Handle AVX and 256bit vector modes. (print_reg): Support AVX registers. Handle 'x' and 't'. Handle 'd' to duplicate the operand. (print_operand): Likewise. Also support AVX vector compare instructions. (output_387_binary_op): Support AVX. (output_fp_compare): Likewise. (ix86_expand_vector_move_misalign): Likewise. (ix86_attr_length_vex_default): New. (ix86_builtins): Add IX86_BUILTIN_ADDPD256, IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256, IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256, IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256, IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256, IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256, IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256, IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256, IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256, IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256, IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256, IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256, IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD, IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256, IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256, IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256, IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256, IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256, IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER, IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD, IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256, IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256, IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256, IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256, IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256, IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256, IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256, IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256, IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256, IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256, IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256, IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256, IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256, IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256, IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256, IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS, IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256, IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256, IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD, IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS, IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS, IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256, IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256, IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256, IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256, IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and IX86_BUILTIN_MOVMSKPS256, (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR, V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF, V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF, V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF, V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI, VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF, VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF, VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF, (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST, INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST, INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST, INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI, V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF, V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF, V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF, V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF, V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI, V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI, V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI, V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT, V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT, V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF, V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT, V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT, V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT. (bdesc_special_args): Add IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256, IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256, IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256, IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256, IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256. (ix86_builtins): Add IX86_BUILTIN_ADDPD256, IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256, IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256, IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256, IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256, IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD, IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256, IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256, IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256, IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256, IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256, IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD, IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256, IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256, IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256, IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256, IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256, IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256, IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256, IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256, IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256, IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256, IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256, IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256, IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256, IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256, IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256, IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS, IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256, IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256, IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD, IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS, IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS, IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256, IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256, IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256, IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256, IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and IX86_BUILTIN_MOVMSKPS256. (ix86_init_mmx_sse_builtins): Support AVX builtins. (ix86_expand_args_builtin): Likewise. (ix86_expand_special_args_builtin): Likewise. (ix86_hard_regno_mode_ok): Handle AVX modes. (ix86_expand_vector_init_duplicate): Likewise. (ix86_expand_vector_init_one_nonzero): Likewise. (ix86_expand_vector_init_one_var): Likewise. (ix86_expand_vector_init_concat): Likewise. (ix86_expand_vector_init_general): Likewise. (ix86_expand_vector_set): Likewise. (ix86_vector_mode_supported_p): Likewise. (x86_extended_reg_mentioned_p): Check INSN_P before using PATTERN. * config/i386/i386-c.c (ix86_target_macros_internal): Handle OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA. * config/i386/i386.h (TARGET_AVX): New. (TARGET_FMA): Likewise. (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA. (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX. (VALID_AVX256_REG_MODE): New. (AVX256_VEC_FLOAT_MODE_P): Likewise. (AVX_FLOAT_MODE_P): Likewise. (AVX128_VEC_FLOAT_MODE_P): Likewise. (AVX256_VEC_FLOAT_MODE_P): Likewise. (AVX_VEC_FLOAT_MODE_P): Likewise. (ASM_OUTPUT_AVX_PREFIX): Likewise. (ASM_OUTPUT_OPCODE): Likewise. (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer support. (SSE_REG_MODE_P): Allow 256bit vector modes. (ix86_args): Add a warn_avx field. * config/i386/i386.md (UNSPEC_PCMP): New. (UNSPEC_VPERMIL): Likewise. (UNSPEC_VPERMIL2): Likewise. (UNSPEC_VPERMIL2F128): Likewise. (UNSPEC_MASKLOAD): Likewise. (UNSPEC_MASKSTORE): Likewise. (UNSPEC_CAST): Likewise. (UNSPEC_VTESTP): Likewise. (UNSPECV_VZEROALL): Likewise. (UNSPECV_VZEROUPPER): Likewise. (XMM0_REG): Likewise. (XMM1_REG): Likewise. (XMM2_REG): Likewise. (XMM3_REG): Likewise. (XMM4_REG): Likewise. (XMM5_REG): Likewise. (XMM6_REG): Likewise. (XMM8_REG): Likewise. (XMM9_REG): Likewise. (XMM10_REG): Likewise. (XMM11_REG): Likewise. (XMM12_REG): Likewise. (XMM13_REG): Likewise. (XMM14_REG): Likewise. (XMM15_REG): Likewise. (prefix): Likewise. (prefix_vex_imm8): Likewise. (prefix_vex_w): Likewise. (length_vex): Likewise. (maxmin): Likewise. (movoi): Likewise. (*avx_ashlti3): Likewise. (*avx_lshrti3): Likewise. (*avx_setcc<mode>): Likewise. (*fop_<mode>_comm_mixed_avx): Likewise. (*fop_<mode>_comm_avx): Likewise. (*fop_<mode>_1_mixed_avx): Likewise. (*fop_<mode>_1_avx): Likewise. (*avx_<code><mode>3): Likewise. (*avx_ieee_smin<mode>3): Likewise. (*avx_ieee_smax<mode>3): Likewise. (mode): Add OI, V8SF and V4DF. (length): Support VEX prefix. (*cmpfp_i_mixed): Set prefix attribute. (*cmpfp_i_sse): Likewise. (*cmpfp_iu_mixed): Likewise. (*cmpfp_iu_sse): Likewise. (*movsi_1): Support AVX. (*movdi_2): Likewise. (*movdi_1_rex64): Likewise. (*movti_internal): Likewise. (*movti_rex64): Likewise. (*movsf_1): Likewise. (*movdf_nointeger): Likewise. (*movdf_integer_rex64): Likewise. (*movtf_internal): Likewise. (zero_extendsidi2_32): Likewise. (zero_extendsidi2_rex64): Likewise. (*extendsfdf2_mixed): Likewise. (*extendsfdf2_sse): Likewise. (*truncdfsf_fast_mixed): Likewise. (*truncdfsf_fast_sse): Likewise. (*truncdfsf_mixed): Likewise. (fix_trunc<mode>di_sse): Likewise. (fix_trunc<mode>si_sse): Likewise. (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise. (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise. (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise. (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise. (*rcpsf2_sse): Likewise. (*rsqrtsf2_sse): Likewise. (*sqrt<mode>2_sse): Likewise. (sse4_1_round<mode>2): Likewise. (*sse_prologue_save_insn): Disallow REX prefix for AVX. Support AVX. Set length attribute properly for AVX. * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New. (VECTOR_MODES (FLOAT, 32)): Likewise. (VECTOR_MODE (INT, DI, 8)): Likewise. (VECTOR_MODE (INT, HI, 32)): Likewise. (VECTOR_MODE (INT, QI, 64)): Likewise. (VECTOR_MODE (FLOAT, DF, 8)): Likewise. (VECTOR_MODE (FLOAT, SF, 16)): Likewise. (VECTOR_MODE (INT, DI, 4)): Removed. (VECTOR_MODE (INT, SI, 8)): Likewise. (VECTOR_MODE (INT, HI, 16)): Likewise. (VECTOR_MODE (INT, QI, 32)): Likewise. (VECTOR_MODE (FLOAT, SF, 8)): Likewise. (INT_MODE (OI, 32)): Likewise. * config/i386/i386.opt (mavx): New. (mfma): Likewise. * config/i386/i386-protos.h (ix86_attr_length_vex_default): New. * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX. (*mov<mode>_internal_avx): New. (*movv2sf_internal_rex64_avx): Likewise. (*movv2sf_internal_avx): Likewise. * config/i386/predicates.md (const_4_to_5_operand): New. (const_6_to_7_operand): Likewise. (const_8_to_11_operand): Likewise. (const_12_to_15_operand): Likewise. (avx_comparison_float_operator): Likewise. * config/i386/sse.md (AVX256MODEI): New. (AVX256MODE): Likewise. (AVXMODEQI): Likewise. (AVXMODE): Likewise. (AVX256MODEF2P): Likewise. (AVX256MODE2P): Likewise. (AVX256MODE4P): Likewise. (AVX256MODE8P): Likewise. (AVXMODEF2P): Likewise. (AVXMODEF4P): Likewise. (AVXMODEDCVTDQ2PS): Likewise. (AVXMODEDCVTPS2DQ): Likewise. (avxvecmode): Likewise. (avxvecpsmode): Likewise. (avxhalfvecmode): Likewise. (avxscalarmode): Likewise. (avxcvtvecmode): Likewise. (avxpermvecmode): Likewise. (avxmodesuffixf2c): Likewise. (avxmodesuffixp): Likewise. (avxmodesuffixs): Likewise. (avxmodesuffix): Likewise. (vpermilbits): Likewise. (pinsrbits): Likewise. (mov<mode>): Likewise. (*mov<mode>_internal): Likewise. (push<mode>1): Likewise. (movmisalign<mode>): Likewise. (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_movdqu<avxmodesuffix>): Likewise. (avx_lddqu<avxmodesuffix>): Likewise. (<plusminus_insn><mode>3): Likewise. (*avx_<plusminus_insn><mode>3): Likewise. (*avx_vm<plusminus_insn><mode>3): Likewise. (mul<mode>3): Likewise. (*avx_mul<mode>3): Likewise. (*avx_vmmul<mode>3): Likewise. (divv8sf3): Likewise. (divv4df3): Likewise. (avx_div<mode>3): Likewise. (*avx_div<mode>3): Likewise. (*avx_vmdiv<mode>3): Likewise. (avx_rcpv8sf2): Likewise. (*avx_vmrcpv4sf2): Likewise. (sqrtv8sf2): Likewise. (avx_sqrtv8sf2): Likewise. (*avx_vmsqrt<mode>2): Likewise. (rsqrtv8sf2): Likewise. (avx_rsqrtv8sf2): Likewise. (*avx_vmrsqrtv4sf2): Likewise. (<code><mode>3): Likewise. (*avx_<code><mode>3_finite): Likewise. (*avx_<code><mode>3): Likewise. (*avx_vm<code><mode>3): Likewise. (*avx_ieee_smin<mode>3): Likewise. (*avx_ieee_smax<mode>3): Likewise. (avx_addsubv8sf3): Likewise. (avx_addsubv4df3): Likewise. (*avx_addsubv4sf3): Likewise. (*avx_addsubv2df3): Likewise. (avx_h<plusminus_insn>v4df3): Likewise. (avx_h<plusminus_insn>v8sf3): Likewise. (*avx_h<plusminus_insn>v4sf3): Likewise. (*avx_h<plusminus_insn>v2df3): Likewise. (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise. (avx_cmps<ssemodesuffixf2c><mode>3): Likewise. (*avx_maskcmp<mode>3): Likewise. (avx_nand<mode>3): Likewise. (*avx_<code><mode>3): Likewise. (*avx_nand<mode>3): Likewise. (*avx_<code><mode>3): Likewise. (*avx_cvtsi2ss): Likewise. (*avx_cvtsi2ssq): Likewise. (*avx_cvtsi2sd): Likewise. (*avx_cvtsi2sdq): Likewise. (*avx_cvtsd2ss): Likewise. (avx_cvtss2sd): Likewise. (avx_cvtdq2ps<avxmodesuffix>): Likewise. (avx_cvtps2dq<avxmodesuffix>): Likewise. (avx_cvttps2dq<avxmodesuffix>): Likewise. (*avx_cvtsi2sd): Likewise. (*avx_cvtsi2sdq): Likewise. (avx_cvtdq2pd256): Likewise. (avx_cvtpd2dq256): Likewise. (avx_cvttpd2dq256): Likewise. (*avx_cvtsd2ss): Likewise. (*avx_cvtss2sd): Likewise. (avx_cvtpd2ps256): Likewise. (avx_cvtps2pd256): Likewise. (*avx_movhlps): Likewise. (*avx_movlhps): Likewise. (avx_unpckhps256): Likewise. (*avx_unpckhps): Likewise. (avx_unpcklps256): Likewise. (*avx_unpcklps): Likewise. (avx_movshdup256): Likewise. (avx_movsldup256): Likewise. (avx_shufps256): Likewise. (avx_shufps256_1): Likewise. (*avx_shufps_<mode>): Likewise. (*avx_loadhps): Likewise. (*avx_storelps): Likewise. (*avx_loadlps): Likewise. (*avx_movss): Likewise. (*vec_dupv4sf_avx): Likewise. (*vec_concatv2sf_avx): Likewise. (*vec_concatv4sf_avx): Likewise. (*vec_setv4sf_0_avx): Likewise. (*vec_setv4sf_avx): Likewise. (*avx_insertps): Likewise. (avx_vextractf128<mode>): Likewise. (vec_extract_lo_<mode>): Likewise. (vec_extract_hi_<mode>): Likewise. (vec_extract_lo_<mode>): Likewise. (vec_extract_hi_<mode>): Likewise. (vec_extract_lo_v16hi): Likewise. (vec_extract_hi_v16hi): Likewise. (vec_extract_lo_v32qi): Likewise. (vec_extract_hi_v32qi): Likewise. (avx_unpckhpd256): Likewise. (*avx_unpckhpd): Likewise. (avx_movddup256): Likewise. (*avx_movddup): Likewise. (avx_unpcklpd256): Likewise. (*avx_unpcklpd): Likewise. (avx_shufpd256): Likewise. (avx_shufpd256_1): Likewise. (*avx_punpckhqdq): Likewise. (*avx_punpcklqdq): Likewise. (*avx_shufpd_<mode>): Likewise. (*avx_storehpd): Likewise. (*avx_loadhpd): Likewise. (*avx_loadlpd): Likewise. (*avx_movsd): Likewise. (*vec_concatv2df_avx): Likewise. (*avx_<plusminus_insn><mode>3): Likewise. (*avx_<plusminus_insn><mode>3): Likewise. (*avx_mulv8hi3): Likewise. (*avxv8hi3_highpart): Likewise. (*avx_umulv8hi3_highpart): Likewise. (*avx_umulv2siv2di3): Likewise. (*avx_mulv2siv2di3): Likewise. (*avx_pmaddwd): Likewise. (*avx_mulv4si3): Likewise. (*avx_ashr<mode>3): Likewise. (*avx_lshr<mode>3): Likewise. (*avx_ashl<mode>3): Likewise. (*avx_<code><mode>3): Likewise. (*avx_eq<mode>3): Likewise. (*avx_gt<mode>3): Likewise. (*avx_nand<mode>3): Likewise. (*avx_nand<mode>3): Likewise. (*avx_<code><mode>3): Likewise. (*avx_<code><mode>3): Likewise. (*avx_packsswb): Likewise. (*avx_packssdw): Likewise. (*avx_packuswb): Likewise. (*avx_punpckhbw): Likewise. (*avx_punpcklbw): Likewise. (*avx_punpckhwd): Likewise. (*avx_punpcklwd): Likewise. (*avx_punpckhdq): Likewise. (*avx_punpckldq): Likewise. (*avx_pinsr<avxmodesuffixs>): Likewise. (*avx_pinsrq): Likewise. (*avx_loadld): Likewise. (*vec_extractv2di_1_rex64_avx): Likewise. (*vec_extractv2di_1_avx): Likewise. (*vec_dupv2di_avx): Likewise. (*vec_concatv2si_avx): Likewise. (*vec_concatv4si_1_avx): Likewise. (*vec_concatv2di_avx): Likewise. (*vec_concatv2di_rex64_avx): Likewise. (*avx_uavgv16qi3): Likewise. (*avx_uavgv8hi3): Likewise. (*avx_psadbw): Likewise. (avx_movmskp<avxmodesuffixf2c>256): Likewise. (*avx_phaddwv8hi3): Likewise. (*avx_phadddv4si3): Likewise. (*avx_phaddswv8hi3): Likewise. (*avx_phsubwv8hi3): Likewise. (*avx_phsubdv4si3): Likewise. (*avx_phsubswv8hi3): Likewise. (*avx_pmaddubsw128): Likewise. (*avx_pmulhrswv8hi3): Likewise. (*avx_pshufbv16qi3): Likewise. (*avx_psign<mode>3): Likewise. (*avx_palignrti): Likewise. (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise. (*avx_mpsadbw): Likewise. (*avx_packusdw): Likewise. (*avx_pblendvb): Likewise. (*avx_pblendw): Likewise. (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_ptest256): Likewise. (avx_roundp<avxmodesuffixf2c>256): Likewise. (*avx_rounds<ssemodesuffixf2c>): Likewise. (*avx_aesenc): Likewise. (*avx_aesenclast): Likewise. (*avx_aesdec): Likewise. (*avx_aesdeclast): Likewise. (avx_vzeroupper): Likewise. (avx_vzeroupper_rex64): Likewise. (avx_vpermil<mode>): Likewise. (avx_vpermilvar<mode>3): Likewise. (avx_vpermil2<mode>3): Likewise. (avx_vperm2f128<mode>3): Likewise. (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_vbroadcastss256): Likewise. (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise. (avx_vinsertf128<mode>): Likewise. (vec_set_lo_<mode>): Likewise. (vec_set_hi_<mode>): Likewise. (vec_set_lo_<mode>): Likewise. (vec_set_hi_<mode>): Likewise. (vec_set_lo_v16hi): Likewise. (vec_set_hi_v16hi): Likewise. (vec_set_lo_v32qi): Likewise. (vec_set_hi_v32qi): Likewise. (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise. (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise. (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise. (vec_init<mode>): Likewise. (*vec_concat<mode>_avx): Likewise. (blendbits): Support V8SF and V4DF. (sse2_movq128): Support AVX. (<sse>_movnt<mode>): Likewise. (sse2_movntv2di): Likewise. (sse_rcpv4sf2): Likewise. (sse_sqrtv4sf2): Likewise. (sse_rsqrtv4sf2): Likewise. (<sse>_comi): Likewise. (<sse>_ucomi): Likewise. (sse_cvtss2si): Likewise. (sse_cvtss2si_2): Likewise. (sse_cvtss2siq): Likewise. (sse_cvtss2siq_2): Likewise. (sse_cvttss2si): Likewise. (sse_cvttss2siq): Likewise. (sse2_cvtsd2si): Likewise. (sse2_cvtsd2si_2): Likewise. (sse2_cvtsd2siq): Likewise. (sse2_cvtsd2siq_2): Likewise. (sse2_cvttsd2si): Likewise. (sse2_cvttsd2siq): Likewise. (sse2_cvtdq2pd): Likewise. (*sse2_cvtpd2dq): Likewise. (*sse2_cvttpd2dq): Likewise. (*sse2_cvtpd2ps): Likewise. (sse2_cvtps2pd): Likewise. (sse3_movshdup): Likewise. (sse3_movsldup): Likewise. (sse_storehps): Likewise. (*sse4_1_extractps): Likewise. (sse2_storelpd): Likewise. (vec_dupv2df_sse3): Likewise. (*vec_concatv2df_sse3): Likewise. (*sse4_1_pextrb): Likewise. (*sse4_1_pextrb_memory): Likewise. (*sse2_pextrw): Likewise. (*sse4_1_pextrw_memory): Likewise. (*sse4_1_pextrd): Likewise. (*sse4_1_pextrq): Likewise. (sse2_pshufd_1): Likewise. (sse2_pshuflw_1): Likewise. (sse2_pshufhw_1): Likewise. (*sse2_storeq_rex64): Likewise. (*vec_dupv4si): Likewise. (<sse>_movmskp<ssemodesuffixf2c>): Likewise. (sse2_pmovmskb): Likewise. (*sse2_maskmovdqu): Likewise. (*sse2_maskmovdqu_rex64): Likewise. (sse_ldmxcsr): Likewise. (sse_stmxcsr): Likewise. (abs<mode>2): Likewise. (sse4_1_movntdqa): Likewise. (sse4_1_phminposuw): Likewise. (sse4_1_extendv8qiv8hi2): Likewise. (*sse4_1_extendv8qiv8hi2): Likewise. (sse4_1_extendv4qiv4si2): Likewise. (*sse4_1_extendv4qiv4si2): Likewise. (sse4_1_extendv2qiv2di2): Likewise. (*sse4_1_extendv2qiv2di2): Likewise. (sse4_1_extendv4hiv4si2): Likewise. (*sse4_1_extendv4hiv4si2): Likewise. (sse4_1_extendv2hiv2di2): Likewise. (*sse4_1_extendv2hiv2di2): Likewise. (sse4_1_extendv2siv2di2): Likewise. (*sse4_1_extendv2siv2di2): Likewise. (sse4_1_zero_extendv8qiv8hi2): Likewise. (*sse4_1_zero_extendv8qiv8hi2): Likewise. (sse4_1_zero_extendv4qiv4si2): Likewise. (*sse4_1_zero_extendv4qiv4si2): Likewise. (sse4_1_zero_extendv2qiv2di2): Likewise. (*sse4_1_zero_extendv2qiv2di2): Likewise. (sse4_1_zero_extendv4hiv4si2): Likewise. (*sse4_1_zero_extendv4hiv4si2): Likewise. (sse4_1_zero_extendv2hiv2di2): Likewise. (*sse4_1_zero_extendv2hiv2di2): Likewise. (sse4_1_zero_extendv2siv2di2): Likewise. (*sse4_1_zero_extendv2siv2di2): Likewise. (sse4_1_ptest): Likewise. (sse4_1_roundp<ssemodesuffixf2c>): Likewise. (sse4_2_pcmpestri): Likewise. (sse4_2_pcmpestrm): Likewise. (sse4_2_pcmpistri): Likewise. (sse4_2_pcmpistrm): Likewise. (aesimc): Likewise. (aeskeygenassist): Likewise. 2008-08-28 Uros Bizjak <ubizjak@gmail.com> * config/i386/predicates.md (vzeroall_operation): New. * config/i386/sse.md (avx_vzeroall): New. (*avx_vzeroall): Likewise. From-SVN: r139726
H.J. Lu committed -
2008-08-28 Paul Brook <paul@codesourcery.com> Mark Shinwell <shinwell@codesourcery.com> Richard Earnshaw <richard.earnshaw@arm.com> gcc/ * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New. (TARGET_MIN_ANCHOR_OFFSET): New. (arm_override_options): Set correct anchor ranges for Thumb-1 and Thumb-2 if required. (legitimize_pic_address): Handle case involving a TLS symbol reference with an addend. (arm_optimization_options): Enable section anchors at -O1 and above. * config/arm/arm.h (OPTIMIZATION_OPTIONS): New. * config/arm/arm-protos.h (arm_optimization_options): New. Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com> Co-Authored-By: Richard Earnshaw <rearnsha@arm.com> From-SVN: r139725
Paul Brook committed -
2008-08-28 Daniel Kraft <d@domob.eu> * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'. (gfc_get_typebound_proc): New macro. (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL. (enum gfc_exec_op): New value `EXEC_COMPCALL'. (gfc_find_typebound_proc): New argument. (gfc_copy_ref), (gfc_match_varspec): Made public. * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc. * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL. (gfc_copy_ref): Made public and use new name. (simplify_const_ref): Use new name of gfc_copy_ref. (simplify_parameter_variable): Ditto. (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL. * match.c (match_typebound_call): New method. (gfc_match_call): Allow for CALL's to typebound procedures. * module.c (binding_passing), (binding_overriding): New variables. (expr_types): Add EXPR_COMPCALL. (mio_expr): gcc_unreachable for EXPR_COMPCALL. (mio_typebound_proc), (mio_typebound_symtree): New methods. (mio_f2k_derived): Handle type-bound procedures. * primary.c (gfc_match_varspec): Made public and parse trailing references to type-bound procedures; new argument `sub_flag'. (gfc_match_rvalue): New name and argument of gfc_match_varspec. (match_variable): Ditto. * resolve.c (update_arglist_pass): New method. (update_compcall_arglist), (resolve_typebound_static): New methods. (resolve_typebound_call), (resolve_compcall): New methods. (gfc_resolve_expr): Handle EXPR_COMPCALL. (resolve_code): Handle EXEC_COMPCALL. (resolve_fl_derived): New argument to gfc_find_typebound_proc. (resolve_typebound_procedure): Ditto and removed not-implemented error. * st.c (gfc_free_statement): Handle EXEC_COMPCALL. * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and implement access-checking. * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable on EXPR_COMPCALL. * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break. * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing intialization of ref->type. 2008-08-28 Daniel Kraft <d@domob.eu> * gfortran.dg/typebound_call_1.f03: New test. * gfortran.dg/typebound_call_2.f03: New test. * gfortran.dg/typebound_call_3.f03: New test. * gfortran.dg/typebound_call_4.f03: New test. * gfortran.dg/typebound_call_5.f03: New test. * gfortran.dg/typebound_call_6.f03: New test. * gfortran.dg/typebound_proc_1.f08: Don't expect not-implemented error. * gfortran.dg/typebound_proc_2.f90: Ditto. * gfortran.dg/typebound_proc_5.f03: Ditto. * gfortran.dg/typebound_proc_6.f03: Ditto. * gfortran.dg/typebound_proc_7.f03: Ditto. * gfortran.dg/typebound_proc_8.f03: Ditto. From-SVN: r139724
Daniel Kraft committed -
* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define. * config/stormy16/stormy16.md (zero_extendqihi2): Fix length attribute. From-SVN: r139723
Nick Clifton committed -
* config/v850/v850.h (IRA_COVER_CLASSES): Define. * config/v850/v850.md (return): Remove frame size restriction. From-SVN: r139722
Nick Clifton committed -
From-SVN: r139721
Nick Clifton committed -
From-SVN: r139720
Nick Clifton committed -
From-SVN: r139719
Nick Clifton committed -
From-SVN: r139718
Nick Clifton committed -
2008-08-28 Paul Brook <paul@codesourcery.com> * config/arm/vfp11.md: Update license notice. * config/arm/cortex-r4.md: Ditto. From-SVN: r139717
Paul Brook committed -
2008-08-28 Laurent Guerby <laurent@guerby.net> * configure: Regenerate. From-SVN: r139716
Laurent GUERBY committed -
* configure.ac (powerpc-*-darwin*, i?86-*-darwin*,x86_64-*-darwin9): Enable bfd, binutils and opcodes. * configure: Regenerate. From-SVN: r139715
Tristan Gingold committed -
2008-08-28 Richard Guenther <rguenther@suse.de> PR tree-optimization/37207 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix tuplification bug. * gcc.c-torture/compile/pr37207.c: New testcase. From-SVN: r139714
Richard Guenther committed -
2008-08-28 Janus Weil <janus@gcc.gnu.org> PR fortran/37253 * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of saving attr.procedure and attr.proc_ptr to the module file. 2008-08-28 Janus Weil <janus@gcc.gnu.org> PR fortran/37253 * gfortran.dg/proc_ptr_10.f90: New. From-SVN: r139713
Janus Weil committed -
2008-08-28 Dodji Seketeli <dodji@redhat.com> PR c++/36741 * tree.c (int_fits_type_p): Don't forget unsigned integers of type sizetype which higher end word equals -1. From-SVN: r139712
Dodji Seketeli committed -
* target.h (struct vectorize): Add new target builtin. * tree-vectorizer.c (destroy_loop_vec_info): Call vect_free_slp_instance instead of vect_free_slp_node. * tree-vectorizer.h (enum slp_load_perm_type): New. (struct _slp_instance): Add new fields. (SLP_INSTANCE_LOAD_PERMUTATION): New. (SLP_INSTANCE_LOADS): New. (vect_free_slp_tree): Remove. (vect_free_slp_instance): Declare. (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New. (vectorizable_load): Add argument. (vect_transform_slp_perm_load): New. * tree-vect-analyze.c (vect_analyze_operations): Add an argument to vectorizable_load. (vect_get_place_in_interleaving_chain): New function. (vect_free_slp_tree): Make static. (vect_free_slp_instance): New function. (vect_build_slp_tree): Add new arguments. Allow load permutations and collect the load location in the interleaving chain. (vect_supported_slp_permutation_p): New function. (vect_supported_load_permutation_p): Likewise. (vect_analyze_slp_instance): In case of loads permutation, call vect_supported_load_permutation_p to check that the permutation is supported. * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New. * tree-vect-transform.c (vect_transform_stmt): Add new argument. (vect_create_mask_and_perm): New function. (vect_get_mask_element, vect_transform_slp_perm_load): Likewise. (vectorizable_load): Add an argument. Don't keep the created vectors statements in the node if permutation is required. Call vect_transform_slp_perm_load to generate the permutation. (vect_transform_stmt): Add new argument. Call vectorizable_load with additional argument. (vect_schedule_slp_instance): In case of loads permutation, allocate vectorized statements structure for all the related SLP nodes. Call vect_transform_stmt with addditional argument. (vect_transform_loop): Call vect_transform_stmt with correct arguments. * config/spu/spu.c (spu_builtin_vec_perm): New. (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define. * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New. (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. From-SVN: r139706
Ira Rosen committed -
2008-08-28 Chris Fairles <chris.fairles@gmail.com> * acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): New. Checks for gthread support used by c++0x thread library. * configure.ac: Test unconditionally. * configure: Regenerate. * config.h.in: Regenerate. From-SVN: r139705
Chris Fairles committed -
2008-08-28 Chris Fairles <chris.fairles@gmail.com> * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach, __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock, __gthread_cond_signal, __gthread_cond_timedwait, __gthread_cond_timedwait_recursive): New functions. * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait): Likewise. * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming thread interfaces. From-SVN: r139704
Chris Fairles committed -
2008-08-28 Richard Guenther <rguenther@suse.de> PR middle-end/37005 * fold-const.c (maybe_canonicalize_comparison_1): Require undefined overflow only for canonicalizing A +- CST cmp CST. Make sure to not generate new constants that are not inside their TYPE_MIN/MAX_VALUE range. (maybe_canonicalize_comparison): Remove undefined overflow checking from here. (fold_binary): Remove now duplicate folding. From-SVN: r139702
Richard Guenther committed -
* MAINTAINERS: Update my hppa and hpux entries. Remove my vax entry. From-SVN: r139691
John David Anglin committed -
2008-08-27 Benjamin Kosnik <bkoz@redhat.com> * doc/Makefile.am: Edit xml file list. * doc/Makefile.in: Regenerate. * configure: Regenerate. * doc/xml/manual/intro.xml: Edit, correct links, structure. * doc/xml/manual/configure.xml: Same. * doc/xml/manual/debug.xml: Same. * doc/xml/manual/test.xml: Same. * doc/xml/manual/build.xml: Remove. * doc/xml/manual/prerequisites.xml: Add. * doc/html/*: Regenerate. From-SVN: r139690
Benjamin Kosnik committed -
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT use not updated in the last change. From-SVN: r139689
Paolo Carlini committed -
* config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS. (IRA_COVER_CLASSES): Add FPUL_REGS. From-SVN: r139688
Kaz Kojima committed -
From-SVN: r139686
GCC Administrator committed -
2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * ChangeLog: Fix spelling mistake. From-SVN: r139683
Manuel López-Ibáñez committed -
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 37217 * c-common.c (conversion_warning): Check for null operands. testsuite/ * gcc.dg/pr37217.c: New. From-SVN: r139682
Manuel López-Ibáñez committed
-
- 27 Aug, 2008 13 commits
-
-
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/31673 * c-decl.c (check_for_loop_decls): Improve error message. Give hint. testsuite/ * gcc.dg/c90-fordecl-1.c: Update. From-SVN: r139681
Manuel López-Ibáñez committed -
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/37186 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter. (convert_for_assignment): Pass corrent OPT_W* parameter to WARN_FOR_ASSIGNMENT. testsuite/ * gcc.dg/pr37186.c: New. From-SVN: r139680
Manuel López-Ibáñez committed -
* gcc.dg/torture/type-generic-1.c: Revert previous change. * g++.dg/torture/type-generic-1.C: Ditto. From-SVN: r139679
Janis Johnson committed -
* gcc.dg/ipa/ipacost-1.c: Remove template matching only x86-64 * gcc.dg/ipa/ipacost-2.c: Add -fipa-cp-clone; remove template matching only x86-64 * gcc.dg/ipa/ipa-1.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-2.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-3.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-4.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-5.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-7.c: Add -fipa-cp-clone From-SVN: r139677
Jan Hubicka committed -
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> * include/tr1_impl/hashtable (_Hashtable<>): Add missing pointer and const_pointer typedefs. * testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc: Add. * testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc: Likewise. * testsuite/tr1/6_containers/unordered_multiset/requirements/ typedef.cc: Likewise. * testsuite/tr1/6_containers/unordered_multimap/requirements/ typedef.cc: Likewise. * testsuite/23_containers/unordered_set/requirements/typedef.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/typedef.cc: Likewise. * testsuite/23_containers/unordered_multiset/requirements/typedef.cc: Likewise. * testsuite/23_containers/unordered_multimap/requirements/typedef.cc: Likewise. From-SVN: r139674
Paolo Carlini committed -
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r139630
Joseph Myers committed -
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35321 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR. /testsuite 2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35321 * g++.dg/parse/offsetof8.C: New. From-SVN: r139628
Paolo Carlini committed -
2008-08-27 Paul Brook <paul@codesourcery.com> * config.gcc: Loosen checks for arm uclinux eabi targets. From-SVN: r139627
Paul Brook committed -
2008-08-27 Paul Brook <paul@codesourcery.com> * libsupc++/eh_call.cc (__cxa_call_unexpected): Fix name of __get_object_from_ambiguous_exception. From-SVN: r139626
Paul Brook committed -
re PR c++/17880 (-Wsequence-point doesn't warn inside if, while, do conditions, for beg/cond/end expressions etc.) 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c++/17880 cp/ * semantics.c (maybe_convert_cond): Call verify_sequence_points. (finish_return_stmt): Likewise. (finish_switch_condition): Likewise. testsuite/ * g++.dg/warn/sequence-pt-1.C: New. * g++.dg/warn/sequence-pt-pr17880.C: New. From-SVN: r139625
Manuel López-Ibáñez committed -
2008-08-27 Paul Brook <paul@codesourcery.com> * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on _clzsi2. * config/arm/t-linux (LIB1ASMFUNCS): Ditto. From-SVN: r139624
Paul Brook committed -
2008-08-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * cp-tree.h: Fix #error directive. From-SVN: r139623
Manuel López-Ibáñez committed -
From-SVN: r139617
Ben Elliston committed
-