diff gcc/ChangeLog-2011 @ 16:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/ChangeLog-2011	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,40041 @@
+2011-12-31  Alexandre Oliva  <aoliva@redhat.com>
+
+	* cselib.h (cselib_add_permanent_equiv): Declare.
+	(canonical_cselib_val): New.
+	* cselib.c (new_elt_loc_list): Rework to support value
+	equivalences.  Adjust all callers.
+	(preserve_only_constants): Retain value equivalences.
+	(references_value_p): Retain preserved values.
+	(rtx_equal_for_cselib_1): Handle value equivalences.
+	(cselib_invalidate_regno): Use canonical value.
+	(cselib_add_permanent_equiv): New.
+	* alias.c (find_base_term): Reset locs lists while recursing.
+	* var-tracking.c (val_bind): New.  Don't add equivalences
+	present in cselib table, compared with code moved from...
+	(val_store): ... here.
+	(val_resolve): Use val_bind.
+	(VAL_EXPR_HAS_REVERSE): Drop.
+	(add_uses): Do not create MOps for addresses.  Do not mark
+	non-REG non-MEM expressions as requiring resolution.
+	(reverse_op): Record reverse as a cselib equivalence.
+	(add_stores): Use it.  Do not create MOps for addresses.
+	Do not require resolution for non-REG non-MEM expressions.
+	Simplify support for reverse operations.
+	(compute_bb_dataflow): Drop reverse support.
+	(emit_notes_in_bb): Likewise.
+	(create_entry_value): Rename to...
+	(record_entry_value): ... this.  Use cselib equivalences.
+	(vt_add_function_parameter): Adjust.
+
+2011-12-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	* config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko
+	in setting options via target #pragma or attribute.
+
+2011-12-30  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+	* config/bfin/bfin-protos.h (bfin_register_move_cost,
+	bfin_memory_move_cost): Remove.
+	* config/bfin/bfin.c (bfin_register_move_cost,
+	bfin_memory_move_cost): Make static. Change arguments type from
+	enum reg_class to reg_class_t and from int to bool.
+	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
+
+2011-12-30  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (total_lines, total_executed): New global vars.
+	(generate_results): Call executed_summary.
+	(executed_summary): New function, broken out of ...
+	(function_summary): ... here.  Call it.
+	* coverage.c (coverage_finish): Also check for local_tick == -1.
+	* gcov-dump (tag_function): Correct labelling typo.
+
+2011-12-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	PR target/51623
+	* config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check
+	for an initialized pointer being in a text section with
+	-mrelocatable, since it should never happen.
+
+2011-12-29  Michael Eager  <eager@eagercon.com>
+
+	* config/microblaze/microblaze.md: Add expander for simple_return,
+	return, add return_internal and simple_return_internal insns.
+
+2011-12-29  Oleg Endo  <olegendo@gcc.gnu.org>
+
+	* config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable.
+	* config/sh/sh.c (sh_option_override): Simplify sh_branch_cost
+	expression.
+
+2011-12-28  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go.
+
+2011-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	PR target/51623
+	* config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call
+	unlikely_text_section_p.  Instead check for being in a code section.
+
+2011-12-28  Ira Rosen  <irar@il.ibm.com>
+
+	PR tree-optimization/51684
+	* tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
+	statement in case of a pattern.
+	(vect_schedule_slp): Likewise.
+
+2011-12-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/51667
+	* ree.c (insn_merge_code): Delete.
+	(is_insn_merge_attempted): Likewise.
+	(get_insn_status): Likewise.
+	(set_insn_status): Likewise.
+	(struct ext_cand): Add CODE and MODE fields.
+	(combine_set_extend): Rename to...
+	(combine_set_extension): ...this.  Use above fields and tidy up.
+	(transform_ifelse): Likewise.
+	(get_defs): Return the chain of definitions.
+	(is_this_a_cmove): Merge into...
+	(is_cond_copy_insn): ...this.  Return bool.
+	(make_defs_and_copies_lists): Adjust calls to get_defs and simplify.
+	(merge_def_and_ext): Adjust call to combine_set_extend.
+	(combine_reaching_defs): Remove calls to {g|s}et_insn_status.
+	(struct extend_info): Rename to...
+	(struct re_info): ...this.  Add DEF_MAP field.
+	(add_ext_candidate): Merge into...
+	(add_removable_extension): ...this.  Adjust calls to get_defs.  Ensure
+	reaching definitions are associated with only one kind of extension.
+	(find_removable_extensions): Create and destroy the definition map.
+	(find_and_remove_re): Return void.  Change 'long' variables to 'int'.
+	Do not deal with is_insn_merge_attempted.
+
+2011-12-25  Jan Hubicka  <jh@suse.cz>
+
+	PR middle-end/48641
+	* tree-ssa-threadupdate.c (redirect_edges): Watch for overflow.
+
+2011-12-26  Oleg Endo  <oleg.endo@t-online.de>
+
+	* config/sh/sync.md: Add soft atomics ABI description.
+	(fetchop_name): Use 'or' instead of 'ior'.
+	(fetchop_insn): Remove.
+	(atomic_compare_and_swap<mode>_soft):
+	Don't insert aligning nop after the write-back instruction.  Fix
+	multi-line asm output formatting style.
+	(atomic_fetch_<fetchop_name><mode>_soft): Likewise.
+	(atomic_fetch_nand<mode>_soft): Likewise.
+	(atomic_<fetchop_name>_fetch<mode>_soft): Likewise.
+	(atomic_nand_fetch<mode>_soft): Likewise.
+
+2011-12-23  Richard Henderson  <rth@redhat.com>
+
+	* tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove.
+	* cfgexpand.c (expand_debug_expr): Don't handle them.
+	* expr.c (expand_expr_real_2): Likewise.
+	* fold-const.c (fold_binary_loc): Likewise.
+	* gimple-pretty-print.c (dump_binary_rhs): Likewise.
+	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
+	* tree-inline.c (estimate_operator_cost): Likewise.
+	* tree-pretty-print.c (dump_generic_node): Likewise.
+	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
+	* optabs.c (optab_for_tree_code): Likewise.
+	(can_vec_perm_for_code_p): Remove.
+	(expand_binop): Don't try it.
+	(init_optabs): Don't init vec_extract_even/odd_optab.
+	* genopinit.c (optabs): Likewise.
+	* optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove.
+	(vec_extract_even_optab, vec_extract_odd_optab): Remove.
+	* tree-vect-data-refs.c (vect_strided_store_supported): Tidy code.
+	(vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of
+	GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of
+	asserting vect_strided_store_supported.
+	(vect_strided_load_supported): Use can_vec_perm_p.
+	(vect_permute_load_chain): Use VEC_PERM_EXPR.
+
+	* doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove.
+	(VEC_EXTRACT_ODD_EXPR): Remove.
+	* doc/md.texi (vec_extract_even, vec_extract_odd): Remove.
+
+2011-12-23  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+	* config/score/score-protos.h (score_register_move_cost): Remove.
+	* config/score/score.c (TARGET_REGISTER_MOVE_COST): Define.
+	(score_register_move_cost): Make static. Change arguments type from
+	enum reg_class to reg_class_t.
+
+2011-12-23  Jakub Jelinek  <jakub@redhat.com>
+	    Richard Henderson  <rth@redhat.com>
+
+	* tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove.
+	* gimple-pretty-print.c (dump_binary_rhs): Don't handle
+	VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
+	* expr.c (expand_expr_real_2): Likewise.
+	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
+	* cfgexpand.c (expand_debug_expr): Likewise.
+	* tree-inline.c (estimate_operator_cost): Likewise.
+	* tree-pretty-print.c (dump_generic_node): Likewise.
+	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
+	* fold-const.c (fold_binary_loc): Likewise.
+	* doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR,
+	VEC_INTERLEAVE_LOW_EXPR): Remove documentation.
+	* optabs.c (optab_for_tree_code): Don't handle
+	VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
+	(expand_binop, init_optabs): Remove vec_interleave_high_optab
+	and vec_interleave_low_optab.
+	* genopinit.c (optabs): Likewise.
+	* optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove.
+	(vec_interleave_high_optab, vec_interleave_low_optab): Remove.
+	* doc/md.texi (vec_interleave_high, vec_interleave_low): Remove
+	documentation.
+	* tree-vect-stmts.c (gen_perm_mask): Renamed to...
+	(vect_gen_perm_mask): ... this.  No longer static.
+	(perm_mask_for_reverse, vectorizable_load): Adjust callers.
+	* tree-vectorizer.h (vect_gen_perm_mask): New prototype.
+	* tree-vect-data-refs.c (vect_strided_store_supported): Don't try
+	VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of
+	can_vec_perm_for_code_p.
+	(vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving
+	masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
+	* config/i386/i386.c (expand_vec_perm_interleave2): If
+	expand_vec_perm_interleave3 would handle it, return false.
+	(expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab.
+
+2011-12-23  Richard Henderson  <rth@redhat.com>
+
+	* config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0,
+	UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2,
+	UNSPEC_LOONGSON_PINSR_3): Replace with...
+	(UNSPEC_LOONGSON_PINSRH): ... this.
+	(UNSPEC_LOONGSON_VINIT): New.
+	(UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New.
+	(VWB): New mode iterator.
+	(V_inner): New mode attribute.
+	(loongson_vec_init1_<VHB>): New.
+	(*vec_concatv2si): New.
+	(and<VWHB>3, ior<VWHB>3, xor<VWHB>3, one_cmpl<VWHB>2): New.
+	(*loongson_nor): New.
+	(loongson_pextrh): Un-macro-ify.
+	(loongson_pmaddhw): Likewise.
+	(smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise.
+	(loongson_pinsrh_0): Represent with vec_select+vec_concat.
+	(loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise.
+	(*vec_setv4hi, vec_setv4hi): New.
+	(sdot_prodv4hi): New.
+	(smax<VWB>3, smin<VWB>3): New.
+	(reduc_uplus_v8qi): New.
+	(loongson_pshufh): Remove destination matching input.
+	(ashl<VWH>3, ashr<VWH>3, lshr<VWH>3): Fix type attribute.
+	(vec_interleave_high<VWHB>, vec_interleave_low<VWHB>): Remove.
+	(loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi,
+	loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi,
+	loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi,
+	loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi,
+	vec_perm_const<VWHB>, vec_unpacks_lo_<VHB>, vec_unpacks_hi_<VHB>,
+	vec_unpacku_lo_<VHB>, vec_unpacku_hi_<VHB>, vec_shl_<VWHBDI>,
+	vec_shr_<VWHBDI>, reduc_uplus_<VWH>, reduc_splus_<VWHB>,
+	reduc_smax_<VWHB>, reduc_smin_<VWHB>, reduc_umax_<VWHB>,
+	reduc_umin_<VB>): New.
+	* config/mips/mips-ps-3d.md (vec_perm_const_ps): New.
+	(mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in
+	terms of vec_perm_const_ps.
+	(vec_perm_constv2sf): New.
+	(vec_initv2sf): Use mips_expand_vector_init.
+	(vec_concatv2sf): Rename from vec_initv2sf_internal.
+	(vec_setv2sf): Use vec_perm_const_ps.
+	(reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New.
+	* config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to
+	the builtin.
+	* config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes.
+	* config/mips/mips-protos.h: Update.
+	* config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all
+	MODE_VECTOR_FLOAT.
+	(mips_return_mode_in_fpr_p): Likewise.
+	(mips_cannot_change_mode_class): Allow 8-byte integral mode changes.
+	(CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw,
+	CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh,
+	CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove.
+	(mips_builtins): Remove first operand for loongson pshufh builtins.
+	(MAX_VECT_LEN, struct expand_vec_perm_d): New.
+	(mips_expand_vselect, mips_expand_vselect_vconcat,
+	mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh,
+	mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1,
+	mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok,
+	mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast,
+	mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh,
+	mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax,
+	TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
+	(mips_expand_vector_init): Rewrite.
+	* config/mips/predicates.md (const_2_or_3_operand): New.
+	(const_0_to_3_operand): New.
+
+2011-12-23  Dmitry Plotnikov  <dplotnikov@ispras.ru>
+
+	* config/arm/neon.md (float<mode><V_cvtto>2): New.
+	(floatuns<mode><V_cvtto>2): New.
+	(fix_trunc<mode><V_cvtto>2): New.
+	(fix_truncuns<mode><V_cvtto>2): New.
+	* config/arm/iterators.md (V_cvtto): New iterator.
+
+2011-12-23  Richard Guenther  <rguenther@suse.de>
+
+	PR rtl-optimization/50396
+	* simplify-rtx.c (simplify_binary_operation_1): Properly
+	guard code that only works for integers.
+
+2011-12-23  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/vms-crtlmap.map (log10): Fix typo.
+
+2011-12-23  Tristan Gingold  <gingold@adacore.com>
+
+	* config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
+
+2011-12-22  Bin Cheng  <bin.cheng@arm.com>
+	Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/43491
+	* tree-ssa-pre.c (eliminate): Don't replace global register
+	variable when it is the RHS of a single assign.
+
+2011-12-22  Joey Ye  <joey.ye@arm.com>
+
+	* toplev.c (process_options): Fix typo.
+
+2011-12-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR middle-end/51252
+	* config/pa/pa.c (pa_som_tm_clone_table_section): New function.
+	(som_tm_clone_table_section): Declare.
+	(pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
+	(pa_som_asm_init_sections): Init som_tm_clone_table_section.
+	* config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
+
+2011-12-22  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
+	* doc/tm.texi: Regenerate.
+	* target.def (prepare_pch_save): New hook.
+	* c-family/c-pch.c (c_common_write_pch): Call it.
+	* config/mips/mips.c (was_mips16_pch_p): Delete.
+	(mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
+	(mips_prepare_pch_save): New function.
+	(TARGET_PREPARE_PCH_SAVE): Define.
+
+2011-12-22  Aldy Hernandez  <aldyh@redhat.com>
+
+	PR middle-end/51212
+	* opts.c (finish_options): Call sorry on -fgnu-tm and
+	-fnon-call-exceptions combination.
+
+2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* doc/invoke.texi (C++ Dialect Options): Add missing options and
+	move -Wzero-as-null-pointer-constant to ...
+	(Warning Options): ... here.
+
+2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	PR target/47643
+	* doc/invoke.texi (i386 and x86-64 Options): Fix description of
+	-mtune without -march.
+
+2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR target/51643
+	* arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
+	change.
+
+2011-12-22  Tristan Gingold  <gingold@adacore.com>
+
+	* config/ia64/ia64.c (ia64_promote_function_mode): Remove.
+	(TARGET_PROMOTE_FUNCTION_MODE): Remove.
+	(ia64_function_value): Call promote_function_mode instead of
+	ia64_promote_function_mode.
+	* config/ia64/vms.h (PROMOTE_MODE): Define.
+	(TARGET_PROMOTE_FUNCTION_MODE): Define.
+
+2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/27468
+	* common/config/alpha/alpha-common.c (alpha_option_optimization_table):
+	Enable flag_ree at -O2 or higher.
+
+2011-12-22  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51650
+	* lto.c (uniquify_nodes): Register TYPE_DECLs with the
+	debuginfo machinery.
+
+2011-12-22  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* tree-pass.h (pass_reload): Declare.
+	* ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
+	New global variables, moved out of ira.
+	(do_reload): New static function, split off from the second half
+	of ...
+	(ira): ... here.
+	(gate_ira): Remove.
+	(pass_ira): Use TV_IRA, set gate to NULL, and set flags to
+	TODO_dump_func.
+	(rest_of_handle_reload): New static function.
+	(pass_reload): New.
+
+2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
+
+	* common/config/i386/i386-common.c (ix86_option_optimization_table):
+	Move OPT_free processing from ...
+	* config/i386/i386.c (ix86_option_override_internal):  ... here.
+
+2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR target/51643
+	* arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
+	weak function on bare-metal EABI targets.
+
+2011-12-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
+	    Jim Avera  <james_avera@yahoo.com>
+
+	* doc/extend.texi (__builtin_expect): Improve example.
+
+2011-12-21  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
+	also for 32bit targets.
+
+2011-12-21  Richard Henderson  <rth@redhat.com>
+
+	PR target/51552
+	* dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
+	(scan_trace): ... here.
+
+2011-12-21  Jason Merrill  <jason@redhat.com>
+
+	* doc/standards.texi (C++ language): Update for C++11.
+
+2011-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
+	*op0 and *op1 to NULL_TREE first to avoid warnings.
+	* calls.c (initialize_argument_information): Initialize base to avoid
+	warnings.
+
+	PR middle-end/51644
+	PR middle-end/51647
+	* tree-eh.c (decide_copy_try_finally): At -O0, return true
+	even when ndests is not 1, if there are only gimple_clobber_p
+	(or debug) stmts in the finally sequence.
+	* tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
+	stmts.
+
+2011-12-21  Aldy Hernandez  <aldyh@redhat.com>
+
+	PR middle-end/51472
+	* trans-mem.c (tm_log_add): Use create_tmp_var_reg.
+
+2011-12-21  Martin Jambor  <mjambor@suse.cz>
+
+	* tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
+	(rewrite_update_enter_block): Likewise.
+	(dump_update_ssa): Likewise.
+	(update_ssa): Likewise but also dump a newline at the beginning.
+
+2011-12-21  Enkovich Ilya  <ilya.enkovich@intel.com>
+
+	PR target/50038
+	* implicit-zee.c: Delete.
+	* ree.c: New file.
+	* Makefile.in: Replace implicit-zee.c with ree.c.
+	* config/i386/i386.c (ix86_option_override_internal): Rename
+	flag_zee to flag_ree.
+	* common.opt (fzee): Ignored.
+	(free): New.
+	* passes.c (init_optimization_passes): Replace pass_implicit_zee
+	with pass_ree.
+	* tree-pass.h (pass_implicit_zee): Delete.
+	(pass_ree): New.
+	* timevar.def (TV_ZEE): Delete.
+	(TV_REE): New.
+	* doc/invoke.texi: Add -free description.
+
+2011-12-21  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/vms-protos.h (vms_function_section): New prototype.
+	* config/vms/vms.c (vms_function_section): New function.
+	* config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
+
+2011-12-21  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/41159
+	* tree-outof-ssa.c (insert_value_copy_on_edge): Use the
+	mode of the pseudo as destination mode.  Only assert that
+	is equal to the promoted mode of the decl if it is a REG.
+
+2011-12-21  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
+
+2011-12-20  Richard Henderson  <rth@redhat.com>
+
+	* config/ia64/ia64.c (MAX_VECT_LEN): New.
+	(struct expand_vec_perm_d): New.
+	(TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
+	(ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
+	(expand_vselect, expand_vselect_vconcat): New.
+	(expand_vec_perm_identity, expand_vec_perm_shrp): New.
+	(expand_vec_perm_1, expand_vec_perm_broadcast): New.
+	(expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
+	(ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
+	(ia64_vectorize_vec_perm_const_ok): New.
+	(ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
+	* config/ia64/ia64-protos.h: Update.
+	* config/ia64/vect.md (VEC): New mode iterator.
+	(vecint): New mode attribute.
+	(vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
+	(vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
+	(vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
+	(vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
+	(mix1_even, mix1_odd, mux1_alt): Likewise.
+	(mux1_brcst_qi): Remove '*' from name.
+	(vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
+	(vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
+	(vec_extract_evenv2si, vec_extract_oddv2si): Remove.
+	(vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
+	(vec_extract_evenodd_helper): Remove.
+	(vec_setv2sf): Use ia64_expand_vec_setv2sf.
+	(vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
+	(vec_pack_trunc_v2si): Likewise.
+	(vec_perm_const<VEC>): New.
+
+2011-12-20  Richard Henderson  <rth@redhat.com>
+
+	* tree-vect-generic.c (expand_vector_operations_1): Correct tests
+	for vector types -- use the type not the mode.  Fix optab selection
+	for vector shifts by a scalar.  Handle over-large integer modes
+	like BLKmode.
+
+2011-12-20  Richard Henderson  <rth@redhat.com>
+
+	* config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
+	post-reload splitting.
+
+	* config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
+	* config/arm/arm.c (arm_select_cc_mode): Use it.
+
+2011-12-20  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
+	handling of signedness differences to integer types.  Only build
+	a new optype if type1 isn't correct.
+
+2011-12-20  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR target/49865
+	* ira-costs.c (find_costs_and_classes): Prefer registers even
+	if the memory cost is the same.
+
+2011-12-20  Joseph Myers  <joseph@codesourcery.com>
+
+	* c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
+	(finish_struct): Refer to C11 in comments.  Use flag_isoc11.
+	* c-parser.c (c_parser_static_assert_declaration)
+	(c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
+	(c_parser_alignas_specifier, c_parser_alignof_expression): Refer
+	to C11 in comments.  Use flag_isoc11.
+	* c-typeck.c (comptypes_check_different_types): Refer to C11 in
+	comment.
+	* doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
+	* doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
+	to -std=c1x and -std=gnu1x.
+	* doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
+	(__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
+	instead of -std=c1x and C1X.
+	* doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
+	preference to -std=c1x.
+	(-std=gnu11): Document in preference to -std=gnu1x.
+	* doc/standards.texi: Document C11 instead of C1X.  Document C11
+	as actual standard.  Document headers required from freestanding
+	C11 implementations.
+	* ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
+	201112L for C11.  Update comments to refer to C11.
+
+2011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* configure: Regenerate.
+
+2011-12-20  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR middle-end/51200
+	* expr.c (store_field): Avoid a direct store if the mode is larger
+	than the size of the bit field.
+	* stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
+	treat non-volatile bit fields like volatile ones.
+	* toplev.c (process_options): Disallow combination of
+	-fstrict-volatile-bitfields and ABI versions less than 2.
+	* config/arm/arm.c (arm_option_override): Don't enable
+	flag_strict_volatile_bitfields if the ABI version is less than 2.
+	* config/h8300/h8300.c (h8300_option_override): Likewise.
+	* config/rx/rx.c (rx_option_override): Likewise.
+	* config/m32c/m32c.c (m32c_option_override): Likewise.
+	* config/sh/sh.c (sh_option_override): Likewise.
+
+2011-12-20  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/46796
+	* dwarf2out.c (modified_type_die): When the type variant
+	chain is corrupt use the types name, if available, instead
+	of __unknown__.
+
+2011-12-20  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/alpha.c (alpha_start_function): Adjust condition to
+	create VMS trampoline entry point.
+
+2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	PR rtl-optimization/42839
+	* fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
+	optimization if the source register is already extended.
+
+2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* lower-subreg.c (can_decompose_p): Check every word of a hard
+	register.
+
+2011-12-19  Sandra Loosemore  <sandra@codesourcery.com>
+	    Tom de Vries <tom@codesourcery.com>
+
+	PR rtl-opt/50380
+	* cse.c (find_comparison_args): Detect fixed point and
+	bail early.
+
+2011-12-19  Aldy Hernandez  <aldyh@redhat.com>
+
+	PR middle-end/51411
+	* trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
+
+2011-12-19  Quentin Neill  <quentin.neill@amd.com>
+
+	PR target/48743
+	* config/i386/driver-i386.c (host_detect_local_cpu): Also check
+	family to distinguish PROCESSOR_ATHLON.
+
+2011-12-19  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51573
+	* streamer-hooks.h (struct streamer_hooks): Add second
+	ref_p parameter to write_tree.
+	(stream_write_tree): Adjust.
+	(stream_write_tree_shallow_non_ref): New define.
+	* lto-streamer.h (lto_output_tree): Adjust.
+	* lto-streamer-out.c (lto_output_tree): Likewise.
+	* tree-streamer-out.c (streamer_write_chain): Only
+	force the immediate tree to be streamed as non-reference.
+
+2011-12-19  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/51583
+	* tree-sra.c (load_assign_lhs_subreplacements): Call
+	force_gimple_operand_gsi when necessary also in case of no
+	corresponding replacement on the RHS.
+
+2011-12-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* gimple.h (gimplify_seq_add_stmt): Rename to...
+	(gimple_seq_add_stmt_without_update): ... this.
+	* gimplify.c (gimplify_seq_add_stmt): Rename to...
+	(gimple_seq_add_stmt_without_update): ... this.
+	(gimplify_seq_add_stmt): New inline wrapper for it.
+	* tree-vect-patterns.c (append_pattern_def_seq): Use
+	gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
+
+	PR tree-optimization/51596
+	* tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
+	when needed.
+
+	PR middle-end/51590
+	PR tree-optimization/51606
+	* tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
+	New inline functions.
+	(vect_recog_over_widening_pattern,
+	vect_recog_vector_vector_shift_pattern,
+	vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
+	adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
+
+2011-12-19  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51572
+	* tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
+	from TYPE_FIELDS.
+	(find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
+	* tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
+	not stream TREE_CHAIN.
+	(write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
+	using streamer_write_chain.
+	* tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
+	Do not stream TREE_CHAIN.
+	(lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
+	using streamer_read_chain.
+	* gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
+	* gimple.c (gimple_canonical_types_compatible_p): Properly
+	handle trailing non-FIELD_DECLs in TYPE_FIELDS.
+
+2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* configure: Regenerate.
+
+2011-12-19  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
+	partial integer modes.
+
+2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
+
+	PR target/51532
+	* config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
+	* config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
+	* config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
+	TARGET_68040).
+
+2011-12-18  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
+	LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
+	GO_IF_LEGITIMATE_ADDRESS): Remove macros.
+	* config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
+	(ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
+	ia64_legitimate_address_disp, ia64_legitimate_address_p): New
+	functions.
+
+2011-12-17  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/51491
+	* tree-ssa-ccp.c (insert_clobber_before_stack_restore)
+	(gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
+	(ccp_fold_stmt): Use insert_clobbers_for_var after a successful
+	fold_builtin_alloca_with_align.
+	(ccp_visit_stmt): Calculate and free dominator info.
+
+2011-12-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
+	(frame_blockage): New expander.
+	(frame_blockage<P:mode>): New instruction.
+	* config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
+	instructions establishing the frame isn't atomic, emit frame blockage.
+
+2011-12-16  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
+
+2011-12-16  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
+	(alpha_write_one_linkage): Use assemble_name to emit linkage name.
+
+2011-12-16  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/t-vms (vms.o, vms-c.o): Force output filename.
+
+2011-12-16  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
+	(vms_patch_builtins): Handle.
+	* config/vms/vms-crtlmap.map: Add an entry for environ.
+
+2011-12-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/51557
+	* sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
+	other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
+
+	PR tree-optimization/51576
+	* tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
+	even if fold_stmt didn't change anything.
+
+2011-12-16  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51572
+	* dwarf2out.c (gen_type_die_with_usage): Use the context of
+	the TYPE_DECL as well if it is file-scope.
+
+2011-12-15  DJ Delorie  <dj@redhat.com>
+
+	* config/rl78/rl78.md (return): Rename to rl78_return.
+	* config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
+	(rl78_expand_eh_epilogue): Use new name.
+	(rl78_calculate_death_notes): Likewise.
+
+2011-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
+	field, add pattern_def_seq.
+	(STMT_VINFO_PATTERN_DEF_STMT): Remove.
+	(STMT_VINFO_PATTERN_DEF_SEQ): Define.
+	(NUM_PATTERNS): Bump to 10.
+	* tree-vect-loop.c (vect_determine_vectorization_factor,
+	vect_transform_loop): Adjust for pattern def changing from a single
+	gimple stmt to gimple_seq.
+	* tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
+	free_stmt_vec_info): Likewise.
+	* tree-vect-patterns.c (vect_recog_over_widening_pattern,
+	vect_recog_vector_vector_shift_pattern,
+	vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
+	adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
+	(vect_recog_sdivmod_pow2_pattern): New function.
+	(vect_vect_recog_func_ptrs): Add it.
+
+	* config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
+	vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
+	Use general_operand instead of nonimmediate_operand for
+	operand 5 and no predicate for operands 1 and 2.
+	* config/i386/i386.c (ix86_expand_int_vcond): Optimize
+	x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
+	resp. logical shift.
+
+2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr-protos.h (print_operand): Remove.
+	(print_operand_address): Remove.
+	* config/avr/avr.h (PRINT_OPERAND): Remove.
+	(PRINT_OPERAND_ADDRESS): Remove.
+	(PRINT_OPERAND_PUNCT_VALID_P): Remove.
+	* config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
+	(TARGET_PRINT_OPERAND_ADDRESS): New hook define.
+	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
+	(print_operand_address): Rename to...
+	(avr_print_operand_address): ...this and make static.
+	(print_operand): Rename to...
+	(avr_print_operand): ...this and make static.
+	(avr_print_operand_punct_valid_p): New static function.
+
+2011-12-15  Andreas Tobler  <andreast@fgznet.ch>
+
+	* config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
+
+2011-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/51360
+	* c-parser.c (c_parser_omp_clause_num_threads,
+	c_parser_omp_clause_schedule): Call mark_exp_read.
+
+2011-12-15  Romain Geissler  <romain.geissler@gmail.com>
+
+	* builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
+	* builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
+	Add BUILT_IN_STPNCPY_CHK case.
+	* gimple-fold.c (gimple_fold_builtin): Likewise.
+	* tree-object-size.c (pass_through_call): Likewise.
+	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
+	call_may_clobber_ref_p_1): Likewise.
+	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
+	find_func_clobbers): Likewise.
+	* tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
+	* builtins.c (fold_builtin_strncpy_chk): Likewise.
+	Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
+	ignored.
+
+2011-12-15  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51567
+	* gimple.c (compare_type_names_p): Also compare the TREE_CODE.
+	(iterative_hash_name): Also hash the TREE_CODE.
+	(gimple_types_compatible_p_1): For types with a TYPE_DECL
+	name and a type DECL_CONTEXT recurse to that type.
+	(iterative_hash_gimple_type): Likewise.
+
+2011-12-15  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* config/rs6000/rs6000.c  (rs6000_emit_prologue): Move update of
+	VRSave mask to save_world() when that is in use.
+
+2011-12-15  Richard Guenther  <rguenther@suse.de>
+
+	* lto-wrapper.c (run_gcc): In non-parallel mode remove
+	ltrans inputs immediately after processing them.  In parallel
+	mode truncate the ltrans inputs in the make rule that processes
+	them if temporary files are not to be preserved.
+
+2011-12-15  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+	* config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
+	New functions.
+	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
+
+2011-12-15  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51564
+	* tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
+	STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
+	uses documentation.
+	(TREE_ASM_WRITTEN): Update documentation to mention its use
+	on TYPE_DECLs from debug info generation.
+	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
+	TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
+	all other types.
+
+2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/51050
+	* config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
+	(avr_prologue_setup_frame): Ditto.
+
+2011-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/51517
+	* tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
+	!DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
+
+2012-12-15  Richard Guenther  <rguenther@suse.de>
+
+	Revert
+	PR lto/48437
+	* lto-streamer-out.c (tree_is_indexable): Exclude block-local
+	extern declarations.
+
+	PR lto/48508
+	PR lto/48437
+	* tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
+	VAR_DECLs and FUNCTION_DECLs locally.
+
+2011-12-14  Richard Henderson  <rth@redhat.com>
+
+	* config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
+	(*compare_negsi_si, *compare_addsi2_op0): Likewise.
+	(*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
+	(*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+	* tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
+	propagating all kinds of constants.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/51497
+	* lto-streamer-in.c (lto_read_body): Fixup local types
+	TYPE_CANONICAL and variant chain.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+	* tree.c (free_lang_data_in_type): Do not clear fields
+	dependent on debuginfo level setting.
+	(find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
+	* tree.h (TYPE_STUB_DECL): Properly check that we access a type.
+
+2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50931
+	* config/avr/avr.md (mulpsi3): New expander.
+	(*umulqihipsi3, *umulhiqipsi3): New insns.
+	(*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
+	(mulsqipsi3, *mulpsi3): New insn-and-splits.
+	(ashlpsi3): Turn to expander.  Move insn code to...
+	(*ashlpsi3): ...this new insn.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+	* tree-cfg.c (replace_uses_by): Only mark blocks altered
+	that will make a difference.  Only recompute ADDR_EXPR
+	invariantness if it could possibly have changed.  Do so
+	before folding the statement.
+
+2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
+	* lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
+	* lto-streamer-in.c (lto_read_body): Likewise.
+	(lto_input_toplevel_asms): Likewise.
+	* lto-section-in.c (lto_create_simple_input_block): Likewise.
+	* ipa-inline-analysis.c (inline_read_section): Likewise.
+	* ipa-prop.c (ipa_prop_read_section): Likewise.
+
+	* df.h (DF_NOTE): Fix typo in comment.
+
+2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
+
+	* trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
+	DECL_LANG_SPECIFIC.
+
+2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
+
+2011-12-13  Andrew Pinski  <apinski@cavium.com>
+	    Adam Nemet  <anemet@caviumnetworks.com>
+
+	* config/mips/mips-cpus.def: Add Octeon2.
+	* config/mips/mips-tables.opt: Regenerate.
+	* config/mips/mips.md (define_attr "cpu"): Add Octeon2.
+	* config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
+	* config/mips/octeon.md (octeon_arith): Add Octeon2.
+	(octeon_condmove): Likewise.
+	(octeon_load): Rename to ..
+	(octeon_load_o1): this.
+	(octeon_load_o2): New reserve.
+	(octeon_cop_o2): New reserve.
+	(octeon_store):  Match Octeon2 also.
+	(octeon_brj): Rename to ..
+	(octeon_brj_o1): this.
+	(octeon_brj_o2): New reserve.
+	(octeon_imul3): Rename to ...
+	(octeon_imul3_o1): this.
+	(octeon_imul3_o2): New reserve.
+	(octeon_imul): Rename to ...
+	(octeon_imul_o1): this.
+	(octeon_imul_o2): New reserve.
+	(octeon_mfhilo): Rename to ...
+	(octeon_mfhilo_o1): This.
+	(octeon_mfhilo_o2): New reserve.
+	(octeon_imadd): Rename to ...
+	(octeon_imadd_o1): this.
+	(octeon_imadd_o2): New reserve.
+	(octeon_idiv): Rename to ..
+	(octeon_idiv_o1): This.
+	(octeon_idiv_o2_si): New reserve.
+	(octeon_idiv_o2_di): Likewise.
+	(octeon_unknown): Match Octeon2 also.
+	* config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
+	(mips_issue_rate): Octeon2 can issue 2 at a time.
+	* config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
+	(TARGET_OCTEON2): New define.
+	(TUNE_OCTEON): Match Octeon2 also.
+
+2011-12-13  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/tso.h: New file.
+	* config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
+	* config/sparc/sparc.c (sparc_option_override): Honor
+	SUBTARGET_DEFAULT_MEMORY_MODEL.
+	* config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
+
+2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
+
+	PR middle-end/51443
+	* trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
+	(diagnose_tm_1): Same.
+	(ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
+	(ipa_tm_scan_irr_function): Return gracefully when no
+	DECL_STRUCT_FUNCTION.
+	(ipa_tm_scan_irr_block): Believe the user on TM attributes.
+
+2011-12-13  Martin Jambor  <mjambor@suse.cz>
+
+	PR middle-end/50628
+	* tree-sra.c (propagate_subaccesses_across_link): Do not propagate
+	sub-accesses of scalar accesses.
+
+2011-12-13  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/51362
+	* ipa-cp.c (estimate_local_effects): When estimated size of a
+	specialized clone is zero, bump it to one.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/48354
+	* tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
+	* tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
+	Stream DECL_ORIGINAL_TYPE.
+	* tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
+	Likewise.
+
+2011-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Revert
+	2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51481
+	* gimple-fold.c (gimple_fold_call): Call
+	maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
+	edges, but gimple_fold_builtin result can't throw.
+
+2011-12-13  Jakub Jelinek  <jakub@redhat.com>
+	    Michael Matz  <matz@suse.de>
+
+	PR tree-optimization/51117
+	* tree-eh.c (sink_clobbers): New function.
+	(execute_lower_eh_dispatch): Call it for BBs ending with
+	internally throwing RESX.
+	* cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
+	at the first real instruction.
+
+2011-12-13  Tristan Gingold  <gingold@adacore.com>
+
+	* final.c (final_scan_insn): Guard the call to begin_epilogue
+	debug hook.
+
+2011-12-13  Tristan Gingold  <gingold@adacore.com>
+
+	* vmsdbgout.c (vmsdbgout_write_source_line): New function.
+	(vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
+	(vmsdbgout_begin_epilogue): Likewise.
+	(vmsdbgout_end_epilogue): Likewise.
+	(vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/51481
+	* tree-cfg.c (replace_uses_by): Pass proper arguments to
+	maybe_clean_or_replace_eh_stmt.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51519
+	* ipa-inline.c (edge_badness): Use edge growth in non-guessed
+	branch probability case as well.
+
+2011-12-13  Revital Eres  <revital.eres@linaro.org>
+
+	* modulo-sched.c (mark_loop_unsched): Free bbs.
+
+2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/51495
+	* function.c (thread_prologue_and_epilogue_insns): Don't add
+	to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
+	from basic blocks not needing prologue.
+
+	PR tree-optimization/51481
+	* gimple-fold.c (gimple_fold_call): Call
+	maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
+	edges, but gimple_fold_builtin result can't throw.
+
+2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR rtl-optimization/21617
+	* ira-color.c (bucket_allocno_compare_func): Don't compare
+	allocno classes.  Compare number of hard registers needed.
+
+2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR tree-optimization/50569
+	* tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
+	in the expression of MODEL instead of just the last one.
+
+2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/51510
+	* calls.c (internal_arg_pointer_based_exp_scan): Don't use
+	VEC_safe_grow_cleared if idx is smaller than VEC_length.
+
+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@linux.vnet.ibm.com>
+
+	* 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
+	call_stmt_cannot_inline_p from the stmt if possible.
+	(cgraph_make_edge_direct): Likewise.
+	* gimple-streamer-in.c (input_gimple_stmt): Do not
+	call gimple_call_set_cannot_inline.
+	* gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
+	(gimple_call_set_cannot_inline): Remove.
+	(gimple_call_cannot_inline_p): Likewise.
+	* ipa-inline-analysis.c (initialize_inline_failed): Look
+	at the edge call_stmt_cannot_inline_p flag.
+	* ipa-inline.c (can_inline_edge_p): Likewise.
+	(early_inliner): Only update the edge flag.
+	* ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
+	(ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
+	* cgraphunit.c (assemble_thunk): Likewise.
+	* gimple-fold.c (gimple_fold_call): Likewise.
+
+	* tree.h (CALL_CANNOT_INLINE_P): Remove.
+	* tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
+	* builtins.c (expand_builtin_alloca): With -fmudflap do not expand
+	alloca calls inline.
+	* cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
+	* gimple.c (gimple_build_call_from_tree): Do not read
+	CALL_CANNOT_INLINE_P.
+	* gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
+
+2011-12-05  Jakub Jelinek  <jakub@redhat.com>
+	    Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR middle-end/51323
+	PR middle-end/50074
+	* calls.c (internal_arg_pointer_exp_state): New variable.
+	(internal_arg_pointer_based_exp_1,
+	internal_arg_pointer_exp_scan): New functions.
+	(internal_arg_pointer_based_exp): New function.
+	(mem_overlaps_already_clobbered_arg_p): Use it.
+	(expand_call): Free internal_arg_pointer_exp_state.cache vector
+	and clear internal_arg_pointer_exp_state.scan_start.
+
+2011-12-04  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
+	* config/sh/sync.md: New file.
+	* config/sh/sh.md: Include sync.md.
+	* config/sh/sh.opt (msoft-atomic): New option.
+	* doc/invoke.texi (SH Options): Document it.
+
+2011-12-04  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov-io.h (struct gcov_info): Replace trailing array with
+	pointer to array.
+	* profile.c (branch_prob): Only call renamed
+	coverage_begin_function once.
+	* coverage.h (coverage_begin_output): Rename to ...
+	(coverage_begin_function): ... here.
+	* coverage.c (struct function_list): Rename to ...
+	(struct coverage_data): ... this.  Update all uses.
+	(gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
+	(bbg_file_opened, bbg_function_announced): Remove.
+	(get_coverage_counts): Adjust message.
+	(coverage_begin_ouput): Rename to ...
+	(coverage_begin_function): ... here.  Move file opening to
+	coverage_init.  Adjust for being called only once.
+	(coverage_end_function): Remove bbg file and inhibit further
+	output here on error.
+	(build_info_type): Adjust for change to pointer to array.
+	(build_info): Receive array of function pointers and adjust.
+	(create_coverage): Break into ...
+	(coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
+	... these, and adjust.
+	(coverage_init): Open the notes file here.  Tidy.
+	(coverage_finish): Call coverage_obj_init etc.
+
+2011-12-04  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR middle-end/51285
+	* tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
+	phi nodes for outer loop in case of double reduction.
+
+2011-12-04  Jérémie Detrey  <Jeremie.Detrey@loria.fr>
+
+	PR target/51393
+	* config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
+	parameter as long long.
+
+2011-12-04  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	PR middle-end/51351
+	* optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
+	in the external names.
+
+2011-12-03  Jack Howarth <howarth@bromo.med.uc.edu>
+
+	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
+	non-PIC code when targeting 10.7 or later.
+
+2011-12-03  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
+	Darwin >= 10.
+	(DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
+	(DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
+
+2011-12-03  Jakub Jelinek  <jakub@redhat.com>
+
+	* fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
+	VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
+	VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
+	(fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
+	VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
+	and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
+
+	PR debug/50317
+	* tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
+	vars that aren't referenced.
+	(tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
+	of unreferenced local vars.
+	* cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
+	TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
+
+2011-12-03  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
+	* config/arm/arm-protos.h (aapcs_libcall_value): Remove.
+	* config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
+	(arm_libcall_value_1, arm_function_value_regno_p): New function.
+	(arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
+	(aapcs_libcall_value): Make static.
+	(arm_libcall_value): Add static qualifier.
+
+2011-12-02  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/51387
+	* config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
+	V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
+	permutation instead of extract even permutation.
+
+2011-12-02  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (struct arc_info): Add is_throw field.
+	(struct (block_info): Add exceptional field, reduce flags size to
+	account for it.
+	(struct function_info): Add has_catch field.
+	(struct line_info): Add unexceptional field.
+	(process_file): Call find_exception_blocks if necessary.
+	(read_graph_file): Adjust.  Note if an exceptional edge is seen.
+	(find_exception_blocks): New.
+	(add_line_counts): Set line's unexceptional flag if not exceptional.
+	(output_branch_count): Note exceptional arcs, lines and blocks.
+	* gcov-dump.c (tag_arcs): Decode arc flags.
+	* doc/gcov.texi: Document '=====' lines.
+
+2011-12-02  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
+	PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
+	* config/ia64/ia64-protos.h (ia64_print_operand,
+	ia64_print_operand_address): Remove.
+	* config/ia64/ia64.c (TARGET_PRINT_OPERAND,
+	TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
+	Define.
+	(ia64_print_operand_punct_valid_p): New function.
+	(ia64_print_operand, ia64_print_operand_address): Make static.
+
+2011-12-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	PR target/51390
+	* config/rs6000/rs6000.c (def_builtin): Use the correct field to
+	figure out the function's attributes.
+	(struct builtin_description): Mark mask field as const since we no
+	longer need to modify it for SPE and PAIRED builtins.
+
+2011-12-02  Joseph Myers  <joseph@codesourcery.com>
+
+	Revert:
+
+	2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+	PR rtl-opt/37451
+	* loop-doloop.c (doloop_modify): New argument zero_extend_p and
+	zero extend count after the correction to it is done.
+	(doloop_optimize): Update call to doloop_modify, don't zero extend
+	count before call.
+
+	2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+	PR rtl-opt/37782
+	* loop-doloop.c (doloop_modify): Add from_mode argument that says what
+	mode count is in.
+	(doloop_optimize): Update call to doloop_modify.
+
+2011-12-02  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/47259
+	* ipa.c (varpool_externally_visible_p): Register variables
+	are always externally visible.
+
+2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
+
+	* gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
+	  non-NULL.
+
+2011-12-02  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/50622
+	* tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
+	if both lacc and racc are grp_partial_lhs.
+
+2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	PR target/50814.
+	* config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
+	TARGET_SH3.
+	(shl_sext_kind): Likewise.
+	* config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
+	* config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
+	(ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
+	(ashlsi3): Likewise.
+	(ashrsi3_d): Likewise.
+	(lshrsi3_d): Likewise.
+	(lshrsi3): Likewise.
+
+2011-12-01  Diego Novillo  <dnovillo@google.com>
+
+	PR bootstrap/51346
+	* ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
+	use the statement's inline indicator instead of E's.
+	Remove consistency check.
+
+2011-12-01  Diego Novillo  <dnovillo@google.com>
+
+	PR bootstrap/51346
+	Revert
+
+	2011-11-29  Diego Novillo  <dnovillo@google.com>
+
+	* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
+	Update field call_stmt_cannot_inline_p from call
+	graph edge, if needed.
+	* gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
+
+2011-12-01  Nathan Sidwell  <nathan@acm.org>
+
+	PR gcov-profile/51113
+	* coverage.c (build_var): Keep coverage variables static.
+
+2011-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51356
+	* tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
+	vectype doesn't have VECTOR_MODE_P.
+
+	PR debug/50317
+	* tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
+	as unnecessary a store to a variable with gimple reg type.
+	* tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
+	on local unreferenced variables.
+	* cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
+	for !target_for_debug_bind variables.
+
+2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
+
+	PR middle-end/51273
+	* cgraph.h (cgraph_call_node_duplication_hooks): Declare.
+	* cgraph.c (cgraph_call_node_duplication_hooks): Make global.
+	* cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
+
+2011-12-01  Andrew Pinski  <apinski@cavium.com>
+
+	PR lto/51198
+	* tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
+	DECL_INITIAL also.
+
+2011-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51246
+	* tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
+
+	PR rtl-optimization/51014
+	* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
+	both from bb and orig_bb.
+
+2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+	PR tree-optimization/50802
+	* tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
+	considering what happens to ranges during sign changes and/or
+	intermediate narrowing conversions.
+
+2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR middle-end/50283
+	* config/pa/pa.md (in_branch_delay): Disallow frame related insns.
+	(in_nullified_branch_delay): Likewise.
+	(in_call_delay): Likewise.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* predict.c (expr_expected_value_1): Assume compare-and-swap builtin
+	boolean return is true.
+
+2011-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/51044
+	* dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
+	rather than just insn body.
+
+	PR target/50725
+	* function.c (thread_prologue_and_epilogue_insns): If
+	stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
+	regset.
+
+	PR middle-end/51089
+	* tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
+	avoid creating duplicate edges here.
+	(cleanup_empty_eh_unsplit): And remove it in the caller.
+
+2011-11-30  Andrew Pinski  <apinski@cavium.com>
+
+	PR c/51321
+	* c-parser.c (c_parser_postfix_expression): Check groktypename results
+	before looking at the main variant.
+
+2011-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/48721
+	* sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
+	reg_pending_barrier to TRUE_BARRIER.
+
+	PR rtl-optimization/48721
+	* sched-ebb.c (begin_move_insn): Insert empty unreachable
+	block after BARRIER if insn is followed by it.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
+	* config/sparc/sparc.opt (mmemory-model=): New option.
+	* doc/invoke.texi (Sparc Options): Document it.
+	* config/sparc/sparc.c (sparc_option_override): Provide default
+	for sparc_memory_model.
+	(sparc_emit_membar_for_model): Omit barrier combinations that are
+	implied by the memory model.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/sync.md (I124MODE): New mode iterator.
+	(memory_barrier): Remove.
+	(atomic_exchangesi): New.
+	(swapsi): Rename from *swapsi.
+	(atomic_test_and_set<I124MODE>): New.
+	(ldstubqi): Rename from *ldstubqi, merge with expander.
+	(ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
+	(sync_lock_test_and_setsi): Remove.
+	(sync_lock_test_and_set<I12MODE>): Remove.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/constraints.md ("w"): New.
+	* config/sparc/predicates.md (mem_noofs_operand): New.
+	* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
+	Generate the boolean result of the atomic_compare_exchange.
+	(sparc_expand_compare_and_swap): New.
+	* config/sparc/sync.md (atomic_compare_and_swap<I>): New.
+	(atomic_compare_and_swap<I48MODE>_1): Rename from
+	*sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
+	(*atomic_compare_and_swapdi_v8plus): Rename from
+	*sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
+	(sync_compare_and_swap<I12MODE>): Remove.
+	(sync_compare_and_swap<I48MODE>): Remove.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/predicates.md (register_or_v9_zero_operand): New.
+	* config/sparc/sparc.md (UNSPEC_ATOMIC): New.
+	* config/sparc/sync.md (atomic_load<I>): New.
+	(atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/predicates.md (zero_or_v7_operand): New.
+	* config/sparc/sparc.c (sparc_emit_membar_for_model): New.
+	* config/sparc/sparc-protos.h: Update.
+	* config/sparc/sync.md (mem_thread_fence): New.
+	(memory_barrier): Use sparc_emit_membar_for_model.
+	(membar, *membar_empty, *membar_storestore, *membar_storeload): New.
+	(*membar_v8): Accept and ignore the membar mask.
+	(*membar): Accept and print the membar mask.
+
+2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	* config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
+	* config/arm/arm.md (mul64): New attribute.
+	(generic_sched): Cortex-A15 is not scheduled generically.
+	(cortex-a15.md): Include.
+	* config/arm/cortex-a15.md: New machine description.
+	* config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
+
+2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	* config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
+
+2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
+	* doc/tm.texi: Regenerate.
+	* flags.h (flag_next_runtime): Remove references.
+	* toplev.c: Likewise.
+	* defaults.h (NEXT_OBJC_RUNTIME): Provide default.
+	* gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
+	* config/darwin.c (darwin_override_options): Provide default
+	Objective-C abi settings and target conflict checks.
+	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
+	code. Adjust indenting.
+
+2011-11-29  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
+	(REG_CLASS_CONTENTS): Add NON_SP_REGS.
+	(REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
+	* config/sh/constraints.md (u): New constraint.
+
+2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
+
+	PR target/51337
+	* config/sh/sh.c (sh_secondary_reload): Add case when FPUL
+	register is being loaded from a pseudo in memory.
+
+2011-11-29  DJ Delorie  <dj@redhat.com>
+
+	* config.gcc (rl78-*-elf): New case.
+	* doc/extend.texi: Add RL78 documentation.
+	* doc/invoke.texi: Likewise.
+	* doc/md.texi: Likewise.
+	* doc/contrib.texi: Add RL78.
+	* doc/install.texi: Add rl78-*-elf.
+	* config/rl78: New directory for the Renesas RL78.
+
+2011-11-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51247
+	* tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
+	types instead of adding 1 subtract -1 and instead of subtracting 1
+	add -1 to avoid overflows.
+
+2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR target/50123
+	* optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
+	instructions for a FECTH_OP or OP_FECTH sequence.
+	(expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
+
+2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
+	(movdi_via_fpu): Remove.
+	(loaddi_via_fpu): New insn pattern.
+	(storedi_via_fpu): Ditto.
+	(atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
+	(atomic_storedi_fpu): Ditto.
+	* reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
+	(subst_stack_regs_pat): Handle UNSPEC_STA.
+
+2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
+	allocate scratch memory for alternative 0.
+
+2011-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	* config/rs6000/rs6000-builtins.def: Completely rewrite builtin
+	handling to centralize more of the builtins in this file.  Change
+	some builtin enumerations to be more consistant.  Use a new mask
+	to hold the current builtins, including SPE and PAIRED builtins
+	which no longer are set via target_flags masks.  Add
+	-mdebug=builtin debug support.  For power machines, define all
+	Altivec and VSX buitins when the compiler starts, but don't allow
+	the use of a builtin unless the appropriate switch is used, or
+	#pragma GCC target is used to change the options.  If the user
+	uses #pragma GCC target, update the appropriate hardware macros.
+	* common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
+	* config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
+	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
+	(rs6000_define_or_undefine_macro): Ditto.
+	(rs6000_target_modify_macros): Ditto.
+	(rs6000_cpu_cpp_builtins): Ditto.
+	(altivec_overloaded_builtins): Ditto.
+	(altivec_build_resolved_builtin): Ditto.
+	* config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
+	(rs6000_builtin_info): Ditto.
+	(def_builtin): Ditto.
+	(enable_mask_for_builtins): Ditto.
+	(DEBUG_FMT_X): Ditto.
+	(rs6000_debug_reg_global): Ditto.
+	(rs6000_builtin_mask_calculate): Ditto.
+	(rs6000_option_override_internal): Ditto.
+	(rs6000_builtin_conversion): Ditto.
+	(rs6000_builtin_vectorized_function): Ditto.
+	(bdesc_3arg): Ditto.
+	(bdesc_dst): Ditto.
+	(bdesc_2arg): Ditto.
+	(builtin_description_predicates): Ditto.
+	(bdesc_altivec_preds): Ditto.
+	(bdesc_spe_predicates): Ditto.
+	(bdesc_spe_evsel): Ditto.
+	(bdesc_paired_preds): Ditto.
+	(bdesc_abs): Ditto.
+	(bdesc_1arg): Ditto.
+	(rs6000_overloaded_builtin_p): Ditto.
+	(rs6000_expand_unop_builtin): Ditto.
+	(bdesc_2arg_spe): Ditto.
+	(spe_expand_builtin): Ditto.
+	(rs6000_invalid_builtin): Ditto.
+	(rs6000_expand_builtin): Ditto.
+	(rs6000_init_builtins): Ditto.
+	(spe_init_builtins): Ditto.
+	(paired_init_builtins): Ditto.
+	(altivec_init_builtins): Ditto.
+	(builtin_function_type): Ditto.
+	(rs6000_common_init_builtins): Ditto.
+	(rs6000_builtin_reciprocal): Ditto.
+	(rs6000_builtin_mask_names): Ditto.
+	(rs6000_pragma_target_parse): Ditto.
+	(rs6000_function_specific_print): Ditto.
+	* config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
+	(MASK_DEBUG_ALL): Ditto.
+	(TARGET_DEBUG_BUILTIN): Ditto.
+	(TARGET_EXTRA_BUILTINS): Ditto.
+	(REGISTER_TARGET_PRAGMAS): Ditto.
+	(enum rs6000_btc): Ditto.
+	(RS6000_BTC_*): Ditto.
+	(RS6000_BTM_*): Ditto.
+	(enum rs6000_builtins): Ditto.
+	* config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
+	(rs6000_target_modify_macros): Ditto.
+	(rs6000_target_modify_macros_ptr): Ditto.
+
+	* config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
+	standard name for converting vector unsigned values to floating
+	point.  Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
+	is handled by machine independent code.
+	* config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
+	(rs6000_builtin_conversion): Ditto.
+
+2011-11-29  Dodji Seketeli  <dodji@redhat.com>
+
+	* tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
+	(maybe_unwind_expanded_macro_loc): Adjust.
+
+2011-11-29  David Edelsohn  <dje.gcc@gmail.com>
+	    Aldy Hernandez  <aldyh@redhat.com>
+
+	* trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
+	if DECL_ONE_ONLY.
+	(ipa_tm_create_version): Same.
+
+2011-11-29  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* haifa-sched.c (recompute_todo_spec): Simplify and correct the
+	code checking for a clobber of a condition register when deciding
+	whether to predicate.
+
+2011-11-29  Diego Novillo  <dnovillo@google.com>
+
+	* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
+	Update field call_stmt_cannot_inline_p from call graph edge, if needed.
+	* gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
+
+2011-11-29  Sameera Deshpande  <sameera.deshpande@arm.com>
+
+	* config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
+	(movdf_soft_insn): Likewise.
+	* config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
+	* config/arm/neon.md (neon_mov<mode>): Likewise.
+	* config/arm/vfp.md (movdi_vfp): Likewise.
+	(movdi_vfp_cortexa8): Likewise.
+	(movdf_vfp): Likewise.
+
+2011-11-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/50074
+	* expr.c (expand_expr_addr_expr_1): Don't call force_operand for
+	EXPAND_SUM modifier.
+
+2011-11-29  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/51301
+	* tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
+	the last statement doesn't convert to a bigger type than the original
+	type of the computation.
+
+2011-11-28  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
+	Handle overlap between retval and oldval.  Always compute boolval
+	from CR0 EQ value.
+
+2011-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/50317
+	* tree-ssa.c (execute_update_addresses_taken): Remove
+	var ={v} {CLOBBER} stmts instead of rewriting them into
+	var_N ={v} {CLOBBER}.
+
+	PR middle-end/50907
+	* function.c (convert_jumps_to_returns): When redirecting an edge
+	succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
+
+	PR tree-optimization/50078
+	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
+	TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
+
+	PR tree-optimization/50682
+	* tree-eh.c (maybe_remove_unreachable_handlers): New function.
+	* tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
+	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
+
+2011-11-28  Georg-Johann Lay  <avr@gjlay.de>
+
+	* doc/extend.texi (AVR Built-in Functions): Add documentation for
+	__builtin_avr_map8 and __builtin_avr_map16.
+
+	* config/avr/avr.md: Document new %t and %T asm output codes.
+	(define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
+	(adjust_len): Add map_bits.
+	(map_bitsqi, map_bitshi): New insns.
+	* config/avr/avr-protos.h (avr_out_map_bits): New.
+	* config/avr/avr-protos.c (print_operand): Implement %t and %T.
+	(adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
+	(avr_double_int_push_digit): New function.
+	(avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
+	(avr_sig_map, avr_map_hamming_byte): New functions.
+	(avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
+	avr_out_map_bits): New functions.
+	(enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
+	(avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
+	(bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
+	(avr_expand_builtin): ...and expand them.
+	* config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
+	__BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
+
+2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	PR target/51278
+	* config/mips/mips.c (mips_rtx_costs): Handle baddu.
+
+2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
+
+2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* config/mips/mips-protos.h (mips_emit_binary): Declare.
+	* config/mips/mips.c (mips_emit_binary): Make global.
+	(mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
+	(mips_conditional_register_usage): Don't treat LO and HI as
+	register operands in MIPS16 mode.
+	(mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
+	for MIPS16 code.
+	* config/mips/predicates.md (muldiv_target_operand): New predicate.
+	(move_operand): Allow hilo_operand.
+	* config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
+	target of MIPS16 multiplies, then move it into the target register.
+	(mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
+	(<u>mulsidi3_32bit_mips16): New expander.
+	(<u>mulsidi3_32bit): Use muldiv_target_operand.
+	(<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
+	(<u>mulsidi3_64bit): Require !TARGET_MIPS16.  Split into
+	<u>mulsidi3_64bit_split.
+	(<u>mulsidi3_64bit_mips16): New expander.
+	(<u>mulsidi3_64bit_split): Likewise, using expansions from
+	two previous define_splits.
+	(<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
+	muldiv_target_operand.
+	(<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
+	(<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
+	Split into <su>mulsi3_highpart_split.
+	(<su>mulsi3_highpart_split): New expander.
+	(<su>muldi3_highpart): Turn into a define_expand.
+	Use <su>muldi3_highpart_split for MIPS16 code.
+	(<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
+	Require !TARGET_MIPS16.  Split into <su>muldi3_highpart_split.
+	(<su>muldi3_highpart_split): New expander.
+	(<u>mulditi3): Explicitly specify LO as the target of MIPS16
+	multiplies, then move it into the target register.
+	(<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
+	(divmod<mode>4, udivmod<mode>4): Turn into define_expands.
+	Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
+	move LO into operand 0.
+	(divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
+	from <u>divmod<mode>4.  Use muldiv_target_operand.
+	Require !TARGET_MIPS16.  Split into <u>divmod<mode>4_split.
+	(<u>divmod<mode>4_split): New expander.
+	(<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
+	(mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
+
+2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	* hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
+	and x_operand_reg_set.
+	(accessible_reg_set, operand_reg_set): New macros.
+	* reginfo.c (init_reg_sets): Initialize accessible_reg_set and
+	operand_reg_set.
+	(saved_accessible_reg_set, saved_operand_reg_set): New variables.
+	(save_register_info): Save them.
+	(restore_register_info): Restore them.
+	(init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
+	Remove NO_REGS registers from operand_reg_set.  Treat members
+	of operand_reg_set as fixed.
+	* recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
+	(register_operand, nonmemory_operand): Likewise.
+	* varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
+	register variables.  Check accessible_reg_set and operand_reg_set.
+	* config/mips/mips.c (mips_conditional_register_usage): Remove
+	inaccessible register from accessible_reg_set, rather than just
+	making them fixed.
+
+2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* config/pa/pa-linux.h (TARGET_GAS): Remove comment.
+
+2011-11-26  Richard Henderson  <rth@redhat.com>
+
+	* config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
+	for Linux.
+
+2011-11-26  Richard Henderson  <rth@redhat.com>
+
+	* optabs.c (expand_atomic_fetch_op): Always return result.
+
+	* optabs.c (init_sync_libfuncs_1): Include max in iteration.
+
+	* omp-low.c (expand_omp_atomic): Assume anything aligned to
+	BIGGEST_ALIGNMENT is aligned.
+
+2011-11-26  Richard Henderson  <rth@redhat.com>
+
+	* config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
+	(UNSPECV_TAS_1, UNSPECV_TAS_2): New.
+	(I): New mode iterator.
+	(xz): New mode attribute.
+	* config/m68k/sync.md: New file.
+
+	* config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
+	* config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
+
+2011-11-26  Nathan Sidwell  <nathan@acm.org>
+
+	PR gcov-profile/51297
+	* gcov.c (main): Allocate initial names and sources arrays.
+	(find_source): Don't check for null name or source arrays here.
+
+2011-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/49912
+	* cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
+	when counting n_branch.
+
+2011-11-26  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
+
+2011-11-26  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+	PR middle-end/50074
+	* calls.c (mem_overlaps_already_clobbered_arg_p):
+	Return false if no outgoing arguments have been stored so far.
+
+2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
+
+2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR other/51011
+	* tree.h (is_builtin_name): No longer external.
+	* builtins.c (is_builtin_name): Make static.
+	* varasm.c (incorporeal_function_p): __sync and __atomic external calls
+	are not incorporeal and may need asm label processing.
+
+2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50566
+	* config/avr/avr-protos.h (avr_log_t): Add field .builtin.
+	* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
+	Don't bypass TARGET_ALL_DEBUG.  Print self-info with ?.
+	(avr_log_vadump): Support %D and %X to print double_int.
+	(avr_double_int_pop_digit): New static function.
+	(avr_dump_double_int_hex): New static function.
+
+2011-11-24  Enkovich Ilya  <ilya.enkovich@intel.com>
+
+	PR target/51287
+	* config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
+	attr check.
+
+2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
+
+	* optab.c (maybe_emit_atomic_exchange): New.  Try to emit an
+	atomic_exchange pattern.
+	(maybe_emit_sync_lock_test_and_set): New.  Try to emit an exchange
+	using __sync_lock_test_and_set.
+	(maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
+	exchange using a compare_and_swap loop.
+	(expand_sync_lock_test_and_set): New.  Expand sync_lock_test_and_set.
+	(expand_atomic_test_and_set): New.  Expand test_and_set operation.
+	(expand_atomic_exchange): Use new maybe_emit_* functions.
+	(expand_atomic_store): Use new maybe_emit_* functions.
+	* builtins.c (expand_builtin_sync_lock_test_and_set): Call
+	expand_sync_lock_test_and_set routine.
+	(expand_builtin_atomic_exchange): Remove parameter from call.
+	(expand_builtin_atomic_clear): Use atomic_clear pattern if present.
+	(expand_builtin_atomic_test_and_set): Add target and simply call
+	expand_atomic_test_and_set.
+	(expand_builtin): Add target to expand_builtin_atomic_test_and_set.
+	* expr.h (expand_atomic_exchange): Add parameter.
+	(expand_sync_lock_test_and_set): New prototype.
+	(expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
+
+2011-11-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/51134
+	* config/i386/i386.h (processor_costs): Revert revision 181357.
+	* config/i386/i386.c (cost models): Likewise.
+	(core_cost): Likewise.
+	(promote_duplicated_reg): Likewise.
+	(promote_duplicated_reg_to_size): Likewise.
+	(processor_target): Likewise.
+	(expand_set_or_movmem_via_loop_with_iter): Likewise.
+	(expand_set_or_movmem_via_loop): Likewise.
+	(emit_strset): Likewise.
+	(expand_movmem_epilogue): Likewise.
+	(expand_setmem_epilogue): Likewise.
+	(expand_movmem_prologue): Likewise.
+	(expand_setmem_prologue): Likewise.
+	(expand_constant_movmem_prologue): Likewise.
+	(expand_constant_setmem_prologue): Likewise.
+	(decide_alg): Likewise.
+	(decide_alignment): Likewise.
+	(ix86_expand_movmem): Likewise.
+	(ix86_expand_setmem): Likewise.
+	(ix86_slow_unaligned_access): Likewise.
+	* config/i386/i386.md (strset): Likewise.
+	* config/i386/sse.md (vec_dupv4si): Likewise.
+	(vec_dupv2di): Likewise.
+
+2011-11-24  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.md (*rotlhi2.15): Set length to 4.
+
+2011-11-24  Razya Ladelsky  <razya@il.ibm.com>
+
+	* tree-data-ref.c (initialize_data_dependence_relation): Update
+	comment for the self dependence case.
+	(compute_self_dependence): Remove.
+	* tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
+	compute_self_dependenc.
+
+2011-11-24  Alan Modra  <amodra@gmail.com>
+
+	* c-decl.c (warn_if_shadowing): Don't warn if shadowed
+	identifier is from system header.
+
+2011-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/51261
+	* config/i386/i386.c (decide_alg): Initialize *dynamic_check
+	even if !optimize.
+
+2011-11-23  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR rtl-optimization/48455
+	* doc/invoke.texi (-fira-region): Document default values.
+
+	* flags-types.h (enum ira_region): Add new value
+	IRA_REGION_AUTODETECT.
+
+	* common.opt (fira-region): Set up initial value to
+	IRA_REGION_AUTODETECT.
+
+	* toplev.c (process_options): Set up flag_ira_region depending on
+	-O options.
+
+	* ira.c (ira.c): Remove optimize guard for ira_build.
+
+2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>
+
+	PR rtl-optimization/50496
+	* jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
+	only after epilogue is created. Add comments.
+
+2011-11-22  Richard Henderson  <rth@redhat.com>
+
+	* config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
+	Generate the barrier required for the memory model.
+	(rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
+	* config/ia64/ia64-protos.h: Update.
+	* config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
+	(UNSPEC_CMPXCHG_REL): New.
+	* config/ia64/sync.md (mem_thread_fence): New.
+	(atomic_load<IMODE>, atomic_store<IMODE>): New.
+	(atomic_compare_and_swap<IMODE>): New.
+	(cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
+	(atomic_exchange<IMODE>): New.
+	(xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
+	(atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
+	(atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
+	(atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
+	(fetchadd_rel_<I48MODE>): New.
+	(sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
+	(sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
+	(sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
+	(sync_compare_and_swap<IMODE>): Remove.
+	(sync_lock_release<IMODE>): Remove.
+
+	* config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
+	and UNSPECV_* constants.
+
+2011-11-22  Tom de Vries  <tom@codesourcery.com>
+
+	PR rtl-optimization/50764
+	* sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
+	not moved past preceding jump.
+
+2011-11-22  Jeff Law  <law@redhat.com>
+
+	* doc/contrib.texi: Add entry for David Binderman.
+
+2011-11-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* postreload.c (reload_combine): Mark reg_state as invalid at
+	volatile insns if there has been a use already.
+
+2011-11-21  Aldy Hernandez  <aldyh@redhat.com>
+
+	* opts.c (finish_options): Do not fail for -fgnu-tm.
+	* gimple-streamer-out.c (output_gimple_stmt): Handle
+	GIMPLE_TRANSACTION.
+	* gimple-streamer-in.c (input_gimple_stmt): Same.
+	* lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
+	(lto_output_node): Write tm_clone bit.
+
+2011-11-22  Ian Lance Taylor  <iant@google.com>
+
+	* doc/install.texi (Configuration): Correct doc of
+	--enable-build-poststage1-with-cxx: it is not experimental.
+
+2011-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51074
+	* fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
+	handling for BYTES_BIG_ENDIAN.
+	* optabs.c (can_vec_perm_for_code_p): Likewise.
+
+2011-11-22  Michael Matz  <matz@suse.de>
+
+	PR other/51125
+	* trans-mem.c (expand_block_tm): Ignore clobbers.
+
+2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
+
+	*  config/darwin.h (ENDFILE_SPEC): New.
+	(DARWIN_CRT1_SPEC): Add crttms.o.
+	(STARTFILE_SPEC): Likewise for dynamic libs and bundles.
+	* config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
+
+2011-11-22  Michael Matz  <matz@suse.de>
+
+	PR c++/51264
+	* tree.c (iterative_hash_expr): Remove break after return.
+
+2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* target.def (tm_clone_table_section): New hook.
+	* doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
+	* doc/tm.texi: Regenerate.
+	* varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
+	* output.h (default_clone_table_section): New prototype.
+	* config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
+	* config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
+	* config/darwin.c (darwin_tm_clone_table_section): New.
+
+2011-11-21  Torvald Riegel  <triegel@redhat.com>
+
+	* trans-mem.c (diagnose_tm_1): Print an expression instead of a
+	declaration in error messages for indirect calls.
+
+2011-11-21  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.c (sparc_regmode_natural_size): New function
+	implementing REGMODE_NATURAL_SIZE taking into consideration vector
+	modes.
+	(sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
+	* config/sparc/sparc-protos.h (sparc_regmode_natural_size,
+	sparc_modes_tieable_p): Declare.
+	* gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
+	MODES_TIEABLE_P): Use new helper functions.
+
+	Revert
+	2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	PR middle-end/50325
+	* expmed.c (store_bit_field_1): Use extract_bit_field on big
+	endian targets if the source cannot be exactly covered by word
+	mode chunks.
+
+2011-11-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/50827
+	* var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
+	macro instead of XEXP.
+
+2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
+
+	* configure: Regenerate.
+
+2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.c (output_reload_in_const): Loading a byte with 0
+	must not affect cc0.
+	* config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
+	register does not change cc0. Same for any constant to ld-register.
+
+2011-11-21  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
+	UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
+	Move from config/i386/i386.md
+	(unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
+	* config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
+	UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
+	UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
+	UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
+	UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
+	UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
+	UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
+	UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
+	UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
+	UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
+	UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
+	UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
+	(unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
+	UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
+	Ditto.
+	* config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
+	UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
+	(unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
+	UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
+	(sse2_lfence): Move from config/i386/sse.md.
+	(*sse2_lfence): Ditto.
+	(sse_sfence): Ditto.
+	(*sse_sfence): Ditto.
+	(sse2_mfence): Ditto.
+	(mfence_sse2): Ditto.  Rename from *sse2_mfence.  Enable also
+	for TARGET_64BIT.
+	(mem_thread_fence): Use mfence_sse2.
+
+2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
+	* config/avr/avr-devices.c: Ditto. And initialize it.
+	* config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
+	__AVR_SFR_OFFSET__.
+	* config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
+	(out_movhi_r_mr, out_movhi_mr_r): Remove.
+	(out_movsi_r_mr, out_movsi_mr_r): Remove.
+	* config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
+	(*insv.io, *insv.not.io): Ditto.
+	* config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
+	(print_operand): Implement "%i" to print address as I/O address.
+	(output_movqi): Clean up call of out_movqi_mr_r.
+	(output_movhi): Clean up call of out_movhi_mr_r.
+	(avr_file_start): Use avr_current_arch->sfr_offset instead of
+	magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
+	(avr_out_sbxx_branch): Use %i instead of %m-0x20.
+	(out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
+	(out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
+	(out_shift_with_cnt): Clean up code: Use avr_asm_len.
+	(output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
+	(avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
+	Clean up call of avr_out_store_psi.
+	(output_reload_in_const): Don't cut symbols longer than 2 bytes.
+	(output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
+	try if setting pre-cleared register is advantageous.
+	(avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
+
+2011-11-20  Joey Ye  <joey.ye@arm.com>
+
+	* expr.c (expand_expr_real_1): Correctly handle strict volatile
+	bitfield loads smaller than mode size.
+
+2011-11-20  Richard Henderson  <rth@redhat.com>
+
+	* config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
+
+2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/51235
+	* config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
+	patterns for supported mode only.
+
+	PR target/51236
+	* config/i386/i386.c (ix86_expand_builtin)
+	<IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
+
+2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (UNSPEC_MOVNTI): Remove.
+	(UNSPEC_MOVNTQ): New unspec.
+	* config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
+	Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
+	* config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
+	UNSPEC_MOVNTI.
+	(STORENT_MODE): Add DI and V4DI modes.
+
+2011-11-20  Nathan Sidwell  <nathan@acm.org>
+
+	PR gcov-profile/51113
+	* coverage.c (build_var): Propagate visibility for public
+	decls.  Use make_decl_one_only for PIC correctness.
+
+	testsuite/
+	* gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
+	* gcc.misc-tests/gcov-16.c: New.
+	* gcc.misc-tests/gcov-17.c: New.
+	* g++.dg/gcov/gcov-8.C: New.
+	* g++.dg/gcov/gcov-9.C: New.
+	* g++.dg/gcov/gcov-10.C: New.
+
+2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/51187
+	* reorg.c (relax_delay_slots): Do not consider a jump useless if there
+	is a barrier between the jump and its target label.
+
+2011-11-19  Patrick Marlier  <patrick.marlier@gmail.com>
+
+	PR middle-end/51211
+	* tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
+
+2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* expmed.c (store_bit_field_1): Revert bogus formatting change.
+
+2011-11-19  Richard Earnshaw  <rearnsha@arm.com>
+
+	PR target/50493
+	* config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
+	overlap of src and dest operands.
+
+2011-11-19  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* config/darwin.h (ASM_DEBUG_SPEC): New.
+	* config/darwin9.h (ASM_DEBUG_SPEC): New.
+
+2011-11-18  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/i386.c (atom_cost): Disable SSE loop until alignment
+	issues are fixed.
+
+2011-11-18  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/cris/cris.c (cris_function_value_regno_p): Make static.
+	(TARGET_FUNCTION_VALUE_REGNO_P): Define.
+	* config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
+	* config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
+
+2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/33944
+	* doc/extend.texi: Document __builtin_ia32_movnti64.
+
+	* config/i386/emmintrin.h (_mm_stream_si64): New.
+
+	* config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
+
+	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
+	(bdesc_special_args): Update __builtin_ia32_movnti.  Add
+	__builtin_ia32_movnti64.
+	(ix86_expand_special_args_builtin): Handle
+	VOID_FTYPE_PLONGLONG_LONGLONG.
+
+	* config/i386/i386.md (UNSPEC_MOVNTI): New.
+
+	* config/i386/sse.md (sse2_movntsi): Renamed to ...
+	(sse2_movnti<mode>): This.
+
+2011-11-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/49868
+	* config/avr/avr.h (base_arch_s): Add field n_segments.
+	(ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
+	ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
+	(AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
+	(INIT_EXPANDERS): New define.
+	* config/avr/avr-protos.h (avr_mem_pgmx_p): New.
+	(avr_init_expanders): New.
+	(avr_emit_movmemhi, avr_out_movmem): New.
+	(avr_xload_libgcc_p): New.
+	* config/avr/avr-c.c (avr_register_target_pragmas): Register
+	address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
+	(avr_cpu_cpp_builtins): Add built-in defines __PGM1,
+	__PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
+	* config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
+
+	* config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
+	3 bits instead of just 1.
+	(xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
+	(progmem_section): Change from section to array of sections.
+	(progmem_section_prefix): New static variable.
+	(avr_file_start): Print set for __RAMPZ__
+	(avr_option_override): Move initialization of RTXes from here...
+	(avr_init_expanders): ...to this new function.
+	(avr_pgm_segment): New static function.
+	(avr_decl_pgm_p): Handle error_mark_node.
+	(avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
+	(avr_out_xload,	avr_find_unused_d_reg): New static functions.
+	(expand_prologue, expand_epilogue): Use rampz_rtx.
+	(print_operand): Hande CONST_STRING.
+	(avr_xload_libgcc_p): New static function.
+	(avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
+	(avr_progmem_p): Return 2 for 24-bit flash address space.
+	(avr_out_sbxx_branch): Clean-up code from ASn macros.
+	(out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
+	address and print symbolically.
+	(avr_asm_named_section, avr_section_type_flags,
+	avr_encode_section_info, avr_asm_select_section,
+	avr_addr_space_address_mode, avr_addr_space_pointer_mode,
+	avr_addr_space_legitimate_address_p, avr_addr_space_convert,
+	avr_addr_space_legitimize_address): Handle new address spaces.
+	(avr_output_progmem_section_asm_op): New static function.
+	(avr_asm_init_sections): Initialize progmem_section[].
+	(adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
+	(avr_const_address_lo16): New static function.
+	(avr_assemble_integer): Use it to handle 3-byte integers.
+	(avr_emit_movmemhi, avr_out_movmem): New functions.
+
+	* config/avr/predicates.md (nox_general_operand): Handle new
+	address spaces.
+	* config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
+	(adjust_len): Add xload, movmem.
+	(SP_ADDR): New define_constants.
+	(isa): Add "lpm", "lpmx", "elpm", "elpmx".
+	(enabled): Handle them.
+	(load<mode>_libgcc): New expander.
+	(*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
+	(xload8_A, xload<mode>_A): New insn-and-splits.
+	(xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
+	(mov<mode>): Handle new address spaces.
+	(movmemhi): Rewrite using avr_emit_movmemhi.
+	(MOVMEM_r_d): New mode attribute.
+	(movmem_<mode>, movmem_qi_elpm): New insns.
+	(setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
+	C-code.  Use label instead of hard-coded instrunction lengths.
+
+2011-11-18  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/50605
+	* gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
+	of IPA invariant decls.
+
+2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+	* tree-outof-ssa.c (insert_back_edge_copies):  Add call to
+	mark_dfs_back_edges.
+
+2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR target/49992
+	* configure.ac: Remove ranlib special-casing for Darwin.
+	* configure: Regenerate.
+
+2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR tree-optimization/51118
+	* fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
+	before using TREE_TYPE accessor on expr.
+
+2011-11-17  Jan Hubicka  <jh@suse.cz>
+
+	PR bootstrap/51134
+	* i386.c (atom_cost): Fix 32bit memset description.
+	(expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
+	for epilogue loops.
+	(expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
+	byte loop.
+	(decide_alg): sse_loop is not useable wthen SSE2 is disabled;
+	when not optimizing always use rep movsb or lincall; do not produce
+	word sized loops when optimizing memset for size (to avoid need
+	for large constants).
+	(ix86_expand_movmem): Get into sync with ix86_expand_setmem;
+	choose unroll factors better; always do 128bit moves when producing
+	SSE loops; do not produce loopy epilogue when size is too small.
+	(promote_duplicated_reg_to_size): Do not look into desired alignments
+	when doing vector expansion.
+	(ix86_expand_setmem): Track better when promoted value is available;
+	choose unroll factors more sanely. Output loopy epilogue only
+	when needed.
+
+2011-11-17  Steve Ellcey  <sje@cup.hp.com>
+
+	PR middle-end/51144
+	* output.h (fprint_w): Remove.
+	* final.c (fprint_w): Remove.
+	(output_addr_const): Change fprint_w back to fprintf.
+
+2011-11-17  Andrew Pinski  <apinski@cavium.com>
+
+	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
+
+2011-11-17  Andrew MacLeod  <amacleod@redhat.com>
+
+	* builtins.c (expand_builtin): Remove 4th parameter representing
+	weak/strong mode when __atomic_compare_exchange becomes a library call.
+
+2011-11-17  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
+	new pseudo for target after convert_modes.
+	(rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
+
+2011-11-17  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
+	new pseudo for target after convert_modes.
+	(rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
+
+2011-11-17  Richard Henderson  <rth@redhat.com>
+
+	* builtins.c (expand_builtin_mem_thread_fence): Remove.
+	(expand_builtin_mem_signal_fence): Remove.
+	(expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
+	(expand_builtin_sync_synchronize): Likewise.
+	(expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
+	* optabs.c (expand_asm_memory_barrier): Split out from
+	expand_builtin_mem_signal_fence.
+	(expand_mem_thread_fence): New, a combination of code from
+	expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
+	(expand_mem_signal_fence): Moved and renamed from
+	expand_builtin_mem_signal_fence.
+	(expand_atomic_exchange): Use expand_mem_thread_fence.
+	(expand_atomic_load, expand_atomic_store): Likewise.
+	* expr.h, optabs.h: Update decls.
+
+2011-11-17  Bin Cheng  <bin.cheng@arm.com>
+
+	PR rtl-optimization/50663
+	* cprop.c (implicit_set_indexes): New global variable.
+	(insert_set_in_table): Add additional parameter and record implicit
+	set information.
+	(hash_scan_set): Add additional parameter and pass it to above.
+	(hash_scan_insn): Pass false to hash_scan_set.
+	(compute_hash_table_work): Pass true to hash_scan_set.
+	(compute_cprop_data): Add implicit set to AVIN of block which the
+	implicit set is recorded for.
+	(one_cprop_pass): Handle implicit_set_indexes array.
+
+2011-11-17  Michael Matz  <matz@suse.de>
+
+	PR middle-end/50644
+	PR middle-end/50741
+	* tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
+	current function.
+	(remove_unused_locals): Ditto.
+
+2011-11-16  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
+	ALIAS_SET_MEMORY_BARRIER when creating a new memory.
+	(alpha_split_atomic_exchange_12): Likewise.
+	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
+
+2011-11-16  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
+
+2011-11-16  David Edelsohn  <dje.gcc@gmail.com>
+
+	* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
+	Default to minimum alignment if decl is NULL.
+
+2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
+	sequence for AVX.
+	(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
+
+2011-11-16  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
+
+	* doc/invoke.texi: Document AMD bdver1 and btver1.
+
+2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
+	    Bernd Schmidt <bernds@coudesourcery.com>
+	    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+	PR target/49641
+	* config/arm/arm.c (store_multiple_sequence): Avoid cases where
+	the base reg is stored iff compiling for Thumb1.
+
+2011-11-16  Razya Ladelsky  <razya@il.ibm.com>
+
+	PR tree-optimization/49960
+	* tree-data-ref.c (initialize_data_dependence_relation): Add
+	initializations.
+	Remove call to compute_self_dependence.
+	(compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
+	(compute_self_dependence): Remove old code. Add call to
+	compute_affine_dependence.
+	(compute_all_dependences): Remove call to compute_self_dependence.
+	Add call to compute_affine_dependence.
+
+2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	PR middle-end/50325
+	* expmed.c (store_bit_field_1): Use extract_bit_field on big
+	endian targets if the source cannot be exactly covered by word
+	mode chunks.
+
+2011-11-15  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
+	ELF_STRING_LIMIT.
+
+2011-11-15  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
+	(alpha_post_atomic_barrier): New.
+	(alpha_split_atomic_op): New memmodel argument; honor it.
+	(alpha_split_compare_and_swap): Take array of operands.  Honor
+	memmodel; always set bool output
+	(alpha_expand_compare_and_swap_12): Similarly.
+	(alpha_split_compare_and_swap_12): Similarly.
+	(alpha_split_atomic_exchange): Similarly.  Rename from
+	alpha_split_lock_test_and_set.
+	(alpha_expand_atomic_exchange_12): Similarly.  Rename from
+	alpha_expand_lock_test_and_set_12.
+	(alpha_split_atomic_exchange_12): Similarly.  Rename from
+	alpha_split_lock_test_and_set_12.
+	* config/alpha/alpha-protos.h: Update.
+	* config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
+	* config/alpha/constraints.md ("w"): New.
+	* config/alpha/predicates.md (mem_noofs_operand): New.
+	* config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
+	sync_compare_and_swap<mode>; add the new parameters.
+	(atomic_exchange<mode>): Update from sync_test_and_set<mode>.
+	(atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
+	(atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
+	(atomic_<op><mode>): Update from sync_<op><mode>.
+
+2011-11-16  Tom de Vries  <tom@codesourcery.com>
+
+	* tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
+
+2011-11-16  Alan Modra  <amodra@gmail.com>
+
+	PR rtl-optimization/51051
+	PR bootstrap/51086
+	* function.c (thread_prologue_and_epilogue_insns): Guard
+	emitting return with single_succ_p test.
+
+2011-11-15  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+	* config/epiphany/epiphany.md (mov<mode>cc): Fix code to
+	get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
+
+2011-11-15  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
+	(vec_pack_sfix_trunc_v2df): Ditto.
+	(vec_pack_sfix_v2df): Ditto.
+	(vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
+	avx_vec_concatv8si patterns.
+	(vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
+	avx_vec_concatv8si patterns.
+
+2011-11-15  Torvald Riegel  <triegel@redhat.com>
+
+	* c-parser.c (c_parser_transaction_expression): Require parentheses
+	when parsing transaction expressions.
+
+2011-11-15  Tristan Gingold  <gingold@adacore.com>
+
+	* incpath.c (get_added_cpp_dirs): New function.
+	* incpath.h (get_added_cpp_dirs): Declare.
+	* config/vms/vms-c.c (vms_c_register_includes): New function.
+	(vms_std_modules): New variable.
+	* config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
+	(vms_c_register_includes): Declare.
+
+2011-11-15  Tristan Gingold  <gingold@adacore.com>
+
+	* c-family/c-pragma.h (pragma_extern_prefix): Declare.
+	* c-family/c-pragma.c (pragma_extern_prefix): Make it public.
+	* config/vms/vms-c.c (saved_extern_prefix): New variable.
+	(vms_pragma_extern_prefix): New function.
+	(vms_c_register_pragma): Register vms_pragma_extern_prefix.
+
+2011-11-15  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/49868
+	* config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
+	(REGISTER_TARGET_PRAGMAS): New define.
+	* config/avr/avr-protos.h (avr_mem_pgm_p): New.
+	(avr_load_libgcc_p): New.
+	(avr_register_target_pragmas): New.
+	(asm_output_external_libcall): Remove.
+	(avr_log_t): Add field "progmem".  Order alphabetically.
+	* config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
+	* config/avr/avr-c.c (langhooks.h): New include.
+	(avr_register_target_pragmas): New function. Register address
+	space __pgm.
+	(avr_cpu_cpp_builtins): Add built-in define __PGM.
+
+	* config/avr/avr.c: Include "c-family/c-common.h".
+	(TARGET_LEGITIMATE_ADDRESS_P): Remove define.
+	(TARGET_LEGITIMIZE_ADDRESS): Remove define.
+	(TARGET_ADDR_SPACE_SUBSET_P): Define to...
+	(avr_addr_space_subset_p): ...this new static function.
+	(TARGET_ADDR_SPACE_CONVERT): Define to...
+	(avr_addr_space_convert): ...this new static function.
+	(TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
+	(avr_addr_space_address_mode): ...this new static function.
+	(TARGET_ADDR_SPACE_POINTER_MODE): Define to...
+	(avr_addr_space_pointer_mode): ...this new static function.
+	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
+	(avr_addr_space_legitimate_address_p): ...this new static function.
+	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
+	(avr_addr_space_legitimize_address): ...this new static function.
+	(avr_mode_code_base_reg_class): Handle address spaces.
+	(avr_regno_mode_code_ok_for_base_p): Ditto.
+	(lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
+	(avr_option_override): Initialize them.
+	(output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
+	variables.
+	(avr_pgm_segment): New static function.
+	(avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
+	(avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
+	(output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
+	avr_out_lpm to handle loads from progmem.
+	(avr_load_libgcc_p): New static function.
+	(avr_progmem_p): Test if decl is in flash.
+	(avr_pgm_pointer_const_p): New static function.
+	(avr_nonconst_pointer_addrspace): New static function.
+	(avr_pgm_check_var_decl): New static function.
+	(avr_insert_attributes): Use it.  Change error message to report
+	cause (progmem or address space) when code wants to write to flash.
+	(avr_section_type_flags): Unset section flag SECTION_BSS for
+	data in progmem.
+
+	* config/avr/predicates.md (nop_general_operand): New predicate.
+	(nox_general_operand): New predicate.
+	* config/avr/avr.md (LPM_REGNO): New define_constant.
+	(load<mode>_libgcc): New expander.
+	(*load.<mode>.libgcc): New insn.
+	(mov<mode>): Handle loads from non-generic AS.
+	(movmemhi): Ditto.  Propagate address space information to newly
+	created MEM.
+	(movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
+	to nox_general_operand.
+	(ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
+	nop_general_operand.
+	(ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
+	(lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
+	(split-lpmx): New split.
+	(*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
+	*lshrhi3_const, *lshrsi3_const): Indent, unquote C.
+
+2011-11-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+	* ipa-cp.c (ipa_value_from_jfunc): Make global.
+	(ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
+	(get_indirect_edge_target): Rename, make global.
+	(devirtualization_time_bonus, estimate_local_effects,)
+	(ipcp_discover_new_direct_edges): Update.
+	* ipa-inline-analysis.c (evaluate_conditions_for_edge):
+	Generalize to also handle types.  Rename to ...
+	(evaluate_properties_for_edge): Use instead of
+	evaluate_conditions_for_edge.
+	(estimate_edge_devirt_benefit): New function.
+	(estimate_calls_size_and_time): Use it.
+	(estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
+	(inline_merge_summary):	Update.
+	(do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
+	parameter information at the call site and pass it on to subroutines.
+	* tree-inline.c (estimate_num_insns): Distinguish between direct and
+	indirect calls.
+	(init_inline_once): Set size and time costs or indirect calls.
+	* tree-inline.h (eni_weights): Add indirect_call_cost.
+
+2011-11-15  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/51005
+	* tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
+	mark_basic_block_deleted.
+	(update_worklist): Inline purge_bbs.
+	(purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
+	(delete_block_update_dominator_info): Remove.
+	(replace_block_by): Remove update_vops parameter.  Partially evaluate
+	for update_vops == false.
+	(apply_clusters): Remove update_vops parameter.  Remove update_vops
+	argument in replace_block_by call.
+	(update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
+	(tail_merge_optimize): Remove update_vops argument to apply_clusters.
+	Remove call to purge_bbs.  Add calls to calculate_dominance_info and
+	free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS	before calling
+	update_debug_stmts.  Mark vop var for renaming, if necessary.
+
+2011-11-15  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR rtl-optimization/51051
+	* cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
+	move would cause fallthrough into the exit block.
+
+2011-11-14  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
+	handled.
+	(emit_store_conditional): Likewise.
+	(rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
+	(rs6000_adjust_atomic_subword): New.
+	(rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
+	(rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
+	for pre-reload expansion.
+	(rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
+	rs6000_expand_compare_and_swapqhi): Merge into ...
+	(rs6000_expand_atomic_compare_and_swap): ... here.  New function.
+	rs6000_split_lock_test_and_set; expand immediately.  Handle
+	QImode and HImode.
+	* config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
+	from UNSPECV_LWSYNC.
+	* config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
+	(mem_thread_fence): New.
+	(hwsync): Rename from memory_barrier.
+	(*hwsync): Rename from *sync_internal.
+	(lwsync, *lwsync): Mirror hwsync implementation.
+	(isync): Don't reference memory.
+	(loadsync): New.
+	(atomic_load<INT>, atomic_store<INT>): New.
+	(ATOMIC): New mode iterator.
+	(load_locked<ATOMIC>): Rename from load_locked_<GPR>.
+	(store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
+	(sync_compare_and_swap<GPR>): Remove.
+	(sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
+	(sync_compare_and_swapqhi_internal): Remove.
+	(sync_lock_test_and_set<GPR>): Remove.
+	(sync_<FETCHOP><INT1>): Remove.
+	(*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
+	(sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
+	(sync_old_<FETCHOP><GPR>): Remove.
+	(*sync_old_<FETCHOP>si_internal): Remove.
+	(*sync_old_<FETCHOP>di_internal): Remove.
+	(sync_old_nand<INT1>): Remove.
+	(*sync_old_nand<GPR>_internal): Remove.
+	(sync_new_<FETCHOP><GPR>): Remove.
+	(*sync_new_<FETCHOP>si_internal): Remove.
+	(*sync_new_<FETCHOP>di_internal): Remove.
+	(sync_new_nand<INT1>): Remove.
+	(*sync_new_nand<GPR>_internal): Remove.
+	(*atomic_andsi, *atomic_anddi): Remove.
+	(*sync_addshort_internal, *sync_subshort_internal): Remove.
+	(*sync_andsi_internal, *sync_boolsi_internal): Remove.
+	(*sync_boolcshort_internal): Remove.
+	(sync_lock_release<INT1>): Remove.
+	(atomic_compare_and_swap<INT1>): New.
+	(atomic_exchange<INT1>): New.
+	(atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
+	(atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
+	(atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
+
+2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (round<mode>2): Use register_operand for
+	operand 1 predicate.
+	(round<mode>2_sfix): Ditto.
+	(round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
+
+2011-11-14  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (canonicalize_name): Protect use of S_ISLNK.
+
+2011-11-14  Jan Hubicka  <jh@suse.cz>
+
+	PR target/51126
+	* config/i386/i386.c (core cost model): Correct pasto.
+
+2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (round<mode>2_sfix): New expander.
+	(round<mode>2_vec_pack_sfix): Ditto.
+	(<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
+	(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
+	* config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
+	V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
+	V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
+	* config/i386/i386.c (ix86_builtins): Add
+	IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
+	IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
+	(bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
+	__builtin_ia32_roundpd_az_vec_pack_sfix{,256},
+	__builtin_ia32_{floorps,ceilps}_sfix{,256}and
+	__builtin_ia32_roundps_az_sfix{,256} descriptions.
+	(ix86_expand_sse_round_vec_pack_sfix): New.
+	(ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
+	V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
+	V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
+	CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
+	CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
+	(ix86_builtin_vectorized_function): Handle
+	BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
+	BUILT_IN_{I,L,LL}ROUND{,F}
+
+2011-11-14  Jan Hubicka  <jh@suse.cz>
+
+	PR middle-end/50598
+	* cgraph.h (varpool_externally_visible_p): Declare.
+	(varpool_add_new_variable): Declare.
+	* tree-emultls.c (get_emutls_init_templ_addr,
+	new_emutls_decl): Use varpool_add_new_variable.
+	* ipa.c (varpool_externally_visible_p): Export.
+	* varpool.c (varpool_add_new_variable): New function.
+
+2011-11-14  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
+	    Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/i386.h (processor_costs): Add second dimension to
+	stringop_algs array.
+	* config/i386/i386.c (cost models): Initialize second dimension of
+	stringop_algs arrays.
+	(core_cost): New costs based on generic64 costs with updated stringop
+	values.
+	(promote_duplicated_reg): Add support for vector modes, add
+	declaration.
+	(promote_duplicated_reg_to_size): Likewise.
+	(processor_target): Set core costs for core variants.
+	(expand_set_or_movmem_via_loop_with_iter): New function.
+	(expand_set_or_movmem_via_loop): Enable reuse of the same iters in
+	different loops, produced by this function.
+	(emit_strset): New function.
+	(expand_movmem_epilogue): Add epilogue generation for bigger sizes,
+	use SSE-moves where possible.
+	(expand_setmem_epilogue): Likewise.
+	(expand_movmem_prologue): Likewise for prologue.
+	(expand_setmem_prologue): Likewise.
+	(expand_constant_movmem_prologue): Likewise.
+	(expand_constant_setmem_prologue): Likewise.
+	(decide_alg): Add new argument align_unknown.  Fix algorithm of
+	strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
+	(decide_alignment): Update desired alignment according to chosen move
+	mode.
+	(ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
+	(ix86_expand_setmem): Likewise.
+	(ix86_slow_unaligned_access): Implementation of new hook
+	slow_unaligned_access.
+	* config/i386/i386.md (strset): Enable half-SSE moves.
+	* config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
+	(vec_dupv2di): Add expand for vec_dupv2di.
+
+2011-11-14  Dimitrios Apostolou  <jimis@gmx.net>
+
+	PR bootstrap/51094
+	PR middle-end/51116
+	* config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
+	* varasm.c (default_elf_internal_label): Remove.
+
+2011-11-14  Kai Tietz  <ktietz@redhat.com>
+
+	* gcov.c (generate_results): Add missing semicolon and correct indent.
+
+2011-11-14  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR bootstrap/51112
+	* tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
+
+2011-11-14  Mingjie Xing  <mingjie.xing@gmail.com>
+
+	* doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
+	to @pxref{Function Attributes}.
+
+2011-11-13  Oleg Endo  <oleg.endo@t-online.de>
+
+	PR target/50694
+	* config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
+	New macros.
+	(DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
+	taking the default configuration into account.
+
+2011-11-13  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* doc/install.texi (Specific): Fix anchor for
+	x86_64-*-solaris2.1[0-9]*.
+
+2011-11-13  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (source_prefix, source_length): New globals.
+	(flag_relative_only): Likewise.
+	(print_usage, options, process_args): Update.
+	(generate_results): Use coverage.name, check
+	flag_relative_only. Adjust messages.
+	(find_source): Check source_prefix.
+	(output_lines): Use coverage.name, adjust messages.
+	* doc/gcov.texi (Invoking Gcov): Document new options.
+
+2011-11-12  Jason Merrill  <jason@redhat.com>
+
+	PR c++/51060
+	* gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
+	(gimplify_modify_expr): Don't try to simplify it.
+
+2011-11-12  Dimitrios Apostolou  <jimis@gmx.net>
+
+	PR bootstrap/51094
+	* config/elfos.h (STRING_ASM_OP): Define.
+	* varasm.c (default_elf_asm_output_limited_string): Use it.
+
+	PR bootstrap/51094
+	* gcc/configure.ac: Check for stpcpy declaration.
+	* system.h: Declare it if not.
+	* config.in, configure: Regenerate.
+
+2011-11-12  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
+	nonimmediate_operand for the destination.
+	(fixuns_trunc<SFDF>si2_stfiwx): Likewise.
+
+	* builtins.c (expand_builtin_compare_and_swap): If target is const0,
+	don't pass the target to expand_atomic_compare_and_swap.
+	(expand_builtin_atomic_compare_exchange): Likewise.
+
+	* config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
+	* config/sh/sh.c (sh_init_sync_libfuncs): New.
+
+	* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
+	* config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
+	* config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
+
+2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR target/45233
+	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
+	Only expand a symbol ref. into an access when the entity is defined
+	in the TU.
+
+2011-11-12  Jan Hubicka  <jh@suse.cz>
+
+	PR bootstrap/50822
+	* cgraphunit.c (output_weakrefs): Output really only weakrefs.
+
+2011-11-12  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (struct name_map): New.
+	(names, n_names, a_names): New global vars.
+	(print_usage): Adjust usage.
+	(generate_results): Canonicalize main file name.
+	(release_structures): Adjust.
+	(name_search, name_sort): New callbacks.
+	(find_source): Look for and create a canonical name.
+	(canonicalize_name): New.
+	(make_gcov_file_name): Reimplement and fix mangling.
+	(mangle_name): New.
+	* doc/gcov.texi: Update documentation about path preservation.
+
+2011-11-11  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
+	* config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
+
+2011-11-11  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
+	New prototype.
+	* config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
+	function.
+	(ix86_expand_epilogue): Use it.
+	* config/i386/i386.md (return, simple_return): Call it in the
+	expanders.
+
+	PR tree-optimization/51091
+	* tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
+	rhs also in the va_list_simple_ptr case.
+
+	PR tree-optimization/51058
+	* tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
+	(vect_schedule_slp): Call it.
+	* tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
+	don't replace scalar calls with setting of their lhs to zero here.
+
+	PR tree-optimization/51074
+	* fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
+	(fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
+	VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
+	VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
+	(fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
+	CONSTRUCTOR operands.
+	* tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
+	expressions.
+	* tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
+	to 0 .. 2 * elements - 1.
+
+2011-11-11  Richard Henderson  <rth@redhat.com>
+
+	* gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
+	(dump_gimple_omp_atomic_store): Likewise.
+	* optabs.c (can_atomic_exchange_p): New.
+	* optabs.h (can_atomic_exchange_p): Declare.
+	* omp-low.c (expand_omp_atomic_load): Implement.
+	(expand_omp_atomic_store): Likewise.
+	(expand_omp_atomic): Update for new arguments to load/store.
+
+2011-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* cprop.c: Adjust outdated comments throughout.
+	(hash_scan_set): Rename PAT parameter into SET.
+	(cprop_pavloc): Rename into...
+	(cprop_avloc): ...this.
+	(cprop_absaltered): Rename into...
+	(cprop_kill): ...this.
+	(alloc_cprop_mem): Adjust for above renaming.
+	(free_cprop_mem): Likewise.
+	(compute_cprop_data): Likewise.
+	(compute_local_properties): Rename TRANSP parameter into KILL and
+	adjust throughout.  Rework comments.
+	(try_replace_reg): Fix long line.
+	(cprop_jump): Likewise.
+	(constprop_register): Fix prototype and take INSN last.
+	(cprop_insn): Adjust calls to above function.  Fix long lines.
+	(bypass_block): Likewise.
+	(one_cprop_pass): Likewise.
+
+2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
+	(ELF_STRING_LIMIT): Rename from STRING_LIMIT.
+
+2011-11-11  Jason Merrill  <jason@redhat.com>
+
+	* varasm.c (default_elf_asm_output_limited_string): #ifdef
+	ELF_ASCII_ESCAPES.
+	(default_elf_asm_output_ascii): Likewise.
+
+2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/50762
+	* config/i386/constraints.md (j): New address constraint.
+	* config/i386/predicates.md (lea_address_operand): Redefine as
+	special predicate.
+	* config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
+	(*lea_4_zext): Ditto.
+
+2011-11-11  David S. Miller  <davem@davemloft.net>
+
+	Revert
+	2011-11-05  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
+	(zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
+	(*zero_extend_v8qi_<P:mode>_insn,
+	*zero_extend_v4hi_<P:mode>_insn): New insns.
+	* config/sparc/sparc.c (vector_init_move_words,
+	vector_init_prepare_elts, sparc_expand_vector_init_vis2,
+	sparc_expand_vector_init_vis1): New functions.
+	(vector_init_bshuffle): Rewrite to handle more cases and make use
+	of locs[] array prepared by vector_init_prepare_elts.
+	(vector_init_fpmerge, vector_init_faligndata): Delete.
+	(sparc_expand_vector_init): Rewrite using new infrastructure.
+
+2011-11-11  Jakub Jelinek  <jakub@redhat.com>
+
+	* opts-common.c (generate_canonical_option): Free opt_text
+	it it has been allocated here and not stored anywhere.
+
+	* tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
+	vector.
+	(vect_create_new_slp_node): Don't allocate node before checking stmt
+	type.
+	(vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
+	free def_stmts vectors and additionally free oprnd_info.
+	(vect_build_slp_tree): Adjust callers.  Call it even if
+	stop_recursion.  If vect_create_new_slp_node or
+	vect_build_slp_tree fails, properly handle freeing memory.
+	If it succeeded, clear def_stmts in oprnd_info.
+
+2011-11-11  Dimitrios Apostolou  <jimis@gmx.net>
+
+	* defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
+	multiple lines for readability.
+	* output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
+	(ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
+	* dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
+	dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
+	dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
+	* dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
+	fprintf.
+	* final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
+	serving as fast replacements for fprintf integer to string conversions.
+	(sprint_ul_rev): Internal helper for the above.
+	(output_addr_const) <CONST_INT>: Don't use fprintf.
+	* varasm.c: Fix some whitespace inconsistencies.
+	(default_elf_asm_output_limited_string): New.
+	(default_elf_asm_output_ascii): Likewise.
+	(default_elf_internal_label): Likewise.
+	* config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
+	stpcpy instead of sprintf.
+	(TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
+	(ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
+	STRING_LIMIT macros.
+	(ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
+	provide the same functionality.
+	* config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
+
+2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
+
+	* doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
+
+2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR middle-end/51038
+	* builtins.c (expand_builtin_atomic_clear): New.  Expand atomic_clear.
+	(expand_builtin_atomic_test_and_set): New.  Expand atomic test_and_set.
+	(expand_builtin): Add cases for test_and_set and clear.
+	* sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
+	(BUILT_IN_ATOMIC_CLEAR): New.
+
+2011-11-10  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
+
+	PR debug/50983
+	* dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
+	value in the current line table.
+
+2011-11-10  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (struct function_info): Make src an index, not a pointer.
+	(struct source_info): Remove index and next source fields.
+	(fn_end): New static var.
+	(sources_index): Remove.
+	(sources): Now a pointer to an array, not a list.
+	(n_sources, a_sources): New.
+	(process_file): Adjust for changes to read_graph_file. Insert
+	functions into source lists and check line numbers here.
+	(generate_results): Only allocate lines for sources with
+	contents.  Adjust for source array.
+	(release_structures): Likewise.
+	(find_source): Return source index, adjust for source array.
+	(read_graph_file): Return function list.  Don't insert into source
+	lists here.
+	(read_count_file): Take list of functions.
+	(solve_flow_graph): Reverse the arc lists here.
+	(add_line_counts): Adjust for source array.
+
+2011-11-10  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/51077
+	* tree-object-size.c (addr_object_size): Check TREE_CODE of
+	MEM_REF's operand rather than code of the MEM_REF itself.
+
+2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR rtl-optimization/51040
+	* optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
+	be AND followed by NOT.
+	* builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
+	should be AND followed by NOT.
+
+2011-11-10  Jakub Jelinek  <jakub@redhat.com>
+
+	* vec.h (VEC_BASE): If base is at offset 0 in the structure,
+	use &(P)->base even if P is NULL.
+
+	PR rtl-optimization/51023
+	* combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
+	val_signbit_known_clear_p for signed comparison narrowing
+	optimization.  Don't check for non-VOIDmode, use
+	HWI_COMPUTABLE_MODE_P macro.
+	<case ZERO_EXTEND>: Don't check for non-VOIDmode.
+	Optimize even when const_op is equal to GET_MODE_MASK (mode),
+	don't optimize if const_op is negative.
+
+2011-11-10  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51042
+	* tree-ssa-pre.c (phi_translate_1): Avoid recursing on
+	self-referential expressions.  Refactor code to avoid duplication.
+
+2011-11-10  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51070
+	* tree-loop-distribution.c (generate_builtin): Do not replace
+	the loop with a builtin if the partition contains statements which
+	results are used outside of the loop.
+	(pass_loop_distribution): Verify and collect.
+
+2011-11-10  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51030
+	* tree-ssa-phiopt.c (jump_function_from_stmt): New function.
+	(value_replacement): Use it to handle trivial non-empty
+	intermediate blocks.
+
+2011-11-10  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/51071
+	* gimple.c (gimple_has_side_effects): Remove checking code
+	that doesn't belong here.
+
+2011-11-10  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/51058
+	* tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
+
+2011-11-10  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/51000
+	* tree-vect-patterns.c (vect_recog_bool_pattern): If adding
+	a pattern stmt for a bool store, adjust DR_STMT too.
+	Don't handle bool conversions to single bit precision lhs.
+	* tree-vect-stmts.c (vect_remove_stores): If next is a pattern
+	stmt, remove its related stmt and free its stmt_vinfo.
+	(free_stmt_vec_info): Free also pattern stmt's vinfo and
+	pattern def stmt's vinfo.
+	* tree-vect-loop.c (destroy_loop_vec_info): Don't try to
+	free pattern stmt's vinfo here.
+	(vect_transform_loop): When calling vect_remove_stores,
+	do gsi_next first and don't call gsi_remove.  If not strided
+	store, free stmt vinfo for gsi_stmt (si) rather than stmt.
+
+2011-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/50911
+	* config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
+	V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
+	to V4SFmode.
+
+	* function.h (requires_stack_frame_p): New prototype.
+	* function.c (requires_stack_frame_p): No longer static.
+	* config/i386/i386.c (ix86_finalize_stack_realign_flags): If
+	stack_realign_fp was just a conservative guess for a function
+	which doesn't use sp/fp/argp at all, clear frame_pointer_needed
+	and stack realignment.
+
+2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR preprocessor/51061
+	* incpath.c (merge_include_chains): Make sure to not pass null
+	pointers to free_path.
+
+2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* doc/invoke.texi ([Option Summary, C++ Language Options]):
+	Add -Wzero-as-null-pointer-constant.
+
+2011-11-07  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	* config/arm/arm-cores.def: Add -mcpu=cortex-a7.
+	* config/arm/arm-tables.opt: Regenerate.
+	* config/arm/arm-tune.md: Likewise.
+	* config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
+	* doc/invoke.texi: Document -mcpu=cortex-a7.
+
+2011-11-09  Richard Guenther  <rguenther@suse.de>
+
+	Revert
+	2011-11-09  Richard Guenther  <rguenther@suse.de>
+
+	* tree-cfg.c (verify_gimple_call): Verify that
+	gimple_call_cannot_inline_p is returning a conservative
+	correct result according to gimple_check_call_matching_types.
+
+2011-11-09  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51039
+	* tree-cfg.c (verify_gimple_call): Verify that
+	gimple_call_cannot_inline_p is returning a conservative
+	correct result according to gimple_check_call_matching_types.
+	* ipa-inline-analysis.c (estimate_function_body_sizes): Remove
+	code dealing with un-inlinablility.
+	* gimple-streamer-in.c (input_gimple_stmt): Update the
+	non-inlinable flag.
+
+2011-11-09  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51039
+	* tree-inline.c (setup_one_parameter): Always perform a
+	valid gimple type change.
+	(declare_return_variable): Likewise.
+
+2011-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
+	vconduv4sfv4si): New patterns.
+	* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
+	different dest_mode from comparison mode.
+
+2011-11-09  Richard Guenther  <rguenther@suse.de>
+
+	* gimple-fold.c (canonicalize_constructor_val): Mark
+	address-taken variables addressable.
+
+2011-11-09  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/51015
+	* tree-vect-loop.c (vect_determine_vectorization_factor): Expect
+	vectype to be set for pattern def stmts.
+
+2011-11-09  Alan Modra  <amodra@gmail.com>
+
+	* function.c (bb_active_p): Delete.
+	(dup_block_and_redirect, active_insn_between): New functions.
+	(convert_jumps_to_returns, emit_return_for_exit): New functions,
+	split out from..
+	(thread_prologue_and_epilogue_insns): ..here.  Delete
+	shadowing variables.  Don't do prologue register clobber tests
+	when shrink wrapping already failed.  Delete all last_bb_active
+	code.  Instead compute tail block candidates for duplicating
+	exit path.  Remove these from antic set.  Duplicate tails when
+	reached from both blocks needing a prologue/epilogue and
+	blocks not needing such.
+	* ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
+	HAVE_simple_return.
+	* bb-reorder.c (get_uncond_jump_length): Make global.
+	* bb-reorder.h (get_uncond_jump_length): Declare.
+	* cfgrtl.c (rtl_create_basic_block): Comment typo fix.
+	(rtl_split_edge): Likewise.  Warning fix.
+	(rtl_duplicate_bb): New function.
+	(rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
+	* Makefile.in (function.o): Update dependencies.
+
+2011-11-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+	    Georg-Johann Lay  <avr@gjlay.de>
+
+	* doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
+	argument.
+	(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
+	* doc/tm.texi: Regenerate.
+
+	* config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
+	space argument.
+	(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
+	* config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
+	(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
+	* config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
+	argument.
+	(REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
+	* config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
+	(avr_regno_mode_code_ok_for_base_p): Ditto.
+	* config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
+	(avr_regno_mode_code_ok_for_base_p): Ditto.
+	(avr_reg_ok_for_addr_p): Pass AS down to
+	avr_regno_mode_code_ok_for_base_p.
+
+	* addresses.h (base_reg_class): Add address space argument.
+	Pass to MODE_CODE_BASE_REG_CLASS.
+	(ok_for_base_p_1): Add address space argument.  Pass to
+	REGNO_MODE_CODE_OK_FOR_BASE_P.
+	(regno_ok_for_base_p): Add address space argument.  Pass to
+	ok_for_base_p_1.
+
+	* regrename.c (scan_rtx_address): Add address space argument.
+	Pass address space to regno_ok_for_base_p and base_reg_class.
+	Update recursive calls.
+	(scan_rtx): Pass address space to scan_rtx_address.
+	(build_def_use): Likewise.
+	* regcprop.c (replace_oldest_value_addr): Add address space
+	argument.  Pass to regno_ok_for_base_p and base_reg_class.
+	Update recursive calls.
+	(replace_oldest_value_mem): Pass address space to
+	replace_oldest_value_addr.
+	(copyprop_hardreg_forward_1): Likewise.
+
+	* reload.c (find_reloads_address_1): Add address space argument.
+	Pass address space to base_reg_class and regno_ok_for_base_p.
+	Update recursive calls.
+	(find_reloads_address): Pass address space to base_reg_class,
+	regno_ok_for_base_p, and find_reloads_address_1.
+	(find_reloads): Pass address space to base_reg_class.
+	(find_reloads_subreg_address): Likewise.
+
+	* ira-costs.c (record_reg_classes): Update calls to base_reg_class.
+	(ok_for_base_p_nonstrict): Add address space argument.  Pass to
+	ok_for_base_p_1.
+	(record_address_regs): Add address space argument.  Pass to
+	base_reg_class and ok_for_base_p_nonstrict.  Update recursive calls.
+	(record_operand_costs): Pass address space to record_address_regs.
+	(scan_one_insn): Likewise.
+
+	* caller-save.c (init_caller_save): Update call to base_reg_class.
+	* ira-conflicts.c (ira_build_conflicts): Likewise.
+	* reload1.c (maybe_fix_stack_asms): Likewise.
+
+2011-11-08  Michael Matz  <matz@suse.de>
+
+	* gengtype.c (write_field_root): Avoid out-of-scope access of newv.
+
+	* tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
+
+	* tree.h (TREE_CLOBBER_P): New macro.
+	* gimple.h (gimple_clobber_p): New inline function.
+	* gimplify.c (gimplify_bind_expr): Add clobbers for all variables
+	that go out of scope and live in memory.
+	* tree-ssa-operands.c (get_expr_operands): Transfer volatility also
+	for constructors.
+	* cfgexpand.c (decl_to_stack_part): New static variable.
+	(add_stack_var): Allocate it, and remember mapping.
+	(fini_vars_expansion): Deallocate it.
+	(stack_var_conflict_p): Add early outs.
+	(visit_op, visit_conflict, add_scope_conflicts_1,
+	add_scope_conflicts): New static functions.
+	(expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
+	(expand_used_vars): Add scope conflicts.
+	(expand_gimple_stmt_1): Expand clobbers to nothing.
+	(expand_debug_expr): Ditto.
+
+	* tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
+	* tree-ssa-live.c (remove_unused_locals): Remove clobbers that
+	refer to otherwise unused locals.
+	* tree-sra.c (build_accesses_from_assign): Ignore clobbers.
+	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
+	SSA names aren't necessary.
+	(propagate_necessity): Accept and ignore constructors on the rhs, tidy.
+	* gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
+	* tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
+	any known value.
+	* tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
+	don't zero-initialize something.
+	* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
+	clobber RHS, we don't want PHI nodes with those.
+
+2011-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
+	if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
+
+2011-11-08  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/51012
+	* ipa-prop.c (update_indirect_edges_after_inlining): Fixup
+	non-inlinable state.
+	* cgraph.c (cgraph_make_edge_direct): Likewise.
+
+2011-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/47698
+	* ifcvt.c (noce_operand_ok): Move around comment.
+
+2011-11-08  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/50999
+	* lto-opts.c (append_to_collect_gcc_options): Split out from...
+	(lto_write_options): ... here.  Prepend frontend specific flags.
+
+2011-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
+	0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
+
+	* tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
+	Handle vectorization of SLP calls.
+	(vect_analyze_stmt): Adjust caller, add call to it for SLP too.
+	(vect_transform_stmt): Adjust vectorizable_call caller, remove
+	assertion.
+	* tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
+	with op_idx 3.
+	(vect_build_slp_tree): Allow CALL_EXPR.
+
+2011-11-08  Richard Guenther  <rguenther@suse.de>
+
+	* gimple-fold.c (canonicalize_constructor_val): Make sure
+	we have referenced vars setup before adding to them.
+
+2011-11-07  Richard Henderson  <rth@redhat.com>
+	    Aldy Hernandez  <aldyh@redhat.com>
+	    Andrew MacLeod  <amacleod@redhat.com>
+	    Torvald Riegel  <triegel@redhat.com>
+
+	Merged from transactional-memory.
+
+	* gtm-builtins.def: New file.
+	* trans-mem.c: New file.
+	* trans-mem.h: New file.
+
+	* opts.c (finish_options): Error out when using -flto and -fgnu-tm.
+
+	* config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
+	(ix86_handle_tm_regparm_attribute, struct bdesc_tm,
+	ix86_builtin_tm_load, ix86_builtin_tm_store,
+	ix86_init_tm_builtins): New.
+	(ix86_init_builtins): Initialize TM builtins.
+	(struct ix86_attribute_table): Add "*tm regparm".
+	* config/i386/i386-builtin-types.def (PV2SI): Define.
+	(PCV2SI): Define.
+	Define V2SI_FTYPE_PCV2SI.
+	Define V4SF_FTYPE_PCV4SF.
+	Define V8SF_FTYPE_PCV8SF.
+	Define VOID_PV2SI_V2SI.
+
+	* doc/invoke.texi (C Dialect Options): Document -fgnu-tm and
+	tm-max-aggregate-size.
+	* doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and
+	TARGET_VECTORIZE_BUILTIN_TM_STORE hooks.
+	* doc/tm.texi: Regenerate.
+
+	* attribs.c (apply_tm_attr): New.
+	(init_attributes): Allow '*' prefix for overrides.
+	(register_attribute): Likewise.
+	* builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New.
+	(ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST,
+	ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST,
+	ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST,
+	ATTR_TMPURE_NOTHROW_LIST): New.
+	* builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR,
+	BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248],
+	BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE,
+	BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New.
+	* builtins.def: Include gtm-builtins.def. Add comments regarding
+	transactional memory synchronization.
+	(DEF_TM_BUILTIN): New.
+	* c-parser.c (struct c_parser): Add in_transaction.
+	(c_parser_transaction, c_parser_transaction_expression,
+	c_parser_transaction_cancel, c_parser_transaction_attributes): New.
+	(c_parser_attribute_any_word): Split out from c_parser_attributes.
+	(c_parser_statement_after_labels): Handle RID_TRANSACTION*.
+	(c_parser_unary_expression): Same.
+	* c-tree.h (c_finish_transaction): Declare.
+	* c-typeck.c (c_finish_transaction): New.
+	(build_function_call_vec): Call tm_malloc_replacement.
+	* calls.c (is_tm_builtin): New.
+	(flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE.
+	* cfgbuild.c (make_edges): Add edges for REG_TM notes.
+	* cfgexpand.c (expand_call_stmt): Call
+	mark_transaction_restart_calls.
+	(gimple_expand_cfg): Free the tm_restart map.
+	(mark_transaction_restart_calls): New.
+	* cfgrtl.c (purge_dead_edges): Look for REG_TM notes.
+	* cgraph.c (dump_cgraph_node): Handle tm_clone.
+	* cgraph.h (struct cgraph_node): Add tm_clone field.
+	(decl_is_tm_clone): New.
+	(struct cgraph_local_info): Add tm_may_enter_irr.
+	(cgraph_copy_node_for_versioning): Declare.
+	* cgraphunit.c (cgraph_copy_node_for_versioning): Export;
+	copy analyzed from old version.
+	* combine.c (distribute_notes): Handle REG_TM notes.
+	* common.opt: Add -fgnu-tm.
+	* crtstuff.c (__TMC_LIST__, __TMC_END__): New.
+	(__do_global_dtors_aux): Deregister clone table.
+	(frame_dummy): Register clone table.
+	* emit-rtl.c (try_split): Handle REG_TM. Early return if no function
+	body.
+	* gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and
+	GIMPLE_TRANSACTION.
+	(gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE.
+	* gimple-pretty-print.c: Include trans-mem.h.
+	(dump_gimple_fmt): Add %x.
+	(dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction.
+	(dump_gimple_eh_else, dump_gimple_transaction): New.
+	(dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
+	* gimple.c (gimple_build_eh_else, gimple_build_transaction): New.
+	(walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt
+	field.
+	(walk_gimple_op): Handle GIMPLE_TRANSACTION.
+	(walk_gimple_stmt): Initialize and honor removed_stmt.
+	Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
+	(gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
+	* gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New.
+	* gimple.h (struct gimple_statement_eh_else,
+	gimple_statement_transaction, GTMA_*): New.
+	(gimple_statement_d): Add gimple_statement_eh_else and
+	gimple_transaction.
+	(gimple_build_eh_else, gimple_build_transaction,
+	gimple_fold_call, diagnose_tm_safe_errors): Declare.
+	(get_call_expr_in): Remove prototype.
+	(gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
+	(gimple_eh_else_n_body, gimple_eh_else_e_body,
+	gimple_eh_else_set_n_body, gimple_eh_else_set_e_body,
+	gimple_transaction_body, gimple_transaction_label,
+	gimple_transaction_label_ptr, gimple_transaction_subcode,
+	gimple_transaction_set_body, gimple_transaction_set_label,
+	gimple_transaction_set_subcode): New.
+	(struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt.
+	* gimplify.c (create_tmp_var_name): Use clean_symbol_name.
+	(voidify_wrapper_expr): Handle TRANSACTION_EXPR.
+	(gimplify_transaction): New.
+	(gimplify_expr): Handle TRANSACTION_EXPR.
+	* gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New.
+	* ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling
+	TM pure functions.
+	* Makefile.in: Add trans-mem.o and dependencies.
+	(BUILTINS_DEF): Add gtm-builtins.def.
+	(gimple-pretty-print.o): Depend on TRANS_MEM_H.
+	(GTFILES): Add trans-mem.c.
+	* omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION.
+	* output.h (record_tm_clone_pair, finish_tm_clone_pairs,
+	get_tm_clone_pair): Declare.
+	* params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New.
+	* passes.c (init_optimization_passes): Place transactional memory
+	passes.
+	* print-tree.c (print_node): Dump tm-clone.
+	* recog.c (peep2_attempt): Handle REG_TM.
+	* reg-notes.def (TM): New.
+	* rtlanal.c (alloc_reg_note): Handle REG_TM.
+	* target.def (builtin_tm_load, builtin_tm_store): New.
+	* targhooks.c (default_builtin_tm_load_store): New.
+	* targhooks.h (default_builtin_tm_load_store): Declare.
+	* timevar.def (TV_TRANS_MEM): New.
+	* toplev.c (compile_file): Call finish_tm_clone_pairs.
+	* tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION.
+	(cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary
+	writes into the statements to update labels.
+	(is_ctrl_altering_stmt): Add TM ending statements. Handle
+	GIMPLE_TRANSACTION.
+	(verify_gimple_transaction): New.
+	(verify_gimple_stmt): Handle GIMPLE_TRANSACTION.
+	(verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
+	(gimple_redirect_edge_and_branch): Handle TM_TRANSACTION.
+	(dump_function_to_file): Display [tm-clone] if applicable.
+	* tree-eh.c (struct_ptr_eq): Make inline and move to tree.h.
+	(struct_ptr_hash): Same.
+	(collect_finally_tree): Handle GIMPLE_EH_ELSE.
+	(replace_goto_queue_1): Likewise.
+	(get_eh_else): New.
+	(honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE.
+	(lower_try_finally_nofallthru): Likewise.
+	(lower_try_finally_onedest): Likewise.
+	(lower_try_finally_copy): Likewise.
+	(lower_try_finally_switch): Likewise.
+	(lower_try_finally): Likewise.
+	(decide_copy_try_finally): Likewise.
+	(lower_eh_constructs_2): Likewise.
+	(refactor_eh_r): Likewise.
+	* tree-flow.h (struct gimple_df): Add tm_restart field.
+	Define tm_restart_node.
+	* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION.
+	(estimate_num_insns): Likewise.
+	(init_inline_once): Init tm_cost.
+	* tree-inline.h (struct eni_weights_d): Add tm_cost.
+	* tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init,
+	pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare.
+	* tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR.
+	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+	BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
+	Add support for TM vector loads.  Add support for TM logging builtins.
+	(call_may_clobber_ref_p_1): Add support for vector stores.
+	* tree-ssa-structalias.c (find_func_aliases): Add support for TM
+	vector stores and loads. Handle BUILT_IN_TM_MEMSET,
+	BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
+	* tree.c (strip_invariant_refs): Moved from gimple.c to here.
+	(local_define_builtin): Handle ECF_TM_PURE.
+	(build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE.
+	* tree.def (TRANSACTION_EXPR): New.
+	* tree.h (strip_invariant_refs): Moved from gimple.h to here.
+	(TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK,
+	TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED,
+	BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P,
+	CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New.
+	(ECF_TM_PURE, ECF_TM_BUILTIN): New.
+	(struct tree_function_decl): Add tm_clone_flag.
+	(struct_ptr_eq, struct_ptr_hash): New.
+	(apply_tm_attr): Declare.
+	(is_tm_safe_or_pure): New.
+	(build_tm_abort_call, is_tm_safe, is_tm_pure,
+	is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement,
+	tm_malloc_replacement): Declare.
+	* varasm.c (tm_clone_hash): New.
+	(record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair,
+	dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New.
+	(struct tm_alias_pair): New.  Declare VEC types for object.
+
+2011-11-07  Richard Henderson  <rth@redhat.com>
+
+	* optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
+	OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
+	OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
+	OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
+	OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
+	rename from the direct_optab_index enum.
+	(sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
+	sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
+	sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
+	sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
+	sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
+	from the optab_table, not the direct_optab_table.
+	(init_sync_libfuncs): Declare.
+	(can_compare_and_swap_p): Update parameters.
+	* optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
+	(can_compare_and_swap_p): Add allow_libcall parameter; if true,
+	test for the legacy compare-and-swap libcall.
+	(expand_atomic_exchange): Use the legacy test-and-set libcall.
+	(expand_atomic_compare_and_swap): Use the legacy CAS libcall.
+	(struct atomic_op_functions): Update for optab type changes.
+	(maybe_emit_op): Likewise.
+	(expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
+	* builtins.c (fold_builtin_atomic_always_lock_free): Update call
+	to can_compare_and_swap_p.
+	* omp-low.c (expand_omp_atomic_fetch_op): Likewise.
+	(expand_omp_atomic_pipeline): Likewise.
+	* genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
+	sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
+	optabs.
+	* doc/md.texi (sync_compare_and_swap): Update docs for libcalls.
+
+2011-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
+	* config/i386/i386.c (enum ix86_builtins): Add
+	IX86_BUILTIN_VEC_PACK_SFIX256.
+	(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
+	(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
+	(ix86_builtin_vectorized_function): Also vectorize lrint using
+	256-bit vectors for -mavx.
+
+2011-11-07  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/cris/constraints.md: New file.
+	* config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
+	CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
+	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
+	EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
+	EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
+	* config/cris/cris.c: Incule "tm-constrs.h".
+	(cris_print_operand): Use satisfies_constraint_O.
+	(cris_normal_notice_update_cc, cris_rtx_costs): Use
+	satisfies_constraint_I.
+	(cris_address_cost): Use satisfies_constraint_L.
+	* config/cris/cris.md: Include "constraints.md".
+	(*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
+	*mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
+	*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
+	*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
+	*extop<mode>si_swap_side): Use satisfies_constraint_N and
+	satisfies_constraint_J.
+	(moversideqi movemsideqi mover2side peephole2): Use
+	satisfies_constraint_N and satisfies_constraint_J.
+	(andu peephole2): Use satisfies_constraint_I and
+	satisfies_constraint_O.
+
+2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
+	BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
+
+2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
+
+	* optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
+	SWITCHABLE_TARGET can change the values during compilation.
+	(expand_atomic_fetch_op): Handle parameter change ripples for
+	get_atomic_op_for_code call.
+
+2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
+
+	* doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
+	__atomic_store.
+	* optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
+	only when originated from that builtin.
+	(expand_atomic_store): Expand to __sync_lock_release when originated
+	from that builtin.
+	* builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
+	expand_atomic_exchange call originated from here.
+	(expand_builtin_sync_lock_release): Add flag that expand_atomic_store
+	call originated from here.
+	(expand_builtin_atomic_exchange): Add origination flag.
+	(expand_builtin_atomic_store): Add origination flag.
+	* expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
+	parameters to indicate implementation fall back options.
+
+2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
+	now, not only CONST_INT and CONST_DOUBLE.
+	(output_movqi): Use output_reload_in_const.
+	(output_reload_inhi): Ditto.
+	(output_reload_insisf): Move assertion to output_reload_in_const.
+	(avr_out_reload_inpsi): Ditto.
+
+2011-11-07  Nathan Sidwell  <nathan@acm.org>
+
+	* gcov.c (object_summary): Replace with ...
+	(object_runs): ... this.
+	(process_file): Remove functions with no data.
+	(generate_results): Ignore files with no lines.
+	(release_function): New helper, broken out of ...
+	(release_structures): ... here.  Use it.
+	(read_count_file): Adjust for new data file format.
+	(output_lines): Use object_runs.
+	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
+	(struct gcov_ctr_info): Move definition.
+	(struct gcov_fn_info): Add key field, use gcov_ctr_info for
+	trailing array.
+	(struct gcov_info): Add merge function array, remove mask and
+	counts.  Trailing array is array of pointers to function info.
+	* coverage.c (struct function_list): Replace counter numbers with
+	counter arrays.  Add fndecl field.  GTYify.
+	(counts_entry): Remove chain workspace.
+	(functions_head): GTYify.
+	(prg_n_ctrs): Remove.
+	(fn_v_ctrs): New.
+	(tree_ctr_tables): Remove.
+	(read_counts_file): Cope with blank entries and expect program
+	summaries before functions.  Don't warn on missing entries.
+	(coverage_counter_alloc): Allocate individual function arrays.
+	(tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
+	for individual function arrays.
+	(coverage_end_function): GTYify function list object. Finalize
+	function's counter arrays.
+	(build_var): New.  Create a counter-related variable with
+	appropriate linkage.
+	(build_fn_info_type): Adjust for new runtime structure.
+	(build_fn_info_value): Rename to ...
+	(build_fn_info): ... here.  Build new format data.
+	(build_ctr_info_type, build_ctr_info_value): Remove.
+	(build_info_type): New. Build new format data structure.
+	(build_info): Adjust for new format data.
+	(create_coverage): Likewise.
+	* gcov-dump.c (tag_function): Recognize placeholders.
+
+2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/constraints.md (Cm2): New constraint for int -2.
+	* config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
+	(*negqihi2): New insn.
+
+2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
+	HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
+
+2011-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (ix86_expand_builtin): If gather mask
+	argument is known to have all high bits set, pass pc_rtx as
+	second argument to the expander instead of op0.
+	* config/i386/sse.md (*avx2_gathersi<mode>_2,
+	*avx2_gatherdi<mode>_2): New patterns.
+	* config/i386/avx2intrin.h (_mm256_i32gather_pd,
+	_mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
+	_mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
+	_mm256_set1_pd.
+
+	PR tree-optimization/50789
+	* tree-vect-stmts.c (process_use): Add force argument, avoid
+	exist_non_indexing_operands_for_use_p check if true.
+	(vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
+	STMT_VINFO_GATHER_P.
+	(gen_perm_mask): New function.
+	(perm_mask_for_reverse): Use it.
+	(reverse_vec_element): Rename to...
+	(permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
+	generalize for any permutations.
+	(vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
+	* target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
+	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
+	* doc/tm.texi: Regenerate.
+	* tree-data-ref.c (initialize_data_dependence_relation,
+	compute_self_dependence): No longer static.
+	* tree-data-ref.h (initialize_data_dependence_relation,
+	compute_self_dependence): New prototypes.
+	* tree-vect-data-refs.c (vect_check_gather): New function.
+	(vect_analyze_data_refs): Detect possible gather load data refs.
+	* tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
+	(STMT_VINFO_GATHER_P): Define.
+	(vect_check_gather): New prototype.
+	* config/i386/i386-builtin-types.def: Add types for alternate
+	gather builtins.
+	* config/i386/sse.md (AVXMODE48P_DI): Remove.
+	(VEC_GATHER_MODE): Rename mode_attr to...
+	(VEC_GATHER_IDXSI): ... this.
+	(VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
+	(avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
+	instead of <VEC_GATHER_MODE>.
+	(avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
+	<AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
+	on src and mask operands.
+	(*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
+	instead of AVXMODE48P_DI.
+	(avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
+	* config/i386/i386.c (enum ix86_builtins): Add
+	IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
+	IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
+	(ix86_init_mmx_sse_builtins): Create those builtins.
+	(ix86_expand_builtin): Handle those builtins and adjust expansions
+	of other gather builtins.
+	(ix86_vectorize_builtin_gather): New function.
+	(TARGET_VECTORIZE_BUILTIN_GATHER): Define.
+
+2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
+
+2011-11-07  Tristan Gingold  <gingold@adacore.com>
+
+	* config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
+	* config/vms/t-vms: Add vms-c.o rule.
+	* config/vms/vms-c.c: New file.
+	* config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
+	* config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
+
+2011-11-07  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
+	TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
+	TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
+	POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
+	(SUBTARGET_OS_CPP_BUILTINS): Define.
+	(TARGET_DEFAULT): Tune according to POINTER_SIZE.
+	(MASK_RETURN_ADDR): Define in 64 bit mode.
+	* config/ia64/vms.h: Likewise.
+	* config/vms/vms.h: New file.
+	* config/vms/vms64.h: New file.
+	* config/alpha/vms64.h: Removed.
+	* config/ia64/vms64.h: Removed.
+	* config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
+	Adjust for above change.
+
+2011-11-07  Enkovich Ilya  <ilya.enkovich@intel.com>
+
+	PR target/50962
+	* config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
+	* config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
+	* config/i386/i386.md (movsi_internal): Emit lea if profitable.
+	(movdi_internal_rex64): Likewise.
+
+2011-11-07  Sergey Ostanevich  <sergos.gnu@gmail.com>
+
+	PR rtl-optimization/47698
+	* ifcvt.c (noce_operand_ok): Return false for mems with side effects.
+
+2011-11-07  Tristan Gingold  <gingold@adacore.com>
+
+	* common/config/alpha/alpha-common.c (alpha_option_init_struct):
+	New function.
+	(TARGET_OPTION_INIT_STRUCT): Define.
+	* config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
+	(TARGET_MAX_ANCHOR_OFFSET)
+	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
+
+2011-11-06  Quentin Neill  <quentin.neill@amd.com>
+
+	Fix r180999, update ChangeLog
+	* config.gcc: Add f16cintrin.h.
+	* config/i386/f16cintrin.h: Add missing endif.
+
+2011-11-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config.gcc (arm*-*-rtemseabi*): New target.
+	* config/arm/rtems-eabi.h: New.
+	* config/arm/t-rtems-eabi: New.
+
+2011-11-06  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
+	(zero_extend_v8qi_vis, zero_extend_v4hi_vis,
+	*zero_extend_v8qi_<P:mode>_insn,
+	*zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
+	and vec_duplicate instead of using an UNSPEC.
+
+2011-11-07  Alan Modra  <amodra@gmail.com>
+
+	PR target/30282
+	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
+	blockage for ABI_V4.
+
+2011-11-06  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	* config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
+	libgcj version bump.
+	* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
+
+2011-11-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gcse.c: Adjust outdated comments throughout.
+	(struct mem_conflict_info): New structure.
+	(mems_conflict_for_gcse_p): Use it to communicate with caller.
+	(load_killed_in_block_p): Pass it to note_stores.
+	(hash_expr): Remove superfluous line break.
+	(hash_scan_set): Rename PAT parameter into SET.
+	(hash_scan_insn): Reorder cases.
+	(canon_list_insert): Fix long line.
+	(edge_list): Delete.
+	(prune_expressions): Rename E local variable into EXPR.
+	(compute_pre_data): Return struct edge_list * object.
+	(pre_expr_reaches_here_p_work): Fix formatting.
+	(process_insert_insn): Move around comment.
+	(pre_edge_insert): Fix long line.
+	(pre_insert_copies): Likewise.
+	(gcse_emit_move_after): Swap SRC and DEST parameters.
+	(pre_delete): Adjust call to gcse_emit_move_after.
+	(pre_gcse): Take struct edge_list * parameter.  Fix long line.
+	(one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
+	Use a local list of edges.
+	(hoist_code): Fix long line.  Adjust call to gcse_emit_move_after.
+	(pre_ldst_expr_hash): Fix long line.
+	(free_ldst_mems): Rename into...
+	(free_ld_motion_mems): ...this.
+	(first_ls_expr): Delete.
+	(next_ls_expr): Likewise.
+	(print_ldst_list): Do not use above two functions.
+	(simple_mem): Adjust interface.
+	(compute_ld_motion_mems): Fix formatting.
+	(update_ld_motion_stores): Reuse local variable.
+
+2011-11-06  Joseph Myers  <joseph@codesourcery.com>
+
+	* c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
+	specifiers.
+	(build_null_declspecs): Initialize align_log and alignas_p fields.
+	(declspecs_add_alignas): New.
+	* c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
+	(c_parser_declspecs): Handle _Alignas specifiers.
+	(c_parser_alignas_specifier): New.
+	(c_parser_alignof_expression): Diagnose alignof use for non-C1X.
+	Diagnose _Alignof (expression).
+	* c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
+	(declspecs_add_alignas): Declare.
+	* ginclude/stddef.h (max_align_t): Define for C1X and C++11.
+	* ginclude/stdalign.h: New.
+	* Makefile.in (USER_H): Add stdalign.h.
+
+2011-11-06  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+	* regset.h (fixed_reg_set_regset): Declare.
+	* dse.c: Include regset.h .
+	(struct insn_info): Add member fixed_regs_live.
+	(note_add_store_info): New typedef.
+	(note_add_store): New function.
+	(emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
+	Use gen_add3_insn / gen_move_insn.
+	Check new insn for unwanted clobbers before emitting it.
+	(check_for_inc_dec): Rename to...
+	(check_for_inc_dec_1:) ... this.  Return bool.  Take insn_info
+	parameter.  Changed all callers in file.
+	(check_for_inc_dec, copy_fixed_regs): New functions.
+	(scan_insn): Set fixed_regs_live field of insn_info.
+	* rtl.h (check_for_inc_dec): Update prototype.
+	* postreload.c (reload_cse_simplify): Take new signature of
+	check_ind_dec into account.
+	* reginfo.c (fixed_reg_set_regset): New variable.
+	(init_reg_sets_1): Initialize it.
+
+2011-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
+	any user labels.
+
+2011-11-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
+	Remove dependence of declaration and target define on definition of
+	HPUX_LONG_DOUBLE_LIBRARY.  Update implementation.
+
+2011-11-06  Andrew Macleod  <amacleod@redhat.com>
+	    Richard Henderson  <rth@redhat.com>
+	    Aldy Hernandez  <aldyh@redhat.com>
+
+	Merged from cxx-mem-model.
+
+	* cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
+	* coretypes.h (enum memmodel): New.  enumerated memory model type.
+	* Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
+	* genopinit,c (optabs): Add atomic direct optab handlers.
+	* sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
+	* builtin-types.def (BT_CONST_VOLATILE_PTR,
+	BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
+	BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
+	BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
+	BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
+	BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
+	BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
+	* expr.h (expand_atomic_*): Add prototypes.
+	(expand_{bool,val}_compare_and_swap): Remove prototypes.
+	* c-typeck.c (build_function_call_vec): Don't reprocess __atomic
+	parameters.
+	* common.opt (Winvalid-memory-model): New warning flag.
+	(finline-atomics): New. Flag to disable atomic inlining.
+	* params.h (ALLOW_LOAD_DATA_RACES): New.
+	(ALLOW_PACKED_LOAD_DATA_RACES): New.
+	(ALLOW_PACKED_STORE_DATA_RACES): New.
+	* params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
+	(PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
+	(PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
+	* builtins.c (is_builtin_name): Handle __atomic.
+	(get_memmodel): New.  Extract memory model.
+	(expand_expr_force_mode): New. Factor out common code for ensuring an
+	integer argument is in the proper mode.
+	(expand_builtin_sync_operation): Remove ignore param.  Always call
+	expand_atomic_fetch_op instead of the old expanders.
+	(expand_builtin_compare_and_swap,
+	expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
+	call atomic expanders instead of sync expanders.
+	(expand_builtin_sync_lock_release): Call atomic_store expander.
+	(expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
+	expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
+	(expand_builtin_atomic_exchange): New.
+	(fold_builtin_atomic_always_lock_free,
+	expand_builtin_atomic_always_lock_free,
+	fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
+	New.
+	(expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
+	expand_builtin_atomic_signal_fence): New.
+	(expand_builtin_mem_signal_fence): New.
+	(expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
+	(fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
+	* optabs.h (DOI_atomic_*): Define new atomics.
+	(atomic_*_optab): Define.
+	(can_compare_and_swap_p, expand_atomic_compare_and_swap): New
+	prototypes.
+	* optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
+	(expand_sync_lock_test_and_set): Remove.
+	(expand_atomic_load, expand_atomic_store): New.
+	(expand_atomic_exchange): New.
+	(expand_atomic_compare_and_swap): New.  Implements
+	atomic_compare_exchange via compare and swap.
+	(struct atomic_op_functions): Opcode table struct for fetch ops.
+	(get_atomic_op_for_code): New.  Return an opcode table entry.
+	(maybe_emit_op): New.  Try to emit a fetch op.
+	(expand_atomic_fetch_op): New.
+	(expand_val_compare_and_swap_1): Remove.
+	(expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
+	(expand_atomic_compare_and_swap): Rename from
+	expand_atomic_compare_exchange.  Rewrite to return both success and
+	oldval return values; expand via both atomic and sync optabs.
+	(can_compare_and_swap_p): New.
+	(expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
+	(maybe_gen_insn): Handle 7 and 8 operands.
+	* omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
+	fetch_op optabs, only test can_compare_and_swap_p.  Use __atomic
+	builtins instead of __sync builtins.
+	(expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
+	* doc/extend.texi: Document __atomic built-in functions.
+	* doc/invoke.texi: Document data race parameters.
+	* doc/md.texi: Document atomic patterns.
+	* config/i386/i386.md (UNSPEC_MOVA): New.
+	(UNSPECV_CMPXCHG): Split into ...
+	(UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
+	UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
+	* config/i386/sync.md (ATOMIC): New mode iterator.
+	(atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
+	(atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
+	(mem_thread_fence): Rename from memory_barrier.
+	Handle the added memory model parameter.
+	(mfence_nosse): Rename from memory_barrier_nosse.
+	(sync_compare_and_swap<CASMODE>): Split into ...
+	(atomic_compare_and_swap<SWI124>): this and ...
+	(atomic_compare_and_swap<CASMODE>): this.  Handle the new parameters.
+	(atomic_compare_and_swap_single<SWI>): Rename from
+	sync_compare_and_swap<SWI>; rewrite to use split unspecs.
+	(atomic_compare_and_swap_double<DCASMODE>): Rename from
+	sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
+	(*atomic_compare_and_swap_doubledi_pic): Rename from
+	sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
+	(atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
+	model parameter.
+	(*atomic_fetch_add_cmp<SWI>): Similarly.
+	(atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
+	(atomic_sub<SWI>): Similarly.  Use x86_maybe_negate_const_int.
+	(sync_lock_test_and_set<SWI>): Merge with ...
+	(atomic_exchange<SWI>): ... this.
+
+2011-11-6  Richard Guenther  <rguenther@suse.de>
+
+	* ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
+
+2011-11-06  Ira Rosen  <ira.rosen@linaro.org>
+
+	* tree-vectorizer.h (vectorizable_condition): Add argument.
+	* tree-vect-loop.c (vectorizable_reduction): Fail for condition
+	in SLP.  Update calls to vectorizable_condition.
+	* tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
+	the arguments.  Pass it to vect_is_simple_use_1.
+	(vectorizable_condition): Add slp_node to the arguments.  Support
+	vectorization of basic blocks.  Fail for reduction in SLP.  Update
+	calls to vect_is_simple_cond and vect_is_simple_use.  Support SLP:
+	call vect_get_slp_defs to get vector operands.
+	(vect_analyze_stmt): Update calls to vectorizable_condition.
+	(vect_transform_stmt): Likewise.
+	* tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
+	(vect_get_and_check_slp_defs): Handle COND_EXPR.  Allow pattern
+	def stmts.
+	(vect_build_slp_tree): Handle COND_EXPR.
+	(vect_analyze_slp_instance): Push pattern statements to root node.
+	(vect_get_constant_vectors): Fix comments.  Handle COND_EXPR.
+
+2011-11-05  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
+	(zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
+	(*zero_extend_v8qi_<P:mode>_insn,
+	*zero_extend_v4hi_<P:mode>_insn): New insns.
+	* config/sparc/sparc.c (vector_init_move_words,
+	vector_init_prepare_elts, sparc_expand_vector_init_vis2,
+	sparc_expand_vector_init_vis1): New functions.
+	(vector_init_bshuffle): Rewrite to handle more cases and make use
+	of locs[] array prepared by vector_init_prepare_elts.
+	(vector_init_fpmerge, vector_init_faligndata): Delete.
+	(sparc_expand_vector_init): Rewrite using new infrastructure.
+
+2011-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+	* config.gcc (epiphany-*-*): New architecture.
+	(epiphany-*-elf): New configuration.
+	* config/epiphany, common/config/epiphany : New directories.
+	* doc/extend.texi (disinterrupt attribute): Add Epiphany.
+	(interrupt attribute): Add Epiphany.
+	(long_call, short_call attribute): Add Epiphany.
+	* doc/invoke.texi (Options): Add Epiphany options.
+	* doc/md.texi (Machine Constraints): Add Epiphany constraints.
+	* doc/install.texi (Options specification):
+	Add --with-stack-offset=@var{num} description.
+	(host/target specific issues): Add epiphany-*-elf.
+	* doc/contrib.texi (Contributors): Mention Epiphany port.
+
+2011-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50693
+	* tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
+	non-forced user labels.
+	(gimple_merge_blocks): Turn non-forced user labels into
+	debug bind stmt with the label as first operand and reset value.
+	(gimple_duplicate_bb): Don't duplicate label debug stmts.
+	* dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
+	* final.c (final_scan_insn): Likewise.
+	(rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
+	* var-tracking.c (debug_label_num): New variable.
+	(delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
+	instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
+	* cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
+	NOTE_INSN_DELETED_DEBUG_LABEL.
+	(duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
+	* insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
+	* print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
+	* gengtype.c (adjust_field_rtx_def): Likewise.
+	* config/i386/i386.c (ix86_output_function_epilogue): For MachO
+	clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
+	if their are at the end of function and nop hasn't been emitted.
+	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
+
+2011-11-05  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR rtl-optimization/50448
+	* cprop.c (try_replace_reg): Also try to replace uses of FROM that
+	appear in SET_DEST.
+
+2011-11-05  Peter Dufault  <dufault@hda.com>,
+	    Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+	Extend rs6000_spe handling.
+
+2011-11-05  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
+	Remove -mcpu=601 multilib.
+	Remove -Dmpc8260 multilib.
+	* config/rs6000/rtems.h: Allow --float-gprs=... to override grps
+	on E500 targets.
+
+2011-11-05  Quentin Neill  <quentin.neill@amd.com>
+
+	Piledriver f16cintrin.h fix.
+	* config/i386/f16cintrin.h: Contents moved from immintrin.h.
+	* config/i386/immintrin.h: Include f16cintrin.h.
+	* config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
+
+
+2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR c++/50608
+	* c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
+	to fold_offsetof.
+	* c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
+
+2011-11-04  Alan Modra  <amodra@gmail.com>
+
+	* reload1.c (gen_reload): Don't use REGNO on SUBREGs.
+	* print-rtl.c (print_rtx): Don't segfault on negative regno.
+
+2011-11-04  David S. Miller  <davem@davemloft.net>
+
+	PR target/49965
+	* config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
+	fact that sparc_emit_float_lib_cmp modifies the comparison in
+	operands[1].
+
+2011-11-04  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* config/lm32/t-rtems: New.
+	* config.gcc (lm32-*-rtems*): Add t-rtems.
+
+2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR target/50979
+	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
+
+2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
+
+	PR rtl-optimization/38644
+	* config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
+	for epilogue having stack adjustment.
+
+2011-11-04  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50931
+	* config/avr/avr-modes.def: New file defining PSImode.
+	* config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
+	__UINT24_MAX__): New built-in defines.
+	* config/avr/avr.md (adjust_len): Add tstpsi, mov24,  reload_in24,
+	ashlpsi, ashrpsi, lshrpsi.
+	(QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
+	(MOVMODE): New mode iterator.
+	(movpsi): New expander.
+	(movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
+	(*reload_inpsi, *movpsi): New insns.
+	(*reload_inpsi): New RTL peephole.
+	(addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
+	*addpsi3_sign_extend.hi): New insns.
+	(subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
+	*subpsi3_sign_extend.hi): New insns.
+	(divmodpsi4, udivmodpsi4): New define insn-and-split.
+	(*divmodpsi4_call, *udivmodpsi4_call): New insns.
+	(andpsi3, iorpsi3, xorpsi3): New insns.
+	(*rotlpsi2.1, *rotlpsi2.23): New insns.
+	(*rotw<mode>): Insn condition only allow even-sized modes.
+	(*rotb<mode>): Insn condition allows odd-sized modes.
+	(ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
+	(negpsi2, one_cmplpsi2): New insns.
+	(extendqipsi2, extendhipsi2, extendpsisi2): New insns.
+	(zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
+	insn-and-splits.
+	(*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
+	(cbranchpsi4): New expander.
+	* config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
+	* config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
+	avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
+	avr_out_reload_inpsi): New prototypes.
+
+	* config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
+	(avr_scalar_mode_supported_p): ...this new static function.
+	(avr_asm_len): Always return "".
+	(avr_out_load_psi, avr_out_store_psi): New static functions.
+	(avr_out_movpsi, avr_out_reload_inpsi): New functions.
+	(avr_out_tstpsi): New function.
+	(avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
+	(avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
+	(avr_simplify_comparison_p): Ditto.
+	(adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
+	ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
+	ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
+	(avr_rtx_costs_1): Report PSI costs.
+	(avr_libcall_value): Handle odd-sized parameters.
+	(avr_init_builtin_int24): New static function to define built-in
+	24-bit types __int24 and __uint24.
+	(avr_init_builtins): Use it.
+
+2011-11-04  Thomas Doerfler <thomas.doerfler@embedded-brains.de>
+
+	PR target/50989
+	* config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
+	support for VFP floating point model.
+
+2011-11-04  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
+
+2011-11-04  Ira Rosen  <ira.rosen@linaro.org>
+
+	Unrevert:
+	2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50730
+	* tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
+	analysis if encountered unsupported data-ref.
+
+2011-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
+	function.
+	* config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
+	New prototype.
+	* config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
+	For floatunsv8siv8sf2 require TARGET_AVX2.
+
+	* config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
+	XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
+	signalling comparison instead of non-signalling.  Store into
+	*XORP pseudo holding 0x80000000 integers if 0x1p31 has been
+	subtracted and 0 otherwise.
+	* config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
+	Adjust prototype.
+	* config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
+	already for TARGET_SSE2.  Xor in vector initialized by
+	ix86_expand_adjust_ufix_to_sfix_si at the end.
+	(vec_pack_ufix_trunc_<mode>): Likewise.
+
+	* tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
+	not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
+	WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
+	vectorizable_type_demotion and vectorizable_type_promotion did.
+	Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
+	is {,un}signed {char,short}.
+	(vect_create_vectorized_demotion_stmts): Fix comment typo.  For
+	recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
+	Push vec_dest back to the vec_dsts vector at the end.
+	(vect_create_vectorized_promotion_stmts): Don't recurse, do just
+	one step.  Removed multi_step_cvt, vec_dsts, slp_node and
+	prev_stmt_info arguments, add vec_dest argument.  Push always
+	into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
+	with vec_tmp at the end after freeing old *vec_oprnd0 vector.
+	(vectorizable_type_demotion, vectorizable_type_promotion): Removed.
+	(vect_analyze_stmt): Don't call vectorizable_type_demotion and
+	vectorizable_type_promotion.  Call vectorizable_conversion even
+	for SLP bb vectorization.
+	(vect_transform_stmt): Call vectorizable_conversion instead of
+	vectorizable_type_demotion and vectorizable_type_promotion.
+	(supportable_widening_operation): Clear *multi_step_cvt first,
+	simplify c1/c2 computation, free *interm_types vector on failure.
+	(supportable_narrowing_operation): Clear *multi_step_cvt first,
+	free *interm_types vector on failure, handle multi-step
+	FIX_TRUNC_EXPR.
+
+2011-11-04  Tristan Gingold  <gingold@adacore.com>
+
+	* config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
+	argument.  Conditionally generate crash debug info.  Adjust
+	for alpha_funcs_tree removal.
+	(machine_function): Add links field.
+	(alpha_start_function): Conditionally generate crash debug info.
+	(alpha_end_function): Adjust call to alpha_write_linkage.
+	(alpha_funcs): Remove.
+	(links_kind): Remove.
+	(alpha_links): Remove num, target and lkind field.  Add func field.
+	(alpha_links_tree): Remove.
+	(alpha_funcs_tree): Remove.
+	(alpha_need_linkage): Remove.
+	(alpha_use_linkage): Change prototype.  Adjust.
+	(alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
+	Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
+	* config/alpha/alpha-protos.h (alpha_use_linkage): Update.
+	(alpha_need_linkage): Remove.
+	* config/alpha/alpha.md: Update calls to alpha_use_linkage.
+	Adjust calls to alpha_need_linkage.
+
+2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
+
+	* sched-vis.c (print_value): Handle STRICT_LOW_PART.
+
+2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
+	rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
+	btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
+
+2011-11-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR target/50978
+	* config/arm/t-bpabi: New file.
+	* config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
+	arm*-*-linux-*eabi.
+	(arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
+	arm*-*-uclinux*eabi.
+	(arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
+	for arm*-*-eabi*.
+
+2011-11-03  Michael Matz  <matz@suse.de>
+
+	PR bootstrap/50857
+	* configure.ac: Check for -fno-exceptions -fno-rtti.
+	* configure: Regenerate.
+	* Makefile.in (NOEXCEPTION_FLAGS): New flag.
+	(ALL_CXXFLAGS): Use it.
+
+2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md: Use {} for multi-line preparation statements.
+
+2011-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
+	(movtf_insn_sp32): ...this.
+	(movtf_insn_sp64_no_fpu): Consolidate into...
+	(movtf_insn_sp64): ...this.
+	(movtf_insn_sp64_hq): Do not test TARGET_FPU.
+	* config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
+
+2011-11-03  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/vms.c (vms_patch_builtins): Fix typo.
+
+2011-11-03  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/44965
+	* lto-opts.c: Re-implement.
+	* lto-streamer.h (lto_register_user_option): Remove.
+	(lto_read_file_options): Likewise.
+	(lto_reissue_options): Likewise.
+	(lto_clear_user_options): Likewise.
+	(lto_clear_file_options): Likewise.
+	* opts-global.c (post_handling_callback): Remove.
+	(set_default_handlers): Do not set post_handling_callback.
+	(decode_options): Remove LTO specific code.
+	* lto-wrapper.c (merge_and_complain): New function.
+	(run_gcc): Read all input file options and
+	prepend a merged set before the linker driver options.
+	* gcc.c (driver_post_handling_callback): Remove.
+	(set_option_handlers): Do not set post_handling_callback.
+	* opts-common.c (handle_option): Do not call post_handling_callback.
+	* opts.h (struct cl_option_handlers): Remove post_handling_callback.
+
+2011-11-03  Richard Guenther  <rguenther@suse.de>
+
+	* collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
+
+2011-11-03  Martin Jambor  <mjambor@suse.cz>
+
+	* ipa-prop.c (type_change_info): New fields offset, object,
+	known_current_type and multiple_types_encountered.
+	(extr_type_from_vtbl_ptr_store): New function.
+	(check_stmt_for_type_change): Use it, set multiple_types_encountered if
+	the result is different from the previous one.
+	(detect_type_change): Renamed to detect_type_change_1. New parameter
+	comp_type.  Set up new fields in tci, build known type jump
+	functions if the new type can be identified.
+	(detect_type_change): New function.
+	* tree.h (DECL_CONTEXT): Comment new use.
+
+2011-11-03  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/48217
+	* lto-wrapper.c (get_options_from_collect_gcc_options): Properly
+	decode an encoded literal '.
+
+2011-11-03  Tristan Gingold  <gingold@adacore.com>
+
+	* collect2.c (main): Add support of -f (response file) on AIX.
+
+2011-11-03  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50912
+	* tree-vectorizer.h (slp_void_p): New.
+	(struct _slp_tree): Replace left and right with children.  Update
+	documentation.
+	(struct _slp_oprnd_info): New.
+	(vect_get_vec_defs): Declare.
+	(vect_get_slp_defs): Update arguments.
+	* tree-vect-loop.c (vect_create_epilog_for_reduction): Call
+	vect_get_vec_defs instead of vect_get_slp_defs.
+	(vectorizable_reduction): Likewise.
+	* tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
+	Update call to vect_get_slp_defs.
+	(vectorizable_conversion): Update call to vect_get_vec_defs.
+	(vectorizable_assignment, vectorizable_shift,
+	vectorizable_operation): Likewise.
+	(vectorizable_type_demotion): Call vect_get_vec_defs instead of
+	vect_get_slp_defs.
+	(vectorizable_type_promotion, vectorizable_store): Likewise.
+	(vect_analyze_stmt): Fix typo.
+	* tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
+	(vect_print_slp_tree, vect_mark_slp_stmts,
+	vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
+	vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
+	vect_schedule_slp_instance): Likewise.
+	(vect_create_new_slp_node): New.
+	(vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
+	(vect_get_and_check_slp_defs): Pass information about defs using
+	oprnds_info, allow any number of operands.
+	(vect_build_slp_tree): Likewise.  Update calls to
+	vect_get_and_check_slp_defs.  Fix comments.
+	(vect_analyze_slp_instance): Move node creation to
+	vect_create_new_slp_node.
+	(vect_get_slp_defs): Allow any number of operands.
+
+2011-11-02  Peter Bergner  <bergner@vnet.ibm.com>
+	    Iain Sandoe  <iains@gcc.gnu.org>
+
+	* config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
+	(get_ppc476_thunk_name): Use it.
+	(rs6000_code_end): Likewise.
+	(macho_branch_islands): Fix typo.
+
+2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
+	    Jason Merrill  <jason@redhat.com>
+
+	PR c++/50810
+	* configure.ac: Add -Wno-narrowing to warning options.
+	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
+
+2011-11-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR target/50945
+	* config/sparc/sparc.md (movsf_insn): Reindent constraints.
+	(movdf_insn_sp32): Likewise.  Remove redundant G constraint.
+	(movdf_insn_sp64): Likewise.
+	(DFmode splitter): Do not test TARGET_FPU.
+	(movtf_insn_sp32): Reindent constraints.
+	(movtf_insn_sp32_no_fpu): Likewise.
+	(movtf_insn_sp64): Likewise.
+	(movtf_insn_sp64_hq): Likewise.
+	(movtf_insn_sp64_no_fpu): Likewise.
+
+2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/50956
+	* builtins.c (fold_builtin_memchr): Fix cast.
+
+2011-11-02  Teresa Johnson  <tejohnson@google.com>
+
+	* config/i386/predicates.md (promotable_binary_operator): Add minus
+	to the list of promotable operators.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* gthr-single.h, gthr.h: Move to ../libgcc.
+	* gthr-aix.h: Move to ../libgcc/config/rs6000.
+	* gthr-dce.h: Move to ../libgcc/config/pa.
+	* gthr-lynx.h: Move to ../libgcc/config.
+	* gthr-mipssde.h: Move to ../libgcc/config/mips.
+	* gthr-posix.h: Move to ../libgcc/config.
+	* gthr-rtems.h: Likewise.
+	* gthr-tpf.h: Move to ../libgcc/config/s390.
+	* gthr-vxworks.h: Move to ../libgcc/config.
+	* gthr-win32.h: Move to ../libgcc/config/i386.
+	* configure.ac (gthread_flags): Remove
+	(gthr-default.h): Don't create.
+	(thread_file): Don't substitute.
+	* configure: Regenerate.
+	* Makefile.in (GCC_THREAD_FILE): Remove.
+	(GTHREAD_FLAGS): Remove.
+	(libgcc.mvars): Remove GTHREAD_FLAGS.
+	* config/t-vxworks (EXTRA_HEADERS): Remove.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+	    Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
+	* configure: Regenerate.
+	* Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
+	(TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
+	(libgcc_tm.h, cs-libgcc_tm.h): Remove.
+	(clean): Remove libgcc_tm.h
+	* mkconfig.sh: Don't include libgcc_tm.h in tm.h.
+	* config.gcc (libgcc_tm_file): Remove.
+	(arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
+	(arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
+	(arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
+	(avr-*-rtems*): Likewise.
+	(avr-*-*): Likewise.
+	(frv-*-elf): Likewise.
+	(frv-*-*linux*): Likewise.
+	(h8300-*-rtems*): Likewise.
+	(h8300-*-elf*): Likewise.
+	(i[34567]86-*-darwin*): Likewise.
+	(x86_64-*-darwin*): Likewise.
+	(rx-*-elf*): Likewise.
+	(tic6x-*-elf): Likewise.
+	(tic6x-*-uclinux): Likewise.
+	(i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
+	(LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
+	(LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
+	(INCLUDES_FOR_TARGET): Remove.
+	(LIBGCC2_CFLAGS): Don't export.
+	(LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
+	Remove.
+	(libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
+	(libgcc.mvars): Likewise.
+	Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
+	LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
+	TARGET_LIBGCC2_CFLAGS.
+	Emit GTHREAD_FLAGS.
+	* libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
+	* config/darwin-64.c: Move to ../libgcc/config.
+	* config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
+	config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
+	config/udivmodsi4.c: Move to ../libgcc/config.
+	* config/gthr-posix.c: Move to ../libgcc/config/alpha.
+	* config/memcmp.c, config/memcpy.c, config/memmove.c,
+	config/memset.c: Move to ../libgcc/config.
+	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/t-freebsd: Remove.
+	* config/t-freebsd-thread: Move to ../libgcc/config.
+	* config/t-libgcc-pic: Move to ../libgcc/config.
+	* config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/t-linux: Remove.
+	* config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
+	Remove.
+	* config/t-openbsd-thread: Move to ../libgcc/config.
+	* config/t-rtems (LIBGCC2_INCLUDES): Remove.
+	* config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/t-svr4: Remove.
+	* config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
+	(LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
+	* config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
+	* config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
+	* config/alpha/t-alpha, config/alpha/t-ieee: Remove.
+	* config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
+	* config/arm/bpabi.c, config/arm/unaligned-funcs.c,
+	config/arm/fp16.c, config/arm/linux-atomic.c,
+	config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
+	* config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
+	(TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/arm/t-bpabi, config/arm/t-linux: Remove.
+	* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
+	(LIB2FUNCS_STATIC_EXTRA): Remove.
+	* config/arm/t-netbsd: Remove.
+	* config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
+	(TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
+	* config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
+	(TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
+	(LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/bfin/t-bfin-linux: Likewise.
+	* config/bfin/t-bfin-uclinux: Likewise.
+	* config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
+	config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
+	config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
+	config/c6x/ltf.c: Move to ../libgcc/config/c6x.
+	* config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
+	* config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/cris/arit.c: Move to ../libgcc/config/cris.
+	* config/cris/cris_abi_symbol.c: Remove.
+	* config/cris/cris.h: Remove obsolete comment.
+	* config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
+	* config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
+	($(LIB2FUNCS_EXTRA)): Remove.
+	* config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
+	(LIBGCC): Remove.
+	* config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/fr30/t-fr30: Remove.
+	* config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
+	config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
+	config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
+	to ../libgcc/config/frv.
+	* config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
+	(cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
+	(ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
+	config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
+	config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
+	* config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
+	(LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
+	* config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
+	* config/i386/t-cygwin: Remove.
+	* config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
+	(LIB2FUNCS_EXCLUDE): Remove.
+	* config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
+	(LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
+	* config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/i386/t-mingw-w32: Likewise.
+	* config/i386/t-mingw-w64: Likewise.
+	* config/i386/t-openbsd: Likewise.
+	* config/i386/t-nto: Remove.
+	* config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
+	* config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
+	(quadlib.c): Remove.
+	* config/ia64/t-ia64: Remove comment.
+	* config/iq2000/lib2extra-funcs.c: Move to
+	../libgcc/config/iq2000/lib2funcs.c.
+	* config/iq2000/t-iq2000: Remove.
+	* config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
+	* config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
+	* config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
+	* config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
+	* config/m68k/t-floatlib: Remove.
+	* config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
+	Fix typo.
+	(LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
+	* config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
+	* config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
+	* config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/mips/t-isa3264: Likewise.
+	* config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
+	* config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
+	(LIB2FUNCS_STATIC_EXTRA): Remove.
+	* config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
+	* config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/pa/fptr.c, config/pa/linux-atomic.c: Move to
+	../libgcc/config/pa.
+	* config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
+	* config/pa/quadlib.c: Move to ../libgcc/config/pa.
+	* config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/pa/t-linux, config/pa/t-linux64: Remove.
+	* config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
+	config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
+	* config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
+	Remove.
+	* config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
+	* config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
+	(TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
+	* config/rs6000/crtresfpr.asm: Move to
+	../libgcc/config/rs6000/crtresfpr.S.
+	* config/rs6000/crtresgpr.asm: Move to
+	../libgcc/config/rs6000/crtresgpr.S.
+	* config/rs6000/crtresxfpr.asm: Move to
+	../libgcc/config/rs6000/crtresxfpr.S.
+	* config/rs6000/crtresxgpr.asm: Move to
+	../libgcc/config/rs6000/crtresxgpr.S.
+	* config/rs6000/crtsavfpr.asm: Move to
+	../libgcc/config/rs6000/crtsavfpr.S.
+	* config/rs6000/crtsavgpr.asm: Move to
+	../libgcc/config/rs6000/crtsavgpr.S.
+	* config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
+	* config/rs6000/darwin-fpsave.asm: Move to
+	../libgcc/config/rs6000/darwin-fpsave.S.
+	* config/rs6000/darwin-gpsave.asm: Move to
+	../libgcc/config/rs6000/darwin-gpsave.S.
+	* config/rs6000/darwin-tramp.asm: Move to
+	../libgcc/config/rs6000/darwin-tramp.S.
+	* config/rs6000/darwin-vecsave.asm: Move to
+	../libgcc/config/rs6000/darwin-vecsave.S.
+	* config/rs6000/darwin-world.asm: Move to
+	../libgcc/config/rs6000/darwin-world.S.
+	* config/rs6000/e500crtres32gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtres32gpr.S.
+	* config/rs6000/e500crtres64gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtres64gpr.S.
+	* config/rs6000/e500crtres64gprctr.asm: Move to
+	../libgcc/config/rs6000/e500crtres64gprctr.S.
+	* config/rs6000/e500crtrest32gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtrest32gpr.S.
+	* config/rs6000/e500crtrest64gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtrest64gpr.S.
+	* config/rs6000/e500crtresx32gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtresx32gpr.S.
+	* config/rs6000/e500crtresx64gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtresx64gpr.S.
+	* config/rs6000/e500crtsav32gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtsav32gpr.S.
+	* config/rs6000/e500crtsav64gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtsav64gpr.S.
+	* config/rs6000/e500crtsav64gprctr.asm: Move to
+	../libgcc/config/rs6000/e500crtsav64gprctr.S.
+	* config/rs6000/e500crtsavg32gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtsavg32gpr.S.
+	* config/rs6000/e500crtsavg64gpr.asm: Move to
+	../libgcc/config/rs6000/e500crtsavg64gpr.S.
+	* config/rs6000/e500crtsavg64gprctr.asm: Move to
+	../libgcc/config/rs6000/e500crtsavg64gprctr.S.
+	* config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
+	* config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
+	(TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/rs6000/t-aix52: Likewise.
+	* config/rs6000/t-darwin: Remove.
+	* config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
+	(LIB2FUNCS_EXTRA): Remove.
+	* config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
+	* config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
+	(LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
+	(crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
+	(INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
+	($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
+	($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
+	* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
+	(LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
+	* config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/rs6000/t-vxworks: Remove comment.
+	* config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
+	* config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/sh/linux-atomic.asm: Move to
+	../libgcc/config/sh/linux-atomic.S.
+	* config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
+	* config/sh/t-netbsd: Remove.
+	* config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
+	Remove.
+	* config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
+	* config/sparc/t-leon: Likewise.
+	* config/sparc/t-leon3: Likewise.
+	* config/sparc/t-linux64: Likewise.
+	* config/sparc/t-netbsd64: Fix typo.
+	Remove comment.
+	* config/spu/divmodti4.c, config/spu/divv2df3.c,
+	config/spu/float_disf.c, config/spu/float_unsdidf.c,
+	config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
+	config/spu/mfc_multi_tag_release.c,
+	config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
+	config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
+	config/spu/multi3.c: Move to ../libgcc/config/spu.
+	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
+	(LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
+	(INSTALL_LIBGCC): Remove.
+	* config/stormy16/stormy16-lib2.c: Move to
+	../libgcc/config/stormy16/lib2.c.
+	* config/stormy16/stormy16-lib2-ashlsi3.c: Move to
+	../libgcc/config/stormy16/ashlsi3.c.
+	* config/stormy16/stormy16-lib2-ashrsi3.c: Move to
+	../libgcc/config/stormy16/ashrsi3.c.
+	* config/stormy16/stormy16-lib2-clzhi2.c: Move to
+	../libgcc/config/stormy16/clzhi2.c.
+	* config/stormy16/stormy16-lib2-cmpsi2.c: Move to
+	../libgcc/config/stormy16/cmpsi2.c.
+	* config/stormy16/stormy16-lib2-ctzhi2.c: Move to
+	../libgcc/config/stormy16/ctzhi2.c.
+	* config/stormy16/stormy16-lib2-divsi3.c: Move to
+	../libgcc/config/stormy16/divsi3.c.
+	* config/stormy16/stormy16-lib2-ffshi2.c: Move to
+	../libgcc/config/stormy16/ffshi2.c.
+	* config/stormy16/stormy16-lib2-lshrsi3.c: Move to
+	../libgcc/config/stormy16/lshrsi3.c.
+	* config/stormy16/stormy16-lib2-modsi3.c: Move to
+	../libgcc/config/stormy16/modsi3.c.
+	* config/stormy16/stormy16-lib2-parityhi2.c: Move to
+	../libgcc/config/stormy16/parityhi2.c.
+	* config/stormy16/stormy16-lib2-popcounthi2.c: Move to
+	../libgcc/config/stormy16/popcounthi2.c.
+	* config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
+	../libgcc/config/stormy16/ucmpsi2.c.
+	* config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
+	../libgcc/config/stormy16/udivmodsi4.c.
+	* config/stormy16/stormy16-lib2-udivsi3.c: Move to
+	../libgcc/config/stormy16/udivsi3.c.
+	* config/stormy16/stormy16-lib2-umodsi3.c: Move to
+	../libgcc/config/stormy16/umodsi3.c.
+	* config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
+	* config/v850/t-v850 (INSTALL_LIBGCC): Remove.
+	* config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
+	* config/xtensa/t-elf: Remove.
+	* config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
+	* config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
+	from tmake_file.
+	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
+	*-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
+	(*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
+	(*-*-openbsd*): Likewise.
+	Remove t-openbsd-thread for posix threads.
+	(alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
+	(alpha*-*-freebsd*): Likewise.
+	(alpha*-*-netbsd*): Likewise.
+	(alpha*-*-openbsd*): Likewise.
+	(alpha64-dec-*vms*): Likewise.
+	(alpha*-dec-*vms*): Likewise.
+	(arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
+	(arm*-*-linux*): Remove t-linux from tmake_file.
+	Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
+	(arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
+	arm*-*-uclinux*eabi.
+	(arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
+	tmake_file for arm*-*-eabi*.
+	(fr30-*-elf): Remove tmake_file.
+	(hppa*64*-*-linux*): Remove tmake_file.
+	(hppa*-*-linux*): Likewise.
+	(hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
+	tmake_file.
+	(hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
+	(hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
+	tmake_file.
+	(i[34567]86-*-elf*): Remove tmake_file.
+	(x86_64-*-elf*): Likewise.
+	(i[34567]86-*-nto-qnx*): Likewise.
+	(i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
+	(i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
+	from tmake_file if using win32 threads.
+	(iq2000*-*-elf*): Remove tmake-file.
+	(microblaze*-linux*): Likewise.
+	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
+	(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
+	(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
+	(sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
+	sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
+	(xtensa*-*-elf*): Remove tmake_file.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* Makefile.in (LIB1ASMSRC): Don't export.
+	(libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
+	* config/arm/arm.c: Update lib1funcs.asm filename.
+	* config/arm/linux-eabi.h: Likewise.
+	* config/arm/bpabi-v6m.S, config/arm/bpabi.S,
+	config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
+	../libgcc/config/arm.
+	* config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
+	* config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
+	* config/arm/t-bpabi: Likewise.
+	* config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
+	* config/arm/t-strongarm-elf: Likewise.
+	* config/arm/t-symbian: Likewise.
+	* config/arm/t-vxworks: Likewise.
+	* config/arm/t-wince-pe: Likewise.
+	* config/avr/libgcc.S: Move to ../libgcc/config/avr.
+	* config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
+	* config/bfin/t-bfin: Remove.
+	* config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/bfin/t-bfin-linux: Likewise.
+	* config/bfin/t-bfin-uclinux: Likewise.
+	* config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
+	* config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
+	* config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
+	* config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
+	* config/h8300/lib1funcs.asm: Move to
+	../libgcc/config/h8300/lib1funcs.S.
+	* config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
+	* config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/i386/t-interix: Likewise.
+	* config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
+	* config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
+	* config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
+	* config/m32c/m32c.c: Update m32c-lib1.S filename.
+	* config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
+	* config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
+	* config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
+	* config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
+	* config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
+	* config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
+	* config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/mips/mips16.S: Move to ../libgcc/config/mips.
+	* config/mips/t-libgcc-mips16: Remove.
+	* config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
+	* config/pa/milli64.S: Move to ../libgcc/config/pa.
+	* config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
+	* config/pa/t-linux64: Likewise.
+	* config/picochip/libgccExtras/fake_libgcc.asm: Move to
+	../libgcc/config/picochip/lib1funcs.S.
+	* config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
+	* config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
+	* config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
+	* config/sh/sh.h: Update lib1funcs.asm filename.
+	* config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
+	* config/sh/t-netbsd: Likewise.
+	* config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
+	Remove.
+	* config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
+	* config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
+	* config/sparc/lb1spl.asm: Remove.
+	* config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config/sparc/t-leon: Likewise.
+	* config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
+	* config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
+	* config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
+	* config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
+	* config/vax/t-linux: Remove.
+	* config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
+	../libgcc/config/xtensa.
+	* config/xtensa/lib1funcs.asm: Move to
+	../libgcc/config/xtensa/lib1funcs.S.
+	* config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
+	* config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
+	(bfin*-*): Likewise.
+	(mips64*-*-linux*, mipsisa64*-*-linux*): Remove
+	mips/t-libgcc-mips16 from tmake_file.
+	(mips*-*-linux*): Likewise.
+	(mips*-sde-elf*): Likewise.
+	(mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
+	(mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
+	(mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
+	(mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
+	(mips-*-elf*, mipsel-*-elf*): Likewise.
+	(mips64-*-elf*, mips64el-*-elf*): Likewise.
+	(mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
+	(mips*-*-rtems*): Likewise.
+	(mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
+	(vax-*-linux*): Remove vax/t-linux from tmake_file.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* config.gcc (extra_parts): Remove.
+	(*-*-freebsd*): Remove extra_parts.
+	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
+	*-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
+	(*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
+	Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
+	*-*-netbsdelf[2-9]*.
+	(*-*-openbsd*): Remove t-libc-ok from tmake_file.
+	(alpha*-*-linux*): Remove extra_parts.
+	(alpha*-*-freebsd*): Likewise.
+	(bfin*-linux-uclibc*): Likewise.
+	(fr30-*-elf): Likewise.
+	(moxie-*-elf): Likewise.
+	(moxie-*-uclinux*): Likewise.
+	(h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
+	(h8300-*-elf*): Likewise.
+	(hppa*64*-*-hpux11*): Remove extra_parts.
+	(i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
+	tmake_file.
+	(x86_64-*-elf*): Likewise.
+	(i[34567]86-*-freebsd*): Remove tmake_file.
+	(x86_64-*-freebsd*): Likewise.
+	(x86_64-*-netbsd*): Likewise.
+	(i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
+	t-libc-ok from tmake_file.
+	(i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
+	i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
+	i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
+	tmake_file.
+	Remove extra_parts.
+	(x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
+	Remove i386/t-crtstuff from tmake_file.
+	(i[34567]86-*-lynxos*): Likewise.
+	Remove extra_parts.
+	(ia64*-*-elf*): Remove extra_parts.
+	(ia64*-*-freebsd*): Likewise.
+	(ia64*-*-linux*): Likewise.
+	(ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
+	(m32r-*-elf*): Remove extra_parts.
+	(m32rle-*-elf*): Likewise.
+	(m32r-*-rtems*): Likewise.
+	(m68k-*-elf*, fido-*-elf*): Likewise.
+	(m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
+	(m68k-*-rtems*): Remove extra_parts.
+	(mep-*-*): Likewise.
+	(microblaze*-linux*): Likewise.
+	(mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
+	(mips*-*-linux*): Likewise.
+	(powerpc-*-lynxos*): Likewise.
+	(s390x-ibm-tpf*): Likewise.
+	(score-*-elf): Likewise.
+	Remove tmake_file.
+	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
+	sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
+	sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
+	Remove sh/t-superh from tmake_file for sh*-superh-elf.
+	Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
+	(sh-*-rtems*): Remove sh/t-elf from tmake_file.
+	(sh-wrs-vxworks): Likewise.
+	(sparc-*-linux*): Remove extra_parts.
+	(sparc64-*-linux*): Likewise.
+	(sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
+	(xstormy16-*-elf): Likewise.
+	(xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
+	(am33_2.0-*-linux*): Remove extra_parts.
+	* configure.ac (extra_parts): Don't substitute.
+	* configure: Regenerate.
+	* crtstuff.c: Move to ../libgcc.
+	* Makefile.in (CRTSTUFF_CFLAGS): Remove.
+	(EXTRA_PARTS): Remove.
+	(CRTSTUFF_T_CFLAGS): Remove.
+	(MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
+	(GCC_EXTRA_PARTS): Remove.
+	(libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
+	CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
+	Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
+	($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
+	($(T)crtbeginT.o): Remove.
+	* config/alpha/t-vms (EXTRA_PARTS): Remove.
+	($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
+	* config/alpha/vms-dwarf2.asm: Move to
+	../libgcc/config/alpha/vms-dwarf2.S.
+	* config/alpha/vms-dwarf2eh.asm: Move to
+	../libgcc/config/alpha/vms-dwarf2eh.S.
+	* config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
+	* config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
+	* config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	* config/arm/t-linux: Remove comment.
+	* config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
+	* config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	* config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
+	* config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
+	* config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
+	* config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
+	* config/bfin/t-bfin (EXTRA_PARTS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	* config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
+	($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
+	EXTRA_MULTILIB_PARTS): Remove.
+	* config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
+	($(T)crtlibid.o): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
+	* config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
+	* config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
+	CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
+	* config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
+	* config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
+	* config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
+	* config/frv/frvbegin.c, config/frv/frvend.c: Move to
+	../libgcc/config/frv.
+	* config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
+	(FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
+	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
+	(CRTSTUFF_T_CFLAGS): Remove.
+	* config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
+	* config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
+	* config/h8300/t-elf: Remove.
+	* config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
+	Move to ../libgcc/config/i386.
+	* config/i386/t-crtstuff: Remove.
+	* config/i386/t-i386elf: Remove.
+	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
+	* config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
+	* config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S.
+	* config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S.
+	* config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
+	* config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
+	* config/ia64/t-vms: Remove.
+	* config/ia64/vms-crtinit.asm: Move to
+	../libgcc/config/ia64/vms-crtinit.S.
+	* config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
+	* config/m32r/initfini.c: Move to ../libgcc/config/m32r.
+	* config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
+	($(T)crtinit.o, $(T)crtfini.o): Remove.
+	(m32rx, m32r2): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
+	* config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
+	* config/m68k/t-crtstuff: Remove.
+	* config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
+	* config/m68k/t-m68kelf: Remove.
+	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
+	* config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
+	* config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
+	* config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
+	(EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
+	* config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
+	* config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
+	* config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
+	EXTRA_PARTS): Remove.
+	($(T)crti$(objext), $(T)crtn$(objext)): Remove.
+	* config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
+	* config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
+	* config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/mips/t-isa3264: Likewise.
+	* config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
+	* config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
+	(CRTSTUFF_T_CFLAGS): Remove.
+	* config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
+	Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	* config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
+	* config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	($(T)crti.o, $(T)crtn.o): Remove.
+	* config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
+	* config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
+	* config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
+	* config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
+	* config/pa/stublib.c: Move to libgcc/config/pa.
+	* config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
+	(pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
+	(pthread_mutex_unlock-stub.o, pthread_once-stub.o)
+	($(T)libgcc_stub.a): Remove.
+	* config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
+	(rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
+	(pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
+	(pthread_mutex_unlock-stub.o, pthread_once-stub.o)
+	($(T)libgcc_stub.a): Remove.
+	* config/rs6000/eabi-cn.asm: Move to
+	../../../libgcc/config/rs6000/eabi-cn.S.
+	* config/rs6000/eabi-ci.asm: Move to
+	../../../libgcc/config/rs6000/eabi-ci.S.
+	* config/rs6000/sol-ci.asm: Move to
+	../../../libgcc/config/rs6000/sol-ci.S.
+	* config/rs6000/sol-cn.asm: Move to
+	../../../libgcc/config/rs6000/sol-cn.S.
+	* config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
+	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
+	Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
+	(ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
+	($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
+	($(T)ncrtn$(objext)): Remove.
+	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
+	* config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
+	* config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
+	* config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
+	* config/score/t-score-elf: Remove.
+	* config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
+	* config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
+	* config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
+	* config/sh/lib1funcs-4-300.asm: Move to
+	../../../libgcc/config/sh/lib1funcs-4-300.S.
+	* config/sh/lib1funcs-Os-4-200.asm: Move to
+	../libgcc/config/sh/lib1funcs-Os-4-200.S.
+	* config/sh/t-elf: Remove.
+	* config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
+	* config/sh/t-linux64: Remove.
+	* config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
+	* config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
+	(IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
+	($(T)ic_invalidate_array_4-100.o)
+	($(T)libic_invalidate_array_4-100.a)
+	($(T)ic_invalidate_array_4-200.o)
+	($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
+	($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
+	($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
+	($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
+	($(T)libgcc-4-300.a): Remove.
+	* config/sh/t-superh: Remove.
+	* config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
+	* config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
+	* config/spu/cache.S: Move to ../libgcc/config/spu.
+	* config/spu/cachemgr.c: Move to ../libgcc/config/spu.
+	* config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
+	($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
+	($(T)cache64k.o, $(T)cache128k.o): Remove.
+	* config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/t-libc-ok: Remove.
+	* config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/t-netbsd: Remove.
+	* config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
+	* config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
+	* config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
+	($(T)vcrt0.o, $(T)pcrt0.o): Remove.
+	* config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
+	* config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
+	* config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
+	* config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
+	(EXTRA_MULTILIB_PARTS): Remove.
+	* config/xtensa/t-linux: Remove.
+	* config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
+
+2011-11-02  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
+	CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR translation/45116
+	* Makefile.in (slibdir): Remove, don't export.
+	(SHLIB_NM_FLAGS): Remove.
+	(libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
+	SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
+	SHLIB_MAPFILES, SHLIB_NM_FLAGS.
+	(DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
+	(gcc.o): Pass SHLIB instead of SHLIB_LINK.
+	(gccspec.o): Likewise.
+	(installdirs): Don't create $(DESTDIR)$(slibdir).
+	* configure.ac (slibdir): Remove.
+	* configure: Regenerate.
+	* libgcc-libsystem.ver: Move to ../libgcc/config.
+	* mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
+	* config/libgcc-glibc.ver: Move to ../libgcc/config.
+	* config/t-libunwind (SHLIB_LC): Remove.
+	* config/t-linux (SHLIB_MAPFILES): Remove.
+	* config/t-slibgcc-dummy: Rename to config/t-slibgcc.
+	* config/t-slibgcc-elf-ver: Remove.
+	* config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
+	../libgcc/config.
+	* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
+	to ../libgcc/config/alpha.
+	* config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
+	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
+	SHLIB_SYMVECX2, SHLIB_LINK): Remove.
+	* config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
+	* config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
+	* config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
+	SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
+	* config/arm/t-symbian (SHLIB_LC): Remove.
+	* config/bfin/libgcc-bfin.ver: Move to
+	../libgcc/config/bfin/libgcc-glibc.ver.
+	* config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
+	* config/c6x/libgcc-c6xeabi.ver: Move to
+	../libgcc/config/c6x/libgcc-eabi.ver.
+	* config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
+	* config/cris/libgcc.ver: Move to
+	../libgcc/config/cris/libgcc-glibc.ver.
+	* config/cris/t-linux (SHLIB_MAPFILES): Remove.
+	* config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
+	* config/frv/t-linux (SHLIB_MAPFILES): Remove.
+	* config/i386/darwin-libgcc.10.4.ver: Move to
+	../libgcc/config/i386/libgcc-darwin.10.4.ver.
+	* config/i386/darwin-libgcc.10.5.ver: Move to
+	../libgcc/config/i386/libgcc-darwin.10.5.ver.
+	* config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
+	* config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
+	SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
+	SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
+	SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
+	* config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
+	SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
+	* config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
+	../libgcc/config/i386.
+	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
+	../libgcc/config/i386.
+	* config/i386/t-linux: Move to ../libgcc/config/i386.
+	* config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
+	* config/i386/t-mingw-w32 (SHLIB_LC): Remove.
+	* config/i386/t-mingw-w64: Likewise.
+	* config/i386/t-mingw32: Remove.
+	* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
+	to ../libgcc/config/ia64.
+	* config/ia64/t-glibc: Remove.
+	* config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
+	* config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
+	* config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
+	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
+	* config/ia64/vms_symvec_libgcc_s.opt: Remove.
+	* config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
+	* config/m32r/t-linux (SHLIB_MAPFILES): Remove.
+	* config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
+	* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
+	* config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
+	* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
+	Move to ../libgcc/config/pa.
+	* config/rs6000/darwin-libgcc.10.4.ver: Move to
+	../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
+	* config/rs6000/darwin-libgcc.10.5.ver: Move to
+	../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
+	* config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
+	SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
+	* config/rs6000/t-aix52: Likewise.
+	* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
+	../libgcc/config/sh.
+	* config/sparc/libgcc-sparc-glibc.ver: Move to
+	../libgcc/config/sparc/libgcc-glibc.ver.
+	* config/sparc/t-linux: Move to ../libgcc/config/sparc.
+	* config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
+	* config/xtensa/libgcc-xtensa.ver: Move to
+	../libgcc/config/xtensa/libgcc-glibc.ver.
+	* config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
+	t-slibgcc in tmake_file.
+	Remove t-slibgcc-nolc-override for *-*-freebsd[34],
+	*-*-freebsd[34].* with pthreads.
+	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
+	*-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
+	t-slibgcc-elf-ver with t-slibgcc in tmake_file.
+	(*-*-netbsd*): Likewise.
+	(*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
+	(*-*-*vms*): Add t-slibgcc to tmake_file.
+	(alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
+	(alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
+	tmake_file.
+	(arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
+	arm*-*-linux-*eabi.
+	(bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
+	tmake_file.
+	(crisv32-*-linux*, cris-*-linux*): Likewise.
+	(hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
+	pa/t-slibgcc-dwarf-ver from tmake_file.
+	(hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
+	tmake_file.
+	Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
+	(hppa*64*-*-hpux11*): Likewise.
+	(hppa[12]*-*-hpux11*): Likewise.
+	(i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
+	tmake_file.
+	(x86_64-*-darwin*): Likewise.
+	(i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
+	Add t-slibgcc to tmake_file.
+	(i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
+	Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
+	i[34567]86-w64-*.
+	Remove i386/t-mingw-pthread from tmake_file.
+	(ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
+	(ia64*-*-hpux*): Add t-slibgcc to tmake_file.
+	(ia64-hp-*vms*): Likewise.
+	(m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
+	tmake_file.
+	(m32rle-*-linux*): Likewise.
+	(m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
+	(microblaze*-linux*): Remove t-slibgcc-elf-ver,
+	t-slibgcc-nolc-override from tmake_file.
+	(mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
+	tmake_file.
+	(powerpc-*-darwin*): Likewise.
+	(powerpc64-*-darwin*): Likewise.
+	(powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
+	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
+	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
+	t-slibgcc to tmake_file.
+	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
+	(rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
+	(rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
+	(rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
+	(sparc-*-linux*): Remove sparc/t-linux from tmake_file.
+	(sparc64-*-linux*): Likewise.
+	(tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
+	tmake_file.
+	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
+	x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
+	from tmake_file.
+
+2011-11-02  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50902
+	* tree-vect-stmts.c (vectorizable_load): Properly convert
+	an invariant initializer element.
+
+2010-11-02  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50890
+	* gimple.h (gimple_fold_call): Remove.
+	* gimple-fold.c (fold_stmt_1): Move all call related code to ...
+	(gimple_fold_call): ... here.  Make static.  Update the
+	cannot-inline flag on direct calls.
+	* ipa-inline.c (early_inliner): Copy the cannot-inline flag
+	from the statements to the edges.
+
+2011-11-01  Ian Lance Taylor  <iant@google.com>
+
+	* godump.c (struct macro_hash_value): Define.
+	(macro_hash_hashval): New static function.
+	(macro_hash_eq, macro_hash_del): New static functions.
+	(go_define): Use macro_hash_value to store values in macro_hash.
+	Replace an old value on a redefinition.  Don't print anything to
+	go_dump_file.
+	(go_undef): Delete the entry from the hash table.
+	(go_output_typedef): For an enum, use macro_hash_value, and don't
+	print anything to go_dump_file.
+	(go_print_macro): New static function.
+	(go_finish): Traverse macro_hash with go_print_macro.
+	(dump_go_spec_init): Update macro_hash creation for macro_hash_value.
+
+2011-11-02  Alan Modra  <amodra@gmail.com>
+
+	* config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
+
+2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/44277
+	* doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
+
+2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
+
+	* config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
+
+2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (splitters for int-float conversion): Use
+	SUBREG_REG on SUBREGs in splitter constraints.
+
+2011-11-01  Jakub Jelinek  <jakub@redhat.com>
+
+	* 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_trunc<mode><sseintvecmodelower>2): Use it.
+	(ssepackfltmode): New mode attr.
+	(vec_pack_ufix_trunc_<mode>): New expander.
+
+2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/50940
+	* config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
+	Compare <ssevecmode>mode to V4SFmode, not V4SImode.
+
+2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* 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  <avr@gjlay.de>
+
+	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  <tom@codesourcery.com>
+
+	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  <davem@davemloft.net>
+
+	* 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<mode><mode>): New VIS3 expander.
+	(vconduv8qiv8qi): Likewise.
+
+2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
+
+	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  <jakub@redhat.com>
+
+	* config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
+	expander.
+
+	* config/i386/sse.md (sseintvecmode): Remove duplicate modes.
+	(sseintvecmodelower): New mode iterator.
+	(floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
+	(float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
+	(floatunsv4siv4sf2): Macroize into...
+	(floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
+
+2011-10-31  David S. Miller  <davem@davemloft.net>
+
+	* 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  <rth@redhat.com>
+
+	* 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  <mjambor@suse.cz>
+
+	* 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  <jakub@redhat.com>
+
+	* 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  <paul@codesourcery.com>
+
+	* cgraphunit.c: Don't mark clones as static constructors.
+
+2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
+
+	* gcc-ar: Do not include stdio.h.
+
+2011-10-31  Diego Novillo  <dnovillo@google.com>
+
+	* 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  <davem@davemloft.net>
+
+	* 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  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (avx2_vec_dup<mode>): 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  <dplotnikov@ispras.ru>
+
+	* 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  <jakub@redhat.com>
+
+	* 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  <davem@davemloft.net>
+
+	* 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  <revital.eres@linaro.org>
+
+	* 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  <dave.anglin@nrc-cnrc.gc.ca>
+
+	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  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
+	Update all uses.
+	(xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
+	* config/i386/i386.c: Update all uses.
+
+2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (lshlv16qi3): Remove expander.
+	(lshrv16qi3): New expander.
+	(<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
+	using any_shiftrt code iterator. Cleanup.
+	(ashlv16qi3): Cleanup.
+	(ashrv2di3): Ditto.
+
+2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	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  <avr@gjlay.de>
+
+	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  <ak@linux.intel.com>
+
+	* gcc-ar.c (target_machine): Add.
+
+2011-10-29  Anatoly Sokolov  <aesok@post.ru>
+
+	* 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  <ak@linux.intel.com>
+
+	* 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  <ak@linux.intel.com>
+
+	* 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  <ak@linux.intel.com>
+
+	* ggc-page (release_pages): First free large continuous
+	chunks in the madvise path.
+
+2011-10-18  Andi Kleen  <ak@linux.intel.com>
+
+	* ggc-page.c (alloc_pages): Always round up entry_size.
+
+2011-10-19  Andi Kleen  <ak@linux.intel.com>
+
+	* 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 <pthaugen@us.ibm.com>
+
+	* 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_fms<mode>4): Set type via <VStype_mul>.
+	(*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
+	<VStype_simple>.
+	* 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  <ubizjak@gmail.com>
+
+	* 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.
+	(<shift_insn>*): Rename from <shiftrt_insn>*. 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.
+	(vlshr<mode>3): Use lshiftrt RTX.
+	(vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
+	(vashl<mode>3, ashlv16qi3): Use ashift RTX.
+	(avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
+	any_lshift code iterator.  Update asm template.
+	(<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
+	usign any_lshift code iterator.
+	* config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
+	mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
+	* config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
+
+2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
+
+	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  <julian@codesourcery.com>
+
+	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  <iains@gcc.gnu.org>
+
+	* 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  <jakub@redhat.com>
+
+	* config/i386/sse.md (VI4SD_AVX2): Removed.
+	(VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
+	(vashl<mode>3): 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.
+	(vlshr<mode>3): Likewise.  Change register_operand predicate to
+	nonimmediate_operand on last operand in the VI12_128 expander.
+	(vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
+	(vashrv4si3, vashrv8si3): New expanders.
+	(avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
+	avx2_<lshift>vv2di): Removed.
+	(avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
+	(avx2_<lshift>v<mode>): Macroize using VI48_AVX2
+	iterator.  Simplify pattern.
+
+2010-10-28  Richard Guenther  <rguenther@suse.de>
+
+	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  <jakub@redhat.com>
+
+	* tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
+	vector mode from vectype's mode.
+
+2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
+
+	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  <davem@davemloft.net>
+
+	* 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  <jakub@redhat.com>
+
+	* config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
+	vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
+	(*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
+
+	* config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
+	overrides for -masm=intel memory.
+	* config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
+	sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
+	sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
+	sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
+	(sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
+	sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
+	(sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
+
+2011-10-27  Martin Jambor  <mjambor@suse.cz>
+
+	* ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
+	to parm_ainfo.
+	(ipa_compute_jump_functions_for_edge): Likewise.
+	(ipa_compute_jump_functions): Likewise.
+	(ipa_analyze_indirect_call_uses): Likewise.
+	(ipa_analyze_call_uses): Likewise.
+	(ipa_analyze_params_uses): Likewise.
+	(ipa_analyze_node): Likewise.
+
+2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/50875
+	* config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
+	constraints.  Change alternative 1 to "x,m,1".
+
+2011-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.in (build/gencheck.o): Depend on tree.def and
+	c-family/c-common.def.
+
+	* tree-ssa-strlen.c: Include expr.h.
+	(get_stridx): Don't use c_strlen, instead use string_constant
+	and compute string length from it.
+	* Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
+
+2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/46603
+	PR bootstrap/50879
+	* reload.c (push_reload): In the out case, restore previous behavior
+	for subregs that don't have word mode.
+
+2011-10-27  Ian Lance Taylor  <iant@google.com>
+
+	* cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
+	CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
+	(cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
+	defined.
+
+2011-10-27  Richard Henderson  <rth@redhat.com>
+
+	* optabs.c (expand_vec_perm): Use the correct mode for scaling the
+	selector.  Save the qimode constant selector for later use by the
+	qimode vec_perm pattern.
+
+2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
+	to unit_req_factor to the right enum type.
+	(get_unit_operand_masks, reshuffle_units, try_rename_operands,
+	hwloop_optimize): Remove unused variables.
+
+2010-10-27  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50731
+	* tree-vect-generic.c (do_binop): Handle scalar operands.
+
+2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/37191
+	* config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
+	from different units in a single alternative.
+
+2011-10-26  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
+	if we're comparing DImode and comparison is other than EQ or NE.
+
+	* config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
+	LEU/LTU/GEU/GTU is attempted.
+	* config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
+	and split.
+	(*neg_seqsi_sign_extend): Likewise.
+	(*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
+	*neg_sgeu_extend_sp64): New insns.
+
+	* config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
+	* config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
+	(*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
+	(*mov<I:mode>_cc_reg_sp64): Likewise.
+	(*movsf_cc_v9): Likewise.
+	(*movsf_cc_reg_sp64): Likewise.
+	(*movdf_cc_v9): Likewise.
+	(*movdf_cc_reg_sp64): Likewise.
+	(*movtf_cc_hq_v9): Likewise.
+	(*movtf_cc_reg_hq_sp64): Likewise.
+	(*movtf_cc_v9): Likewise.
+	(*movtf_cc_reg_sp64): Likewise.
+	* config/sparc/sparc.c (sparc_expand_conditional_move): New function.
+	(sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
+
+2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* reload.c (reload_inner_reg_of_subreg): Change type of return value
+	and type of OUTPUT parameter to bool and adjust.  Document MODE and
+	OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
+	and improve associated comment.
+	(push_reload): Clarify and update comments about reloading of subregs.
+	Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
+	for the reloading of subregs in the out case as well.
+
+2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR debug/50826
+	* var-tracking.c (rtx_debug_expr_p): New.
+	(use_type): Don't use debug exprs to track non-VTA variables.
+
+2011-10-26  Jeff Law  <law@redhat.com>
+
+	* doc/invoke.texi (sink-frequency-threshold): Document.
+	* tree-ssa-sink.c: Include params.h.
+	(select_best_block): New function.
+	(statement_sink_location): Use it.
+	* params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
+
+2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR target/48108
+	* config/darwin.c (top level): Amend comments concerning LTO output.
+	(lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
+	(LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
+	(LTO_NAMES_SECTION): Rename.
+	(darwin_asm_named_section): Record LTO section counts and switches
+	in a vec of darwin_lto_section_e.
+	(darwin_file_start): Remove unused code.
+	(darwin_file_end): Put an LTO section termination label.  Handle
+	output of the wrapped LTO sections, index and names table.
+
+2011-10-26  Alan Modra  <amodra@gmail.com>
+
+	* config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
+	declaration.
+	(rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
+	(rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
+	simple_return in pattern, emit instruction, and set jump_label.
+	(rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
+	simple_return rather than return.
+	(emit_cfa_restores): New function.
+	(rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
+	Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
+	when using out-of-line gpr restore.  Add missing LR and FP regs
+	cfa_restores for out-of-line fpr restore.  Consolidate code setting
+	up cfa_restores.  Formatting.  Use LR_REGNO define.
+	(rs6000_output_mi_thunk): Use simple_return rather than return.
+	* config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
+	(return_internal*): Likewise.
+	(any_return, return_pred, return_str): New iterators.
+	(return, conditional return insns): Provide both return and
+	simple_return variants.
+	* config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
+	(REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
+	Move r11 and r0 later to suit shrink-wrapping.
+
+2011-10-26  Richard Guenther  <rguenther@suse.de>
+
+	* lto-wrapper.c (run_gcc): Properly init/free obstack.
+
+2011-10-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.md (UNSPEC_VSIBADDR): New.
+	* config/i386/predicates.md (vsib_address_operand,
+	vsib_mem_operator): New predicates.
+	* config/i386/i386.c (ix86_print_operand_address): Handle
+	UNSPEC_VSIBADDR addresses.
+	* config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
+	avx2_gatherdi<mode>256): Adjust expanders to use MEM with
+	UNSPEC_VSIBADDR address.
+	(*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
+	Adjust insns to use MEM with UNSPEC_VSIBADDR address.
+
+2011-10-26  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/50763
+	* tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
+	phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
+
+2011-10-26  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/41844
+	* Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
+	(lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
+	* lto-wrapper.c (get_options_from_collect_gcc_options): New function.
+	(run_gcc): Use it.  Filter out language specific options.
+
+2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
+
+	* config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
+	32-bit target does.
+
+2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR driver/46617
+	* gcc.c (main): Fix fatal_error string for translation.
+
+2011-10-25  Ian Lance Taylor  <iant@google.com>
+
+	* tree-eh.c (do_return_redirection): Remove return_value_p
+	parameter.  Change all callers.
+	(lower_try_finally_nofallthru): Remove local return_val.
+	(lower_try_finally_onedest): Likewise.
+	(lower_try_finally_copy): Likewise.
+	(lower_try_finally_switch): Likewise.
+
+2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
+	remove "&& !TARGET_64BIT"
+	(*mmx_maskmovq_rex): Removed.
+
+2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/46603
+	* reload.c (push_reload): In the out case, reload the subreg as well
+	as the reg if it has word mode.
+
+2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
+	suppress debug info for the parent type.
+
+2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
+
+2011-10-25  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
+	(vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
+
+	* config/rs6000/altivec.md (vec_extract_evenv8hi,
+	vec_extract_evenv16qi, vec_extract_oddv4si,
+	vec_extract_oddv4sf): Remove.
+
+	* config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
+	vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
+	vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
+	vec_interleave_highv4sf, vec_interleave_lowv4sf,
+	vec_interleave_highv4si, vec_interleave_lowv4si,
+	vec_interleave_highv8hi, vec_interleave_lowv8hi,
+	vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
+
+	* expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
+	[VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
+	[VEC_INTERLEAVE_LOW_EXPR]: Likewise.
+	* optabs.c (expand_binop): Implement vec_interleave_high_optab,
+	vec_interleave_low_optab, vec_extract_even_optab,
+	vec_extract_odd_optab with expand_vec_perm.
+	(can_vec_perm_for_code_p): New.
+	* optabs.h: Update.
+	* tree-vect-data-refs.c (vect_strided_store_supported): Allow for
+	fallback via can_vec_perm_for_code_p.
+	(vect_strided_load_supported): Likewise.
+	* tree-vect-generic.c (expand_vector_operations_1): Never lower
+	VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
+	VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
+
+	* target.def (vec_perm_const_ok): Change parameters to mode and
+	array of indicies.
+	* doc/tm.texi: Rebuild.
+	* config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
+	parameters to mode and array of indicies.
+	* expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
+	* optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
+	Change parameters to mode and array of indicies.
+	(expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
+	(expand_vec_perm): Rename from expand_vec_perm_expr.  Change
+	parameters to mode and rtx inputs.  Try lowering to QImode
+	vec_perm_const before trying fully variable permutation.
+	* optabs.h: Update decls.
+	* tree-vect-generic.c (lower_vec_perm): Extract array of indices from
+	VECTOR_CST to pass to can_vec_perm_p.
+	* tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
+	from int pointer to unsigned char pointer.
+	(vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
+	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
+
+	* tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
+	(VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
+	VEC_INTERLEAVE_LOW_EXPR): Likewise.
+
+2011-10-25  Mike Stump  <mikestump@comcast.net>
+
+	* reload.c (regno_clobbered_p): Fix typo.
+
+2011-10-25  Dodji Seketeli  <dodji@redhat.com>
+
+	* input.c (expand_location): Rewrite using linemap_resolve_location
+	and linemap_expand_location.  Add a comment.
+
+2011-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50596
+	* tree-vect-stmts.c (vect_mark_relevant): Only use
+	FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
+	(vectorizable_store): If is_pattern_stmt_p look through
+	VIEW_CONVERT_EXPR on lhs.
+	* tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
+	Use unsigned type instead of signed.
+	(vect_recog_bool_pattern): Optimize also stores into bool memory in
+	addition to casts from bool to integral types.
+	(vect_mark_pattern_stmts): If pattern_stmt already has vinfo
+	created, don't create it again.
+
+2011-10-25  Kai Tietz  <ktietz@redhat.com>
+
+	* config/i386/i386.c (ix86_frame_pointer_required): Require
+	frame-pointer, if setjmp is used for 32-bit ms-abi.
+
+2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	* builtins.c (set_builtin_user_assembler_name): Remove extra
+	newline added in October 11th, 2011 change.
+
+2011-10-24  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/little-endian.opt: Delete.
+	* config.gcc: Remove references to config/sparc/little-endian.opt
+	* doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
+	* config/sparc/linux64.h: Delete references to -mlittle-endian.
+	* config/sparc/netbsd-elf.h: Likewise.
+	* config/sparc/openbsd64.h: Likewise.
+	* config/sparc/sparc.h: Likewise.
+	* config/sparc/sp64-elf.h: Likewise and delete overrides for
+	BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
+	* config/sparc/sparc.c (dump_target_flag_bits): Remove reference
+	to MASK_LITTLE_ENDIAN.
+	* config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
+
+	* config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
+	Only use D, Y, and Z constraints in vector insns.
+
+	* config/sparc/sparc.md (cpu_feature, enabled): New attributes.
+	(*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
+	called *movsi_insn.
+	(*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
+	into *movdi_insn_sp32.
+	(*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
+	one pattern called *movdi_insn_sp64.
+	(*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
+	Consolidate into one pattern called *movsf_insn.
+	(*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
+	*movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
+	into *movdf_insn_sp32.
+	(*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
+	*movdf_insn_sp64_no_fpu): Consolidate into one pattern called
+	*movdf_insn_sp64.
+	(*zero_extendsidi2_insn_sp64_novis3,
+	*zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
+	called *zero_extendsidi2_insn_sp64.
+	(*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
+	Consolidate into one pattern named *sign_extendsidi2_insn.
+	(*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
+	Consolidate into one pattern named *mov<VM32:mode>_insn.
+	(*mov<VM64:mode>_insn_sp64_novis3,
+	*mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
+	named *mov<VM64:mode>_insn_sp64.
+	(*mov<VM64:mode>_insn_sp32_novis3,
+	*mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
+	named *mov<VM64:mode>_insn_sp32.
+
+2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
+	(zero_length_string): Change assertion to accept strinfo without
+	length but with stmt instead.
+	Set the endptr pointer also if starting a new chain.
+	(adjust_related_strinfos): Ignore strinfos marked for delayed
+	length computation.
+	(handle_builtin_strcpy): Mark earlier strinfo elements also for
+	delayed length computation.
+
+2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50820
+	Port from 4.6 branch r180379
+	* doc/invoke.texi (AVR Options): New subsubsection to explain EIND
+	handling and indirect jump/calls on devices > 128k.
+
+2011-10-24  Anatoly Sokolov  <aesok@post.ru>
+	    Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/49824
+	* doc/extend.texi (Declaring Attributes of Functions):
+	Document OS_main and OS_task attributes.
+	(Specifying Attributes of Variables): Move up
+	subsection "AVR Variable Attributes" as of alphabetical order.
+
+2011-10-24  Richard Guenther  <rguenther@suse.de>
+
+	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
+	to vector element type.
+	(vectorizable_assignment): Bail out for non-mode-precision operations.
+	(vectorizable_shift): Likewise.
+	(vectorizable_operation): Likewise.
+	(vectorizable_type_demotion): Likewise.
+	(vectorizable_type_promotion): Likewise.
+	(vectorizable_store): Handle non-mode-precision stores.
+	(vectorizable_load): Handle non-mode-precision loads.
+	(get_vectype_for_scalar_type_and_size): Return a vector type
+	for non-mode-precision integers.
+	* tree-vect-loop.c (vectorizable_reduction): Bail out for
+	non-mode-precision reductions.
+
+2011-10-24  Julian Brown  <julian@codesourcery.com>
+
+	* config/m68k/m68k.c (notice_update_cc): Tighten condition for
+	setting CC_REVERSED for FP comparisons.
+
+2011-10-24  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50838
+	* tree-data-ref.c (dr_analyze_indices): Properly canonicalize
+	a MEM_REF base if we change it.
+
+2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR bootstrap/50836
+	* rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
+
+	PR rtl-optimization/50833
+	* function.c (thread_prologue_and_epilogue_insns): Expect the
+	return insn optimization only if optimize.
+
+2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.c: Break long lines.
+	Define target hooks on the fly if applicable.
+	(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
+	overridden later.
+	(targetm): Move definition to end of file.
+	(avr_can_eliminate): Make static on the fly.
+	(avr_frame_pointer_required_p): Ditto.
+	(avr_hard_regno_scratch_ok): Ditto.
+	(avr_builtin_setjmp_frame_value): Make static on the fly.
+	Indent according to coding rules.
+	(avr_case_values_threshold): Ditto.
+	(avr_attribute_table): Move down.
+
+2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50730
+	* tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
+	analysis if encountered unsupported data-ref.
+
+2011-10-23  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
+	cpu adjustment.
+	* config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
+	append -mcpu=v9 when -mv8plus is given.
+
+	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
+	between float and non-float regs when VIS3.
+	* config/sparc/sparc.c (eligible_for_restore_insn): We can't
+	use a restore when the source is a float register.
+	(sparc_split_regreg_legitimate): When VIS3 allow moves between
+	float and integer regs.
+	(sparc_register_move_cost): Adjust to account for VIS3 moves.
+	(sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
+	integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
+	(sparc_secondary_reload): On 32-bit with VIS3 when moving between
+	float and integer regs we sometimes need a FP_REGS class
+	intermediate move to satisfy the reload.  When this happens
+	specify an extra cost of 2.
+	(*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
+	(*movdi_insn_sp32_v9): Likewise.
+	(*movdi_insn_sp64): Likewise.
+	(*movsf_insn): Likewise.
+	(*movdf_insn_sp32_v9): Likewise.
+	(*movdf_insn_sp64): Likewise.
+	(*zero_extendsidi2_insn_sp64): Likewise.
+	(*sign_extendsidi2_insn): Likewise.
+	(*movsi_insn_vis3): New insn.
+	(*movdi_insn_sp32_v9_vis3): New insn.
+	(*movdi_insn_sp64_vis3): New insn.
+	(*movsf_insn_vis3): New insn.
+	(*movdf_insn_sp32_v9_vis3): New insn.
+	(*movdf_insn_sp64_vis3): New insn.
+	(*zero_extendsidi2_insn_sp64_vis3): New insn.
+	(*sign_extendsidi2_insn_vis3): New insn.
+	(TFmode reg/reg split): Make sure both REG operands are float.
+	(*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
+	easy constant to integer reg alternatives.
+	(*mov<VM64:mode>_insn_sp64): Likewise.
+	(*mov<VM64:mode>_insn_sp32_novis3): Likewise.
+	(*mov<VM32:mode>_insn_vis3): New insn.
+	(*mov<VM64:mode>_insn_sp64_vis3): New insn.
+	(*mov<VM64:mode>_insn_sp32_vis3): New insn.
+	(VM64 reg<-->reg split): New splitter for 32-bit.
+
+	* config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
+	* config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
+	Declare it.
+	* config/sparc/sparc.md (DImode reg/reg split): Use it.
+	(DFmode reg/reg split): Likewise.
+
+	* config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
+	generating fzero and fone instructions.
+	(DImode const_int --> reg splitter): Only trigger for integer regs.
+
+	* config/sparc/predicates.md (input_operand): Disallow vector
+	constants other than 0 and -1.
+	* config/sparc/sparc.c (sparc_preferred_reload_class): Return
+	NO_REGS for vector constants other than 0 and -1.
+
+	* config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
+	SPARC_INT_REG_P): Define.
+	(HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
+	(REGNO_OK_FOR_INDEX_P): Likewise.
+	* config/sparc/sparc.c (gen_df_reg): Likewise.
+	(eligible_for_return_delay): Likewise.
+	(eligible_for_sibcall_delay): Likewise.
+	(sparc_legitimate_address_p): Likewise.
+	(emit_save_or_restore_regs): Likewise.
+	(registers_ok_for_ldd_peep): Likewise.
+	* config/spac/sparc.md (DI mode splitters): Likewise.
+	(SF mode const splitters): Likewise.
+	(DF mode splitters): Likewise.
+	(32-bit DI mode logical op splitters): Likewise.
+
+2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/50841
+	Revert:
+	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/50810
+	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
+
+2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
+	(VI248_256): Remove mode iterator.
+	* config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
+	instead of gen_avx2_lshlv4di3.
+	(bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
+	CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
+
+2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
+	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
+	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
+	pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
+	*avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
+	iterator.  Use sseintprefix mode attribute.
+	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
+	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
+	pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
+	*avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
+	iterator.  Use sseintprefix mode attribute.
+	(*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
+	attributes.
+	(*avx2_gatherdi<mode>): Ditto.
+	(*avx2_gatherdi<mode>256): Ditto.
+	(VI48_AVX2): Remove mode iterator.
+	(gthrlastfp): Remove mode attribute.
+
+2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/50810
+	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
+
+2011-10-23  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/50763
+	* tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
+	out of ...
+	(same_succ_flush_bbs): Use same_succ_flush_bb.
+	(purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
+	release_last_vdef and delete_basic_block.
+	(unlink_virtual_phi): New function.
+	(update_vuses): Add and use vuse1_phi_args argument.  Set var to
+	SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
+	def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
+	is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
+	to limit replacement of uses.  Propagate phi argument for phis with a
+	single argument.
+	(replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
+	Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
+	vuse1_phi_args as argument to call to update_vuses.  Call
+	release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
+	CDI_DOMINATORS info.
+	(tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
+	call to free_dominance_info.  Only call calculate_dominance_info once.
+
+2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
+
+	PR tree-optimization/44683
+	* tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
+	we can be sure that there are no signed zeros involved.
+
+2011-10-23  Jan Hubicka  <jh@suse.cz>
+
+	* ipa-inline.c (estimate_badness): Scale up and handle overflows.
+
+2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/50788
+	* config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
+	Remove (match_dup 0).
+	(*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
+	(*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
+	(*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
+	(*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
+	(*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
+	(*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
+
+2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50819
+	* tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
+	the last argument.
+	* tree-vect-loop.c (vect_analyze_loop_2): Update call to
+	vect_analyze_data_ref_dependences.
+	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
+	the last argument.  Check load-after-store dependence for unknown
+	dependencies in basic blocks.
+	(vect_analyze_data_ref_dependences): Update call to
+	vect_analyze_data_ref_dependences.
+	* tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
+	* tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
+	(vect_slp_analyze_bb_1): Update call to
+	vect_analyze_data_ref_dependences.  Don't call
+	vect_bb_vectorizable_with_dependencies.
+
+2011-10-22  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
+	SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
+	* config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
+	(sparc_secondary_reload): New function.
+
+	* config/sparc/sparc.h (sparc_costs): Remove extern decl.
+	(struct processor_costs): Move from here..
+	* config/sparc/sparc.c (struct processor_costs): To here.
+	(sparc_costs): Mark static.
+
+	* config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
+	* config/sparc/sparc-protos.h (short_branch, reg_unused_after):
+	Get rid of declarations.
+
+2011-10-21  Paul Brook  <paul@codesourcery.com>
+
+	* config/c6x/c6x.c (c6x_asm_emit_except_personality,
+	c6x_asm_init_sections): New functions.
+	(TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
+
+2011-10-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/50813
+	* config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
+	V4DImode and V8SImode for !TARGET_AVX2.
+
+2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR bootstrap/50825
+	* sched-deps.c (add_dependence): If not doing predication, promote
+	REG_DEP_CONTROL to REG_DEP_ANTI.
+
+2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
+	instead of X to avr_legitimize_reload_address.
+	* config/avr/avr-protos.h (avr_legitimize_reload_address): Change
+	first argument's type from rtx to rtx*.
+	* config/avr/avr.c (avr_legitimize_reload_address): Ditto.
+	Pass PX to push_reload instead of &X.  Change log messages for
+	better distinction.
+
+2011-10-21  Roland Stigge  <stigge@antcom.de>
+
+	PR translation/47064
+	* params.def: Fix typo "compilatoin" -> "compilation".
+
+2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
+	    Kirill Yukhin  <kirill.yukhin@intel.com>
+
+	PR target/50740
+	* config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
+	if max_level allows that.
+
+2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* reg-notes.def (DEP_CONTROL): New.
+	* sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
+	not doing speculation.
+	* rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
+	record_hard_reg_uses_1, record_hard_reg_uses): New functions.
+	* function.c (record_hard_reg_sets, record_hard_reg_uses,
+	record_hard_reg_uses_1): Remove; move to rtlanal.c.
+	* lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
+	* haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
+	(MUST_RECOMPUTE_SPEC_P): New macro.
+	(real_insn_for_shadow): New function.
+	(cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
+	toggle_cancelled_flags): New static functions.
+	(schedule_insn): Relax an assert to only check for empty hard back
+	dependencies.  Skip cancelled dependencies.  Call
+	check_clobbered_conditions.
+	(copy_insn_list): Remove function, renamed moved to lists.c.
+	(save_backtrack_point): Use new spelling copy_INSN_LIST.
+	(unschedule_insns_until): Ensure TODO_SPEC is reset properly.
+	(restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
+	(estimate_insn_tick): Ignore cancelled dependencies.
+	(haifa_speculate_insn): Move declaration.
+	(try_ready): Move code into recompute_todo_spec and call it.  Tweak
+	some asserts.  Ensure predicated patterns are restored if necessary.
+	Dump DEP_CONTROL flag.
+	(haifa_change_pattern): Merge with sched_change_pattern.
+	(sched_change_pattern): Remove function.
+	* sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
+	uses changed to simply not test NON_FLUSH_JUMP_P.
+	(ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
+	REG_DEP_CONTROL.
+	(dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
+	(reg_pending_control_uses, control_dependency_cache): New static
+	variables.
+	(sched_get_reverse_condition_uncached): New function.
+	(sd_find_dep_between): Remove pointless assert.  Look in
+	control_dependency_cache.
+	(ask_dependency_caches, set_dependency_caches, sd_delete_dep,
+	extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
+	and control_dependency_cache.
+	(sd_unresolve_dep): Use dep_spec_p.
+	(add_dependence): Now a wrapper around add_dependence_1, handling
+	REG_DEP_CONTROL specially.
+	(flush_pending_lists): Clear pending_jump_insns.
+	(sched_analyze_1): Handle pending_jump_insns like a memory flush.
+	(sched_analyze_2): Unconditionally add to pending memory flushes,
+	keep previous behaviour but apply it to pending_jump_insns instead.
+	(sched_analyze_insn): Defer adding jump reg dependencies using
+	reg_pending_control_uses; add them to the control_uses list.  Handle
+	pending_jump_insns and control_uses when adding dependence lists.
+	(deps_analyze_insn): Update INSN_COND_DEPS.
+	(deps_analyze_insn): Add jumps to pending_jump_insns rather than
+	last_pending_memory_flush.
+	(init_deps): Initialize pending_jump_insns.
+	(free_deps): Free control_uses.
+	(remove_from_deps): Remove from pending_jump_insns.
+	(init_deps_global): Allocate reg_pending_control_uses).
+	(finish_deps_global): Free it.
+	(add_dependence_1): Renamed from add_dependence.  Handle
+	REG_DEP_CONTROL.
+	* rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
+	(copy_INSN_LIST, concat_INSN_LIST): Declare.
+	* sched-int.h (struct deps_reg): Add control_uses.
+	(struct deps_desc): Add pending_jump_insns.
+	(struct _haifa_deps_insn_data): Add cond_deps.
+	(struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
+	(INSN_COND_DEPS, PREDICATED_PAT): New macros.
+	(BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
+	(DEP_CONTROL): New macro.
+	(DEP_TYPES): Include it.
+	(HARD_DEP): Adjust definition.
+	(DEP_CANCELLED): New macro.
+	(enum SCHED_FLAGS): Add DO_PREDICATION.
+	(sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
+	* sched-rgn.c (concat_INSN_LIST): Remove function.
+	(deps_join): Handle pending_jump_insns.
+	(free_pending_lists): Likewise.
+	* config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
+	schedule.
+
+2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50820
+	* config/avr/libgcc.S (__EIND__): New define to 0x3C.
+	(__tablejump__): Consistently use EIND for indirect jump/call.
+	(__tablejump_elpm__): Ditto.
+
+2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* config/c6x/c6x.md (attr "op_pattern"): New.
+	(load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
+	* config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
+	Likewise.
+	* config/c6x/c6x-mult.md: Regenerate.
+	* config/c6x/c6x.c: Include "regrename.h".
+	(unit_req_table): New typedef.
+	(unit_reqs): Use it for the declaration.
+	(unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
+	get_unit_operand_masks, try_rename_operands, reshuffle_units): New
+	static functions.
+	(count_unit_reqs): New arg reqs.  All callers changed.  Use
+	get_unit_reqs, and don't merge here.
+	(res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
+	using unit_req_factor.
+	(hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
+	count_unit_reqs.
+	(c6x_reorg): Add reg notes problem, and call df_analyze.
+	* Makefile.in ($(out_object_file)): Depend on regrename.h.
+
+2011-10-21  Kai Tietz  <ktietz@redhat.com>
+
+	* fold-const.c (simple_operand_p_2): Handle integral
+	casts from boolean-operands.
+
+2011-10-21  Jan Hubicka  <jh@suse.cz>
+
+	* cgraph.c (dump_cgraph_node): Dump alias flag.
+	* cgraphunit.c (handle_alias_pairs): Handle weakrefs with
+	no destination.
+	(get_alias_symbol): New function.
+	(output_weakrefs): Output also weakrefs with no destinatoin.
+	(lto_output_node): Output weakref alias flag when at function boundary.
+
+2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
+
+	PR target/50809
+	* config/arm/driver-arm.c (vendors): Make static.
+
+2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
+	(ix86_emit_swsqrtsf): Force a into register.
+
+2011-10-20  Mike Stump  <mikestump@comcast.net>
+
+	* regcprop.c (copyprop_hardreg_forward_1): Update recog_data
+	after validate_change wipes it out.
+
+2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
+	before using the shufb instruction.
+
+2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
+
+	PR target/50766
+	* config/i386/i386.md (bmi_bextr_<mode>): Update register/
+	memory operand order.
+	(bmi2_bzhi_<mode>3): Ditto.
+	(bmi2_pdep_<mode>3): Ditto.
+	(bmi2_pext_<mode>3): Ditto.
+
+2011-10-20  Richard Henderson  <rth@redhat.com>
+
+	* target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
+	* optabs.c (can_vec_perm_expr_p): Update to match.
+	(expand_vec_perm_expr): Likewise.
+	* config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
+	from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
+	* doc/tm.texi.in: Likewise.
+
+2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
+
+	PR target/50572
+	* config/i386/i386.c (processor_target_table): Change Atom
+	align_loops_max_skip to 15.
+
+2011-10-20  Richard Henderson  <rth@redhat.com>
+
+	* target.def (builtin_vec_perm): Remove.
+	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
+
+	* config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
+	(IX86_BUILTIN_VEC_PERM_*): Remove.
+	(bdesc_args): Remove vec_perm builtins
+	(ix86_expand_builtin): Likewise.
+	(ix86_expand_vec_perm_const_1): Rename from
+	ix86_expand_vec_perm_builtin_1.
+	(extract_vec_perm_cst): Merge into...
+	(ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
+	ix86_vectorize_builtin_vec_perm_ok.
+	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
+
+	* config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
+	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
+
+	* config/spu/spu.c (spu_builtin_vec_perm): Remove.
+	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
+
+2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/47989
+	* config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
+	* config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
+	* doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
+	implements vectorized single float division and vectorized sqrtf(x)
+	with reciprocal sequence with additional Newton-Raphson step with
+	-ffast-math.
+
+2011-10-20  Dodji Seketeli  <dodji@redhat.com>
+
+	* ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
+	ggc_alloced_size_order_for_request into ggc_round_alloc_size like
+	it was done in ggc-page.c.
+
+	PR other/50659
+	* doc/cppopts.texi: Use @smallexample/@end smallexample in
+	documentation for -fdebug-cpp instead of @quotation/@end quotation
+	that is not supported by contrib/texi2pod.pl.
+
+2011-10-19  Jan Hubicka  <jh@suse.cz>
+
+	* ipa-inline.c (inline_small_functions): Always update all calles after
+	inlining.
+
+2011-10-19  Jan Hubicka  <jh@suse.cz>
+
+	PR bootstrap/50709
+	* ipa-inline.c (inline_small_functions): Fix checking code to not make
+	effect on fibheap stability.
+
+2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+	* config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
+
+2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+	PR target/50106
+	* config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
+	reg size from 1-3.
+
+2011-10-20  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
+	and rotates to the set of expensive operations.
+
+2011-10-19  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
+	(sparc_emit_set_const32): Likewise.
+	(sparc_emit_set_const64_longway): Likewise.
+	(sparc_emit_set_const64): Likewise.
+	(sparc_legitimize_pic_address): Likewise.
+	(memory_ok_for_ldd): Likewise.
+
+2011-10-20  Dehao Chen  <dehao@google.com>
+
+	* profile.c (compute_branch_probabilities): Compute and dump the
+	overlap between the static estimation and the instrumentation profile.
+	(OVERLAP_BASE): New macro.
+	(compute_frequency_overlap): New function
+
+2011-10-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
+	d->op1 instead of d->op0 for the second vpshufb.
+	(expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
+	(ix86_expand_vec_perm_const): If mask indicates two operands are
+	needed, but both are the same and expanding them as d.op0 == d.op1
+	failed, retry with d.op0 != d.op1.
+	(ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
+	also for d.nelt == 32.
+
+	PR middle-end/50754
+	* cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
+	VEC_PERM_EXPR.
+
+2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* regrename.h: New file.
+	* regrename.c: Include it.  Also include "emit-rtl.h".
+	(struct du_head, struct du_chain, du_head_p DEF_VEC and
+	DEF_VEC_ALLOC_P): Move to regrename.h.
+	(do_replace): Remove declaration.
+	(insn_rr): New variable.
+	(cur_operand): New static variable.
+	(regrename_chain_from_id): Renamed from chain_from_id and no longer
+	static.  All callers changed.
+	(record_operand_use): New static function.
+	(scan_rtx_reg): Use it.
+	(find_best_rename_reg): New function, broken out of rename_chains.
+	(rename_chains): Use it.  Don't update chain regno and nregs here, ...
+	(regrename_do_replace): ... do it here instead.  Renamed from
+	do_replace, and no longer static.  All callers changed.
+	(regrename_analyze): No longer static.  New arg bb_mask.
+	All callers changed.  If bb_mask is nonzero, use it to limit the
+	number of basic blocks we analyze.  If we failed to analyze a block,
+	clear insn operand data.
+	(record_out_operands): New arg insn_info.  Update cur_operand if it is
+	nonnull.
+	(build_def_use): If insn_rr is nonnull, pass an insn_info to
+	record_out_operands, and update cur_operand here as well.
+	(regrename_init, regrename_finish): New functions.
+	(regrename_optimize): Use them.
+	* Makefile.in (regrename.o): Adjust dependencies.
+
+2011-10-19  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/50769
+	* tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
+	unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
+	dummy argument .MEM to phi when increasing number of arguments of phi by
+	redirecting edges to the block with phi.
+
+2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR bootstrap/50777
+	* configure.ac: Save and restore CXXFLAGS around
+	gcc_AC_CHECK_DECLS uses.
+	Check for madvise() declaration with g++ if --enable-build-with-cxx.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+	* ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
+
+2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR debug/49310
+	* var-tracking.c (loc_exp_dep, onepart_aux): New structs.
+	(variable_part): Replace offset with union.
+	(enum onepart_enum, onepart_enum_t): New.
+	(variable_def): Drop cur_loc_changed, add onepart.
+	(value_chain_def, const_value_chain): Remove.
+	(VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
+	(VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
+	(VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
+	(value_chain_pool, value_chains): Remove.
+	(dropped_values): New.
+	(struct parm_reg): Only if HAVE_window_save.
+	(vt_stack_adjustments): Don't record register arguments.
+	(dv_as_rtx): New.
+	(dv_onepart_p): Return a onepart_enum_t.
+	(onepart_pool): New.
+	(dv_pool): Remove.
+	(dv_from_rtx): New.
+	(variable_htab_free): Release onepart aux data.  Reset flags.
+	(value_chain_htab_hash, value_chain_htab_eq): Remove.
+	(unshare_variable): Use onepart field.  Propagate onepart aux
+	data or offset.  Drop cur_loc_changed.
+	(val_store): Cope with NULL insn.  Rephrase dump output.  Check
+	for unsuitable locs.  Add FIXME on using cselib locs.
+	(val_reset): Remove FIXME of unfounded concerns.
+	(val_resolve): Check for unsuitable locs.  Add FIXME on using
+	cselib locs.
+	(variable_union): Use onepart field, adjust access to offset.
+	(NO_LOC_P): New.
+	(VALUE_CHANGED, DECL_CHANGED): Update doc.
+	(set_dv_changed): Clear NO_LOC_P when changed.
+	(find_loc_in_1pdv): Use onepart field.
+	(intersect_loc_chains): Likewise.
+	(unsuitable_loc): New.
+	(loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
+	(add_value_chain, add_value_chains): Remove.
+	(add_cselib_value_chains, remove_value_chain): Likewise.
+	(remove_value_chains, remove_cselib_value_chains): Likewise.
+	(canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
+	(canonicalize_values_star, canonicalize_vars_star): Use onepart.
+	(variable_merge_over_cur): Likewise.  Adjust access to offset.
+	Drop cur_loc_changed.
+	(variable_merge_over_src): Use onepart field.
+	(remove_duplicate_values): Likewise.
+	(variable_post_merge_new_vals): Likewise.
+	(find_mem_expr_in_1pdv): Likewise.
+	(dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
+	and value chains.
+	(dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
+	(variable_different_p): Use onepart field.  Move onepart test out
+	of the loop.
+	(argument_reg_set): Drop.
+	(add_uses, add_stores): Preserve but do not record in dynamic
+	tables equivalences for ENTRY_VALUEs and CFA_based addresses.
+	Avoid unsuitable address expressions.
+	(EXPR_DEPTH): Unlimit.
+	(EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
+	(prepare_call_arguments): Use DECL_RTL_IF_SET.
+	(dump_var): Adjust access to offset.
+	(variable_from_dropped, recover_dropped_1paux): New.
+	(variable_was_changed): Drop cur_loc_changed.  Use onepart.
+	Preserve onepart aux in empty_var.  Recover empty_var and onepart
+	aux from dropped_values.
+	(find_variable_location_part): Special-case onepart.  Adjust
+	access to offset.
+	(set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
+	access to offset.  Initialize onepaux.  Drop value chains.
+	(delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
+	(VEC (variable, heap), VEC (rtx, stack)): Define.
+	(expand_loc_callback_data): Drop dummy, cur_loc_changed,
+	ignore_cur_loc.  Add expanding, pending, depth.
+	(loc_exp_dep_alloc, loc_exp_dep_clear): New.
+	(loc_exp_dep_insert, loc_exp_dep_set): New.
+	(notify_dependents_of_resolved_value): New.
+	(update_depth, vt_expand_var_loc_chain): New.
+	(vt_expand_loc_callback): Revamped.
+	(resolve_expansions_pending_recursion): New.
+	(INIT_ELCD, FINI_ELCD): New.
+	(vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
+	parameter, adjust all callers.
+	(vt_expand_loc_dummy): Drop.
+	(vt_expand_1pvar): New.
+	(emit_note_insn_var_location): Operate on non-debug decls only.
+	Revamp multi-part cur_loc recomputation and one-part expansion.
+	Drop cur_loc_changed.  Adjust access to offset.
+	(VEC (variable, heap)): Drop.
+	(changed_variables_stack, changed_values_stack): Drop.
+	(check_changed_vars_0, check_changed_vars_1): Remove.
+	(check_changed_vars_2, check_changed_vars_3): Remove.
+	(values_to_stack, remove_value_from_changed_variables): New.
+	(notify_dependents_of_changed_value, process_changed_values): New.
+	(emit_notes_for_changes): Revamp onepart updates.
+	(emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
+	and value chains.  Propagate onepaux.  Recover empty_var and onepaux
+	from dropped_values.
+	(emit_notes_for_differences_2): Drop value chains.
+	(emit_notes_in_bb): Adjust.
+	(vt_emit_notes): Drop value chains, changed_variables_stack.
+	Initialize and release dropped_values.
+	(create_entry_value): Revamp.
+	(vt_add_function_parameter): Use new interface.
+	(note_register_arguments): Remove.
+	(vt_initialize): Drop value chains and register arguments.
+	(vt_finalize): Drop value chains.  Release windowed_parm_regs only
+	if HAVE_window_save.
+	* rtl.h: Document various pass-local uses of RTL flags.
+	* tree.h (DECL_RTL_KNOWN_SET): New.
+	* doc/invoke.texi (param max-vartrack-expr-depth): Update
+	description and default.
+
+2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50447
+	* config/avr/avr.md (cc): New alternative out_plus_noclobber.
+	(adjust_len): Ditto.
+	(addhi3): Don't pipe through short; use gen_int_mode instead.
+	Prior to reload, expand to gen_addhi3_clobber.
+	(*addhi3): Use avr_out_plus_noclobber if applicable, use
+	out_plus_noclobber in cc and adjust_len attribute.
+	(addhi3_clobber): 2 new RTL peepholes.
+	(addhi3_clobber): New insn.
+	* config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
+	* config/avr/avr.c (avr_out_plus_noclobber): New function.
+	(notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
+	(avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
+	Set cc0 to set_zn for adiw on 16-bit values.
+	(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
+	(expand_epilogue): No need to add 0 to frame_pointer_rtx.
+
+2011-10-19  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50780
+	* tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
+	the condition is properly gimple before using it.
+	* tree-eh (stmt_could_throw_1_p): Properly extract the
+	operation type from comparisons.
+
+2011-10-19  Roland Stigge  <stigge@antcom.de>
+
+	PR translation/48638
+	* plugin.c (add_new_plugin): Fix typo in fatal_error message.
+
+2011-10-19  Roland Stigge  <stigge@antcom.de>
+
+	PR translation/49517
+	* config/rx/rx.c (rx_print_operand): Fix typo in warning message.
+
+2011-10-19  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50768
+	* gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
+
+2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
+
+	PR rtl-optimization/50340
+	* sel-sched-ir.c (update_target_availability): LHS register
+	availability is not known if the unavailable LHS of the other
+	expression is a different register.
+
+2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	PR target/50310
+	* config/spu/spu.c (spu_emit_vector_compare): Support unordered
+	floating-point comparisons.
+
+2011-10-19  Jan Hubicka  <jh@suse.cz>
+
+	* cgraphunit.c (handle_alias_pairs): Also handle wekref with
+	destination declared.
+	(output_weakrefs): New function.
+	* varpool.c (varpool_create_variable_alias): Handle external aliases.
+
+2011-10-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
+	second argument instead of mode.
+
+2011-10-18  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
+	mode SUBREG of operands[0] as target.
+	(valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
+	(expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
+	(expand_vec_perm_1): Handle identity and some broadcast
+	permutations.
+	(expand_vec_perm_interleave2): Handle also 32-byte modes, using
+	vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
+	For d->testing_p return true earlier to avoid creating more GC
+	garbage.
+	(expand_vec_perm_vpermq_perm_1): New function.
+	(expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
+	earlier to avoid creating more GC garbage.  Fix handling of
+	V16HImode.  Avoid some SUBREGs in SET_DEST.
+	(expand_vec_perm_broadcast_1): Return false for 32-byte integer
+	vector modes.
+	(expand_vec_perm_vpshufb4_vpermq2): New function.
+	(ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
+	and expand_vec_perm_vpshufb4_vpermq2.
+
+2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
+
+	* config/arm/driver-arm.c (host_detect_local_cpu): Close the file
+	before exiting.
+
+2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
+
+	PR tree-optimization/50717
+	* tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
+	parameter.  Calculate 'type' from stmt.
+	(convert_mult_to_widen): Update call the is_widening_mult_p.
+	(convert_plusminus_to_widen): Likewise.
+
+2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* config/spu/spu.c (struct machine_function): New data structure.
+	(spu_init_machine_status): New function.
+	(spu_option_override): Install it.
+	(get_pic_reg): Set and use cfun->machine->pic_reg.
+	(spu_split_immediate): Do not set crtl->uses_pic_offset_table.
+	(need_to_save_reg): Use cfun->machine->pic_reg instead of
+	checking crtl->uses_pic_offset_table.
+	(spu_expand_prologue): Likewise.
+
+2011-10-18  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50735
+	* function.c (gimplify_parameters): Use create_tmp_var instead of
+	create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
+	or vector type, set DECL_GIMPLE_REG_P.
+
+2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
+
+	* config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
+	* config/arm/arm.opt: Add 'native' processor_type and
+	arm_arch enum values.
+	* config/arm/arm.h (host_detect_local_cpu): New prototype.
+	(EXTRA_SPEC_FUNCTIONS): New define.
+	(MCPU_MTUNE_NATIVE_SPECS): New define.
+	(DRIVER_SELF_SPECS): New define.
+	* config/arm/driver-arm.c: New file.
+	* config/arm/x-arm: New file.
+	* doc/invoke.texi (ARM Options): Document -mcpu=native,
+	-mtune=native and -march=native.
+
+2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
+
+	PR rtl-optimization/50205
+	* sel-sched.c (count_occurrences_1): Simplify on the assumption that
+	p->x is a register.  Forbid substitution when the same register is
+	found in a different mode.
+	(count_occurrences_equiv): Assert that 'what' is a register.
+
+2011-10-18  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50767
+	* tree-ssa-pre.c (create_expression_by_pieces): Update the
+	folded statement.
+
+2011-10-18  Julian Brown  <julian@codesourcery.com>
+
+	* config/arm/arm.c (arm_block_move_unaligned_straight)
+	(arm_adjust_block_mem, arm_block_move_unaligned_loop)
+	(arm_movmemqi_unaligned): New.
+	(arm_gen_movmemqi): Support unaligned block copies.
+
+2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
+
+	* doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
+	vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
+	* tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
+	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
+	(op_code_prio): Likewise.
+	(op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
+	* optabs.c (optab_for_tree_code): Handle
+	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
+	(init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
+	* optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
+	* genopinit.c (optabs): Initialize the new optabs.
+	* expr.c (expand_expr_real_2): Handle
+	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
+	* gimple-pretty-print.c (dump_binary_rhs): Likewise.
+	* tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
+	* tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
+	VEC_WIDEN_LSHIFT_LO_EXPR): New.
+	* cfgexpand.c (expand_debug_expr): Handle new tree codes.
+	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
+	vect_recog_widen_shift_pattern.
+	(vect_handle_widen_mult_by_const): Rename...
+	(vect_handle_widen_op_by_const): ...to this.  Handle shifts.
+	Add a new argument, update documentation.
+	(vect_recog_widen_mult_pattern): Assume that only second
+	operand can be constant.  Update call to
+	vect_handle_widen_op_by_const.
+	(vect_recog_over_widening_pattern): Fix typo.
+	(vect_recog_widen_shift_pattern): New.
+	* tree-vect-stmts.c (vectorizable_type_promotion): Handle
+	widening shifts.
+	(supportable_widening_operation): Likewise.
+	* tree-inline.c (estimate_operator_cost): Handle new tree codes.
+	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
+	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
+	* config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
+	(vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
+	vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
+	Likewise.
+	* config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
+	New.
+	* config/arm/iterators.md (V_innermode): New.
+	* tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
+	for widening shift.
+
+2011-10-18  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-alias.h (struct pt_solution): Remove
+	vars_contains_restrict member.
+	(pt_solutions_same_restrict_base): Remove.
+	(pt_solution_set): Adjust.
+	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
+	vars_contains_restrict handling.
+	(dump_points_to_solution): Likewise.
+	(ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
+	* tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
+	field.
+	(new_var_info): Do not initialize it.
+	(ipa_escaped_pt): Adjust.
+	(make_constraint_from_restrict): Make the tag global.
+	(make_constraint_from_global_restrict): New function.
+	(make_constraint_from_heapvar): Remove.
+	(create_variable_info_for): Do not make restrict vars point
+	to NONLOCAL.
+	(intra_create_variable_infos): Likewise.
+	(find_what_var_points_to): Remove vars_contains_restrict handling.
+	(pt_solution_set): Adjust.
+	(pt_solution_ior_into): Likewise.
+	(pt_solutions_same_restrict_base): Remove.
+	(compute_points_to_sets): Do not test is_restrict_var.
+	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
+	* gimple-pretty-print.c (pp_points_to_solution): Likewise.
+
+2011-10-18  Tom de Vries  <tom@codesourcery.com>
+
+	PR tree-optimization/50672
+	* tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
+	factored out of ...
+	(mark_virtual_phi_result_for_renaming): Use
+	mark_virtual_operand_for_renaming.
+	* tree-flow.h (mark_virtual_operand_for_renaming): Declare.
+	* tree-ssa-tail-merge.c (release_last_vdef): New function.
+	(purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
+	deleted basic block.
+	(tail_merge_optimize): Add argument to call to purge_bbs.
+
+2011-10-18  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50716
+	* expr.c (get_object_or_type_alignment): New function.
+	(expand_assignment): Use it.
+	(expand_expr_real_1): Likewise.
+
+2011-10-18  Dodji Seketeli  <dodji@redhat.com>
+
+	PR bootstrap/50760
+	* input.c (dump_line_table_statistics): Use long, not size_t.
+
+2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/sparc/sparc.md (in_call_delay): Fix formatting issues.
+
+2011-10-17  Simon Baldwin  <simonb@google.com>
+	    Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Add --with-native-system-header-dir.  Set and
+	substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
+	when setting target_header_dir.
+	* config.gcc: Always set native_system_header_dir.
+	(*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
+	(i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
+	use i386/t-djgpp.
+	(i[34567]86-*-mingw* | x86_64-*-mingw*): Set
+	native_system_header_dir.
+	(spu-*-elf*): Set native_system_header_dir.
+	* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
+	@NATIVE_SYSTEM_HEADER_DIR@.
+	(PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
+	* cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
+	(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
+	STANDARD_INCLUDE_COMPONENT.
+	(cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
+	STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
+	* system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
+	STANDARD_INCLUDE_COMPONENT.
+	* config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
+	* config/i386/t-mingw-w32: Likewise.
+	* config/i386/t-mingw-w64: Likewise.
+	* config/spu/t-spu-elf: Likewise.
+	* config/i386/t-djgpp: Remove.
+	* config/t-gnu: Remove.
+	* config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
+	(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
+	STANDARD_INCLUDE_COMPONENT.
+	* config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
+	* config/spu/spu-elf.h: Likewise.
+	* config/vms/xm-vms.h: Likewise.
+	* config/gnu.h: Likewise.
+	* config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
+	and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
+	NATIVE_SYSTME_HEADER_COMPONENT.
+	* doc/install.texi (Configuration): Document
+	--with-native-system-header-dir.  Mention it in the documentation
+	for --with-sysroot and --with-build-sysroot.
+	* doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
+	STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
+	NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
+	STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
+	* doc/fragments.texi (Target Fragment): Don't document
+	NATIVE_SYSTEM_HEADER_DIR.
+	* configure, doc/tm.texi: Rebuild.
+
+2011-10-17  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/sparc.md: Use register_or_zero_operand where rJ
+	is the constraint.
+
+	* config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
+	patterns.
+	* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
+	* config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
+
+2011-10-17  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc-modes.def: Add single entry vector modes for
+	DImode and SImode.
+	* config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
+	mode iterators.
+	(mov<V32:mode>): Revert back to plain SFmode pattern.
+	(*movsf_insn): Likewise.
+	(mov<V64:mode>): Revert back to plain DFmode pattern.
+	(*movdf_insn_sp32): Likewise.
+	(*movdf_insn_sp32_v9): Likewise.
+	(*movdf_insn_sp64): Likewise.
+	(V64 mode splitters) Likewise.
+	(addsi3): Remove VIS alternatives.
+	(subsi3): Likewise.
+	(and<V64I:mode>3): Revert to DImode only pattern.
+	(and<V64I:mode>3_sp32): Likewise.
+	(*and<V64I:mode>3_sp64): Likewise.
+	(and<V32I:mode>3): Likewise.
+	(*and_not_<V64I:mode>_sp32): Likewise.
+	(*and_not_<V64I:mode>_sp64): Likewise.
+	(*and_not_<V32I:mode>): Likewise.
+	(ior<V64I:mode>3): Likewise.
+	(*ior<V64I:mode>3_sp32): Likewise.
+	(*ior<V64I:mode>3_sp64): Likewise.
+	(ior<V32I:mode>3): Likewise.
+	(*or_not_<V64I:mode>_sp32): Likewise.
+	(*or_not_<V64I:mode>_sp64): Likewise.
+	(*or_not_<V32I:mode>): Likewise.
+	(xor<V64I:mode>3): Likewise.
+	(*xor<V64I:mode>3_sp32): Likewise.
+	(*xor<V64I:mode>3_sp64): Likewise.
+	(xor<V32I:mode>3): Likewise.
+	(V64I mode splitters): Likewise.
+	(*xor_not_<V64I:mode>_sp32): Likewise.
+	(*xor_not_<V64I:mode>_sp64): Likewise.
+	(*xor_not_<V32I:mode>): Likewise.
+	(one_cmpl<V64I:mode>2): Likewise.
+	(*one_cmpl<V64I:mode>2_sp32): Likewise.
+	(*one_cmpl<V64I:mode>2_sp64): Likewise.
+	(one_cmpl<V32I:mode>2): Likewise.
+	(VM32, VM64, VMALL): New mode iterators.
+	(vbits, vconstr, vfptype): New mode attributes.
+	(mov<VMALL:mode>): New expander.
+	(*mov<VM32:mode>_insn): New insn.
+	(*mov<VM64:mode>_insn_sp64): New insn.
+	(*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
+	specifically for the register to memory case.
+	(vec_init<mode>): New expander.
+	(VADDSUB): New mode iterator.
+	(<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
+	with...
+	(<plusminus_insn><mode>3): New consolidated pattern.
+	(VL): New mode iterator for logical operations.
+	(vlsuf): New more attribute.
+	(vlop): New code iterator.
+	(vlinsn, vlninsn): New code attributes.
+	(<code><mode>3): New insn to non-negated vector logical ops.
+	(*not_<code><mode>3): Likewise for negated variants.
+	(*nand<mode>_vis): New insn.
+	(vlnotop): New code iterator.
+	(*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
+	(one_cmpl<mode>2): New insn.
+	(faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
+	(bshuffle<VM64:mode>_vis): Likewise.
+	(v<vis3_shift_patname><mode>3): Use GCM mode iterator.
+	(fp<plusminus_insn>64_vis): Use V1DI mode.
+	(VASS mode iterator): Use V1SI not SI mode.
+	* config/sparc/sparc.c (sparc_vis_init_builtins): Account for
+	single-entry vector mode changes.
+	(sparc_expand_builtin): Likewise.
+	(sparc_expand_vector_init): New function.
+	* config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
+
+2011-10-17  Kai Tietz  <ktietz@redhat.com>
+
+	* fold-const.c (simple_operand_p_2): New function.
+	(fold_truthop): Rename to
+	(fold_truth_andor_1): function name.
+	Additionally remove branching creation for logical and/or.
+	(fold_truth_andor): Handle branching creation for logical and/or here.
+
+2011-10-17  Andi Kleen  <ak@linux.intel.com>
+
+	* ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
+
+2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
+	* config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
+	(adjust_len): Add alternative "call".
+	(isa, enabled): New insn attributes.
+	(length): Use match_test with AVR_HAVE_JMP_CALL instead of
+	mcu_mega attribute.
+	(*sbrx_branch<mode>): Ditto.
+	(*sbrx_and_branch<mode>): Ditto.
+	(*sbix_branch): Ditto.
+	(*sbix_branch_bit7): Ditto.
+	(*sbix_branch_tmp): Ditto.
+	(*sbix_branch_tmp_bit7): Ditto.
+	(jump): Ditto.
+	(negsi2): Use attribute "isa" instead of assembler dialect.
+	(extendhisi2): Ditto.
+	(call_insn, call_value_insn): Set adjust_len attribute.
+	(indirect_jump): Indent to coding rules.
+	(call_prologue_saves): Use isa attribute instead of mcu_mega.
+	(epilogue_restores): Ditto.  Fix setting of SP as described in the
+	RTX pattern.
+	(*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
+	and *indirect_jump_avr6.
+	(*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
+	(*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
+	(*tablejump_rjmp, *tablejump_lib): Remove.
+	* config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
+
+2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/50757
+	* doc/invoke.texi ([Wnonnull]): Update.
+
+2011-10-17  Richard Henderson  <rth@redhat.com>
+
+	PR 50746
+	* optabs.c (expand_vec_perm_expr): Fix indexing error.
+
+2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* configure.ac: Display `yes' if the SystemTap header has been found.
+	* configure: Regenerate.
+
+2011-10-08  Andi Kleen  <ak@linux.intel.com>
+
+	PR other/50636
+	* config.in, configure: Regenerate.
+	* configure.ac (madvise): Add to AC_CHECK_FUNCS.
+	* ggc-page.c (USING_MADVISE): Add.
+	(page_entry): Add discarded field.
+	(alloc_page): Check for discarded pages.
+	(release_pages): Add USING_MADVISE branch.
+
+2011-10-17  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50729
+	* tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
+	(simplify_conversion_using_ranges): Properly test the
+	intermediate result.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* ggc.h (ggc_round_alloc_size): Declare new public entry point.
+	* ggc-none.c (ggc_round_alloc_size): New public stub function.
+	* ggc-page.c (ggc_alloced_size_order_for_request): New static
+	function.  Factorized from ggc_internal_alloc_stat.
+	(ggc_round_alloc_size): New public function.  Uses
+	ggc_alloced_size_order_for_request.
+	(ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
+	* ggc-zone.c (ggc_round_alloc_size): New public function extracted
+	from ggc_internal_alloc_zone_stat.
+	(ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
+	* toplev.c (general_init): Initialize
+	line_table->alloced_size_for_request.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
+	(num_expanded_macros_counter, num_macro_tokens_counter): Declare
+	new counters.
+	(dump_line_table_statistics): Define new function.
+	* input.h (dump_line_table_statistics): Declare new function.
+	* toplev.c (dump_memory_report): Call dump_line_table_statistics.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* doc/cppopts.texi: Document -fdebug-cpp.
+	* doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* gcc/diagnostic.h (diagnostic_report_current_module): Add a
+	location parameter.
+	* diagnostic.c (diagnostic_report_current_module): Add a location
+	parameter to the function definition.  Use it instead of
+	input_location.  Resolve the virtual location rather than just
+	looking up its map and risking to touch a resulting macro map.
+	(default_diagnostic_starter): Pass the relevant diagnostic
+	location to diagnostic_report_current_module.
+	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
+	(virt_loc_aware_diagnostic_finalizer): Likewise.
+	(diagnostic_report_current_function): Pass the
+	relevant location to diagnostic_report_current_module.
+	* tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
+	new function.
+	* toplev.c (general_init): By default, use the new
+	virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
+	* Makefile.in: Add vec.h dependency to tree-diagnostic.c.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
+	* doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
+	preprocessor related options.
+
+2011-10-15  Tom Tromey  <tromey@redhat>
+	    Dodji Seketeli  <dodji@redhat.com>
+
+	* input.h (struct expanded_location): Move to libcpp/line-map.h.
+	(LOCATION_COLUMN): New accessor
+	(in_system_header_at): Use linemap_location_in_system_header_p.
+	* diagnostic.c (diagnostic_report_current_module): Adjust to avoid
+	touching the internals of struct line_map.  Use the public API instead.
+	(diagnostic_report_diagnostic): Don't use relational operator '<'
+	on virtual locations.  Use linemap_location_before_p instead.
+	* input.c (expand_location): Adjust to expand to the tokens'
+	spelling location when macro location tracking is on.
+
+
+2011-10-08  Andi Kleen  <ak@linux.intel.com>
+
+	* ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
+
+2011-10-13  Andi Kleen  <ak@linux.intel.com>
+
+	* toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
+
+2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50727
+	* tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
+	DEF_STMT to the list of statements to be replaced by the
+	pattern statements.
+
+2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/50615
+	* combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
+
+2011-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50596
+	* tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
+	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
+	vect_recog_bool_pattern.
+	(check_bool_pattern, adjust_bool_pattern_cast,
+	adjust_bool_pattern, vect_recog_bool_pattern): New functions.
+
+2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
+
+	* tree-vect-stmts.c (vectorizable_load): For SLP without permutation
+	treat the first load of the node as the first element in its
+	interleaving chain.
+	* tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
+	necessary and possible.
+	(vect_build_slp_tree): Add new argument.  Allow load groups of any size
+	in basic blocks.  Keep all the loads for further permutation check.
+	Use the new argument to determine if there is a permutation.  Update
+	the recursive calls.
+	(vect_supported_load_permutation_p): Allow subchains of interleaving
+	chains in basic block vectorization.
+	(vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
+	Check load permutation based on the new parameter.
+	(vect_schedule_slp_instance): Don't start from the first element in
+	interleaving chain unless the loads are permuted.
+
+2011-10-15  Jan Hubicka  <jh@suse.cz>
+
+	PR target/48668
+	PR target/50689
+	* cgraphunit.c (cgraph_expand_function): Expand thunks and alises
+	after function body.
+
+2011-10-15  Richard Henderson  <rth@redhat.com>
+
+	* tree-vect-slp.c: Include langhooks.h.
+	(vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
+	(vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
+	mask creation for VEC_PERM_EXPR.
+	* tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
+	not the builtin.
+	(reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
+	* Makefile.in (tree-vect-slp.o): Update dependency.
+	* optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
+
+2011-10-15  Alan Modra  <amodra@gmail.com>
+
+	PR bootstrap/50738
+	* ifcvt.c (dead_or_predicable): Revert accidental commit with
+	HAVE_simple_return test.
+
+2011-10-15  Alan Modra  <amodra@gmail.com>
+
+	* ifcvt.c (dead_or_predicable): Disable if-conversion when
+	doing so is likely to kill a shrink-wrapping opportunity.
+
+	PR rtl-optimization/49941
+	* jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
+
+	* rtl.h (set_return_jump_label): Declare.
+	* function.c (set_return_jump_label): New function, extracted..
+	(thread_prologue_and_epilogue_insns): ..from here.  Use it in
+	another instance to set return jump_label.
+	* cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
+	* reorg.c (find_end_label): Likewise.
+
+2011-10-14  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
+	with a more complete cpp test.
+	* config/sparc/linux64.h: Likewise.
+	* config/sparc/linux.h: Likewise.
+	* config/sparc/sparc.opt (sparc_debug): New target variable.
+	(mdebug): New target option.
+	* config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
+	TARGET_DEBUG_OPTIONS): New defines.
+	* config/sparc/sparc.c (debug_target_flag_bits,
+	debug_target_flags): New functions.
+	(sparc_option_override): Add name strings back to cpu_table[].
+	Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
+	out the target flags before and after override processing as well
+	as the selected cpu.  If MASK_V8PLUS, make sure that the selected
+	cpu is at least v9.
+
+2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
+
+	PR target/49263
+	* config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
+	* config/sh/sh.c (sh_rtx_costs): Add test instruction case.
+	* config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
+	and instruction commutative.
+	(tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
+	tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
+	tstsi_t_zero_extract_subreg_xor_little,
+	tstsi_t_zero_extract_subreg_xor_big): New insns.
+	(*movsicc_t_false, *movsicc_t_true): Replace space with tab in
+	asm output.
+	(*andsi_compact): Reorder alternatives so that K08 is considered first.
+
+2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR target/50354
+	* config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
+	processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
+
+2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* invoke.texi (AVR Options): Avoid \leq{}.
+
+2011-10-14  Kai Tietz  <ktietz@redhat.com>
+
+	* gimplify.c (gimplify_expr): Take care that for bitwise-binary
+	transformation the operands have compatible types.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (vec_widen_smult_hi_v8hi,
+	vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
+	vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
+	mode iterator and any_extend code iterator.
+	(vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
+	(vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
+	also for TARGET_SSE4_1 using pmuldq insn.
+	(sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
+	(sse2_sse4_1): New code attr.
+	(udot_prodv4si): Macroize using any_extend code iterator.
+	(<s>dot_prodv8si): New expander.
+
+2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
+
+	* config/i386/i386.c (atom_cost): Changed cost for loading
+	QImode using movzbl.
+
+2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	* config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
+	change on October 11th, 2011.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (vec_interleave_high<mode>,
+	vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
+	* config/i386/i386.c (expand_vec_perm_interleave3): New function.
+	(ix86_expand_vec_perm_builtin_1): Call it.
+
+2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
+
+	Fix thinko from r179765
+	* config/avr/avr.c (avr_option_override): Don't override
+	flag_omit_frame_pointer if not actually needed.
+
+2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/46278
+	* doc/invoke.texi (AVR Options): Document -mstrict-X.
+
+	* config/avr/avr.opt (-mstrict-X): New option.
+	(avr_strict_X): New variable reflecting -mstrict-X.
+	* config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
+	outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
+	(avr_legitimate_address_p): Pass outer_code to
+	avr_reg_ok_for_addr_p and use that function in case PLUS.
+	(avr_mode_code_base_reg_class): Depend on avr_strict_X.
+	(avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
+	(avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
+	of VI_128.
+
+	* config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
+	(ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
+	Use <sseinsnmode> instead of TI in mode attr.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+	* config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
+	* config/arm/linux-atomic.c: Change comment to point to 64bit version.
+	(SYNC_LOCK_RELEASE): Instantiate 64bit version.
+	* config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+	* config/arm/arm.c (arm_output_ldrex): Support ldrexd.
+	(arm_output_strex): Support strexd.
+	(arm_output_it): New helper to output it in Thumb2 mode only.
+	(arm_output_sync_loop): Support DI mode.  Change comment to
+	not support const_int.
+	(arm_expand_sync): Support DI mode.
+	* config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
+	and LDREXD.
+	* config/arm/iterators.md (NARROW): move from sync.md.
+	(QHSD): New iterator for all current ARM integer modes.
+	(SIDI): New iterator for SI and DI modes only.
+	* config/arm/sync.md (sync_predtab): New mode_attr.
+	(sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
+	(sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
+	(sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
+	(sync_nandsi): Fold into sync_nand<mode>.
+	(sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
+	(sync_new_nandsi): Fold into sync_new_nand<mode>.
+	(sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
+	(sync_old_nandsi): Fold into sync_old_nand<mode>.
+	(sync_compare_and_swap<mode>): Support SI & DI.
+	(sync_lock_test_and_set<mode>): Likewise.
+	(sync_<sync_optab><mode>): Likewise.
+	(sync_nand<mode>): Likewise.
+	(sync_new_<sync_optab><mode>): Likewise.
+	(sync_new_nand<mode>): Likewise.
+	(sync_old_<sync_optab><mode>): Likewise.
+	(sync_old_nand<mode>): Likewise.
+	(arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
+	(arm_sync_lock_test_and_setsi): Likewise.
+	(arm_sync_new_<sync_optab>si): Likewise.
+	(arm_sync_new_nandsi): Likewise.
+	(arm_sync_old_<sync_optab>si): Likewise.
+	(arm_sync_old_nandsi): Likewise.
+	(arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
+	(arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
+	(arm_sync_new_<sync_optab><mode> NARROW): Likewise.
+	(arm_sync_new_nand<mode> NARROW): Likewise.
+	(arm_sync_old_<sync_optab><mode> NARROW): Likewise.
+	(arm_sync_old_nand<mode> NARROW): Likewise.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+	PR target/48126
+	* config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+	* config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
+
+2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* doc/invoke.texi ([Wformat-zero-length]): Tidy.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
+	on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
+
+2011-10-14  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50723
+	* ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
+
+2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+	* gengtype.c (files_rules): Added rules for objc/objc-map.h and
+	objc/objc-map.c.
+
+2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/17212
+	* doc/invoke.texi ([Wformat-zero-length]): Update.
+
+2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR bootstrap/50699
+	* config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
+	build for powerpc targets.  (darwin_patch_builtins): Only build for
+	powerpc targets.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
+	(avx_cvtdq2pd256_2): ... this.
+	(sseunpackfltmode): New mode attr.
+	(vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
+	vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
+	using VI2_AVX2 iterator.
+	(vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
+
+2011-10-13  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (plusminus): New code iterator.
+	(plusminus_insn): New code attr.
+	(addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
+	using plusminus and plusminus_insn.
+	(fpadd64_vis, fpsub64_vis): Likewise.
+
+2011-10-13  Richard Henderson  <rth@redhat.com>
+
+	* doc/md.texi (vec_perm): Document fallback to byte permutation.
+	* genopinit.c (optabs): Add vec_perm_const.
+	* optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
+	Reject non-vector modes.  Allow fallback to byte permutation.
+	(expand_vec_perm_expr_1): Split out from ...
+	(expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
+	* optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
+	* tree-vect-generic.c (lower_vec_perm): Update for name change.
+
+2011-10-13  Richard Henderson  <rth@redhat.com>
+
+	* config/rs6000/altivec.md (vec_permv16qi): New pattern.
+
+	* config/rs6000/spu.md (vec_permv16qi): New pattern.
+
+	* config/i386/i386.c (ix86_expand_vec_perm_const): New.
+	* config/i386/i386-protos.h: Update.
+	* config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
+	(vec_perm_const<VEC_PERM_CONST>): New expander.
+
+	* optabs.c (expand_vector_broadcast): New.
+	(expand_binop): Expand scalar shifts of vectors to vector shifts
+	of vectors, if the former isn't supported.
+	* tree-vect-generic.c (expand_vector_operations_1): Don't do that
+	here; always simplify to scalar shift of vector if possible.
+
+	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
+	test for vector splat.
+
+2011-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
+
+2011-10-13  Jakub Jelinek  <jakub@redhat.com>
+	    Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
+	or complex vars even if their DECL_UID is in not_reg_needs bitmap.
+
+2011-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (reduc_umin_v8hi): New pattern.
+	* config/i386/i386.c (ix86_build_const_vector): Handle
+	also V32QI, V16QI, V16HI and V8HI modes.
+	(emit_reduc_half): New function.
+	(ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
+	Use emit_reduc_half helper function.
+
+2011-10-13  Lawrence Crowl  <crowl@google.com>
+	    Diego Novillo  <dnovillo@google.com>
+
+	* lto-streamer-in.c (input_struct_function_base): Factor out of ...
+	(input_function): ... here.
+	* lto-streamer-out.c (output_struct_function_base): Factor out of ...
+	(output_function): ... here.
+
+2011-10-13  Gabriel Charette  <gchare@google.com>
+	    Diego Novillo  <dnovillo@google.com>
+
+	* streamer-hooks.h (struct streamer_hooks): Add hooks
+	input_location and output_location.
+	* lto-streamer-in.c (lto_input_location): Use
+	streamer_hooks.input_location, if set.
+	* lto-streamer-out.c (lto_output_location): Use
+	streamer_hooks.output_location, if set.
+
+2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* doc/invoke.texi (SPARC options): Document -mfix-at697f.
+	* config/sparc/sparc.opt (mfix-at697f): New option.
+	* config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
+	(sparc_reorg): New function.
+
+2011-10-13  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50712
+	* ipa-split.c (split_function): Always re-gimplify parameters
+	when they are not gimple vals before passing them.  Properly
+	check for type compatibility.
+
+2011-10-13  Tom de Vries  <tom@codesourcery.com>
+
+	* function.c (gimplify_parameters): Set number of arguments of call to
+	BUILT_IN_ALLOCA_WITH_ALIGN to 2.
+
+2011-10-13  Tom de Vries  <tom@codesourcery.com>
+
+	* emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
+	for static const strings.
+	* varasm.c (build_constant_desc): Generate the memory location of the
+	constant using gen_const_mem.
+
+2011-10-13  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50698
+	* tree-data-ref.c (split_constant_offset_1): Also process
+	offsets of &MEM.
+
+2011-10-12  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
+	(UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
+	unspecs.
+	(fpmerge_vis): Remove inaccurate comment, represent using vec_select
+	of a vec_concat.
+	(vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
+	(fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
+	Reimplement as unspecs and remove inaccurate comments.
+	(vis3_shift_patname): New code attr.
+	(<vis3_shift_insn><vbits>_vis): Rename to
+	"v<vis3_shift_patname><mode>3".
+	(vis3_addsub_ss_patname): New code attr.
+	(<vis3_addsub_ss_insn><vbits>_vis): Rename to
+	"<vis3_addsub_ss_patname><mode>3".
+	* config/sparc/sparc.c (sparc_vis_init_builtins): Update to
+	accommodate pattern name changes.
+
+	* config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
+	to zero when assembler lacks support for such instructions.
+	* config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
+	and MASK_FMAF in defaults when assembler lacks necessary support.
+
+2011-10-12  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/sse.md (vec_unpacks_lo_<mode>,
+	vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
+	vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
+	* config/i386/i386.c (ix86_expand_sse_unpack): Handle
+	V32QImode, V16HImode and V8SImode for TARGET_AVX2.
+
+	* config/i386/sse.md (vec_avx2): New mode_attr.
+	(mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
+	(mul<mode>3): ... this.
+
+	* config/i386/i386.md (UNSPEC_VPERMDI): Remove.
+	* config/i386/i386.c (ix86_expand_vec_perm): Handle
+	V16QImode and V32QImode for TARGET_AVX2.
+	(MAX_VECT_LEN): Increase to 32.
+	(expand_vec_perm_blend): Add support for 32-byte integer
+	vectors with TARGET_AVX2.
+	(valid_perm_using_mode_p): New function.
+	(expand_vec_perm_pshufb): Add support for 32-byte integer
+	vectors with TARGET_AVX2.
+	(expand_vec_perm_vpshufb2_vpermq): New function.
+	(expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
+	(expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
+	with TARGET_AVX2.
+	(ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
+	and expand_vec_perm_vpshufb2_vpermq_even_odd.
+	* config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
+	32-byte integer vector modes.
+	(vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
+	(avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
+	(avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
+	4 new operands.
+	(avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
+	match_dup, instead add 4 new operands and require they have
+	right cross-lane values.
+	(avx2_permv4di): Change into define_expand.
+	(avx2_permv4di_1): New instruction.
+	(avx2_permv2ti): Use nonimmediate_operand instead of register_operand
+	for "xm" constrained operand.
+	(VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
+
+	* config/i386/sse.md (avx2_gathersi<mode>,
+	avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
+	match_scratch, change memory_operand to register_operand,
+	add (mem:BLK (scratch)) use.
+	(*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
+	*avx2_gatherdi<mode>256): Add clobber of match_scratch,
+	add earlyclobber to the output operand and match_scratch,
+	add (mem:BLK (scratch)) use, change the other mem to match_operand.
+	Use %p6 instead of %c6 in the pattern.
+	* config/i386/i386.c (ix86_expand_builtin): Adjust for
+	operand 2 being a Pmode register_operand instead of memory_operand.
+
+2011-10-12  Kai Tietz  <ktietz@redhat.com>
+
+	* config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
+
+2011-10-12  Steve Ellcey  <sje@cup.hp.com>
+
+	* config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
+
+2011-10-12  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-alias.c (maybe_skip_until): Cache also at the point
+	of the first store we visit in a basic-block.
+	(get_continuation_for_phi): Search for a candidate VUSE that
+	might dominates all others.  Do pairwise disambiguation against
+	that candidate.
+
+2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
+
+	PR tree-optimization/50189
+	* tree-vrp.c (extract_range_from_assert): Use the type of
+	the variable, not the limit.
+
+2011-10-12  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50700
+	* tree-object-size.c (addr_object_size): Simplify and treat
+	MEM_REF bases consistently.
+
+2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* function.c (prepare_shrink_wrap, bb_active_p): New function.
+	(thread_prologue_and_epilogue_insns): Use bb_active_p.  Call
+	prepare_shrink_wrap, then recompute bb_active_p for the last block.
+
+2011-10-12  Joseph Myers  <joseph@codesourcery.com>
+
+	PR c/50565
+	* convert.c (convert_to_integer): Do not narrow operands of
+	pointer subtraction.
+
+2011-10-12  Nick Clifton  <nickc@redhat.com>
+
+	* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
+	emit a .eabi_attribute assembler directive, possibly with a
+	comment attached.
+	* config/arm/arm.c (arm_file_start): Use the new macro.
+	* config/arm/arm-c.c (arm_output_c_attributes): Likewise.
+
+2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/49939
+	* config/avr/avr.md (*movqi): Rename to movqi_insn.
+	(*call_insn): Rename to call_insn.
+	(*call_value_insn): Rename to call_value_insn.
+	* config/avr/avr.c (avr_2word_insn_p): New static function.
+	(jump_over_one_insn_p): Use it.
+
+2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	PR middle-end/48660
+	* expr.h (copy_blkmode_to_reg): Declare.
+	* expr.c (copy_blkmode_to_reg): New function.
+	(expand_assignment): Don't expand register RESULT_DECLs before
+	the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
+	RESULT_DECL register.
+	(expand_expr_real_1): Handle BLKmode decls when looking for promotion.
+	* stmt.c (expand_return): Move BLKmode-to-register code into
+	copy_blkmode_to_reg.
+
+2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR target/49965
+	* config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
+	(mov<F:mode>cc): Likewise.
+
+2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+	* tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
+
+2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	* tree.h (built_in_decls): Delete old interface with two parallel
+	arrays to hold standard builtin declarations, and replace it with
+	a function based interface that can support creating builtins on
+	the fly in the future.  Change all uses, and poison the old
+	names.  Make sure 0 is not a legitimate builtin index.
+	(implicit_built_in_decls): Ditto.
+	(built_in_info): Ditto.
+	(BUILTIN_VALID_P): Ditto.
+	(builtin_decl_explicit): Ditto.
+	(builtin_decl_implicit): Ditto.
+	(set_builtin_decl): Ditto.
+	(set_builtin_decl_implicit_p): Ditto.
+	(builtin_decl_explicit_p): Ditto.
+	(builtin_decl_implicit_p): Ditto.
+	* tree-complex.c (expand_complex_libcall): Ditto.
+	* tree-loop-distribution.c (generate_memset_zero): Ditto.
+	* tree-ssa-strlen.c (get_string_length): Ditto.
+	(handle_builtin_strcpy): Ditto.
+	(handle_builtin_strcat): Ditto.
+	* tree.c (iterative_hash_expr): Ditto.
+	(local_define_builtin): Ditto.
+	(build_common_builtin_nodes): Ditto.
+	* builtins.c (built_in_decls): Ditto.
+	(implicit_built_in_decls): Ditto.
+	(built_in_info): Ditto
+	(expand_builtin_classify_type): Ditto.
+	(mathfn_built_in_1): Ditto.
+	(expand_builtin_cexpi): Ditto.
+	(expand_builtin_mempcpy_args): Ditto.
+	(expand_builtin_stpcpy): Ditto.
+	(gimplify_va_arg_expr): Ditto.
+	(expand_builtin_sync_operation): Ditto.
+	(build_builtin_expect_predicate): Ditto.
+	(fold_builtin_memory_op): Ditto.
+	(fold_builtin_strcpy): Ditto.
+	(fold_builtin_stpcpy): Ditto.
+	(fold_builtin_strncpy): Ditto.
+	(fold_builtin_interclass_mathfn): Ditto.
+	(fold_builtin_classify): Ditto.
+	(fold_builtin_2): Ditto.
+	(fold_builtin_strstr): Ditto.
+	(fold_builtin_strrchr): Ditto.
+	(fold_builtin_strpbrk): Ditto.
+	(fold_builtin_strcat): Ditto.
+	(fold_builtin_strncat): Ditto.
+	(fold_builtin_strcspn): Ditto.
+	(fold_builtin_fputs): Ditto.
+	(fold_builtin_sprintf): Ditto.
+	(fold_builtin_snprintf): Ditto.
+	(expand_builtin_memory_chk): Ditto.
+	(fold_builtin_memory_chk): Ditto.
+	(fold_builtin_stxcpy_chk): Ditto.
+	(fold_builtin_strncpy_chk): Ditto.
+	(fold_builtin_strcat_chk): Ditto.
+	(fold_builtin_strncat_chk): Ditto.
+	(fold_builtin_sprintf_chk_1): Ditto.
+	(fold_builtin_snprintf_chk_1): Ditto.
+	(fold_builtin_printf): Ditto.
+	(fold_builtin_fprintf): Ditto.
+	(fold_call_stmt): Ditto.
+	(set_builtin_user_assembler_name): Ditto.
+	* tree-emutls.c (emutls_common_1): Ditto.
+	* omp-low.c (scan_omp): Ditto.
+	(lower_rec_input_clauses): Ditto.
+	(lower_reduction_clauses): Ditto.
+	(expand_parallel_call): Ditto.
+	(expand_task_call): Ditto.
+	(maybe_catch_exception): Ditto.
+	(optimize_omp_library_calls): Ditto.
+	(expand_omp_for_generic): Ditto.
+	(expand_omp_for_static_nochunk): Ditto.
+	(expand_omp_for_static_chunk): Ditto.
+	(expand_omp_sections): Ditto.
+	(expand_omp_atomic_fetch_op): Ditto.
+	(expand_omp_atomic_pipeline): Ditto.
+	(expand_omp_atomic_mutex): Ditto.
+	(lower_omp_single_simple): Ditto.
+	(lower_omp_single_copy): Ditto.
+	(lower_omp_master): Ditto.
+	(lower_omp_ordered): Ditto.
+	(lower_omp_critical): Ditto.
+	* tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
+	* builtins.c (DEF_BUILTIN_STUB): Ditto.
+	(BUILT_IN_NONE): Ditto.
+	* tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
+	* gimple-low.c (lower_function_body): Ditto.
+	(lower_builtin_setjmp): Ditto.
+	* c-decl.c (merge_decls): Ditto.
+	* tree-eh.c (lower_resx): Ditto.
+	(lower_resx): Ditto.
+	(lower_eh_dispatch): Ditto.
+	* function (gimplify_parameters): Ditto.
+	* c-typeck.c (build_function_call_vec): Ditto.
+	* gimplify.c (build_stack_save_restore): Ditto.
+	(gimplify_vla_decl): Ditto.
+	(gimplify_modify_expr_to_memcpy): Ditto.
+	(gimplify_modify_expr_to_memset): Ditto.
+	(gimplify_variable_sized_compare): Ditto.
+	(gimplify_function_tree): Ditto.
+	* calls.c (emit_call_1): Ditto.
+	* tree-ssa-forprop.c (simplify_builtin_call): Ditto.
+	* tree-nested.c (convert_nl_goto_reference): Ditto.
+	(convert_tramp_reference_op): Ditto.
+	(finalize_nesting_tree_1): Ditto.
+	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
+	(tree_ssa_prefetch_arrays): Ditto.
+	* tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
+	* system.h (built_in_decls): Ditto.
+	(implicit_built_in_decls): Ditto.
+	* tree-vect-generic.c (expand_vector_operations_1): Ditto.
+	* config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
+	* config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
+	(ix86_veclibabi_svml): Ditto.
+	(ix86_veclibabi_acml): Ditto.
+	* config/vms/vms.c (vms_patch_builtins): Ditto.
+	* config/ia64/ia64.c (ia64_init_builtins): Ditto.
+	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
+	(rs6000_builtin_vectorized_libmass): Ditto.
+	(rs6000_init_builtins): Ditto.
+	* config/darwin.c (darwin_override_options): Ditto.
+	(darwin_patch_builtin): Ditto.
+	(darwin_rename_builtins): Ditto.
+	* config/pa/pa.c (pa_init_builtins): Ditto.
+
+2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+	* tree.h (copy_ref_info): Expose existing function.
+	* tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
+	* tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
+
+2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
+	prototype.
+	(avr_regno_mode_code_ok_for_base_p): New prototype.
+	* config/avr/avr.h (BASE_REG_CLASS): Remove.
+	(REGNO_OK_FOR_BASE_P): Remove.
+	(REG_OK_FOR_BASE_NOSTRICT_P): Remove.
+	(REG_OK_FOR_BASE_STRICT_P): Remove.
+	(MODE_CODE_BASE_REG_CLASS): New define.
+	(REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
+	* config/avr/avr.c (avr_mode_code_base_reg_class): New function.
+	(avr_regno_mode_code_ok_for_base_p): New function.
+	(avr_reg_ok_for_addr_p): New static function.
+	(avr_legitimate_address_p): Use it.  Beautify.
+
+2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50447
+	* config/avr/avr.md (cc): Add out_plus attribute alternative.
+	(addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
+	avr_out_plus for all CONST_INT addends.
+	* config/avr/avr-protos.h (avr_out_plus): Change prototype.
+	* config/avr/avr.c (notice_update_cc): Call avr_out_plus on
+	CC_OUT_PLUS.
+	(avr_out_plus_1): Change prototype and report effect on cc0.
+	(avr_out_plus): Ditto.
+	(adjust_insn_length): Adapt call to avr_out_plus to new prototype.
+
+2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/i386/i386.c (ix86_expand_special_args_builtin): Remove
+	the extra break.
+
+2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
+
+	* doc/invoke.texi: Document new warning.
+	* common.opt (Wvector-operation-performance): Define new warning.
+	* tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
+	vector operation.
+	(exapnd_vector_parallel): Warn about expanded vector operation.
+	(lower_vec_shuffle): Warn about expanded vector operation.
+	* c-typeck.c (c_build_vec_perm_expr): Store correct location
+	when creating VEC_PERM_EXPR.
+
+2011-10-11  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/50204
+	* tree-ssa-alias.c (get_continuation_for_phi_1): Split out
+	two argument handling from ...
+	(get_continuation_for_phi): ... here.  Handle arbitrary number
+	of PHI args.
+
+2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	* modulo-sched.c: Fix comment typo.  Mention the possibility
+	of using scheduling windows of II+1 cycles.
+
+2011-10-11  Tristan Gingold  <gingold@adacore.com>
+
+	* doc/invoke.texi (C Dialect Options): Document
+	-fallow-parameterless-variadic-functions.
+	* c-parser.c (c_parser_parms_list_declarator): Handle it.
+
+2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
+	to 0 if frame pointer is needed for unwinding.
+
+2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR bootstrap/50665
+	* optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
+	optab_index to enum direct_optab_index.
+	(vec_perm_optab): Update.
+
+2011-10-10  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/cris/cris.c (cris_preferred_reload_class): New function.
+	(TARGET_PREFERRED_RELOAD_CLASS): Define.
+	* config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
+
+2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.md (*tablejump_rjmp): Change insn condition to
+	!AVR_HAVE_JMP_CALL.
+	(*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
+	(*tablejump_enh, *tablejump): Remove insns.
+	* config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
+	EIJMP for indirect jump.  Use LPM Z+ where available.
+
+2011-10-10  Richard Henderson  <rth@redhat.com>
+
+	* doc/md.texi (vec_perm_const): Fix typo in cindex.
+
+2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
+	    Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
+
+	* config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
+
+2011-10-10  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50389
+	* gimple-fold.c (gimplify_and_update_call_from_tree): Do not
+	mark symbols for renaming.  Append the VUSE to all statements
+	that possibly can have one.
+
+2011-10-10  Richard Guenther  <rguenther@suse.de>
+
+	* ipa-split.c (pass_split_functions): Add verification TODOs.
+	(pass_feedback_split_functions): Likewise.
+
+2011-10-10  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/50195
+	* fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
+	only when optimizing.
+
+2011-10-10  Nick Clifton  <nickc@redhat.com>
+
+	PR middle-end/49801
+	* compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
+	df_get_live_out instead of accessing the bitmaps directly.
+	(execute_compare_elim_after_reload): Remove calls to df_set_flags,
+	df_live_add_problem and df_analyze.
+
+2011-10-10  Michael Matz  <matz@suse.de>
+
+	PR middle-end/50638
+	* tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
+
+2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	* modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
+	(SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
+	(node_sched_params): Remove first_reg_move and nreg_moves.
+	(ps_num_consecutive_stages, extend_node_sched_params): New functions.
+	(update_node_sched_params): Move up file.
+	(print_node_sched_params): Print the stage.  Don't dump info related
+	to first_reg_move and nreg_moves.
+	(set_columns_for_row): New function.
+	(set_columns_for_ps): Move up file and use set_columns_for_row.
+	(schedule_reg_move): New function.
+	(schedule_reg_moves): Call extend_node_sched_params and
+	schedule_reg_move.  Extend size of uses bitmap.  Initialize
+	num_consecutive_stages.  Return false if a move could not be
+	scheduled.
+	(apply_reg_moves): Don't emit moves here.
+	(permute_partial_schedule): Handle register moves.
+	(duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
+	to the same stage-count test as ddg nodes.
+	(generate_prolog_epilog): Update calls accordingly.
+	(sms_schedule): Allow move-scheduling to add a new first stage.
+
+2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	* modulo-sched.c (ps_insn): Adjust comment.
+	(ps_reg_move_info): New structure.
+	(partial_schedule): Add reg_moves field.
+	(SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
+	(node_sched_params): Turn first_reg_move into an identifier.
+	(ps_reg_move): New function.
+	(ps_rtl_insn): Cope with register moves.
+	(ps_first_note): Adjust comment and assert that the instruction
+	isn't a register move.
+	(node_sched_params): Replace with...
+	(node_sched_param_vec): ...this vector.
+	(set_node_sched_params): Adjust accordingly.
+	(print_node_sched_params): Take a partial schedule instead of a ddg.
+	Use ps_rtl_insn and ps_reg_move.
+	(generate_reg_moves): Rename to...
+	(schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
+	move in the partial schedule, but don't emit it here.  Don't perform
+	register substitutions here either.
+	(apply_reg_moves): New function.
+	(duplicate_insns_of_cycles): Use register indices directly,
+	rather than finding instructions using PREV_INSN.  Use ps_reg_move.
+	(sms_schedule): Call schedule_reg_moves before committing to
+	a partial schedule.  Try the next ii if the schedule fails.
+	Use apply_reg_moves instead of generate_reg_moves.  Adjust
+	call to print_node_sched_params.  Free node_sched_param_vec
+	instead of node_sched_params.
+	(create_partial_schedule): Initialize reg_moves.
+	(free_partial_schedule): Free reg_moves.
+
+2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	* modulo-sched.c (ps_insn): Replace node field with an identifier.
+	(SCHED_ASAP): Replace with..
+	(NODE_ASAP): ...this macro.
+	(SCHED_PARAMS): New macro.
+	(SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
+	(SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
+	(node_sched_params): Remove asap.
+	(ps_rtl_insn, ps_first_note): New functions.
+	(set_node_sched_params): Use XCNEWVEC.  Don't copy across the
+	asap values.
+	(print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
+	(generate_reg_moves): Pass ids to the SCHED_* macros.
+	(update_node_sched_params): Take a ps insn identifier rather than
+	a node as parameter.  Use ps_rtl_insn.
+	(set_columns_for_ps): Update for above field and SCHED_* macro changes.
+	(permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
+	(optimize_sc): Update for above field and SCHED_* macro changes.
+	Update calls to try_scheduling_node_in_cycle and
+	update_node_sched_params.
+	(duplicate_insns_of_cycles): Adjust for above field and SCHED_*
+	macro changes.  Use ps_rtl_insn and ps_first_note.
+	(sms_schedule): Pass ids to the SCHED_* macros.
+	(get_sched_window): Adjust for above field and SCHED_* macro changes.
+	Use NODE_ASAP instead of SCHED_ASAP.
+	(try_scheduling_node_in_cycle): Remove node parameter.  Update
+	call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
+	(sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
+	(ps_insert_empty_row): Adjust for above field changes.
+	(compute_split_row): Use ids rather than nodes.
+	(verify_partial_schedule): Adjust for above field changes.
+	(print_partial_schedule): Use ps_rtl_insn.
+	(create_ps_insn): Take an id rather than a node.
+	(ps_insn_find_column): Adjust for above field changes.
+	Use ps_rtl_insn.
+	(ps_insn_advance_column): Adjust for above field changes.
+	(add_node_to_ps): Remove node parameter.  Update call to
+	create_ps_insn.
+	(ps_has_conflicts): Use ps_rtl_insn.
+	(ps_add_node_check_conflicts): Replace node parameter than an id.
+
+2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+	* modulo-sched.c (undo_replace_buff_elem): Delete.
+	(generate_reg_moves): Don't build and return an undo list.
+	(free_undo_replace_buff): Delete.
+	(sms_schedule): Adjust call to generate_reg_moves.
+	Don't call free_undo_replace_buff.
+
+2011-10-10  Matthias Klose  <doko@ubuntu.com>
+
+	* common/config/m32c: Remove empty directory.
+
+2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
+
+2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/50652
+	* config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
+	atmega164a to 0x100.
+
+2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
+	the replacement if the conversion to the LHS type is not useless.
+
+2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/50635
+	* tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
+	DEF_STMT to the list of statements to be replaced by the
+	pattern statements.
+	(vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
+
+2011-10-09  Anatoly Sokolov  <aesok@post.ru>
+
+	* system.h: Commit forgotten hunk in previous patch.
+	(OUTPUT_ADDR_CONST_EXTRA): Poison.
+
+2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+	PR libobjc/50428
+	* doc/objc.texi (Garbage Collection): Updated example to protect
+	+initialize against execution in subclasses.
+
+2011-10-07  Richard Henderson  <rth@redhat.com>
+
+	* doc/extend.texi (__builtin_shuffle): Improve the description to
+	include the modulus of the selector.  Mention OpenCL.
+	* doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
+
+	* tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
+	* genopinit.c (optabs): Rename vshuffle to vec_perm.
+	* c-typeck.c (c_build_vec_perm_expr): Rename from
+	c_build_vec_shuffle_expr.  Update for name changes.
+	* optabs.c (expand_vec_perm_expr_p): Rename from
+	expand_vec_shuffle_expr_p.
+	(expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
+	* optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
+	(vec_perm_optab): Rename from vshuffle_optab.
+	* expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
+	c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
+	tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
+
+	* config/i386/i386.c (ix86_expand_vec_perm): Rename from
+	ix86_expand_vshuffle.
+	* config/i386/i386-protos.h: Update.
+	* config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
+	(vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
+
+2011-10-07  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/predicates.md (avx2_pblendw_operand): New.
+	* config/i386/sse.md (sse4_1_pblendw): Un-macroize.
+	(avx2_pblendw, *avx2_pblendw): New expander and insn.
+
+2011-10-07  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/i386.c (bdesc_args): Update code for
+	__builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
+	and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
+	(ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
+	* config/i386/sse.md (mode iterator V16): Add V2TI.
+	(mode iterator SSESCALARMODE): Use V2TI not V4DI.
+	(mode attr ssse3_avx2): Add V2TI.
+	(avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
+
+2011-10-07  David S. Miller  <davem@davemloft.net>
+
+	PR 50655
+	* configure.ac: Add .register directives to VIS3 test.
+	* configure: Regenerate.
+
+2011-10-07  Richard Henderson  <rth@redhat.com>
+
+	* config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
+
+2011-10-07  Richard Henderson  <rth@redhat.com>
+
+	PR 49752
+	* fold-const.c (fold_checksum_tree): Remove out-of-date assert.
+
+2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
+
+	* config/arm/predicates.md (shift_amount_operand): Remove constant
+	range check.
+	(shift_operator): Check range of constants for all shift operators.
+
+2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
+	Load GOT pointer for non-pic builds.
+	(s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
+	(s390_emit_call): Likewise.
+
+2011-10-07  Tom de Vries  <tom@codesourcery.com>
+
+	PR middle-end/50527
+	* tree.c (build_common_builtin_nodes): Add local_define_builtin for
+	BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
+	throw.
+	* builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
+	arglist.  Set align for	BUILT_IN_ALLOCA_WITH_ALIGN.
+	(expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
+	(is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
+	* tree-ssa-ccp.c (evaluate_stmt): Set align for
+	BUILT_IN_ALLOCA_WITH_ALIGN.
+	(fold_builtin_alloca_for_var): Rename to ...
+	(fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
+	BUILT_IN_ALLOCA_WITH_ALIGN argument.
+	(ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
+	fold_builtin_alloca_with_align.
+	(optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
+	* builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
+	DEF_BUILTIN_STUB.
+	* ipa-pure-const.c (special_builtin_state): Handle
+	BUILT_IN_ALLOCA_WITH_ALIGN.
+	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
+	(call_may_clobber_ref_p_1): Same.
+	* function.c (gimplify_parameters): Lower vla to
+	BUILT_IN_ALLOCA_WITH_ALIGN.
+	* gimplify.c (gimplify_vla_decl): Same.
+	* cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
+	* tree-mudflap.c (mf_xform_statements): Same.
+	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
+	(mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
+	* varasm.c (incorporeal_function_p): Same.
+	* tree-object-size.c (alloc_object_size): Same.
+	* gimple.c (gimple_build_call_from_tree): Same.
+
+2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* function.c (frame_required_for_rtx): Remove function.
+	(requires_stack_frame_p): New arg set_up_by_prologue.  All callers
+	changed.  Compute a set of mentioned registers and compare against
+	the new arg rather than calling frame_required_for_rtx.
+	(thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
+	reg set.  Convert the unconverted_simple_returns mechanism to store
+	jump insns rather than their basic blocks.  Also check the
+	orig_entry_edge destination for new blocks.
+
+2011-10-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50650
+	* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
+	call vect_is_simple_cond here, instead fail if cond_expr isn't
+	COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
+	for cond_expr's first operand.
+	* tree-vect-stmts.c (vect_is_simple_cond): Static again.
+	* tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
+
+2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.md (DWH, dwh): New mode macros.
+	("umulsidi3"): Extend to support "umulditi3" as well.
+
+2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
+	    H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/50603
+	* config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
+	integer PLUS RTX to a register to improve address combine.
+
+2011-10-06  Richard Henderson  <rth@redhat.com>
+
+	* combine-stack-adjust.c (maybe_move_args_size_note): Add after
+	parameter; use it to decide whether to merge two notes.
+	(combine_stack_adjustments_for_block): Use maybe_move_args_size_note
+	for the deallocation case as well.
+
+2011-10-06  Anatoly Sokolov  <aesok@post.ru>
+
+	* system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
+	* doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
+	* doc/tm.texi: Regenerate.
+	* target.def (output_addr_const_extra): Use
+	hook_bool_FILEptr_rtx_false.
+	* targhooks.c (default_asm_output_addr_const_extra): Remove.
+	* targhooks.h (default_asm_output_addr_const_extra): Remove.
+	* hooks.c (hook_bool_FILEptr_rtx_false): New functions.
+	* hooks.h (hook_bool_FILEptr_rtx_false): Declare.
+
+2011-10-06  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
+	(popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
+	SI mode 64-bit code gen case explicitly zero-extend and truncate.
+	(*popcount<mode>_sp64): Split up into...
+	(*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
+	SImode case use truncate.
+	(*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
+	subtract so the compiler can optimize it.
+	(SIDI): Remove unused mode iterator.
+
+2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* function.c (thread_prologue_and_epilogue_insns): Emit split prologue
+	on the orig_entry_edge. Don't account for it in prologue_clobbered.
+
+2011-10-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50596
+	* tree-vectorizer.h (vect_is_simple_cond): New prototype.
+	(NUM_PATTERNS): Change to 6.
+	* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
+	function.
+	(vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
+	(vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
+	if it already has one, and don't set STMT_VINFO_VECTYPE in it
+	if it is already set.
+	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
+	COND_EXPR in pattern stmts.
+	(vect_is_simple_cond): No longer static.
+
+2001-10-06  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
+	* config/i386/sse.md (sseshuffint): Remove.
+	(sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
+	(VSHUFFLE_AVX2): New mode iterator.
+	(vshuffle<mode>): Use it.
+	(avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
+
+	* config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
+	for vector_all_ones_operand.
+	(ix86_expand_int_vcond): Distinguish between comparison mode
+	and data mode.  Allow them to differ.
+	(ix86_expand_vshuffle): Don't force data mode to match maskmode.
+
+2001-10-06  Richard Henderson  <rth@redhat.com>
+
+	* optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
+	mask operand.  Tidy the code.
+
+2011-10-06  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vect-patterns.c (vect_pattern_recog_1): Use
+	vect_recog_func_ptr typedef for the first argument.
+	(vect_pattern_recog): Rename vect_recog_func_ptr variable
+	to vect_recog_func, use vect_recog_func_ptr typedef for it.
+
+	PR tree-optimization/49279
+	* tree-ssa-structalias.c (find_func_aliases): Don't handle
+	CAST_RESTRICT.
+	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
+	restrict propagation.
+	* tree-ssa.c (useless_type_conversion_p): Don't return false
+	if TYPE_RESTRICT differs.
+
+2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* function.c (thread_prologue_and_epilogue_insns): Build a vector
+	of unconverted simple return blocks rather than trying to
+	recompute them later based on bb_flags bitmap tests.
+
+2011-10-06  Michael Matz  <matz@suse.de>
+
+	* tree-flow.h (get_var_ann): Don't declare.
+	* tree-flow-inline.h (get_var_ann): Remove.
+	(set_is_used): Use var_ann, not get_var_ann.
+	* tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
+	* tree-profile.c (gimple_gen_edge_profiler): Call
+	find_referenced_var_in.
+	(gimple_gen_interval_profiler): Ditto.
+	(gimple_gen_pow2_profiler): Ditto.
+	(gimple_gen_one_value_profiler): Ditto.
+	(gimple_gen_average_profiler): Ditto.
+	(gimple_gen_ior_profiler): Ditto.
+	(gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
+	(gimple_gen_ic_func_profiler): Call add_referenced_var.
+	* tree-mudflap.c (execute_mudflap_function_ops): Call
+	add_referenced_var.
+
+2011-10-06  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
+	don't set SSA_NAME_DEF_STMT that has been already set by
+	gimple_build_assign_with_ops.
+	(vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
+	vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
+	Likewise.
+
+	* tree.h (avoid_folding_inline_builtin): New prototype.
+	* builtins.c (avoid_folding_inline_builtin): No longer static.
+	* gimple-fold.c (gimple_fold_builtin): Give up if
+	avoid_folding_inline_builtin returns true.
+
+2011-10-06  Richard Guenther  <rguenther@suse.de>
+
+	* tree-vect-generic.c (vector_element): Look at previous
+	generated results.
+
+2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
+
+	PR target/39950
+	* config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
+	__powerpc__, __PPC__, __unix__.
+
+2011-10-06  Michael Matz  <matz@suse.de>
+
+	* i386/i386.opt (recip_mask, recip_mask_explicit,
+	x_recip_mask_explicit): New variables and cl_target member.
+	(mrecip=): New option.
+	* i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
+	RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
+	(TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
+	TARGET_RECIP_VEC_SQRT): New tests.
+	* i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
+	(sqrt<mode>2): Check TARGET_RECIP_SQRT.
+	* i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
+	(sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
+	* i386/i386.c (ix86_option_override_internal): Set recip_mask
+	for -mrecip and -mrecip=options.
+	(ix86_function_specific_save): Save recip_mask_explicit.
+	(ix86_function_specific_restore): Restore recip_mask_explicit.
+
+	* doc/invoke.texi (ix86 Options): Document the new option.
+
+2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR target/49049
+	* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
+
+2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+	PR target/50305
+	* config/arm/arm.c (arm_legitimize_reload_address): Recognize
+	output of a previous pass through legitimize_reload_address.
+	Do not attempt to optimize addresses if the base register is
+	equivalent to a constant.
+
+2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* function.c (thread_prologue_and_epilogue_insns): Mark
+	last_bb_active as possibly unused.  It is unused for targets which
+	do neither have "return" nor "simple_return" expanders.
+
+2011-10-06  Richard Guenther  <rguenther@suse.de>
+
+	* fold-const.c (fold_ternary_loc): Also fold non-constant
+	vector CONSTRUCTORs.  Make more efficient.
+	* tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
+	(cprop_into_stmt): Don't propagate into virtual operands.
+	(optimize_stmt): Really dump original statement.
+
+2011-10-06  Nick Clifton  <nickc@redhat.com>
+
+	* config/rx/rx.md (smin3): Revert previous delta.
+
+2011-10-06  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/38884
+	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
+	reads from aggregate SSA names.
+
+2011-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
+	argument, truncate it at the beginning instead of allocating there
+	and freeing at the end.
+	(vect_pattern_recog): Allocate stmts_to_replace here and free at end,
+	pass its address to vect_pattern_recog_1.
+
+2011-10-05  David S. Miller  <davem@davemloft.net>
+
+	* config/sparc/sparc.opt (POPC): New option.
+	* doc/invoke.texi: Document it.
+	* config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
+	default on Niagara-2 and later.
+	* config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
+	* config/sparc/sparc.md (SIDI): New mode iterator.
+	(ffsdi2): Delete commented out pattern and comments.
+	(popcount<mode>2, clz<mode>2): New expanders.
+	(*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
+	*clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
+
+2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
+
+	PR middle-end/50607
+	* c-tree.h (c_expr_t): New typedef for struct c_expr.
+	(C_EXPR_APPEND): New macro.
+	* c-parser.c (c_parser_get_builtin_args): Preserve
+	original_tree_code of c_expr structure.
+	(c_parser_postfix_expression): Adjust to the new function.
+
+2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
+	if profiling after the prologue.
+
+2011-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/50613
+	* tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
+	operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
+	and if it is neither that not SSA_NAME, give up.
+
+2011-10-05  Richard Henderson  <rth@redhat.com>
+
+	* tree-vect-generic.c (vector_element): Never fail.  Use
+	build_zero_cst.  Tidy up type references.
+	(lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
+	code duplication.  Do update_stmt here ...
+	(expand_vector_operations_1): ... not here.
+
+	* config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
+	TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
+	duplication.  Handle V2DI without SSE4.1.
+	* config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
+	* config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
+
+2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.c (distance_non_agu_define): Simplify calculation
+	of "found".  Simplify return value calculation.
+	(distance_agu_use): Ditto.
+
+2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
+
+	PR bootstrap/50621
+	* config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
+	if the function was not shrink-wrapped.
+	(ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
+	to an insn.
+	* function.c (thread_prologue_and_epilogue_insns): Make sure the
+	shrink_wrapped flag is set even if there is no dump file.
+
+2011-10-05  DJ Delorie  <dj@redhat.com>
+	    Nick Clifton  <nickc@redhat.com>
+
+	* config/rx/rx.opt (mpid): Define.
+	* config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
+	(MULTILIB_DIRNAMES): Add pid.
+	* config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
+	(rx_num_interrupt_regs): New variable.
+	(rx_gp_base_regnum): New function.  Returns the number of the
+	small data area register.
+	(rx_pid_base_regnum): New function.  Returns the number of the pid
+	base register.