X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=6aee2ec3abafc9b3921acb84b6e3fd906d021b07;hp=403fb604d2839825c5301e5ac0b224b8f2c4d0fb;hb=b625e58b5b96394f5fc9fa7da1c7609b403921be;hpb=83c4576f6affd2dde4215b9a292ef4742d38021a diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 403fb604d28..6aee2ec3aba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,514 @@ +2011-11-02 Alan Modra + + * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED. + +2011-11-01 Paolo Carlini + + PR c++/44277 + * doc/invoke.texi: Document -Wzero-as-null-pointer-constant. + +2011-11-01 Andrew Stubbs + + * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning. + +2011-11-01 Uros Bizjak + + * config/i386/i386.md (splitters for int-float conversion): Use + SUBREG_REG on SUBREGs in splitter constraints. + +2011-11-01 Jakub Jelinek + + * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New + prototype. + * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New + function. + * config/i386/sse.md (fixuns_trunc2): Use it. + (ssepackfltmode): New mode attr. + (vec_pack_ufix_trunc_): New expander. + +2011-11-01 Uros Bizjak + + PR target/50940 + * config/i386/i386.md (floatsi2_vector_sse_with_temp splitter): + Compare mode with V4SFmode, not V4SImode. + +2011-11-01 Peter Bergner + + * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant. + * config/rs6000/476.h: New file. + * config/rs6000/476.opt: Likewise. + * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define. + (SET_TARGET_LINK_STACK): Likewise. + (TARGET_ASM_CODE_END): Define. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable + TARGET_LINK_STACK for -mtune=476 and -mtune=476fp. + (rs6000_legitimize_tls_address): Emit the link stack preserving GOT + code if TARGET_LINK_STACK. + (rs6000_emit_load_toc_table): Likewise. + (output_function_profiler): Likewise + (macho_branch_islands): Likewise + (machopic_output_stub): Likewise + (get_ppc476_thunk_name): New function. + (rs6000_code_end): Likewise. + * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): + Convert to a define_expand. + (load_toc_v4_PIC_1_normal): New define_insn. + (load_toc_v4_PIC_1_476): Likewise. + (load_toc_v4_PIC_1b_normal): Likewise. + (load_toc_v4_PIC_1b_476): Likewise. + +2011-11-01 Georg-Johann Lay + + PR target/50910 + * config/avr/avr.opt (-mbranch-cost=): New option. + * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost. + * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs. + * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns. + (*addhi3_zero_extend1): Remove % in constraint of operand 1. + (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns. + +2011-11-01 Tom de Vries + + PR tree-optimization/50908 + * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed + before update_vuses, test for 1 predecessor rather than two. + (delete_block_update_dominator_info): New function, part of it factored + out of ... + (replace_block_by): Use delete_block_update_dominator_info. Call + update_vuses after deleting bb1 and updating dominator info, instead of + before. + +2011-11-01 David S. Miller + + * config/sparc/sparc.c (vector_init_faligndata): New function. + (sparc_expand_vector_init): Use it for V4HImode on VIS1. + + * config/sparc/sparc.c (sparc_expand_vcond): New function. + * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it. + * config/sparc/sparc.md (vcond): New VIS3 expander. + (vconduv8qiv8qi): Likewise. + +2011-11-01 Alexandre Oliva + + PR debug/50869 + * cselib.c (cfa_base_preserved_regno): Initialize. + (cselib_expand_value_rtx_1): Don't expand it. + * var-tracking.c (vt_expand_var_loc_chain): Initialize depth. + Check it's only zero if result is NULL. + +2011-11-01 Jakub Jelinek + + * config/i386/sse.md (fixuns_trunc2): New + expander. + + * config/i386/sse.md (sseintvecmode): Remove duplicate modes. + (sseintvecmodelower): New mode iterator. + (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into... + (float2): ... this using VF1 iterator. + (floatunsv4siv4sf2): Macroize into... + (floatuns2): ... this using VF1 iterator. + +2011-10-31 David S. Miller + + * config/sparc/sparc.md (cmask patterns): Allow zero operand. + + * dwarf2out.c (cached_next_real_insn): New. + (dwarf2out_end_epilogue): Set it to NULL_RTX. + (dwarf2out_var_location): Remove cached_next_real_insn local static. + +2011-10-31 Richard Henderson + + * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256. + (floatv4siv4sf2): Rename from sse2_cvtdq2ps. + (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps. + (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256. + (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq. + (floatv4siv4df2): Rename from avx_cvtdq2pd256. + (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256. + (vec_unpacku_float_hi_v8si): Update for insn pattern name changes. + * config/i386/i386.md (splitters for int-float conversion): Likewise. + * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise. + (bdesc_args): Likewise. + (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove. + (ix86_vectorize_builtin_conversion): Remove. + (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. + +2011-10-31 Martin Jambor + + * ipa-prop.c (mark_modified): Moved up in the file. + (is_parm_modified_before_call): Renamed to + is_parm_modified_before_stmt, moved up in the file. + (load_from_unmodified_param): New function. + (compute_complex_assign_jump_func): Also attempt to create pass + through jump functions for values loaded from (addressable) + parameters. + +2011-10-31 Jakub Jelinek + + * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def + in a loop and has different type from op0, cast it to op0's type + before the loop first. For slp give up. Don't crash if op1_vectype + is NULL. + +2011-10-31 Paul Brook + + * cgraphunit.c: Don't mark clones as static constructors. + +2011-10-31 David Edelsohn + + * gcc-ar: Do not include stdio.h. + +2011-10-31 Diego Novillo + + * tree-streamer-out.c (pack_ts_base_value_fields): Emit + TYPE_ADDR_SPACE. + * tree-streamer-in.c (unpack_ts_base_value_fields): Read + TYPE_ADDR_SPACE. + +2011-10-30 David S. Miller + + * config/sparc/sparc.c (vector_init_bshuffle): New function. + (vector_init_fpmerge): New function. + (sparc_expand_vector_init): Use them to improve non-const cases. + + * dwarf2out.c (dwarf2out_var_location): When processing several + consecutive location notes, cache the result of next_real_insn(). + +2011-10-30 Uros Bizjak + + * config/i386/i386.md (avx2_vec_dup): Macroize insn from + avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator. + (vec_dupv4sf): Remove expander. + (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx. + (vec_dupv2df): Remove expander. + (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3. + (*vec_concatv2df): Merge *vec_concatv2df_sse3. + (*vec_dupv4si): Merge *vec_dupv4si_avx. + (*vec_dupv2di): Merge *vec_dupv2di_sse3. + +2011-10-30 Dmitry Plotnikov + + * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions. + * optabs.c (supportable_convert_operation): New function. + * optabs.h (supportable_convert_operation): New prototype. + * tree-vect-stmts.c (vectorizable_conversion): Change condition and + behavior for NONE modifier case. + * tree.h (VECTOR_INTEGER_TYPE_P): New macro. + +2011-10-30 Jakub Jelinek + + * tree-vectorizer.h (NUM_PATTERNS): Bump to 9. + * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New + function. + (vect_vect_recog_func_ptrs): Add it. + +2011-10-30 David S. Miller + + * reorg.c (label_before_next_insn): New function. + (relax_delay_slots): Use it instead of prev_label. + * rtl.h (prev_label): Delete declaration. + * emit-rtl.c (prev_label): Remove. + +2011-10-30 Revital Eres + + * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog + as BB_DISABLE_SCHEDULE. + (mark_loop_unsched): New function. + (sms_schedule): Call it. + +2011-10-29 John David Anglin + + PR target/50617 + * config/pa/protos.h (attr_length_save_restore_dltp): Delete. + (cmpib_comparison_operator): Likewise. + (following_cal, output_and, output_ior, output_move_double, + output_fp_move_double, output_block_move, output_block_clear, + output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra, + output_movb, output_parallel_movb, output_parallel_addb, output_call, + output_indirect_call, output_millicode_call, output_mul_insn, + output_div_insn, output_mod_insn, singlemove_string, + output_arg_descriptor, output_global_address, print_operand, + legitimize_pic_address, hppa_encode_label, symbolic_expression_p, + fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence, + emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay, + hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call, + attr_length_indirect_call, return_addr_rtx, function_arg_padding, + insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p, + output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move, + hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p, + compute_zdepdi_operands, output_64bit_and, output_64bit_ior, + reloc_needed, magic_milli, shadd_constant_p): Consistently prefix + exported functions and variables with "pa_". + * config/pa/predicates.md: Likewise. + * config/pa/pa64-hpux.h: likewise. + * config/pa/som.h: Likewise. + * config/pa/elf.h: Likewise. + * config/pa/pa64-linux.h: Likewise. + * config/pa/pa.md: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/pa/pa.h: Likewise. + * config/pa/constraints.md: Likewise. + +2011-10-29 Uros Bizjak + + * config/i386/i386.md (xop_sha3): Rename from xop_ashl3. + Update all uses. + (xop_shl3): Rename from xop_lshl3. Update all uses. + * config/i386/i386.c: Update all uses. + +2011-10-29 Uros Bizjak + + * config/i386/i386.md (lshlv16qi3): Remove expander. + (lshrv16qi3): New expander. + (v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3 + using any_shiftrt code iterator. Cleanup. + (ashlv16qi3): Cleanup. + (ashrv2di3): Ditto. + +2011-10-29 John David Anglin + + PR target/50691 + * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol + references. + (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC + and TLS_MODEL_LOCAL_DYNAMIC symbol references. + +2011-10-29 Georg-Johann Lay + + PR target/50887 + * config/avr/avr.opt (-maccumulate-args): New option. + * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to + avr_starting_frame_offset. + (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args. + * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove. + (UNSPECV_WRITE_SP_IRQ_OFF): Remove. + (UNSPECV_WRITE_SP): New constant. + (*addhi3_sp_R): Rewrite to... + (*addhi3_sp): ...this new insn. + (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to... + (movhi_sp_r): ...this new insn. + * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New. + (avr_starting_frame_offset): New. + * config/avr/avr.c (avr_accumulate_outgoing_args): New function. + (avr_starting_frame_offset): New function. + (avr_outgoing_args_size): New static function. + (avr_initial_elimination_offset): Use it. + (avr_simple_epilogue): Use it. + (avr_asm_function_end_prologue): Use it. + (expand_epilogue): Use it. + (expand_prologue): Use it. Break out code to... + (avr_prologue_setup_frame): ...this new static function. + (avr_can_eliminate): Allow eliminating to frame pointer if there + is one. + (avr_frame_pointer_required_p): Use frame pointer if target has a + nonlocal label. + * config/avr/constraints.md (R): Remove. + (Csp): New constraint. + * config/avr/predicates.md (avr_sp_immediate_operand): Use it. + +2011-10-29 Andi Kleen + + * gcc-ar.c (target_machine): Add. + +2011-10-29 Anatoly Sokolov + + * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p, + cris_constant_index_p, cris_base_p, cris_index_p, + cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p, + cris_legitimate_address_p): New functions. + (TARGET_LEGITIMATE_ADDRESS_P): Define. + (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type + from rtx to const_rtx. + (cris_print_operand_address, cris_address_cost, + cris_side_effect_mode_ok): Use + cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, + cris_biap_index_p and cris_bdap_index_p. + * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P, + BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, + REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. + (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use + cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, + cris_biap_index_p and cris_bdap_index_p. + * config/cris/cris.md (moversideqi movemsideqi peephole2): Use + cris_base_p. + * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p, + cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New + prototype. + (cris_pic_symbol_type, cris_valid_pic_const): Update prototype. + +2011-10-21 Andi Kleen + + * ggc-page (PAGE_ALIGN): Add. + (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read): + Replace ROUND_UP with PAGE_ALIGN. + +2011-10-20 Andi Kleen + + * ggc-page (alloc_anon): Add check argument. + (alloc_page): Add fallback to 1 page allocation. + Adjust alloc_anon calls to new argument. + +2011-10-18 Andi Kleen + + * ggc-page (release_pages): First free large continuous + chunks in the madvise path. + +2011-10-18 Andi Kleen + + * ggc-page.c (alloc_pages): Always round up entry_size. + +2011-10-19 Andi Kleen + + * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib. + (native): Add gcc-ar, gcc-nm, gcc-ranlib. + (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o, + gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add. + (install): Depend on install-gcc-ar. + (install-gcc-ar): Add. + (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib. + * gcc-ar.c: Add new file. + +2011-10-28 Pat Haugen + + * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble. + * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble + type for V2DF. + (VStype_div): Use vector types for V2DF/V4SF. + (VStype_sqrt): Use *sqrt types. + (VS_spdp_type): Change type to vecdouble. + (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws, + vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds, + vsx_xvcvspuxds): Likewise. + (*vsx_fms4): Set type via . + (*vsx_eq__p, *vsx_gt__p, *vsx_ge__p): Set type via + . + * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe. + (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt, + power7-dsqrt): Correct insn latency. + (power7-vecsimple): Add veccmp type and correct dispatch/VSU values. + (power7-veccmp): Delete. + (power7-vecfloat): Correct latency/dispatch/VSU values. + (define_bypass "power7-vecfloat"): Correct latency and types. + (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values. + (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New. + +2011-10-28 Uros Bizjak + + * config/i386/i386.md (shift_insn): Rename code attribute from + shiftrt_insn. Also handle ashift RTX. + (shift): Rename code attribute from shiftrt. Also handle ashift RTX. + (vshift): New code attribute. + (*): Rename from *. Update asm templates. + (any_lshift): Move and rename code iterator from ... + * config/i386/sse.md (lshift): ... here. + (lshift_insn): Remove code attribute. + (lshift): Remove code attribute. + (vlshr3): Use lshiftrt RTX. + (vashr3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX. + (vashl3, ashlv16qi3): Use ashift RTX. + (avx2_v): Rename from avx2_v. Use + any_lshift code iterator. Update asm template. + (3): Macroize insn from lshr3 and ashl3 + usign any_lshift code iterator. + * config/i386/mmx.md (mmx_3): Macroize insn from + mmx_lshr3 and mmx_ashl3 usign any_lshift code iterator. + * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. + +2011-10-28 Georg-Johann Lay + + PR target/49313 + * config/avr/avr.md (parityhi2): Expand allowing pseudos. + (*parityhi2): New pre-reload insn-and-split to map 16-bit parity + to the libgcc insn. + (*parityqihi2): Same for 8-bit parity. + +2011-10-28 Julian Brown + + PR rtl-optimization/47918 + * reload1.c (set_initial_label_offsets): Use initial offsets + for labels on the nonlocal_goto_handler_labels chain. + +2011-10-28 Iain Sandoe + + * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): + Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA. + (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm. + (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from + config/t-darwin. + * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable. + (GP_SAVE_INLINE): Likewise. + (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, + RESTORE_FP_SUFFIX): Set to empty strings. + * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin. + (debug_stack_info): Print savres_strategy. + (rs6000_savres_routine_name): Implement for Darwin. + (rs6000_make_savres_rtx): Adjust used register for Darwin. + (rs6000_emit_prologue): Implement out-of-line saves for Darwin. + (rs6000_output_function_prologue): Don't emit .extern for Mach-O. + (rs6000_emit_epilogue): Implement out-of-line saves for Darwin. + * config/rs6000/darwin-gpsave.asm: New file. + +2011-10-28 Jakub Jelinek + + * config/i386/sse.md (VI4SD_AVX2): Removed. + (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators. + (vashl3): Use VI12_128 iterator instead of VI124_128. + Add another expander using VI48_128 iterator for + TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator + for TARGET_AVX2. + (vlshr3): Likewise. Change register_operand predicate to + nonimmediate_operand on last operand in the VI12_128 expander. + (vashr3): Use VI128_128 iterator instead of VI124_128. + (vashrv4si3, vashrv8si3): New expanders. + (avx2_ashrvv8si, avx2_ashrvv4si, avx2_vv8si, + avx2_vv2di): Removed. + (avx2_ashrv): New insn with VI4_AVX2 iterator. + (avx2_v): Macroize using VI48_AVX2 + iterator. Simplify pattern. + +2010-10-28 Richard Guenther + + PR driver/50876 + * lto-wrapper.c (get_options_from_collect_gcc_options): + Properly count arguments. + (run_gcc): Use an obstack to collect argv, properly separate + switches and their arguments. + +2011-10-28 Jakub Jelinek + + * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different + vector mode from vectype's mode. + +2011-10-28 Chung-Lin Tang + + PR rtl-optimization/49720 + * simplify-rtx.c (simplify_relational_operation_1): Detect + infinite recursion condition in "(eq/ne (plus x cst1) cst2) + simplifies to (eq/ne x (cst2 - cst1))" case. + +2011-10-27 David S. Miller + + * config/sparc/sparc.md (snedi_special): Only match when not VIS3. + (*snedi_zero): Likewise. + (*snedi_zero_trunc): Likewise. + (snedi_special_vis3): New expander. + (*snedi_zero_vis3): New insn. + (*snedi_zero_trunc_vis3): Likewise. + (*sltu_insn_vis3): Likewise. + (*sltu_insn_vis3_trunc): Likewise. + (addxc): Likewise. + (*addxc_trunc_sp64_vis3): Likewise. + * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the + gen_snedi_special_vis3 expander, and try GTU/LTU addx based + sequences on DImode values. + + * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f' + constraint. + + * regcprop.c (copyprop_hardreg_forward_1): Reject the + transformation when we narrow the mode on big endian. + 2011-10-27 Jakub Jelinek * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2, @@ -28,7 +539,7 @@ 2011-10-27 Uros Bizjak PR target/50875 - * config/i386/sse.md (*avx2_unpcklpd256): Remove extra insn + * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn constraints. Change alternative 1 to "x,m,1". 2011-10-27 Jakub Jelinek