OSDN Git Service

Use maybe_expand_insn in maybe_emit_atomic_test_and_set.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dd524b2..0e81d1a 100644 (file)
+2012-01-27  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (gen_atomic_test_and_set): Remove default.
+       (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
+
+2012-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/51978
+       * ree.c (make_defs_and_copies_lists): Change set_pat type
+       to const_rtx.
+       (combine_reaching_defs): Likewise.
+       (struct re_info): Remove.
+       (add_removable_extension): Remove x and data arguments,
+       add insn, insn_list and def_map.  Use the arguments directly
+       instead of using struct re_info.
+       (find_removable_extensions): Don't call add_removable_extension
+       through note_stores, instead just call it with single_set
+       result if non-NULL.
+       (find_and_remove_re): Pass curr_cand->expr instead of
+       PATTERN (curr_cand->insn) as set_pat argument to
+       combine_reaching_defs.
+
+2012-01-26  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/46590
+       * cfgexpand.c: Revert last change (r183305).
+       * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
+       regs.
+       * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
+       checking for emptiness.
+
+2012-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/51895
+       * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
+       non-addressable non-BLKmode base correctly.
+
+2012-01-26  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/48794
+       * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
+       regions referenced from RESX/EH_DISPATCH.
+
+2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.h: Make BRANCH_COST an option.
+       * config/s390/s390.opt: New option -mbranch-cost.
+
+2012-01-26  Richard Henderson  <rth@redhat.com>
+
+       Revert 2012-01-24 change:
+       * trans-mem.c (requires_barrier): Do not instrument thread local
+       variables and emit save/restore for them.
+
+2012-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/51986
+       * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
+       for pat == 0.
+
+2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_small_data_pattern_1): Don't process
+       ASM_OPERANDS.
+
+2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49868
+       Rename __pgm to __flash.
+       Rename __pgm1 to __flash1.
+       Rename __pgm2 to __flash2.
+       Rename __pgm3 to __flash3.
+       Rename __pgm4 to __flash4.
+       Rename __pgm5 to __flash5.
+       Rename __pgmx to __memx.
+       * doc/extend.texi (AVR Named Address Spaces)
+       Rename address space names as indicated above.
+       * config/avr/avr.c (avr_addrspace): Ditto.
+
+       * config/avr/avr-protos.h
+       (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
+       (avr_mem_pgm_p): Rename to avr_mem_flash_p.
+       * config/avr/predicates.md: Ditto.
+       * config/avr/avr.c Ditto, and
+       (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
+       (avr_decl_pgm_p): Rename to avr_decl_flash_p.
+
+       * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
+       (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
+       (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
+       (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
+       (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
+       (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
+       (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
+       * config/avr/avr.c: Ditto.
+       * config/avr/avr.md: Ditto.
+
+2012-01-25  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51992
+       * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
+
+2012-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51987
+       * tree-data-ref.c (get_references_in_stmt): Handle references in
+       non-volatile GIMPLE_ASM.
+
+2012-01-25  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
+       bases are dereferenced.
+
+2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/48374
+       * sel-sched-ir.h (get_all_loop_exits): Check for zero successors. 
+
+2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
+
+       * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
+       compute_data_dependences_for_loop returns false.
+       * tree-parloops.c (loop_parallel_p): Likewise.
+
+2012-01-25  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (get_pointer_alignment_1): Declare.
+       * builtins.c (get_pointer_alignment_1): New function.
+       (get_pointer_alignment): Use it.
+
+2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR rtl-optimization/48308
+       * combine.c (enum undo_kind): Add UNDO_LINKS.
+       (struct undo): Add member l to other_contents and where.
+       (do_SUBST_LINK): New.
+       (SUBST_LINK): New.
+       (try_combine): Handle LOG_LINKS for the dummy i1 case.
+       (undo_all): Handle UNDO_LINKS.
+
+2012-01-25  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
+       mem inputs.
+
+2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * optabs.c (gen_atomic_test_and_set): Use each argument.
+
+2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
+       (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
+       (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
+       (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
+       (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
+       TARGET_PAIRED_SINGLE_FLOAT.
+
+2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
+       (in_struct, return_val): Remove MEM documentation.
+       * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
+       (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
+       (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
+       and MEM_SCALAR.
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
+       * cfgexpand.c (add_alias_set_conflicts): Likewise.
+       * expr.c (store_field): Likewise.
+       * function.c (assign_stack_temp_for_type): Likewise.
+       * ifcvt.c (noce_try_cmove_arith): Likewise.
+       * reload1.c (reload): Likewise.
+       * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
+       (alpha_set_memflags): Likewise.
+       * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
+
+2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (true_dependence, canon_true_dependence): Remove varies
+       parameter.
+       * alias.c (fixed_scalar_and_varying_struct_p): Delete.
+       (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
+       (true_dependence_1, true_dependence, canon_true_dependence): Remove
+       varies parameter.
+       * cselib.c (cselib_rtx_varies_p): Delete.
+       (cselib_invalidate_mem): Update call to canon_true_dependence.
+       * dse.c (record_store, check_mem_read_rtx): Likewise.
+       (scan_reads_nospill): Likewise.
+       * cse.c (check_dependence): Likewise.
+       (cse_rtx_varies_p): Delete.
+       * expr.c (safe_from_p): Update call to true_dependence.
+       * ira.c (validate_equiv_mem_from_store): Likewise.
+       (memref_referenced_p): Likewise.
+       * postreload-gcse.c (find_mem_conflicts): Likewise.
+       * sched-deps.c (sched_analyze_2): Likewise.
+       * store-motion.c (load_kills_store): Likewise.
+       * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
+       * gcse.c (mems_conflict_for_gcse_p): Likewise.
+       (compute_transp): Update call to canon_true_dependence.
+
+2012-01-25  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
+       (maybe_emit_atomic_test_and_set): New.
+       (expand_sync_lock_test_and_set): Use it.
+       (expand_atomic_test_and_set): Likewise.
+       * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
+       the implementation; clarify implementation defined details.
+       * doc/md.texi (atomic_test_and_set): Document.
+
+2012-01-25  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
+
+2012-01-25  Richard Henderson  <rth@redhat.com>
+
+       PR target/51968
+       * config/arm/arm.c (neon_split_vcombine): Emit deleted note
+       to effect no-op split.
+
+2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR lto/51698
+       * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
+       (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
+       (BT_FN_VOID_PTR_INT_SIZE): New.
+       (BT_FN_UINT_UINT_VAR): Remove.
+       (BT_FN_UINT32_UINT32_VAR): New.
+       (BT_FN_DOUBLE_VPTR): Remove.
+       (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
+
+       * gtm-builtins.def (_ITM_abortTransaction): Set return type to
+       void.
+       (_ITM_changeTransactionMode): Same.
+       (_ITM_memmoveRtWt): Change return type to void.
+       (_ITM_memcpyRtWt): Same.
+       (_ITM_memsetW): Same.
+       (_ITM_RaRD): Change types to double.
+       (_ITM_RD): Same.
+       (_ITM_RaWD): Same.
+       (_ITM_RfWD): Same.
+
+       * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
+
+2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
+           Patrick Marlier  <patrick.marlier@gmail.com>
+
+       * trans-mem.c (requires_barrier): Do not instrument thread local
+       variables and emit save/restore for them.
+
+2012-01-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51812
+       * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
+       output static aliases.
+
+2012-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR driver/47249
+       * common.opt (-pie, -shared, pie, shared): Change from Common to
+       Driver.
+       * gcc.c (display_help): Display help for -pie and -shared.
+
+2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49868
+       * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
+       Remove note on size/offset limitation.
+       (AVR Variable Attributes): Add example how to read data located
+       with progmem.  Refer to named address spaces.
+       * doc/invoke.texi (AVR Options): Fix typo.
+
+2012-01-24  Richard Guenther  <rguenther@suse.de>
+
+       Forward-port to trunk
+       2010-09-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/45678
+       * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
+       op0 isn't sufficiently aligned and there is movmisalignM
+       insn for mode, use it to load op0 into a temporary register.
+
+2012-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/51957
+       * target.def (const_not_ok_for_debug_p): New hook.
+       * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
+       documentation.
+       * doc/tm.texi: Regenerated.
+       * dwarf2out.c (const_ok_for_output_1): If
+       targetm.const_not_ok_for_debug_p returns true, fail.
+       * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
+       function.
+       (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
+
+2012-01-23  Kai Tietz  <ktietz@redhat.com>
+
+       PR target/51900
+       * config/i386/predicates.md (symbolic_operand): Allow
+       UNSPEC_PCREL as PIC expression for lea.
+       * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
+       * config/i386/i386.c (ix86_delegitimize_address): Handle
+       UNSPEC_PCREL for none-MEM, too.
+
+2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
+
+       * trans-mem.c (ipa_tm_create_version): Set externally_visible.
+       (ipa_tm_create_version_alias): Same.
+
+2012-01-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR libitm/51830
+       * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
+       * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
+
+2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
+           Patrick Marlier  <patrick.marlier@gmail.com>
+           Iain Sandoe  <developer@sandoe-acoustics.co.uk>
+
+       PR lto/51916
+       * lto-wrapper.c (run_gcc): Pass the LTO section name to
+       simple_object_start_read.
+
+2012-01-23  Richard Guenther  <rguenther@suse.de>
+
+
+       PR tree-optimization/51895
+       * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
+       parameter decomposition into BLKmode components.
+
+2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
+       fake variables for restrict-qualified pointers whose pointed-to type
+       contains a placeholder.
+
+2012-01-23  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/51949
+       * ipa-split.c (execute_split_functions): Do not split malloc functions.
+
+2012-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/51933
+       * ree.c (transform_ifelse): Return true right away if dstreg is
+       already wider or equal to cand->mode.
+       (enum ext_modified_kind, struct ext_modified, ext_state): New types.
+       (make_defs_and_copies_lists): Remove defs_list and copies_list
+       arguments, add state argument, just truncate state->work_list
+       instead of always allocating and freeing the vector.  Assert that
+       get_defs succeeds instead of returning 2.  Changed return type to bool.
+       (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
+       have ext_src_mode, see if it has been modified already with the
+       right kind of extension and has been extended before from the
+       ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
+       just return true.  Remember the original mode in state->modified array.
+       (combine_reaching_defs): Add state argument.  Don't allocate and
+       free here def_list, copied_list and vec vectors, instead just
+       VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
+       (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
+       Add state variable, clear vectors in it, initialize state.modified
+       if needed.  Free all the vectors at the end and state.modified too.
+       Don't skip a candidate if the extension expression has been modified.
+
+2012-01-22  Douglas B Rupp  <rupp@gnat.com>
+
+       PR target/47096
+       * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
+        configurations. Change triplet to i[34567]86-*-interix[3-9]*.
+       (extra_options) interix.opt -> i386/interix.opt"
+       (extra_objs):Add winnt-stubs.o
+       * configure.ac: Add interix to target_os .comm on PE check.
+       * configure: Regenerate.
+       * config/interix3.h: Delete and move bits to..
+       * config/interix.h: Delete and move bits to..
+       * config/i386/i386-interix3.h: Delete and move bits to..
+       * config/i386/i386-interix.h: ..here.
+       (TARGET_CPU_DEFAULT): Remove redefinition.
+       (TARGET_ASM_CONSTRUCTOR): Undefine.
+       (SUBTARGET_SWITCHES): Define for ms-bitfields.
+       (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
+       (PTRDIFF_TYPE): Define.
+       (LONG_DOUBLE_TYPE_SIZE): Define.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
+       (SUBTARGET_OVERRIDE_OPTIONS): Remove.
+       (TARGET_SECTION_TYPE_FLAGS): Define.
+       (ASM_DECLARE_FUNCTION_NAME): Define.
+       (ASM_OUTPUT_EXTERNAL): Define.
+       (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
+       (ASM_OUTPUT_ALIGNED_BSS): Define.
+       (PCC_BITFIELD_TYPE_MATTERS): Define.
+       (USE_CONST_SECTION): Define.
+       (SUBTARGET_ENCODE_SECTION_INFO): Remove.
+       (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
+       (SUPPORTS_ONE_ONLY): Remove.
+       (I386_PE_STRIP_ENCODING): Define.
+       * config/interix.opt: Delete and move bits to..
+       * config/i386/interix.opt: ..here. New.
+       (mpe-aligned-commons): Add.
+       * config/i386/t-interix: Add copyright header.
+       (winnt-stubs.o): Add rule.
+
+2012-01-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51832
+       * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
+       for extra name aliases.
+
+2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/51924
+       * ree.c (combine_set_extension): Improve debugging message.
+       (combine_reaching_defs): Likewise.
+       (get_defs): Rename confusingly named variable.
+       (find_and_remove_re): Skip a candidate if the extension expression has
+       been modified.
+
+2012-01-21  Robert Millan  <rmh@gnu.org>
+           Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
+       (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
+
+2012-01-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51914
+       * tree-vect-stmts.c (vectorizable_conversion): For
+       cvt_type && modifier == WIDEN, put temporary with cvt_type
+       at the beginning of vec_dsts and set vec_dest to temporary
+       with vectype_out.
+
+2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
+
+2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
+
+       * config/i386/i386.c: Fix checks for !TARGET_MACHO.
+       * config/rs6000/rs6000.c: Likewise.
+
+2012-01-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/51915
+       * config/arm/arm.c (arm_count_output_move_double_insns): Call
+       output_move_double on a copy of operands array.
+
+2012-01-20  Cary Coutant  <ccoutant@google.com>
+           Dodji Seketeli  <dodji@redhat.com>
+
+       PR debug/45682
+       * dwarf2out.c (copy_declaration_context): Return ref to parent
+       of declaration DIE, if necessary.
+       (remove_child_or_replace_with_skeleton): Add new parameter; update
+       caller.  Place skeleton DIE under parent DIE of original declaration.
+       Move call to copy_declaration_context to here ...
+       (break_out_comdat_types): ... from here.
+
+2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       PR rtl-optimization/51856
+       * reload.c (find_reloads_subreg_address): Set the address_reloaded
+       flag to reloaded.
+
+2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/51819
+       * config/arm/arm.c (arm_print_operand): Correct output of alignment
+       hints for neon loads and stores.
+
+2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49868
+       PR target/50887
+       * doc/extend.texi (Named Address Spaces): Split into subsections.
+       (AVR Named Address Spaces): New subsection.
+       (M32C Named Address Spaces): New subsection.
+       (RL78 Named Address Spaces): New subsection.
+       (SPU Named Address Spaces): New subsection.
+       (Variable Attributes): New anchor "AVR Variable Attributes".
+       (AVR Variable Attributes): Rewrite and avoid wording
+       "address space" in this context.
+       * doc/invoke.texi (AVR Options): Rewrite and add documentation
+       for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
+       (AVR Built-in Macros): New subsubsection therein.
+       * doc/md.texi (AVR constraints): Remove "C04", "R".
+
+2012-01-20  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/51903
+       * tree-ssa-pre.c (eliminate): Properly purging of EH edges
+       when removing stmts.
+
+2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/50313
+       * config/arm/arm.c (arm_load_pic_register): Use
+       gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
+       , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
+       (arm_pic_static_addr): Likewise.
+       (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
+       (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
+       * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
+       (pic_load_addr_unified): New.
+
+2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR target/51106
+       * function.c (instantiate_virtual_regs_in_insn): Use
+       delete_insn_and_edges when removing a wrong asm insn.
+
+2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/40761
+       * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
+       Add new member loop_num.
+       (IRA_LOOP_NODE_BY_INDEX): Modify the check.
+       (ira_build): Remove the parameter.
+
+       * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
+       (ira.c): Do not build CFG loops for one region allocation.  Remove
+       argument from ira_build call.
+
+       * ira-build.c (init_loop_tree_node): New function.
+       (create_loop_tree_nodes): Use it.  Separate the case when CFG
+       loops are not built.
+       (more_one_region_p): Check current_loops.
+       (finish_loop_tree_nodes): Separate the case when CFG loops are not
+       built.
+       (add_loop_to_tree): Process loop equal to NULL too.
+       (form_loop_tree): Separate the case when CFG loops are not built.
+       Use explicitly number for the root.
+       (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
+       an assertion.
+       (ira_print_expanded_allocno, loop_compare_func): Use loop_num
+       instead of loop->num.
+       (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
+       (mark_all_loops_for_removal): Ditto.
+       (remove_unnecessary_regions): Separate the case when CFG loops
+       are not built.
+       (ira_build): Remove the parameter.  Use explicit number of regions
+       when CFG loops are not built.
+
+       * ira-color.c (print_loop_title): Separate the case for the root node.
+       Use loop_num instead of loop->num.
+       (move_spill_restore): Use loop_num instead of loop->num.
+
+       * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
+       (change_loop): Ditto.
+       (change_loop): Use loop_num instead of loop->num.
+
+       * ira-lives.c (process_bb_node_lives): Ditto.
+
+       * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
+
+       * ira-conflicts.c (print_allocno_conflicts): Ditto.
+
+2012-01-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libmudflap/40778
+       * tree-mudflap.c (mf_artificial): New function.
+       (execute_mudflap_function_ops, execute_mudflap_function_decls,
+       mx_register_decls, mudflap_enqueue_decl): Use it.
+
+       PR target/51876
+       * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
+       numbers in the insn pattern.
+
+2012-01-19  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/46590
+       * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
+       use it in remembering which conflicts we already created.
+       (add_scope_conflicts): Adjust call to above, (de)allocate helper
+       bitmap.
+
+2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR lto/51280
+       * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
+       (merge_and_complain): Same.
+
+2012-01-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/50237
+       * config/initfini-array.h: Guard content of the header
+       with #ifdef HAVE_INITFINI_ARRAY.
+       * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
+       Add initfini-array.h to tm_file here.
+       * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
+       * config.gcc: Don't add initfini-array.h to tm_file here.
+       * configure: Regenerated.
+
+2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/51505
+       * df-problems.c (df_kill_notes): New parameter live. Update comment.
+       Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
+       (df_note_bb_compute): Update the call to df_kill_notes.
+
+2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
+
+       * trans-mem.c (requires_barrier): Remove call to is_global_var.
+
+2012-01-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (useless_type_conversion_p): Remove special-casing
+       of conversions to void *.
+
+2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR middle-end/50325
+       PR middle-end/51192
+       * optabs.h (simplify_expand_binop): Declare.
+       * optabs.c (simplify_expand_binop): Make global.
+       * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
+       endian targets if the source cannot be exactly covered by word
+       mode chunks.
+
+2012-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/51872
+       * hard-reg-set.h (struct hard_reg_set_container): New type.
+       * target.h (struct hard_reg_set_container): Forward declare.
+       * target.def (set_up_by_prologue): New target hook.
+       * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
+       * doc/tm.texi: Regenerated.
+       * function.c (thread_prologue_and_epilogue_insns): Change
+       set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
+       Call targetm.set_up_by_prologue on it.
+       * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
+       (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
+
+2012-01-17  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (rx_can_use_simple_return): New function.
+       * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
+       * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
+
+2012-01-17  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51782
+       * expr.c (expand_assignment): Take address-space information
+       from the address operand of MEM_REF and TARGET_MEM_REF.
+       (expand_expr_real_1): Likewise.
+
+2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * ira.c (do_reload): Make sure ira_dump_file is re-set if no
+       reload dump is requested.
+
+2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR other/51165
+       * trans-mem.c (requires_barrier): Call may_be_aliased.
+
+2012-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51877
+       * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
+       call arguments and fndecls compare equal, instead return false if they
+       don't.  Return true only if lhs1 and lhs2 are either both NULL, or
+       both SSA_NAMEs that are valueized the same, or they satisfy
+       operand_equal_p.
+
+2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
+       Solaris 11+.
+       * configure: Regenerate.
+
+2012-01-16  Jan Hubicka  <jh@suse.cz>
+
+       PR c/12245
+       PR c++/14179
+       * convert.c (convert_to_integer): Use fold_convert for
+       converting an INTEGER_CST to integer type.
+
+2012-01-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/14179
+       * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
+
+2012-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/51860
+       * config/s390/s390.c (s390_chunkify_start): Don't skip
+       call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
+       NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
+       If insn is followed by NOTE_INSN_VAR_LOCATION or
+       NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
+       Don't use location of note insns.
+
+       PR tree-optimization/51865
+       * tree-inline.c (tree_function_versioning): Call remap_decl
+       on DECL_RESULT whenever it has VOID_TYPE_P type.
+
+2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
+       for calls to locally-binding MIPS16 functions if only the return
+       type uses float regs.
+
+2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
+       (SYMBOL_32_HIGH): Likewise.
+       (mips_output_tls_reloc_directive): Declare.
+       * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
+       (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
+       * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
+       (mips_lo_relocs, mips_hi_relocs): Make extern.
+       (mips16_stub_function): Move up file.
+       (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
+       (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
+       (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
+       (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
+       SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
+       (mips_get_tp): Add MIPS16 support.
+       (mips_legitimize_tls_address): Remove MIPS16 sorry().
+       Generalize DTPREL and TPREL handling.
+       (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
+       Add MIPS16 TLS support.
+       (mips_output_tls_reloc_directive): New function.
+       (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
+       * config/mips/predicates.md (symbolic_operand_with_high)
+       (tls_reloc_operand): New predicates.
+       (force_to_mem_operand): Use mips_use_pcrel_pool_p.
+       * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
+       (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
+       (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
+       (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
+       (*tls_get_tp_mips16_call_<mode>): Likewise.
+
+2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR rtl-optimization/51821
+       * recog.c (peep2_find_free_register): Determine clobbered registers
+       from insn pattern.
+
+2012-01-14  Denis Chertykov  <chertykov@gmail.com>
+
+       PR target/50925
+       * config/avr/avr-protos.h: Revert change of 2012-01-09.
+       * config/avr/avr.c: Likewise.
+       * config/avr/avr.h: Likewise.
+
+2012-01-13  Ian Lance Taylor  <iant@google.com>
+
+       PR c++/50012
+       * tree.h (TYPE_QUALS): Add cast to int.
+       (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
+
+2012-01-13  Ian Lance Taylor  <iant@google.com>
+
+       * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
+       comparing param_index to VEC_length result.
+
+2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * c-decl.c: Do not include tree-mudflap.h
+       * tree-optimize.c: Likewise.
+       * Makefile.in: Update dependencies.
+
+2012-01-13  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/8081
+       * gimplify.c (gimplify_modify_expr_rhs): For calls with a
+       variable-sized result always use RSO.
+
+2012-01-12  DJ Delorie  <dj@redhat.com>
+
+       * cfgexpand.c (convert_debug_memory_address): Allow any valid
+       pointer type, not just the default pointer type.
+
+2012-01-09  Richard Henderson  <rth@redhat.com>
+           Denis Chertykov  <chertykov@gmail.com>
+
+       PR target/50925
+       * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
+       * config/avr/avr.c (avr_can_eliminate): Simplify.
+       (avr_initial_elimination_offset): Likewise.
+       (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
+       (expand_epilogue): Likewise.
+       (avr_legitimize_address): Gut.
+       (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
+       (avr_hard_regno_nregs): New.
+       (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
+       (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
+       * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
+       add soft frame pointer.
+       (CALL_USED_REGISTERS): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       (REGISTER_NAMES): Likewise.
+       (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
+       (HARD_FRAME_POINTER_REGNUM): New.
+       (FRAME_POINTER_REGNUM): Use soft frame pointer.
+       (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
+       remove the HARD_FRAME_POINTER self-elimination.
+
+2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/51756
+       * config/avr/avr.c (avr_encode_section_info): Test for absence of
+       DECL_EXTERNAL when checking for initializers of progmem variables.
+
+2012-01-12  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/51799
+       * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
+       that the last operation is a type demotion.
+
+2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
+       (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
+
+2012-01-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/51796
+       * combine.c (distribute_notes): If i3 is a noreturn call,
+       allow old_size to be equal to args_size and make sure the
+       noreturn call gets REG_ARGS_SIZE note.
+       * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
+       on noreturn calls even when the delta is 0.
+
+2012-01-11  Nathan Sidwell  <nathan@acm.org>
+
+       * gcov.c (STRING_SIZE): Remove.
+       (generate_results): Erase annotations for source files with no
+       coverage information.
+       (read_line): New.
+       (output_lines): Use it.
+
+2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.h (gimplify_body): Remove first argument.
+       * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
+       pointer set here, instead just pass DATA to walk_tree.
+       (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
+       set here and invoke copy_if_shared on the size trees of DECL_RESULT.
+       (unvisit_body): Likewise, but with unmark_visited.
+       (gimplify_body): Remove BODY_P argument and adjust.
+       (gimplify_function_tree): Adjust call to gimplify_body.
+       * omp-low.c (finalize_task_copyfn): Likewise.
+
+2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (build_function_decl_skip_args): Add boolean parameter.
+       (build_function_type_skip_args): Delete.
+       * tree.c (build_function_type_skip_args): Make static and add
+       SKIP_RETURN parameter.  Fix thinko in the handling of variants.
+       (build_function_decl_skip_args): Add SKIP_RETURN parameter and
+       pass it to build_function_type_skip_args.
+       * cgraph.h (cgraph_function_versioning): Add boolean parameter.
+       (tree_function_versioning): Likewise.
+       * cgraph.c (cgraph_create_virtual_clone): Adjust call to
+       build_function_decl_skip_args.
+       * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
+       and pass it to build_function_decl_skip_args/tree_function_versioning.
+       (cgraph_materialize_clone): Adjust call to tree_function_versioning.
+       * ipa-inline-transform.c (save_inline_function_body): Likewise.
+       * trans-mem.c (ipa_tm_create_version): Likewise.
+       * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
+       * tree-inline.c (declare_return_variable): Remove always-true test.
+       (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
+       returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
+       * ipa-split.c (split_function): Skip the return value for the split
+       part if it doesn't return.
+
+2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/49642
+       * ipa-split.c (forbidden_dominators): New variable.
+       (check_forbidden_calls): New function.
+       (dominated_by_forbidden): Likewise.
+       (consider_split): Check for forbidden dominators.
+       (execute_split_functions): Initialize and free forbidden
+       dominators info; call check_forbidden_calls.
+
+2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/arm.md (mov_notscc): Use MVN for false condition.
+
+2012-01-11  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.md (return): Define pattern.
+
+2012-01-11  Richard Guenther  <rguenther@suse.de>
+
+       * doc/extend.texi (malloc attribute): Adjust according to
+       implementation.
+
+2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
+           Patrick Marlier  <patrick.marlier@gmail.com>
+
+       PR middle-end/51516
+       * trans-mem.c (get_cg_data): Traverse aliases if requested.
+       (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
+       (ipa_tm_note_irrevocable): Same.
+       (ipa_tm_scan_irr_block): Same.
+       (ipa_tm_decrement_clone_counts): Same.
+       (ipa_tm_scan_irr_function): Same.
+       (ipa_tm_create_version_alias): Same.
+       (ipa_tm_create_version): Same.
+       (ipa_tm_transform_calls_redirect): Same.
+       (ipa_tm_transform_calls): Same.
+       (ipa_tm_transform_transaction): Same.
+       (ipa_tm_execute): Same.
+
+2012-01-10  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51806
+       * opts.c (common_handle_option): Handle -Werror.
+
+2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
+       operand number.
+
+2012-01-10  Jason Merrill  <jason@redhat.com>
+
+       * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
+       information.
+
+2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
+       supports R_386_TLS_GD_PLT reloc.
+       (gcc_cv_as_ix86_tlsldmplt): Check if linker
+       supports R_386_TLS_LDM_PLT reloc.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49868
+       Extend __pgmx semantics to linearize memory.
+       * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
+       determine if code comes inline or from libgcc.
+       (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
+       (movmem_qi, movmem_qi): Set constraint #2 to "n".
+       (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
+       (movmemx_qi, movmemx_hi): New insns.
+       (xload_<mode>_libgcc): Rewrite to new insn condition.
+       (xload_<mode>): Remove insns.
+       * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
+       cases that don't satisfy avr_xload_libgcc_p().
+       (avr_addr_space_convert): Allow converting in any direction.
+       (avr_addr_space_subset_p): Return always true.
+       (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
+       (avr_emit_movmemhi): Ditto.
+       (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
+       (avr_out_movmem): Ditto.
+       (AVR_SYMBOL_FLAG_PROGMEM): New macro.
+       (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
+       (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
+       (avr_encode_section_info): Encode 'progmem' in symbol flags.
+       (output_reload_in_const): Don't zero-extend any 24-bit symbols.
+
+2012-01-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50913
+       * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
+       Require data-refs to be representable by Graphite with respect
+       to any loop nest.
+
+2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/constraints.md ("L"): Return true for 0xffffffff.
+       * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
+
+2012-01-10  Tom de Vries  <tom@codesourcery.com>
+
+       PR rtl-optimization/51271
+       * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
+       handling annulled branch.
+
+2012-01-10  Richard Henderson  <rth@redhat.com>
+
+       * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
+       TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
+       struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
+       arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
+       arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
+       arm_expand_vec_perm_const): New.
+       * config/arm/arm-protos.h: Update.
+       * config/arm/neon.md (UNSPEC_VCONCAT): New.
+       (*neon_vswp<VDQX>): New.
+       (neon_vcombine<VDX>): Use neon_split_vcombine.
+       (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
+       * config/arm/vec-common.md (vec_perm_const<VALL>): New.
+       (vec_perm<VE>): New.
+
+2012-01-10  Richard Henderson  <rth@redhat.com>
+
+       * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
+       use it if reload_completed.
+       (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
+       arm_output_asm_insn, arm_process_output_memory_barrier,
+       arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
+       arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
+       arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
+       arm_process_output_sync_insn, arm_output_sync_insn,
+       arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
+       (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
+       (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
+       (emit_unlikely_jump): New.
+       (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
+       (arm_split_atomic_op): New.
+       * config/arm/arm-protos.h: Update.
+       * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
+       (struct arm_sync_generator): Remove.
+       * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
+       VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
+       (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
+       (VUNSPEC_LL, VUNSPEC_SC): New.
+       (sync_result, sync_memory, sync_required_value, sync_new_value,
+       sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
+       (attr length): Don't use arm_sync_loop_insns.
+       (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
+       (movsfcc, movdfcc): Likewise.
+       * config/arm/constraints.md (Ua): New.
+       * config/arm/prediates.md (mem_noofs_operand): New.
+       (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
+       (sync_clobber, sync_t2_reqd): Remove.
+       (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
+       (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
+       (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
+       (arm_sync_compare_and_swap<SIDI>): Remove.
+       (arm_sync_compare_and_swap<NARROW>): Remove.
+       (arm_sync_lock_test_and_set<SIDI>): Remove.
+       (arm_sync_lock_test_and_set<NARROW>): Remove.
+       (arm_sync_new_<syncop><SIDI>): Remove.
+       (arm_sync_new_<syncop><NARROW>): Remove.
+       (arm_sync_new_nand<SIDI>): Remove.
+       (arm_sync_new_nand<NARROW>): Remove.
+       (arm_sync_old_<syncop><SIDI>): Remove.
+       (arm_sync_old_<syncop><NARROW>): Remove.
+       (arm_sync_old_nand<SIDI>): Remove.
+       (arm_sync_old_nand<NARROW>): Remove.
+       (*memory_barrier): Merge arm_output_memory_barrier.
+       (atomic_compare_and_swap<QHSD>): New.
+       (atomic_compare_and_swap<NARROW>_1): New.
+       (atomic_compare_and_swap<SIDI>_1): New.
+       (atomic_exchange<QHSD>): New.
+       (cas_cmp_operand, cas_cmp_str): New.
+       (atomic_op_operand, atomic_op_str): New.
+       (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
+       (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
+       (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
+       (arm_load_exclusive<NARROW>): New.
+       (arm_load_exclusivesi, arm_load_exclusivedi): New.
+       (arm_store_exclusive<QHSD>): New.
+
+2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
+       reload patterns if -mvsx-scalar-memory.
+
+       * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
+       generated, even -mno-vsx-scalar-double was used.
+       (vsx_xscvdpsp_scalar): Likewise.
+       (vsx_xscvspdp_scalar2): Likewise.
+
+2012-01-09  Tom de Vries  <tom@codesourcery.com>
+           Andrew Pinski  <apinski@cavium.com>
+
+       PR debug/51471
+       * reorg.c (fill_slots_from_thread): Don't speculate
+       frame-related insns.
+
+2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * sched-int.h (bb_note): Move to...
+       * basic-block.h: ...here.
+       * haifa-sched.c (bb_note): Move to...
+       * cfgrtl.c: ...here.
+       * function.c (next_block_for_reg): New function.
+       (move_insn_for_shrink_wrap): Likewise.
+       (prepare_shrink_wrap): Rewrite to use the above.
+
+2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gimple.c (is_gimple_non_addressable): Remove.
+       * gimple.h: Remove is_gimple_non_addressable.
+       * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
+       is_gimple_non_addressable.
+       * trans-mem.c (expand_assign_tm): Same.
+
+2012-01-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/51775
+       * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
+       * tree-ssa-pre.c (eliminate): Properly fixup EH info.
+
+2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
+       tuning parameters.
+       * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
+
 2012-01-09  Richard Guenther  <rguenther@suse.de>
 
        * tree-streamer-out.c (write_ts_optimization): Fix spelling.
 2012-01-06  Torvald Riegel  <triegel@redhat.com>
 
        PR rtl-optimization/51771
-       * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST):
-       New.
+       * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
        * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
 
 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>