OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ee84c7e..d02c8df 100644 (file)
@@ -1,3 +1,599 @@
+2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR middle-end/50873
+       * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
+       instead of force_reg.  Do nothing if the address is already a
+       non-virtual pseudo register.
+
+2011-12-12  Torvald Riegel  <triegel@redhat.com>
+
+       * gimplify.c (voidify_wrapper_expr): Add default handling for
+       outermost wrapper.
+
+2011-12-12  Torvald Riegel  <triegel@redhat.com>
+
+       * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
+       commits as equal.
+
+2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/darwin-sections.def (zobj_const_data_section): Fix over-
+       length section name.
+
+2011-12-11  Richard Henderson  <rth@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
+       BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
+
+2011-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <patrick.marlier@gmail.com>
+
+       * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
+       edge.
+
+2011-12-10  Richard Henderson  <rth@redhat.com>
+
+       * 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<VI>, vec_interleave_low<VI>): 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_64>,
+       vec_interleave_low<VEC_64>): Remove.
+       * config/rs6000/vsx.md (VS_double): New mode attribute.
+       (UNSPEC_VSX_XXPERMDI): Remove.
+       (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
+       (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
+       (vsx_xxpermdi_<VSX_L>): Change to expander.
+       (vec_perm_const<VSX_D>): New.
+       (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): 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  <rth@redhat.com>
+
+       * 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  <rth@redhat.com>
+
+       * 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  <joern.rennecke@embecosm.com>
+
+       * 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  <nathan@acm.org>
+
+       PR gcov-profile/51449
+       * coverage.c (coverage_end_function): Always process the coverage
+       variables.
+
+2011-12-09  Aldy Hernandez  <aldyh@redhat.com>
+
+       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  <ebotcazou@adacore.com>
+
+       * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
+       Also check the TYPE_MODE to recognize useless pointer conversions.
+
+2011-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <meissner@the-meissners.org>
+
+       * 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  <hongjiu.lu@intel.com>
+
+       PR bootstrap/51479
+       * Makefile.in (errors.o): Restored.
+
+2011-12-09  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48042
+       * tree.c (free_lang_data_in_decl): Remove freeing conditional
+       on debuginfo level.
+
+2011-12-09  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       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  <ktietz@redhat.com>
+
+       * 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  <avr@gjlay.de>
+
+       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  <jakub@redhat.com>
+           Andrew Pinski  <apinski@cavium.com>
+
+       PR tree-optimization/51117
+       * tree-eh.c (optimize_clobbers): New function.
+       (execute_lower_eh_dispatch): Call it.
+
+2011-12-09  Richard Guenther  <rguenther@suse.de>
+
+       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  <ktietz@redhat.com>
+
+       * implicit-zee.c (num_realized): Change type to long.
+       (num_ze_opportunities): Likewise.
+
+2011-12-08  Andrew Pinski  <apinski@cavium.com>
+
+       * 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  <wschmidt@linux.vnet.ibm.com>
+
+       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  <jakub@redhat.com>
+
+       PR tree-optimization/51466
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
+       TREE_SIDE_EFFECTS.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       * 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  <Andreas.Krebbel@de.ibm.com>
+
+       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  <rguenther@suse.de>
+
+       PR tree-optimization/49772
+       * tree-inline.c (optimize_inline_calls): Remove bail out
+       on errors.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/50747
+       * lto-streamer-out.c (produce_symtab): Remove asserts.
+
+2011-12-08  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/49945
+       * lto-streamer-out.c (tree_is_indexable): Localize variably
+       modified types and their FIELD_DECLs.
+
+2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       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  <rguenther@suse.de>
+
+       PR lto/48437
+       * lto-streamer-out.c (tree_is_indexable): Exclude block-local
+       extern declarations.
+
+2011-12-07  Andrew Pinski  <apinski@cavium.com>
+
+       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  <rguenther@suse.de>
+
+       PR tree-optimization/50823
+       * ipa-inline.c (edge_badness): Do not account for the number of
+       remaining calls.
+
+2011-12-07  Martin Jambor  <mjambor@suse.cz>
+
+       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 <joel.sherrill@oarcorp.com>
+
+       * config/rs6000/rtems.h: Switch to using global_options_set
+       in SUBSUBTARGET_OVERRIDE_OPTIONS.
+
+2011-12-06  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
+
+2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_file_start): Fix missing ,
+
+2011-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/51354
+       * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
+       unconditionally.
+
+2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
+
+       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  <avr@gjlay.de>
+
+       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  <avr@gjlay.de>
+
+       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  <rguenther@suse.de>
+
+       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  <rguenther@suse.de>
+
+       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  <rguenther@suse.de>
+
+       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  <iains@gcc.gnu.org>
+
+       * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
+       rs6000_current_abi.
+
+2011-12-06  Richard Guenther  <rguenther@suse.de>
+
+       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  <amodra@gmail.com>
+
+       PR target/50906
+       * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
+       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 <TARGET_SPE_ABI>): 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 <non-TARGET_SPE_ABI>): Add sp_offset
+       adjustment when !saving_GPRs_inline.  Correct register mode
+       used in address calcs.
+       (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
+       !restoring_GPRs_inline.
+
+2011-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
+       formatting character for vmov.f64 case.
+
+2011-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <rdsandiford@googlemail.com>
+
+       * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
+       if there is in epilogue.
+
+2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
+       to emit_library_call_value.
+       (expand_atomic_compare_and_swap): Likewise.
+
+2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR other/50775
+       * ira-int.h (struct ira_object): Remove add_data.
+       (OBJECT_ADD_DATA): Remove.
+
+       * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
+       initialization.
+
+       * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
+       allocno_hard_regs_t, allocno_hard_regs.
+       (object_hard_regs_node_t, object_hard_regs_node): Rename to
+       allocno_hard_regs_node_t and allocno_hard_regs_node.
+       (struct allocno_color_data): Add new member last_process.  Move
+       profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
+       from object_color_data.
+       (object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
+       Remove.
+       (curr_allocno_process): New static variable.
+       (object_hard_regs_eq, object_hard_regs_htab): Rename to
+       allocno_hard_regs_eq and allocno_hard_regs_htab.
+       (init_object_hard_regs, finish_object_hard_regs): Rename to
+       init_allocno_hard_regs and finish_allocno_hard_regs.
+       (object_hard_regs_compare, object_hard_regs_node_t): Rename to
+       allocno_hard_regs_compare and allocno_hard_regs_node_t.
+       (create_new_object_hard_regs_node): Rename to
+       create_new_allocno_hard_regs_node.
+       (add_new_object_hard_regs_node_to_forest): Rename to
+       add_new_allocno_hard_regs_node_to_forest.
+       (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
+       Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
+       (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
+       (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
+       (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
+       Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
+       (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
+       allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
+       (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
+       allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
+       (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
+       (setup_object_hard_regs_subnode_index): Rename to
+       setup_allocno_hard_regs_subnode_index.
+       (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
+       (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
+       (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
+       (finish_object_hard_regs_nodes_forest): Rename to
+       finish_allocno_hard_regs_nodes_forest.
+       (setup_left_conflict_sizes_p): Use allocno data instead of object
+       ones.  Process conflict allocnos once.
+       (update_left_conflict_sizes_p): Use allocno data instead of object
+       ones.  Change prototype signature.
+       (empty_profitable_hard_regs): Use allocno data instead of object
+       ones.
+       (setup_profitable_hard_regs): Ditto.
+       (get_conflict_profitable_regs): Rename to
+       get_conflict_and_start_profitable_regs.  Use allocno data for
+       profitable regs calculation.
+       (check_hard_reg_p): Change prototype signature.  Check profitable
+       regs for allocno not the objects.
+       (assign_hard_reg): Process conflict allocnos only once for
+       updating conflict costs.
+       (setup_allocno_available_regs_num): Use allocno data instead of
+       object ones.  Modify debug output.
+       (color_pass): Remove initialization and finalization of object
+       color data.
+
+2011-12-05  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR target/51408
+       * config/arm/arm.md (*minmax_arithsi): Always require the else
+       clause in the MINUS case.
+
+2011-12-05  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50904
+       * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
+       (MEM_ANALYZABLE): New.
+       (memory_references): Remove clobbered_vops and vop_ref_map
+       members, add all_refs_stored_in_loop member.
+       (memref_free): Adjust.
+       (mem_ref_alloc): Likewise.
+       (gather_mem_refs_stmt): Do not record clobbers, instead
+       record refs for unanalyzable stmts.
+       (gather_mem_refs_in_loops): Do not propagate clobbers.
+       (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
+       record_vop_access, get_vop_accesses, get_vop_stores,
+       add_vop_ref_mapping): Remove.
+       (create_vop_ref_mapping_loop): Adjust to simply record all
+       stores.
+       (analyze_memory_references): Adjust.
+       (refs_independent_p): Check for not analyzable refs.
+       (can_sm_ref_p): Likewise.
+       (ref_indep_loop_p_1): Simplify.
+       (tree_ssa_lim_finalize): Adjust.
+
+       * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
+       rather than magic constants.  Assign zero cost to PAREN_EXPR
+       and SSA_NAME copies.  Assign cost proportional to the vector
+       size for vector constructors.
+
+2011-12-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
+       * tree-ssa-alias.c (ao_ref_init): Initialize it.
+       (ao_ref_init_from_ptr_and_size): Likewise.
+       (refs_may_alias_p_1): Two volatile accesses conflict.
+       (ref_maybe_used_by_call_p_1): Likewise.
+       (call_may_clobber_ref_p_1): Likewise.
+       * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
+       volatile_p field.
+
+2011-12-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (verify_ssa): Verify SSA names in the loop
+       over all SSA names.  Remove SSA operand checking, call
+       verify_ssa_operands.
+       * tree-ssa-operands.h (verify_ssa_operands): Declare.
+       * tree-ssa-operands.c (verify_ssa_operands): New function.
+
+2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       * 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_<FCVTI32typename>): New.
+       (*combine_vcvt_f64_<FCVTI32typename>): New.
+
 2011-12-05  Richard Guenther  <rguenther@suse.de>
 
        * cgraph.c (cgraph_create_edge_1): Initialize