1. 31 May, 2009 5 commits
  2. 30 May, 2009 6 commits
    • Reformat. · e19fa259
      From-SVN: r148003
      H.J. Lu committed
    • mingw-tls.c: New file. · a1bda0d7
      2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
      
              * config/i386/mingw-tls.c: New file.
              * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
              mingw-tls.c file.
              * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
              it for targets defining _WIN32 but not __CYGWIN__.
      
      From-SVN: r148000
      Kai Tietz committed
    • snprintf.c: Doc fix. · ec5c6f4a
      * snprintf.c: Doc fix.
      
      * vsnprintf.c: Doc fix.
      
      From-SVN: r147998
      Eli Zaretskii committed
    • Makefile.def: Add MPC support and dependencies. · acd26225
      	* Makefile.def: Add MPC support and dependencies.
      	* configure.ac: Likewise.  Reorganize GMP/MPFR checks.
      
      	* Makefile.in, configure: Regenerate.
      	
      gcc:
      	* configure.ac: Add MPC support.
      	
      	* config.in, configure: Regenerate.
      
      From-SVN: r147996
      Kaveh R. Ghazi committed
    • cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. · cd9c1ca8
      	* cfgcleanup.c (try_crossjump_to_edge): Only skip past
      	NOTE_INSN_BASIC_BLOCK.
      	* cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
      	Duplicate NOTE_INSN_EPILOGUE_BEG notes.
      	* cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
      	to be deleted.
      	* dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
      	add in_use field.
      	(add_cfi): Disable check redefining cfa away from drap.
      	(lookup_cfa_1): Add remember argument; handle remember/restore.
      	(lookup_cfa): Pass remember argument.
      	(cfa_remember): New.
      	(compute_barrier_args_size_1): Remove sibcall check.
      	(dwarf2out_frame_debug_def_cfa): New.
      	(dwarf2out_frame_debug_adjust_cfa): New.
      	(dwarf2out_frame_debug_cfa_offset): New.
      	(dwarf2out_frame_debug_cfa_register): New.
      	(dwarf2out_frame_debug_cfa_restore): New.
      	(dwarf2out_frame_debug): Handle REG_CFA_* notes.
      	(dwarf2out_begin_epilogue): New.
      	(dwarf2out_frame_debug_restore_state): New.
      	(dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
      	DW_CFA_restore_state.
      	(output_cfi_directive): Likewise.
      	(convert_cfa_to_fb_loc_list): Likewise.
      	(dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
      	* dwarf2out.h: Update.
      	* emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
      	(copy_insn_1): Early out for null.
      	* final.c (final_scan_insn): Call dwarf2out_begin_epilogue
      	and dwarf2out_frame_debug_restore_state.
      	* function.c (prologue, epilogue, sibcall_epilogue): Remove.
      	(prologue_insn_hash, epilogue_insn_hash): New.
      	(free_after_compilation): Adjust freeing accordingly.
      	(record_insns): Create hash table if needed; push insns into
      	hash instead of array.
      	(maybe_copy_epilogue_insn): New.
      	(contains): Search hash table instead of array.
      	(sibcall_epilogue_contains): Remove.
      	(thread_prologue_and_epilogue_insns): Split eh_return insns
      	and mark them as epilogues.
      	(reposition_prologue_and_epilogue_notes): Rewrite epilogue
      	scanning in terms of basic blocks.
      	* insn-notes.def (CFA_RESTORE_STATE): New.
      	* jump.c (returnjump_p_1): Accept EH_RETURN.
      	(eh_returnjump_p_1, eh_returnjump_p): New.
      	* reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
      	CFA_REGISTER, CFA_RESTORE): New.
      	* rtl.def (EH_RETURN): New.
      	* rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
      
      	* config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
      	(eh_return_internal): Use eh_return rtx; split w/ epilogue.
      
      	* config/i386/i386.c (gen_push): Update cfa state.
      	(pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
      	add a CFA_ADJUST_CFA note.
      	(ix86_dwarf_handle_frame_unspec): Remove.
      	(ix86_expand_prologue): Update cfa state.
      	(ix86_emit_restore_reg_using_pop): New.
      	(ix86_emit_restore_regs_using_pop): New.
      	(ix86_emit_leave): New.
      	(ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
      	(ix86_expand_epilogue): Add notes for unwinding the epilogue.
      	* config/i386/i386.h (struct machine_cfa_state): New.
      	(ix86_cfa_state): New.
      	* config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
      	(eh_return_internal): Merge from eh_return_<mode>,
      	use eh_return rtx, split w/ epilogue.
      
      From-SVN: r147995
      Richard Henderson committed
    • Daily bump. · 36bac386
      From-SVN: r147994
      GCC Administrator committed
  3. 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
  4. 28 May, 2009 10 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