X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=eed29f04cce587276287d3e040a0de71597010e5;hb=6ef745dee79d8e5f140f274ce13a1fd22d126cb8;hp=762c57f9b3ad419c649d19a810361e88a9d9fab5;hpb=c34db9a547c681b70749402d5bf58f4b89e04eee;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 762c57f9b3a..eed29f04cce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,450 @@ +2011-12-12 Torvald Riegel + + * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction + commits as equal. + +2011-12-12 Iain Sandoe + + * config/darwin-sections.def (zobj_const_data_section): Fix over- + length section name. + +2011-12-11 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_expand_interleave): Use + BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN. + +2011-12-11 Jakub Jelinek + + PR tree-optimization/51485 + * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on + DRs in call stmts. + +2011-12-11 Patrick Marlier + + * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove + edge. + +2011-12-10 Richard Henderson + + * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as + vec_select + vec_concat. + (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb, + altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise. + (vec_perm_constv16qi): New. + (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode, + vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi, + vec_interleave_high, vec_interleave_low): Remove. + * config/rs6000/paired.md (paired_merge00): Rewrite pattern as + vec_select + vec_concat. + (paired_merge10, paired_merge01, paired_merge11): Likewise. + (vec_perm_constv2sf): New. + (vec_interleave_highv2sf, vec_interleave_lowv2sf, + vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. + * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as + vec_select + vec_concat. + (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New. + (vec_perm_constv2si): New. + * config/rs6000/vector.md (vec_interleave_highv4sf, + vec_interleave_lowv4sf, vec_interleave_high, + vec_interleave_low): Remove. + * config/rs6000/vsx.md (VS_double): New mode attribute. + (UNSPEC_VSX_XXPERMDI): Remove. + (vsx_xxpermdi__1): Rewrite pattern as vec_select + vec_concat. + (vsx_xxmrghw_, vsx_xxmrglw_): Likewise. + (vsx_xxpermdi_): Change to expander. + (vec_perm_const): New. + (vsx_mergel_, vsx_mergeh_): New. + * config/rs6000/predicates.md (const_0_to_1_operand): New. + (const_2_to_3_operand): New. + * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. + (altivec_expand_vec_perm_const): New. + (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New. + (rs6000_vectorize_vec_perm_const_ok): New. + (rs6000_do_expand_vec_perm): New. + (rs6000_expand_extract_even, rs6000_expand_interleave): New. + * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes. + * config/rs6000/rs6000-modes.def: Add double-wide vector modes. + * config/rs6000/rs6000-protos.h: Update. + +2011-12-10 Richard Henderson + + * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a + CONST_INT to expand_vec_perm as the selector. + * optabs.c (expand_vec_perm): Assert the selector is of a proper mode. + +2011-12-10 Richard Henderson + + * genmodes.c (struct mode_data): Remove wider_2x member. + (blank_mode): Adjust initializer. + (calc_wider_mode): Use XALLOCAVEC. + (emit_move_wider): Select double-width same-element vectors for + 2xwider vectors. + * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation. + * config/i386/i386.c (doublesize_vector_mode): Remove. + (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead. + +2011-12-10 Joern Rennecke + + * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define. + (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise. + (USE_STORE_POST_DECREMENT): Likewise. + + * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro, + broken out of .. + (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO. + (DWARF_FRAME_RETURN_COLUMN): New macro. + + * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare. + * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): + Split "timer" value into "timer0" and "timer1". + Handle page_miss, message and wand. Don't handle static_flag. + Adjust warning text. + (epiphany_start_function): New function. + (epiphany_compute_function_type): Split "timer" value into "timer0" + and "timer1". Handle page_miss, message and wand. + Don't handle static_flag. + (epiphany_expand_epilogue): Don't use frame_insn for status / iret + restore. + * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define. + (enum epiphany_function_type): + Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0 + and EPIPHANY_FUNCTION_TIMER1. + Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values. + Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values. + Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND. + +2011-12-10 Nathan Sidwell + + PR gcov-profile/51449 + * coverage.c (coverage_end_function): Always process the coverage + variables. + +2011-12-09 Aldy Hernandez + + PR/51291 + * tree.c (build_common_builtin_nodes): Do not use TM_PURE + attribute unless language has support for TM. + * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in + the absence of TM builtins. + +2011-12-09 Eric Botcazou + + * gimple-fold.c (gimple_fold_stmt_to_constant_1) : + Also check the TYPE_MODE to recognize useless pointer conversions. + +2011-12-09 Jakub Jelinek + + PR tree-optimization/51117 + * tree-eh.c (optimize_clobbers): Don't remove just one + clobber, but all consecutive clobbers before RESX. + Use gimple_clobber_p predicate. + +2011-12-09 Michael Meissner + + * config/rs6000/rs6000.c (altivec_expand_builtin): Call + expand_call to return a valid funciton instead of return + cosnt0_rtx/NULL_RTX if there was an error with the builtin. + (altivec_expand_ld_builtin): Ditto. + (rs6000_inner_target_options): If VSX is selected as a target + attribute or pragma, enable ALTIVEC also. + (rs6000_pragma_target_parse): Call rs6000_option_override_internal + to do all of the standard processing when switching options, + including redefining appropriate macros. + + PR rtl-optimization/51469 + * varasm.c (default_binds_local_p_1): If the symbol is a gnu + indirect function, mark the symbol as non-local. + +2011-12-09 H.J. Lu + + PR bootstrap/51479 + * Makefile.in (errors.o): Restored. + +2011-12-09 Richard Guenther + + PR lto/48042 + * tree.c (free_lang_data_in_decl): Remove freeing conditional + on debuginfo level. + +2011-12-09 Joern Rennecke + + PR middle-end/40154 + * emit-rtl.c (set_dst_reg_note): New function. + * rtl.h (set_dst_reg_note): Declare. + * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note. + (emit_libcall_block, expand_fix): Likewise. + * function.c (assign_parm_setup_reg, expand_function_start): Likewise. + * expmed.c (expand_mult_const, expand_divmod): Likewise. + * reload1.c (gen_reload): Likewise. + + * dse.c (get_stored_val, get_call_args): Use gen_int_mode. + * expmed.c (expand_divmod): Likewise. + * combine.c (simplify_if_then_else): Likewise. + +2011-12-09 Kai Tietz + + * ira-color.c (print_hard_regs_subforest): Use + HOST_WIDEST_INT_PRINT_DEC instead of %lld. + (allocno_hard_regs): Change type of cost member + to HOST_WIDEST_INT. + (add_allocno_hard_regs): Change type of argument cost + to HOST_WIDEST_INT. + * ira-conflict.c (build_conflict_bit_table): Replace use + of long-long by HOST_WIDEST_INT. + +2011-12-09 Georg-Johann Lay + + PR target/51425 + * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use + zero_extract:QIHI instead of zero_extract:HI. + +2011-12-09 Jakub Jelinek + Andrew Pinski + + PR tree-optimization/51117 + * tree-eh.c (optimize_clobbers): New function. + (execute_lower_eh_dispatch): Call it. + +2011-12-09 Richard Guenther + + PR tree-optimization/51482 + * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): + Make sure to only create REAL_TYPE and INTEGER_TYPE component + vectors. + +2011-12-09 Kai Tietz + + * implicit-zee.c (num_realized): Change type to long. + (num_ze_opportunities): Likewise. + +2011-12-08 Andrew Pinski + + * config/mips/mips-cpus.def (octeon+): New CPU. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'. + +2011-12-08 Bill Schmidt + + PR middle-end/39976 + * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI. + (struct hashable_expr): Add struct phi field. + (initialize_hash_element): Handle phis; change to use XCNEWVEC. + (hashable_expr_equal_p): Handle phis. + (iterative_hash_hashable_expr): Likewise. + (print_expr_hash_elt): Likewise. + (free_expr_hash_elt): Likewise. + (dom_opt_enter_block): Create equivalences from redundant phis. + (eliminate_redundant_computations): Handle redundant phis. + (lookup_avail_expr): Handle phis. + +2011-12-08 Jakub Jelinek + + PR tree-optimization/51466 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy + TREE_SIDE_EFFECTS. + +2011-12-08 Richard Guenther + + * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts + volatile when processing operands of an ADDR_EXPR. + (get_indirect_ref_operands): Likewise. + (get_tmr_operands): Likewise. + (get_expr_operands): Likewise. + +2011-12-08 Andreas Krebbel + + PR target/50395 + * config/s390/s390.c (s390_mainpool_finish): Emit the jump over + the literal pool as jump insn. + +2011-12-08 Richard Guenther + + PR tree-optimization/49772 + * tree-inline.c (optimize_inline_calls): Remove bail out + on errors. + +2011-12-08 Richard Guenther + + PR lto/50747 + * lto-streamer-out.c (produce_symtab): Remove asserts. + +2011-12-08 Richard Guenther + + PR lto/49945 + * lto-streamer-out.c (tree_is_indexable): Localize variably + modified types and their FIELD_DECLs. + +2011-12-08 Eric Botcazou + + PR tree-optimization/51315 + * tree.h (get_object_or_type_alignment): Declare. + * expr.c (get_object_or_type_alignment): Move to... + * builtins.c (get_object_or_type_alignment): ...here. Add assertion. + * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to... + (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into + MEM_REFs and use get_object_or_type_alignment for them. + (build_accesses_from_assign): Adjust for above change. + (access_precludes_ipa_sra_p): Likewise. + +2011-12-08 Richard Guenther + + PR lto/48437 + * lto-streamer-out.c (tree_is_indexable): Exclude block-local + extern declarations. + +2011-12-07 Andrew Pinski + + PR middle-end/45416 + * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for + SSA-expand. + +2011-12-07 Richard Guenther + + PR tree-optimization/50823 + * ipa-inline.c (edge_badness): Do not account for the number of + remaining calls. + +2011-12-07 Martin Jambor + + PR tree-optimization/50744 + * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive, + compute evaluation in HOST_WIDEST_INT. + (safe_add): New function + (propagate_effects): Use safe_add to accumulate effects. + +2011-12-06 Joel Sherrill + + * config/rs6000/rtems.h: Switch to using global_options_set + in SUBSUBTARGET_OVERRIDE_OPTIONS. + +2011-12-06 David S. Miller + + * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection. + +2011-12-06 Georg-Johann Lay + + * config/avr/avr.c (avr_file_start): Fix missing , + +2011-12-06 Jakub Jelinek + + PR target/51354 + * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note + unconditionally. + +2011-12-06 Georg-Johann Lay + + Forward-port from gcc-4_6-branch r181936 2011-12-02. + * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and + AT86RF401 have a 16-bit SP (their manual is bogus). + +2011-12-06 Georg-Johann Lay + + Forward-port from gcc-4_6-branch r181936 2011-12-02. + + PR target/51002 + * config/avr/avr.md (movhi_sp_r): Set insn condition to + !AVR_HAVE_8BIT_SP. + * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in + %B0,__SP_H__" if AVR_HAVE_8BIT_SP. + (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP. + +2011-12-06 Georg-Johann Lay + + PR target/51409 + PR target/49868 + * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1, + ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4, + ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum. + (avr_addrspace_t): New typedef. + (avr_addrspace): New declaration. + * config/avr/avr-c.c (avr_toupper): New static function. + (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use + avr_addrspace to get address space information. + * config/avr/avr.c (avr_addrspace): New variable. + (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes, + avr_asm_named_section, avr_section_type_flags, + avr_asm_select_section, avr_addr_space_address_mode, + avr_addr_space_convert, avr_emit_movmemhi): Use it. + (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode. + (avr_pgm_segment): Remove. + +2011-12-06 Richard Guenther + + PR middle-end/50601 + * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation + quirk adjustjment ... + * passes.c (rest_of_decl_compilation): ... here. + +2011-12-06 Richard Guenther + + PR middle-end/51436 + * gimple-fold.c (gimplify_and_update_call_from_tree): Guard + vdef check for the fact we do not have virtual operands when + not optimizing. + +2011-12-06 Richard Guenther + + PR tree-optimization/51245 + * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): + New function. + (vn_reference_lookup_3): Use it. Properly valueize all refs + we create. + +2011-12-06 Iain Sandoe + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize + rs6000_current_abi. + +2011-12-06 Richard Guenther + + PR tree-optimization/51363 + * gimple.c (gimple_rhs_has_side_effects): Remove. + * gimple.h (gimple_rhs_has_side_effects): Likewise. + * tree-ssa-dom.c (optimize_stmt): Simplify conditional. + +2011-12-06 Alan Modra + + PR target/50906 + * config/rs6000/rs6000.c (rs6000_emit_prologue ): + Do not mark r11 setup as frame-related. Pass correct offset to + rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related + arguments. Correct sp_offset. Remove "offset" fudge from + in-line rs6000_frame_related call. Rename misleading variable. + Fix comments and whitespace. Tidy some expressions. + (rs6000_emit_epilogue ): Always set frame_reg_rtx + to r11 in out-of-line case. Correct sp_offset. Pass correct + offset to rs6000_emit_savres_rtx. Rename misleading variable. + Fix comments and whitespace. Tidy some expressions. + (rs6000_emit_epilogue ): Add sp_offset + adjustment when !saving_GPRs_inline. Correct register mode + used in address calcs. + (rs6000_emit_epilogue ): Similarly when + !restoring_GPRs_inline. + +2011-12-06 Ramana Radhakrishnan + + * config/arm/vfp.md (*combine_vcvt_f64_): Fix + formatting character for vmov.f64 case. + +2011-12-05 Jakub Jelinek + + PR tree-optimization/51396 + * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize + if MUL_RESULT has zero uses. + + PR debug/51410 + * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls + for debug info if scope is file_scope. + + PR c/51339 + * c-decl.c (c_finish_incomplete_decl, finish_decl): Call + relayout_decl instead of layout_decl. + +2011-12-05 Richard Sandiford + + * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK + if there is in epilogue. + 2011-12-05 Richard Sandiford * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target @@ -125,13 +572,15 @@ 2011-12-05 Ramana Radhakrishnan - * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. - * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. - * config/arm/constraints.md ("Dt"): New constraint. - * config/arm/predicates.md - (const_double_vcvt_power_of_two_reciprocal): New. - * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New. - (*arm_combine_vcvt_f32_u32): New. + * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. + * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. + * config/arm/constraints.md ("Dt"): New constraint. + * config/arm/predicates.md + (const_double_vcvt_power_of_two_reciprocal): New. + * config/arm/vfp.md (FCVTI32typename): New. + (FCVT): New iterator. + (*combine_vcvt_f32_): New. + (*combine_vcvt_f64_): New. 2011-12-05 Richard Guenther