1. 29 May, 2009 19 commits
    • builtins.c (validate_gimple_arglist): Don't use va_arg with enum type. · 72b5577d
      ./:	* builtins.c (validate_gimple_arglist): Don't use va_arg with
      	enum type.
      	* calls.c (emit_library_call_value_1): Likewise.
      
      	* c-typeck.c (c_build_va_arg): New function.
      	* c-tree.h (c_build_va_arg): Declare.
      	* c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
      	instead of build_va_arg.
      cp/:
      	* error.c (cp_printer): Don't use va_arg with enum type.
      testsuite/:
      	* gcc.dg/Wcxx-compat-11.c: New testcase.
      
      From-SVN: r147989
      Ian Lance Taylor committed
    • inclhack.def (solaris_int_const): New fix. · b0999b01
      	* inclhack.def (solaris_int_const): New fix.
      	(solaris_int_limits_1): Likewise.
      	(solaris_int_limits_2): Likewise.
      	* fixincl.x: Regenerate.
      	* tests/base/sys/int_const.h: New file.
      	* tests/base/sys/int_limits.h: Likewise.
      
      From-SVN: r147988
      Eric Botcazou committed
    • re PR fortran/40019 (LEADZ and TRAILZ give wrong results) · 0a05c536
      2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
      
              PR fortran/40019
              * trans-types.c (gfc_build_uint_type): Make nonstatic.
              * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New
              * prototypes.
              * trans-types.h (gfc_build_uint_type): Add prototype.
              * trans-decl.c (gfc_build_intrinsic_function_decls): Build
              gfor_fndecl_clz128 and gfor_fndecl_ctz128.
              * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
              gfc_conv_intrinsic_trailz): Call the right builtins or library
              functions, and cast arguments to unsigned types first.
              * simplify.c (gfc_simplify_leadz): Deal with negative arguments.
      
      2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
      
              PR fortran/40019
              * intrinsics/bit_intrinsics.c: New file.
              * gfortran.map (GFORTRAN_1.2): New list.
              * Makefile.am: Add intrinsics/bit_intrinsics.c.
              * Makefile.in: Regenerate.
      
      2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
      
              PR fortran/40019
              * gfortran.dg/leadz_trailz_1.f90: New test.
              * gfortran.dg/leadz_trailz_2.f90: New test.
      
      From-SVN: r147987
      Francois-Xavier Coudert committed
    • pex-win32.c (pex_win32_fdopenr): Set INHERIT to false. · bb870b58
      2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
      
              * pex-win32.c (pex_win32_fdopenr): Set INHERIT to false.
      
      From-SVN: r147984
      Kai Tietz committed
    • tree-ssa-loop-ivopts.c (strip_offset_1): New case. · 7a2faca1
      	* tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
      	(force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
      	(ptr_difference_cost): Use affine combinations to compute it.
      	(difference_cost): Likewise.
      	(get_computation_cost_at): Compute more accurate cost for addresses
      	if the ratio is a multiplier allowed in addresses.
      	For non-addresses, consider that an additional offset or symbol is
      	added only once.
      
      From-SVN: r147983
      Eric Botcazou committed
    • i386.c (ix86_decompose_address): Avoid useless 0 displacement. · a0987204
      	* config/i386/i386.c (ix86_decompose_address): Avoid useless
      	0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
      
      From-SVN: r147982
      Jakub Jelinek committed
    • i386.md (prefix_data16, prefix_rep): Set to 0 for TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. · 725fd454
      	* config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
      	TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
      	(prefix_rex): For UNIT_MMX don't imply the prefix by default
      	if MODE_DI.
      	(prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
      	to 1 for TYPE_SSE{IADD1,CVT1}.
      	(prefix_vex_imm8): Removed.
      	(length_vex): Only pass 1 as second argument to
      	ix86_attr_length_vex_default if prefix_extra is 0.
      	(modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
      	(length): For prefix vex computation use length_immediate
      	attribute instead of prefix_vex_imm8.
      	(cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
      	addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
      	*andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
      	*xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
      	(extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
      	*extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
      	a space in between the operands.
      	(*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
      	if one operand is 0xff and the other one si, di, bp or sp.
      	(*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
      	other one si, di, bp or sp.
      	(*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
      	(*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
      	type and mode attributes.
      	(*bsr, *bsr_rex64, *bsrhi): Add type attribute.
      	(*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
      	prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
      	(*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
      	prefix_data16 attribute iff MODE_DF.
      	(*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
      	(fix_trunc<mode>di_sse): Set prefix_rex attribute.
      	(*adddi_4_rex64, *addsi_4): Use const128_operand instead of
      	constm128_operand in length_immediate computation.
      	(*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
      	(anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
      	(*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
      	length_immediate attribute to 1.
      	(x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
      	(*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
      	for certain alternatives.
      	(*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
      	prefix_data16 attribute if MODE_V1DF.
      	(*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
      	length_immediate to 1.
      	(set_got_rex64, set_rip_rex64): Remove length attribute, set
      	length_address to 4, set mode attribute to MODE_DI.
      	(set_got_offset_rex64): Likewise.  Set length_immediate to 0.
      	(fxam<mode>2_i387): Set length attribute to 4.
      	(*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
      	*prefetch_3dnow_rex): Override length_address attribute.
      	(sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
      	attributes.
      	* config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
      	(constm128_operand): Removed.
      	* config/i386/i386.c (memory_address_length): For
      	disp && !index && !base in 64-bit mode account for SIB byte if
      	print_operand_address can't optimize disp32 into disp32(%rip)
      	and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
      	for fs: or gs: segment.
      	(ix86_attr_length_immediate_default): When checking if shortform
      	is possible, truncate immediate to the length of the non-shortened
      	immediate.
      	(ix86_attr_length_address_default): Ignore MEM_P operands
      	with X constraint.
      	(ix86_attr_length_vex_default): Only check for DImode on
      	GENERAL_REG_P operands.
      	* config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
      	prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
      	(sse_cvttps2pi): Clear prefix_rep attribute.
      	(sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
      	attribute.
      	(*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
      	(*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
      	*avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
      	iff operand 2 is const_int_operand.
      	(*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
      	sse2_shufpd_<mode>): Set length_immediate attribute to 1.
      	(sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
      	instead of vex.
      	(sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
      	prefix_data16.
      	(sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
      	prefix_data16 attribute for movlpd and movhpd instructions.
      	(sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
      	length_immediate for shufpd instruction.
      	(sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
      	(avx_cmpp<avxmodesuffixf2c><mode>3,
      	avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
      	<sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
      	avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
      	*vec_dupv4sf_avx, *vec_dupv4sf): Set
      	length_immediate attribute to 1.
      	(*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
      	(sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
      	(sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
      	prefix_data16 attribute for the first alternative to 1.
      	(*avx_loadlps): Override length_immediate for the first alternative.
      	(*vec_concatv2sf_avx): Override length_immediate and prefix_extra
      	attributes for second alternative.
      	(*vec_concatv2sf_sse4_1): Override length_immediate and
      	prefix_data16 attributes for second alternative.
      	(*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
      	vec_extract_hi_<mode>, vec_extract_lo_v16hi,
      	vec_extract_hi_v16hi, vec_extract_lo_v32qi,
      	vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
      	(*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
      	prefix_data16 and length_immediate to 1.
      	(*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
      	to 1.
      	(*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
      	prefix_extra attribute for variants that don't have 0f prefix
      	alone.
      	(*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
      	(*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
      	*sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
      	*sse4_1_pextrd): Set length_immediate to 1.
      	(*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
      	(*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
      	to 1.
      	(*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
      	*vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
      	length_immediate to 1 for second alternative.
      	(*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
      	prefix_extra and length_immediate attributes for the first
      	alternative.
      	(vec_concatv2si_sse4_1): Override length_immediate to 1 for the
      	first alternative.
      	(*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
      	to 1 for the first and third alternative.
      	(*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
      	alternative.
      	(*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
      	attribute.
      	(*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
      	attribute to 0.
      	(*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
      	*avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
      	*avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
      	*avx_psign<mode>3): Set prefix_extra attribute to 1.
      	(ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
      	ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
      	ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
      	ssse3_psign<mode>3): Override prefix_rex attribute.
      	(*avx_palignrti): Override prefix_extra and length_immediate
      	to 1.
      	(ssse3_palignrti): Override length_immediate to 1.
      	(ssse3_palignrdi): Override length_immediate to 1, override
      	prefix_rex attribute.
      	(abs<mode>2): Override prefix_rep to 0, override prefix_rex
      	attribute.
      	(sse4a_extrqi): Override length_immediate to 2.
      	(sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
      	(sse4a_insertq): Override prefix_data16 to 0.
      	(avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
      	avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
      	avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
      	*avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
      	avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
      	and length_immediate to 1.
      	(sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
      	sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
      	sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
      	sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
      	and length_immediate to 1.
      	(sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
      	(sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
      	(*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
      	avx_ptest256): Override prefix_extra to 1.
      	(sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
      	Override prefix_data16 and length_immediate to 1.
      	(sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
      	sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
      	sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
      	sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
      	prefix_data16 to 0 and prefix_extra to 2.
      	(sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
      	(sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
      	attribute.
      	(*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
      	sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
      	Override prefix_data16 and prefix_rep to 0, length_immediate to 1
      	and prefix_extra to 2.
      	(sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
      	prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
      	(*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
      	avx_vpermilvar<mode>3,
      	avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
      	avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
      	avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
      	avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
      	Override prefix_extra to 1.
      	(aeskeygenassist, pclmulqdq): Override length_immediate to 1.
      	(*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
      	vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
      	vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
      	prefix_extra and length_immediate to 1.
      	(*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
      	modrm to 0.
      	(*vec_concat<mode>_avx): Override prefix_extra and length_immediate
      	to 1 for the first alternative.
      	* config/i386/mmx.md (*mov<mode>_internal_rex64): Override
      	prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
      	cases.
      	(*mov<mode>_internal_avx, *movv2sf_internal_rex64,
      	*movv2sf_internal_avx, *movv2sf_internal): Override
      	prefix_rep attribute for certain alternatives.
      	(*mov<mode>_internal): Override prefix_rep or prefix_data16
      	attributes for certain alternatives.
      	(*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
      	attributes for certain alternatives.
      	(*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
      	*mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
      	mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
      	mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
      	*mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
      	mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
      	mmx_pswapdv2si2): Set prefix_extra attribute to 1.
      	(mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
      	length_immediate to 1 if operand 2 is const_int_operand.
      	(*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
      	*vec_extractv2si_1): Set length_immediate
      	attribute to 1.
      	(*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
      	using old 3DNOW insn rather than SSE/3DNOW_A.
      	(mmx_emms, mmx_femms): Clear modrm attribute.
      
      From-SVN: r147981
      Jakub Jelinek committed
    • tree-sra.c: New implementation of SRA. · 0674b9d0
      2009-05-29  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c:  New implementation of SRA.
      
      	* params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
      	(PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
      	(PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
      	* params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
      	(SRA_MAX_STRUCTURE_COUNT): Removed.
      	(SRA_FIELD_STRUCTURE_RATIO): Removed.
      	* doc/invoke.texi (sra-max-structure-size): Removed.
      	(sra-field-structure-ratio): Removed.
      
      	* testsuite/gfortran.dg/pr25923.f90: XFAIL warning expectation.
      	* testsuite/gcc.dg/tree-ssa/ssa-fre-7.c: Compile with -fno-tree-sra.
      	* testsuite/gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.
      	* testsuite/gcc.dg/tree-ssa/ssa-fre-9.c: Likewise.
      	* testsuite/gcc.dg/memcpy-1.c: Removed param sra-max-structure-size.
      	* testsuite/gcc.dg/tree-ssa/sra-2.c: Likewise.
      	* testsuite/gcc.dg/tree-ssa/sra-3.c: Likewise.
      	* testsuite/gcc.dg/tree-ssa/sra-1.c: Likewise.
      	* testsuite/gcc.dg/tree-ssa/sra-4.c: Changed comment.
      	* testsuite/gcc.dg/tree-ssa/sra-5.c: New file.
      	* testsuite/gcc.dg/tree-ssa/sra-6.c: New file.
      	* testsuite/gcc.c-torture/compile/sra-1.c: New file.
      
      From-SVN: r147980
      Martin Jambor committed
    • re PR middle-end/40291 (ICE on unprototyped memcmp with long long last argument) · 616f21df
      	PR middle-end/40291
      	* builtins.c (expand_builtin_memcmp): Convert len to sizetype
      	before expansion.
      
      	* gcc.c-torture/compile/pr40291.c: New test.
      
      From-SVN: r147978
      Jakub Jelinek committed
    • re PR rtl-optimization/40101 (200.sixtrack ICEs in get_seqno_by_preds, at sel-sched-ir.c:3752) · da7ba240
              PR rtl-optimization/40101
              * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
              seqno.  Adjust comment.
              * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
              inserting bookkeeping before a jump, the jump is not scheduled.
              When no positive seqno found, provide a value.  Add comment.
      
      From-SVN: r147977
      Andrey Belevantsev committed
    • tree-ssa-alias.c (nonaliasing_component_refs_p): Remove short-cutting on the first component. · 71dcd609
      2009-05-29  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
      	short-cutting on the first component.
      
      From-SVN: r147976
      Richard Guenther committed
    • re PR middle-end/39958 (OMP tasking creates invalid gimple) · a900ae6b
      	PR middle-end/39958
      	* omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
      	for trees other than decls/types.
      
      From-SVN: r147975
      Jakub Jelinek committed
    • tree-ssa-operands.c (get_expr_operands): Do not handle INDIRECT_REFs in the handled-component case. · 821bb7f8
      2009-05-29  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-operands.c (get_expr_operands): Do not handle
      	INDIRECT_REFs in the handled-component case.  Remove
      	unused get_ref_base_and_extent case.
      	* tree-dfa.c (get_ref_base_and_extent): Avoid calling
      	tree_low_cst and host_integerp where possible.
      	* tree-ssa-structalias.c (equiv_class_label_eq): Check hash
      	codes for equivalence.
      	* dce.c (find_call_stack_args): Avoid redundant bitmap queries.
      
      From-SVN: r147973
      Richard Guenther committed
    • config.host: Add i386/${host_address}/t-fprules-softfp and t-softfp to tmake_file for... · e997fb9c
      2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
      
      	* config.host: Add i386/${host_address}/t-fprules-softfp and
      	t-softfp to tmake_file for i[34567]86-*-cygwin*.	
      
      2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
      
      	* config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
      	to tmake_file for i[34567]86-*-cygwin*.
      
      From-SVN: r147972
      David Billinghurst committed
    • re PR target/40017 (stdbool.h/altivec.h) · 58195b74
      	PR target/40017
      	* config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
      	(altivec_categorize_keyword, init_vector_keywords,
      	rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
      	similar to bool.
      
      	* gcc.target/powerpc/altivec-types-1.c: Don't expect error for
      	__vector _Bool.
      	* gcc.target/powerpc/altivec-30.c: New test.
      	* gcc.target/powerpc/altivec-31.c: New test.
      
      From-SVN: r147970
      Jakub Jelinek committed
    • tree.c (handle_dll_attribute): Check if node is of kind FUNCTION_DECL for… · 055df276
      tree.c (handle_dll_attribute): Check if node is of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
      
      2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
      
              * tree.c (handle_dll_attribute): Check if node is
              of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
      
      From-SVN: r147969
      Kai Tietz committed
    • fibheap.c (fibheap_replace_key_data): Make sure we don't early out when forcing the minimum. · 4cfaf1ec
              * fibheap.c (fibheap_replace_key_data): Make sure we don't early
              out when forcing the minimum.
              (fibheap_delete_node): Assert that we managed to force the minimum.
      
      From-SVN: r147968
      Michael Matz committed
    • Daily bump. · 5ff8e3a4
      From-SVN: r147965
      GCC Administrator committed
  2. 28 May, 2009 18 commits
    • thumb2.md (thumb2_zero_extendsidi2): Add a split component. · f5939ef3
      	* config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
      	component.
      	(thumb2_zero_extendqidi2): Likewise.
      
      From-SVN: r147962
      Richard Earnshaw committed
    • sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt instead of gen_movrt. · c185de40
      	* config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
      	instead of gen_movrt.
      	* config/sh/sh.md (movrt): Remove.
      
      From-SVN: r147961
      Kaz Kojima committed
    • 2009-05-28 Steve Ellcey <sje@cup.hp.com> · bf3c6caf
      	* doc/invoke.texi (IA-64 Options)
      	Add -msdata, -mfused-madd, -mno-inline-float-divide, 
      	-mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
      	-msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
      	-msched-prefer-non-control-spec-insns,
      	-msched-stop-bits-after-every-cycle,
      	-msched-count-spec-in-critical-path,
      	-msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
      	-msched-max-memory-insns-hard-limit, -msched-max-memory-insns
      	Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
      	and -msched-spec-verbose.
      
      From-SVN: r147960
      Steve Ellcey committed
    • Makefile.in, [...]: New files. · 41850419
      2009-05-28  Tom Tromey  <tromey@redhat.com>
      	    Phil Muldoon  <pmuldoon@redhat.com>
      	    Jonathan Wakely  <jwakely.gcc@gmail.com>
      
      	* python/Makefile.in, , python/libstdcxx/__init__.py,
      	python/libstdcxx/v6/__init__.py, python/libstdcxx/v6/printers.py,
      	python/hook.in, python/Makefile.am: New files.
      	* configure, Makefile.in: Rebuild.
      	* acinclude.m4 (glibcxx_SUBDIRS): Add python.
      	* Makefile.am (SUBDIRS): Add python.
      
      Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
      Co-Authored-By: Phil Muldoon <pmuldoon@redhat.com>
      
      From-SVN: r147958
      Tom Tromey committed
    • lib1funcs.asm (__clear_cache): Define if L_clear_cache. · 8a66e987
      	* config/arm/lib1funcs.asm (__clear_cache): Define if
      	L_clear_cache.
      	* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
      	error if used.
      	* config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
      
      From-SVN: r147956
      Joseph Myers committed
    • tree-ssa-alias.c (ao_ref_init): New function. · b45d2719
      2009-05-28  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.c (ao_ref_init): New function.
      	(ao_ref_base): Likewise.
      	(ao_ref_base_alias_set): Likewise.
      	(ao_ref_alias_set): Likewise.
      	(refs_may_alias_p_1): Change signature.
      	(refs_may_alias_p): Adjust.
      	(refs_anti_dependent_p): Likewise.
      	(refs_output_dependent_p): Likewise.
      	(call_may_clobber_ref_p_1): Change signature.
      	(call_may_clobber_ref_p): Adjust.
      	(stmt_may_clobber_ref_p_1): New function split out from ...
      	(stmt_may_clobber_ref_p): ... here.
      	(maybe_skip_until): Adjust signature.
      	(get_continuation_for_phi): Likewise.
      	(walk_non_aliased_vuses): Likewise.
      	* tree-ssa-alias.h (struct ao_ref_s): New structure type.
      	(ao_ref_init): Declare.
      	(ao_ref_base): Likewise.
      	(ao_ref_alias_set): Likewise.
      	(stmt_may_clobber_ref_p_1): Likewise.
      	(walk_non_aliased_vuses): Adjust.
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
      	(get_ref_from_reference_ops): remove.
      	(vn_reference_lookup_2): Adjust signature.
      	(vn_reference_lookup_3): Do not re-build trees.  Handle unions.
      	(vn_reference_lookup_pieces): Adjust signature, do not re-build
      	trees.
      	(vn_reference_lookup): Adjust.
      	(vn_reference_insert): Likewise.
      	(vn_reference_insert_pieces): Adjust signature.
      	(visit_reference_op_call): Adjust.
      	* tree-ssa-pre.c (get_expr_type): Simplify.
      	(phi_translate_1): Adjust.
      	(compute_avail): Likewise.
      	(translate_vuse_through_block): Do not re-build trees.
      	(value_dies_in_block_x): Likewise.
      	* tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
      	fields.
      	(vn_reference_lookup_pieces): Adjust declaration.
      	(vn_reference_insert_pieces): Likewise.
      
      	* gcc.dg/tree-ssa/ssa-fre-26.c: New testcase.
      	* gcc.c-torture/execute/20090527-1.c: Likewise.
      
      From-SVN: r147953
      Richard Guenther committed
    • tree-ssa-copy.c (replace_exp_1): Move op for warning-free use with checking disabled. · 554223b6
      2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
      
              * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
              with checking disabled.
      
      From-SVN: r147952
      Benjamin Kosnik committed
    • Fix for PR c++/PR39754 · cd41d410
      gcc/cp/ChangeLog:
          PR c++/39754
          * cp-tree.h (canonical_type_variant): Remove this function declaration.
          (strip_typedefs): New function declaration.
          * tree.c (strip_typedefs): New function definition.
          (canonical_type_variant): Remove function definition.
          * cvt.c (convert_from_reference): No need to use
          canonical_type_variant.
          * typeck.c (cp_build_indirect_ref): Likewise.
          * error.c (dump_template_bindings): Use strip_typedefs instead of
          canonical_type_variant.
          * pt.c (convert_template_argument, unify): Likewise.
          * mangle.c (canonicalize_for_substitution): Don't use
          canonical_type_variant.
      
      gcc/testsuite/ChangeLog:
          PR c++/39754
          * g++.dg/template/canon-type-1.C: New test.
          * g++.dg/template/canon-type-2.C: Likewise.
          * g++.dg/template/canon-type-3.C: Likewise.
          * g++.dg/template/canon-type-4.C: Likewise.
          * g++.dg/template/canon-type-5.C: Likewise.
          * g++.dg/template/canon-type-6.C: Likewise.
          * g++.dg/template/canon-type-7.C: Likewise.
      
      From-SVN: r147951
      Dodji Seketeli committed
    • re PR target/37216 ([cygming] Invalid alignment for SSE store to .comm data generated with -O3) · 233215fe
      gcc/ChangeLog:
      
      2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	PR target/37216
      
      	* configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
      	macro definition for support of three-operand format aligned
      	.comm directive in assembler on cygwin/pe/mingw target OS.
      	* configure:  Regenerate.
      	* config.in:  Regenerate.
      
      	* config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
      	aligned form of .comm directive if -mpe-aligned-commons is in effect.
      	* config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
      
      	* doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
      	* doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
      
      gcc/testsuite/ChangeLog:
      
      2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
                  Uros Bizjak  <ubizjak@gmail.com>
                  Danny Smith  <dansmister@gmail.com>
      
      	PR target/37216
      
      	* lib/target-supports.exp (check_effective_target_pe_aligned_commons):
      	New function.
      	* gcc.target/i386/pr37216.c:  New test source file.
      	* gcc.dg/compat/struct-layout-1_generate.c (dg_options[]):  No longer
      	use -fno-common for testing Cygwin and MinGW targets.
      
      
      
      Co-Authored-By: Danny Smith <dansmister@gmail.com>
      Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
      
      From-SVN: r147950
      Dave Korn committed
    • packed6.C (size_t): Use __extension__ and __SIZE_TYPE__. · b10ca522
      2009-05-28  Kai Tietz  <kai.tietz@onevision.com>
      
      	*  g++.dg/ext/packed6.C (size_t): Use __extension__ and
      	__SIZE_TYPE__.
      	* g++.dg/opt/memcpy1.C (size_t): Likewise.
      	* g++.dg/pr37742.C (size_t): Likewise.
      	* g++.dg/torture/pr34850.C (size_t): Likewise.
      	* g++.dg/torture/20070621-1.C (ptrdiff_t): Use __extension__ and
      	_PTRDIFF_TYPE__.
      	* g++.dg/torture/pr34222.C (ptrdiff_t): Likewise.
      	* g++.dg/tree-ssa/pr22444.C (ptrdiff_t): Likewise.
      	(size_t): Use __extension__ and __SIZE_TYPE__.
      
      From-SVN: r147949
      Kai Tietz committed
    • 20000211-1.c (size_t): Typedef size_t via __SIZE_TYPE__. · 52c97635
      2009-05-28  Kai Tietz  <kai.tietz@onevision.com>
      
              * gcc.c-torture/compile/20000211-1.c (size_t): Typedef size_t via
      	__SIZE_TYPE__.
              * gcc.c-torture/compile/20010328-1.c (size_t): Likewise,
              * gcc.c-torture/compile/20030320-1.c (size_t): Likewise,
              * gcc.c-torture/compile/20030405-1.c (size_t): Likewise,
              * gcc.c-torture/compile/20030902-1.c (size_t): Likewise,
              * gcc.c-torture/compile/20060202-1.c (size_t): Likewise,
              * gcc.c-torture/compile/20080613-1.c (size_t): Likewise,
              * gcc.c-torture/compile/920428-2.c (size_t): Likewise,
              * gcc.c-torture/compile/980329-1.c (size_t): Likewise,
              * gcc.c-torture/compile/980816-1.c (size_t): Likewise,
              * gcc.c-torture/compile/pr32584.c (size_t): Likewise,
              * (__ssize_t): Likewise.
              * gcc.c-torture/compile/pr33173.c (size_t): Likewise,
              * gcc.c-torture/compile/pr33382.c (size_t): Likewise,
              * gcc.c-torture/compile/pr34334.c (size_t): Likewise,
              * gcc.c-torture/compile/pr34688.c (size_t): Likewise,
              * gcc.c-torture/compile/pr35043.c (size_t): Likewise,
              * gcc.c-torture/compile/pr37669.c (size_t): Likewise,
              * gcc.dg/20050629-1.c (size_t): Typedef size_t via __SIZE_TYPE__.
              * gcc.dg/pr33667.c (size_t): Likewise.
              * gcc.dg/prefetch-loop-arrays-1.c (size_t): Likewise.
              * gcc.dg/torture/pr39204.c (size_t): Likewise.
              * gcc.dg/tree-ssa/20041122-1.c (size_t): Likewise.
              * gcc.dg/tree-ssa/pr36908.c (size_t): Likewise.
              * gcc.dg/tree-ssa/pr38250.c (size_t): Likewise.
              * gcc.dg/tree-ssa/ssa-dse-10.c (size_t): Likewise.
      
      From-SVN: r147947
      Kai Tietz committed
    • re PR tree-optimization/40254 (SPEC2006 403.gcc miscompares) · 24adb18f
      
      	PR tree-optimization/40254
      	* tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
      	in analysis of basic blocks.
      
      From-SVN: r147945
      Ira Rosen committed
    • re PR middle-end/33699 (missing optimization on const addr area store) · 2c5bfdf7
      	PR middle-end/33699
      	* target.h (struct gcc_target): Fix indentation.  Add
      	const_anchor.
      	* target-def.h (TARGET_CONST_ANCHOR): New macro.
      	(TARGET_INITIALIZER): Use it.
      	* cse.c (CHEAPER): Move it up to the other macros.
      	(insert): Rename this ...
      	(insert_with_costs): ... to this.  Add cost parameters.  Update
      	function comment.
      	(insert): New function.  Call insert_with_costs.
      	(compute_const_anchors, insert_const_anchor, insert_const_anchors,
      	find_reg_offset_for_const, try_const_anchors): New functions.
      	(cse_insn): Call try_const_anchors.  Adjust cost of src_related
      	when using a const-anchor.  Call insert_const_anchors.
      	* config/mips/mips.c (mips_set_mips16_mode): Set
      	targetm.const_anchor.
      	* doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
      
      testsuite/
      	* gcc.target/mips/const-anchor-1.c: New test.
      	* gcc.target/mips/const-anchor-2.c: New test.
      
      From-SVN: r147944
      Adam Nemet committed
    • Fix typo in ChangeLog entry date. · 51fb7760
      From-SVN: r147943
      Olivier Hainque committed
    • tree-inline.c (remap_decls): Enable nonlocalized variables when not optimizing. · 9e6aced0
      * tree-inline.c (remap_decls): Enable nonlocalized variables
      when not optimizing.
      
      From-SVN: r147941
      Alexandre Oliva committed
    • tree-ssa-live.c (remove_unused_locals): Skip when not optimizing. · 89fbbe4e
      * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
      Simplify other tests involving optimize.
      
      From-SVN: r147939
      Alexandre Oliva committed
    • Daily bump. · c0ba7737
      From-SVN: r147938
      GCC Administrator committed
    • testsuite_allocator.h (check_new, [...]): Move to ... · daa15929
      2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* testsuite/util/testsuite_allocator.h (check_new, check_delete): Move
      	to ...
      	* testsuite/util/replacement_memory_operators.h: ...here. New.
      	* testsuite/util/testsuite_hooks.h (counter): To object_counter.
      	* testsuite/util/testsuite_hooks.cc: Same.
      
      	* testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Use
      	replacement_memory_operators.h.
      	* testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Same.
      	* testsuite/ext/mt_allocator/check_delete.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local_thread-5.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local_thread-7.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local-2.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local-4.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local-6.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_local-8.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_global-2.cc: Same.
      	* testsuite/ext/mt_allocator/deallocate_global-4.cc: Same.
      	* testsuite/ext/mt_allocator/check_new.cc: Same.
      	* testsuite/ext/debug_allocator/check_delete.cc: Same.
      	* testsuite/ext/debug_allocator/check_new.cc: Same.
      	* testsuite/ext/new_allocator/deallocate_global.cc: Same.
      	* testsuite/ext/new_allocator/check_delete.cc: Same.
      	* testsuite/ext/new_allocator/check_new.cc: Same.
      	* testsuite/ext/new_allocator/deallocate_local.cc: Same.
      	* testsuite/ext/throw_allocator/deallocate_global.cc: Same.
      	* testsuite/ext/throw_allocator/check_delete.cc: Same.
      	* testsuite/ext/throw_allocator/check_new.cc: Same.
      	* testsuite/ext/throw_allocator/deallocate_local.cc: Same.
      	* testsuite/ext/malloc_allocator/deallocate_global.cc: Same.
      	* testsuite/ext/malloc_allocator/check_delete.cc: Same.
      	* testsuite/ext/malloc_allocator/check_new.cc: Same.
      	* testsuite/ext/malloc_allocator/deallocate_local.cc: Same.
      	* testsuite/ext/pool_allocator/check_delete.cc: Same.
      	* testsuite/ext/pool_allocator/check_new.cc: Same.
      	* testsuite/ext/bitmap_allocator/check_delete.cc: Same.
      	* testsuite/ext/bitmap_allocator/check_new.cc: Same.
      	* testsuite/ext/array_allocator/check_delete.cc: Same.
      	* testsuite/ext/array_allocator/check_new.cc: Same.
      	* testsuite/23_containers/deque/cons/1.cc: Same.
      	* testsuite/23_containers/deque/cons/2.cc: Same.
      
      From-SVN: r147937
      Benjamin Kosnik committed
  3. 27 May, 2009 3 commits