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.
	(rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
	(rx_pid_data_operand): New function.  Returns whether an object is
	in the position independent data area.
	(rx_legitimize_address): New function.  Puts undecided PID
	objects in the PID data area.
	(rx_is_legitimate_address): Add support for PID operands.
	(rx_print_operand_address): Likewise.
	(rx_print_operand): Likewise.
	(rx_maybe_pidify_operand): New function.  Determine if an operand
	is suitable for PID addressing.
	(rx_gen_move_template): Add PID support.
	(rx_conditional_register_usage): Likewise.
	(rx_option_override): Initialise rx_num_interrupt_regs.
	(rx_is_legitimate_constant): Add support for PID constants.
	(TARGET_LEGITIMIZE_ADDRESS): Define.
	* config/rx/constraints.md (Rpid): Define.
	(Rpda): Define.
	* config/rx/rx.md (UNSPEC_PID_ADDR): Define.
	(tablejump): Add PID support.
	(mov<>): Likewise.
	(mov<>_internal): Likewise.
	(addsi3): Convert to an expander.  Add PID support.
	(pid_addr): New pattern.
	* config/rx/rx.h (CPP_SPEC): Define.
	(ASM_SPEC): Pass -mpid and -mint-register on to assembler.
	(CASE_VECTOR_PC_RELATIVE): Define.
	(JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
	* config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
	* doc/invoke.texi (RX Options): Document -mpid command line option.

2011-10-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38885
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
	from constants.

2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/invoke.texi (-fshrink-wrap): Document.
	* opts.c (default_options_table): Add it.
	* common.opt (fshrink-wrap): Add.
	* function.c (emit_return_into_block): Remove useless declaration.
	(record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
	requires_stack_frame_p, gen_return_pattern): New static functions.
	(emit_return_into_block): New arg simple_p.  All callers changed.
	Use gen_return_pattern.
	(thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
	* config/i386/i386.md (return): Expand into a simple_return.
	(simple_return): New expander):
	(simple_return_internal, simple_return_internal_long,
	simple_return_pop_internal_long, simple_return_indirect_internal):
	Renamed from return_internal, return_internal_long,
	return_pop_internal_long and return_indirect_internal; changed to use
	simple_return.
	* config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
	simple returns.
	(ix86_pad_returns): Likewise.
	* function.h (struct rtl_data): Add member shrink_wrapped.
	* cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
	are not jumps or sibcalls can't be compared.

2011-10-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
	vector type.
	(simplify_unary_expression): Handle BIT_FIELD_REFs.
	(try_to_simplify): Handle BIT_FIELD_REFs.

2011-10-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
	* config/avr/avr.c (avr_out_addto_sp): New function.
	(adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
	* config/avr/avr.md (adjust_len): Add "addto_sp".
	(*movhi_sp): Remove insn.
	(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.

2011-10-05  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
	with an embedded expression valueize and fold that as well.
	* tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
	results from gimple_fold_stmt_to_constant_1.

2011-10-05  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (tablejump): Add missing label.
	(adddi3_internal): Mark operand 0 as early-clobbered.
	(smaxsi3): Revert previous delta.
	(adc_internal): Fix whitespace in generated asm.
	(adc_flags): Likewise.

2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* expmed.c (expand_mult_highpart_optab): Replace optab_handler
	with the new widening_optab_handler.

2011-10-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50609
	* gimple-fold.c (fold_array_ctor_reference): Also handle
	vector typed constructors.
	(fold_ctor_reference): Dispatch to fold_array_ctor_reference
	for vector typed constructors.

2011-10-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_emit_binop): New static function.
	(ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
	instructions.
	(x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.

2011-10-04  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
	UNSPEC_XMUL): New unspecs.
	(muldi3_v8plus): Use output_v8plus_mult.
	(*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
	New VIS 3.0 combiner patterns.
	(fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
	fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
	umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
	xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
	builtins patterns.
	* config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
	(output_v8plus_mult): New function.
	* config/sparc/sparc-protos.h: Declare it.
	* config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
	__vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
	__vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
	* doc/extend.texi: Document new builtins.

2011-10-04  Richard Henderson  <rth@redhat.com>

	* c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
	Avoid save_expr unless two_arguments.

2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>

	* config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
	* config/i386/mingw32.h (CPP_SPEC): Likewise.

2011-10-04  David S. Miller  <davem@davemloft.net>

	* config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
	under Linux.

2011-10-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/50604
	* builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
	fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
	last argument to memcpy has size_type_node type instead of ssizetype.
	* tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
	instead of TREE_TYPE (len) as type for newlen.

	PR tree-optimization/50522
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
	TYPE_RESTRICT.
	(ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
	unconditionally.

	* fold-const.c (fold_unary_loc): Don't optimize
	POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
	casting the inner pointer if it isn't TYPE_RESTRICT.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
	casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.

2011-10-04  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.

2011-10-04  Jan Hubicka  <jh@suse.cz>

	* lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
	* lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
	* lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
	* lto-cgraph.c (order_base): New static var.
	(lto_output_node): Stream in order.
	(lto_output_varpool_node): Stream out order.
	(input_node): Stream in order.
	(input_varpool_node): Stream out order.
	(input_cgraph_1): Initialize order base; update call of
	lto_input_toplevel_asms.

2011-10-04  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50566
	* config/avr/avr-protos.h (avr_legitimize_reload_address): New
	prototype.
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
	from here...
	* config/avr/avr.c (avr_legitimize_reload_address) ...to this new
	function.  Log if avr_log.legitimize_reload_address.

2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.

2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
	variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.

2011-10-03  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
	GSR_REG an input operand to UNSPEC instead of a parallel USE.
	(faligndata<V64I:mode>_vis): Likewise and use DI mode.
	(alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
	Reference GSR_REG in DI mode, simplify convoluted expressions by using
	zero_extract.
	(bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.

2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* tree-eh.c (remove_unreachable_handlers): Obvious cleanup.

2011-10-03  Jakub Jelinek  <jakub@redhat.com>
	    Ian Lance Taylor  <iant@google.com>

	* godump.c (go_output_typedef): Support printing enum values that
	don't fit in a signed HOST_WIDE_INT.

2011-10-03  Anatoly Sokolov  <aesok@post.ru>

	* config/cris/cris.c (cris_output_addr_const_extra): Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
	* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.

2011-10-03  Anatoly Sokolov  <aesok@post.ru>

	* config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
	* config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.

2011-10-03  Steve Ellcey  <sje@cup.hp.com>

	PR target/49967
	* configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
	(gcc_cv_ld_static_option): Ditto.
	(gcc_cv_ld_dynamic_option): Ditto.
	* configure: Regenerate.

2011-10-03  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
	and 'si' patterns which describe the GSR changes explicitly in the
	RTL using zero_extract.
	(bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.

	* config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
	GSR_REG in a USE, since it's now a true arg to the UNSPEC.

2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>

	* optabs.c (expand_vec_shuffle_expr_p): New function. Checks
	if given expression can be expanded by the target.
	(expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
	using target vector instructions.
	* optabs.h: New optab vshuffle.
	(expand_vec_shuffle_expr_p): New prototype.
	(expand_vec_shuffle_expr): New prototype.
	(vshuffle_optab): New optab.
	* genopinit.c: Adjust to support vecshuffle.
	* c-tree.h (c_build_vec_shuffle_expr): New prototype.
	* expr.c (expand_expr_real_2): Adjust.
	* c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
	recognizing the cases of two and three arguments.
	(convert_arguments) (build_binary_op)
	(scalar_to_vector) (build_array_ref): Spurious whitespace.
	* gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
	* tree.def: New tree code VEC_SHUFFLE_EXPR.
	* tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
	* tree-vect-generic.c (vector_element): New function. Returns an
	element of the vector at the given position.
	(lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
	by the backend or expand an expression piecewise.
	(expand_vector_operations_1): Adjusted.
	(gate_expand_vector_operations_noop): New gate function.
	* Makefile.in (tree-vect-generic.o): New include.
	* gimple.c (get_gimple_rhs_num_ops): Adjust.
	* tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
	* passes.c: Move veclower down.
	* tree-pretty-print.c (dump_generic_node): Recognize
	VEC_SHUFFLE_EXPR as valid expression.
	* c-parser.c (c_parser_get_builtin_args): Helper function for the
	builtins with variable number of arguments.
	(c_parser_postfix_expression): Use a new helper function for
	RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
	* tree-ssa-operands: Adjust.
	* c-family/c-common.c: New __builtin_shuffle keyword.
	* c-family/c-common.h: New __builtin_shuffle keyword.
	* gcc/doc/extend.texi: Adjust.

	* gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
	between the vector and the type of the mask when shuffling.
	(vecshuffle<mode>): New expansion.
	* gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
	* gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
	(ix86_vectorize_builtin_vec_perm_ok): Adjust.

2011-10-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/50587
	* tree-ssa-reassoc.c (init_range_entry): Stop iterating when
	arg0 is not a SSA_NAME.

2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* ipa-inline-analysis.c (MAX_TIME): Update comment.

2011-10-02  Richard Henderson  <rth@redhat.com>
	    David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
	conditional insn type setting, we always emit a shift.
	(*ashlsi3_extend, *lshrsi3_extend0): New patterns.
	(*lshrsi3_extend): Rename to *lshrsi3_extend1.
	* config/sparc/predicates.md (const_one_operand): Delete.

2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>

	* invoke.texi (SPARC Options): Refer to GNU/Linux.

2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_frame_barrier): New function.
	(mips_expand_prologue): Call it after allocating stack space.
	(mips_deallocate_stack): New function.
	(mips_expand_epilogue): Call mips_frame_barrier and
	mips_deallocate_stack.

2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/49696
	* config/mips/sync.md (sync_<optab>_12): Allow zero operands.
	(sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
	(sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.

2011-10-02  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (verify_edge_count_and_frequency): Bounds check.

	* cgraphunit.c (ipa_passes): Remove unrechable nodes.
	* lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
	* ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
	functions are reachable when address is taken.
	* tree-sra.c (modify_function): Free dominance info.

2011-10-02  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (inline_summary_alloc): Bounds check.

	* ipa-inline-analysis.c (reset_inline_edge_summary): New function.
	(reset_inline_summary): New function.
	(compute_inline_parameters, inline_node_removal_hook,
	inline_edge_removal_hook): Use it.
	(inline_free_summary): Reset holders correctly.
	(inline_generate_summary): Free summary before computing it.

2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR preprocessor/36819
	* incpath.c (merge_include_chains): Call free_path on
	heads[QUOTE] and tails[QUOTE].

2011-10-02  Jan Hubicka  <jh@suse.cz>

	PR lto/47247
	* lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
	when resolution is already availbale from plugin.
	(lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
	* cgraph.c (ld_plugin_symbol_resolution): Add
	prevailing_def_ironly_exp.
	* lto-cgraph.c (LDPR_NUM_KNOWN): Update.
	* ipa.c (varpool_externally_visible_p): IRONLY variables are never
	externally visible.
	* varasm.c (resolution_to_local_definition_p): Add
	LDPR_PREVAILING_DEF_IRONLY_EXP.
	(resolution_local_p): Likewise.

2011-10-01  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.opt (VIS3): New option.
	* doc/invoke.texi: Document it.
	* config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
	not capable of such instructions.
	* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
	to 0x300 when TARGET_VIS3.
	* config/sparc/sparc-modes.def: Create 16-byte vector modes.
	* config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
	UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
	(V64N8, VASS): New mode iterators.
	(vis3_shift, vis3_addsub_ss): New code iterators.
	(vbits, vconstr): New mode attributes.
	(vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
	(cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
	fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
	fmean16_vis, fpadd64_vis, fpsub64_vis,
	<vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
	VIS 3.0 instruction patterns.
	* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
	default when targetting capable cpus.  TARGET_VIS3 implies
	TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
	(sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
	(sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
	is ignored.
	* config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
	__vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
	__vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
	__vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
	__vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
	__vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
	__vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
	__vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
	* doc/extend.texi: Document new VIS 3.0 builtins.

2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>

	* ira-color.c (assign_hard_reg): Fix typo.

2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi: Add missing ','.

2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>

	* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
	Enable -fmodulo-sched at -O2 and above.
	* config/c6x/c6x.md (doloop_end): New expander.
	(mvilc, sploop, spkernel, loop_end): New patterns.
	(loop_end with memory destination splitter): New.
	* config/c6x/c6x.c: Include "hw-doloop.h".
	(enum unitreqs): New.
	(unit_req_table): New typedef.
	(unit_reqs): New static variable.
	(unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
	res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
	hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
	hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
	(struct c6x_sched_context): New member last_scheduled_iter0.
	(init_sched_state): Initialize it.
	(c6x_variable_issue): Update it.
	(sploop_max_uid_iter0): New static variable.
	(c6x_sched_reorder_1): Be careful about issuing sploop.
	(c6x_reorg): Call c6x_hwlooops before the final schedule.

2011-09-30  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50566
	* config/avr/avr-protos.h (avr_log_t): New field address_cost.
	* config/avr/avr.c (avr_address_cost): Use it.
	* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
	(avr_log_vadump): Unknown %-codes finish printing.

2011-09-30  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/50571
	* gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
	input constraints allow mem and not reg, pass true instead of
	false as second argument to maybe_fold_reference.

	PR tree-optimization/46309
	* fold-const.c (make_range, merge_ranges): Remove prototypes.
	(make_range_step): New function.
	(make_range): Use it.
	* tree.h (make_range_step): New prototypes.
	* Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
	* tree-ssa-reassoc.c: Include diagnostic-core.h.
	(struct range_entry): New type.
	(init_range_entry, range_entry_cmp, update_range_test,
	optimize_range_tests): New functions.
	(reassociate_bb): Call optimize_range_tests.

2011-09-30  Jakub Jelinek  <jakub@redhat.com>
	    Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
	BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
	handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
	(ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
	BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.

2011-09-30  Jan Beulich  <jbeulich@suse.com>

	* lto-cgraph.c (output_cgraph): Remove processing of
	'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
	(input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
	lto_input_toplevel_asms() instead.
	* lto-section-in.c (lto_section_name): Add "asm" entry.
	* lto-streamer-in.c (lto_input_toplevel_asms): New.
	* lto-streamer-out.c (lto_output_toplevel_asms): New.
	* lto-streamer.h (LTO_minor_version): Bump.
	(enum lto_section_type): Add LTO_section_asm.
	(struct lto_asm_header): New.
	(lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
	* tree-streamer.h (streamer_write_string_cst): Declare.
	* tree-streamer-out.c (write_string_cst): Rename to
	streamer_write_string_cst and make global. Handle incoming string
	being NULL.
	(streamer_write_tree_header): Adjust call to renamed function.

2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
	modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
	modulo_last_stage): New static variables.
	(set_modulo_params, discard_delay_pairs_above): New functions.
	(struct delay_pair): New member stages.
	(htab_i2_traverse, htab_i1_traverse): New static functions.
	(record_delay_slot_pair): New arg stages.  All callers changed.
	Record it.
	(pair_delay): Take stages into account.
	(add_delay_dependencies): Don't do so for stage pairs.
	(struct sched_block_state): New member modulo_epilogue.
	(save_backtrack_point): Don't set SHADOW_P for stage pairs.
	(unschedule_insns_until): Decrease modulo_insns_scheduled.
	Set HARD_DEP without using or.
	(resolve_dependencies): New static function.
	(prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
	If it is true, allow only insns with INSN_EXACT_TICK set.
	(schedule_block): Return bool, always true for normal scheduling,
	true or false depending on modulo scheduling success otherwise.
	Add bookkeeping for modulo scheduling, and call resolve_dependencies
	on everything left over after a modulo schedule.
	(haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
	* sched-int.h (schedule_block, record_delay_slot_pair): Adjust
	declarations.
	(set_modulo_params, discard_delay_pairs_above): Declare.
	* params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
	* doc/invoke.texi (--param): Document it.

	* sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
	New arg modulo_scheduling.  All callers changed.  Move note handling
	code here from schedule_ebbs.
	(schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
	out of schedule_ebbs.
	(schedule_ebbs): Call them.  Remove note handling code moved to
	schedule_ebb.
	* sched-int.h (schedule_ebb, schedule_ebbs_init,
	schedule_ebbs_finish): Declare.

2011-09-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50574
	* tree-cfg.c (verify_gimple_comparison): Compare component
	mode sizes for vector comparisons.

2011-09-30  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (autoinc_var_is_used_p): New function.
	(create_ddg_dep_from_intra_loop_link,
	add_cross_iteration_register_deps): Call it.
	* ddg.h (autoinc_var_is_used_p): Declare.
	* modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
	(sms_schedule): Handle instructions with REG_INC.

2011-09-30  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (generate_reg_moves): Skip instructions that
	do not set a register and verify no regmoves are created for
	!single_set instructions.

2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>

	* hw-doloop.c (scan_loop): Compute register usage only for non-debug
	insns.

2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/50099
	* config/arm/iterators.md (qhs_zextenddi_cstr): New.
	(qhs_zextenddi_op): New.
	* config/arm/arm.md ("zero_extend<mode>di2"): Use them.
	* config/arm/predicates.md ("arm_extendqisi_mem_op"):
	Distinguish between ARM and Thumb2 states.

2011-09-30  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.opt (VIS2): New option.
	* doc/invoke.texi: Document it.
	* config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
	UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
	UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
	(define_attr type): New insn type 'edgen'.
	(bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
	edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
	edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
	patterns.
	* niagara.md: Handle edgen.
	* niagara2.md: Likewise.
	* ultra1_2.md: Likewise.
	* ultra3.md: Likewise.
	* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
	to 0x200 when TARGET_VIS2.
	* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
	default when targetting capable cpus.  TARGET_VIS2 implies
	TARGET_VIS, clear and it when TARGET_FPU is disabled.
	(sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
	(sparc_expand_builtin): Fix predicate indexing when builtin returns
	void.
	(sparc_fold_builtin): Do not eliminate bmask when result is ignored.
	* config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
	__vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
	__vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
	__vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
	* doc/extend.texi: Document new VIS 2.0 builtins.

2011-09-29  Nick Clifton  <nickc@redhat.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
	* config/frv/frvend.c: Likewise.
	* config/frv/frv.c (frv_function_prologue): Move misplaced
	CALL_ARG_LOCATION notes back to their proper locations.

2011-09-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50566
	* config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
	* config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
	from avr_rtx_costs.
	(avr_legitimate_address_p): Use avr_edump to print log information
	filtered by avr_log.
	(extra_constraint_Q): Ditto.
	(avr_legitimize_address): Ditto.
	(avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
	(final_prescan_insn): Use avr_log.rtx_costs as filter.

2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
	* config/arm/arm.h (MODES_TIEABLE_P): Use it.
	* config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
	NEON vector and structure modes to be tied.

2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* graphite-scop-detection.c (make_close_phi_nodes_unique):  New
	forward declaration.
	(remove_duplicate_close_phi): Detect and repair creation of
	duplicate close-phis for a containing loop.

2011-09-27  Andi Kleen  <ak@linux.intel.com>

	* gcc.c (get_local_tick). Rename to get_random_number.  Read from
	/dev/urandom.  Add getpid call.
	(compare_debug_dump_opt_spec_function): Drop getpid call.

2011-09-26  Andi Kleen  <ak@linux.intel.com>

	* toplev.c (init_local_tick): Try reading random seed
	from /dev/urandom.

2011-09-26  Andi Kleen  <ak@linux.intel.com>

	* hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
	* lto-streamer.c (lto_get_section_name): Remove crc32_string.
	Handle numerical random seed.
	* lto-streamer.h (lto_file_decl_data): Change id to
	unsigned HOST_WIDE_INT.
	* toplev.c (random_seed): Add.
	(init_random_seed): Change for numerical random seed.
	(get_random_seed): Return as HOST_WIDE_INT.
	(set_random_seed): Crc32 existing string.
	* toplev.h (get_random_seed): Change to numercal return.
	* tree.c (get_file_function_name): Remove CRC. Handle
	numerical random seed.

2011-09-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50566
	* config.gcc (extra_objs): Add avr-log.o for $target in:
	avr-*-rtems*, avr-*-*.
	* config/avr/t-avr (avr-log.o): New rule to compile...
	* config/avr/avr-log.c: ...this new file.
	* config/avr/avr.opt (mlog=): New option.
	* config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
	(avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
	(avr_log_set_avr_log): New prototype.
	(avr_log_t): New typedef.
	(avr_log): New declaration.
	* config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.

2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>

	* expr.c (do_store_flag): Expand vector comparison by
	building an appropriate VEC_COND_EXPR.
	* c-typeck.c (build_binary_op): Typecheck vector comparisons.
	(c_objc_common_truthvalue_conversion): Adjust.
	* tree-vect-generic.c (do_compare): Helper function.
	(expand_vector_comparison): Check if hardware supports
	vector comparison of the given type or expand vector piecewise.
	(expand_vector_operation): Treat comparison as binary
	operation of vector type.
	(expand_vector_operations_1): Adjust.

2011-09-29  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_opaque_vector_type): Make opaque vectors
	variant types of the corresponding non-opaque type.  Make
	sure to share opaque vector types properly.

2011-09-29  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
	UNSPEC_ARRAY32): New unspec.
	(define_attr type): New type 'array'.
	(array{8,16,32}<P:mode>_vis): New patterns.
	* config/sparc/ultra1_2.md: Add reservations for 'array'.
	* config/sparc/ultra3.md: Likewise.
	* config/sparc/niagara.md: Likewise.
	* config/sparc/niagara2.md: Likewise.
	* config/sparc/sparc.c (sparc_vis_init_builtins): Build new
	array builtins.
	* config/sparc/visintrin.h (__vis_array8, __vis_array16,
	__vis_array32): New.
	* doc/extend.texi: Document new VIS builtins.

	* config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
	(VIS pixel-compare insn): Just use <gcond:name>.

	* config/sparc/sparc.md (VIS pixel-compare insn): There is only one
	code iterator used, so just use <code>.  There are two mode iterators
	so explicitly use <GCM:gcm_name>.

2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
	Darwin >= 9.

2011-09-28  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
	UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
	(UNSPEC_FCMP): New unspec.
	(gcond): New code iterator.
	(gcond_name): New code attr.
	(GCM): New mode iterator.
	(gcm_name): New mode attr.
	(fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.

2011-09-28  Oleg Endo  <oleg.endo@t-online.de>

	PR target/49486
	* config/sh/sh.md (negdi2): Move expansion into split to
	allow more combination options.  Add T_REG clobber.
	(abssi2): New expander.
	(*negdi2, *abssi2, *negabssi2): New insns.
	(cneg): Change from insn to insn_and_split.  Rename to
	negsi_cond.  Add alternative for non-SH4.

2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
	(neon_move_hi_quad_<mode>): Likewise.
	(move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.

2011-09-28  Nick Clifton  <nickc@redhat.com>

	* config/rx/predicates.md (rx_minmax_operand): New predicate.
	Accepts immediates and a restricted subset of MEMs.
	* config/rx/rx.md (int_modes): New iterator.
	(smaxsi3, sminsi3): Delete and replace with...
	(smax<int_mode>3, smin<int_mode>3): New patterns.
	(umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.

2011-09-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50460
	* fold-const.c (try_move_mult_to_index): Handle &a.array the
	same as &a.array[0].

2011-09-28  Kai Tietz  <ktietz@redhat.com>

	* configure.ac: Add test for new section attribute
	specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
	* config.in: Regenerated.
	* configure: Regenerated.
	* config/i386/winnt.c (i386_pe_asm_named_section): Emit
	new section flag "e" for excluded sections, if supported.
	Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.

2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-27  Sriraman Tallam  <tmsriram@google.com>

	* output.h (SECTION_EXCLUDE): New macro.
	* varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.

2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* fwprop.c (forward_propagate_and_simplify): After checking
	reg/subreg combinations, check whether the modes are the same.

2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_add_cfa_restore): New function.
	(mips16e_save_restore_reg): Use it.
	(mips_restore_reg): Likewise.  Split double FPRs for
	REG_CFA_RESTORE notes.

2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/50386
	PR middle-end/50326
	* tree-sra.c (build_ref_for_model): Use the type of the field as
	the type of the COMPONENT_REF.

2011-09-27  Jeff Law  <law@redhat.com>

	* ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
	non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
	(find_if_case_1): Use the probability of the THEN clause when
	determining if speculation is profitable.
	(find_if_case_2): Similarly for the ELSE clause.

2011-09-27  Jakub Jelinek  <jakub@redhat.com>

	* common.opt: Add -foptimize-strlen option.
	* Makefile.in (OBJS): Add tree-ssa-strlen.o.
	(tree-sssa-strlen.o): Add dependencies.
	* opts.c (default_options_table): Enable -foptimize-strlen
	by default at -O2 if not -Os.
	* passes.c (init_optimization_passes): Add pass_strlen
	after pass_object_sizes.
	* timevar.def (TV_TREE_STRLEN): New timevar.
	* params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
	* tree-pass.h (pass_strlen): Declare.
	* tree-ssa-strlen.c: New file.
	* c-decl.c (merge_decls): If compatible stpcpy prototype
	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].

2011-09-27  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43864
	* tree-ssa-tail-merge.c: New file.
	(struct same_succ_def): Define.
	(same_succ, const_same_succ): New typedef.
	(struct bb_cluster_def): Define.
	(bb_cluster, const_bb_cluster): New typedef.
	(struct aux_bb_info): Define.
	(BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
	(gvn_uses_equal): New function.
	(same_succ_print, same_succ_print_traverse, update_dep_bb)
	(stmt_update_dep_bb, local_def, same_succ_hash)
	(inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
	(same_succ_reset): New function.
	(same_succ_htab, same_succ_edge_flags)
	(deleted_bbs, deleted_bb_preds): New var.
	(debug_same_succ): New function.
	(worklist): New var.
	(print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
	(init_worklist, delete_worklist, delete_basic_block_same_succ)
	(same_succ_flush_bbs, purge_bbs, update_worklist): New function.
	(print_cluster, debug_cluster, update_rep_bb)
	(add_bb_to_cluster, new_cluster, delete_cluster): New function.
	(all_clusters): New var.
	(alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
	(merge_clusters, set_cluster): New function.
	(gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
	(same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
	(deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
	(find_clusters_1, find_clusters): New function.
	(update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
	(update_bbs): New var.
	(apply_clusters): New function.
	(update_debug_stmt, update_debug_stmts): New function.
	(tail_merge_optimize): New function.
	tree-pass.h (tail_merge_optimize): Declare.
	* tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
	* Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
	(tree-ssa-tail-merge.o): New rule.
	* opts.c (default_options_table): Set OPT_ftree_tail_merge by
	default at OPT_LEVELS_2_PLUS.
	* tree-ssa-sccvn.c (vn_valueize): Move to ...
	* tree-ssa-sccvn.h (vn_valueize): Here.
	* timevar.def (TV_TREE_TAIL_MERGE): New timevar.
	* common.opt (ftree-tail-merge): New switch.
	* params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
	(PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
	* doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
	(-ftree-tail-merge, max-tail-merge-comparisons)
	(max-tail-merge-iterations): New item.

2011-09-27  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.

2011-09-27  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
	parameters passed by reference; handle loads from non-SSA scalars
	and update comments.

2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/50249
	* reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
	instead of opnum and type.  All callers changed.  Remove useless
	declaration.
	Search forward for other reloads of the same type for the same operand
	using the same register; if any are found, return false.
	(reload_regs_reach_end_p): Same argument changes; all callers changed.

2011-09-27  Andi Kleen  <ak@linux.intel.com>
	    Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (ffat-lto-objects): Document.
	* toplev.c (compile_file): Do not output assembly when doing slim lto;
	Output __gnu_slim_lto when doing slim lto.
	* cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
	(cgraph_optimize): Return early when doing slim lto.
	* opts.c (finish_options): Complain about lack of linker plugin
	when doing slim lto.
	* common.opt (ffat-lto-objects): New.

2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>

	* ipa-inline-analysis.c (predicate_probability): Avoid comparison
	between signed and unsigned.

2011-09-27  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
	vectorization.
	(vectorizable_type_promotion): Likewise.
	(vect_analyze_stmt): Call vectorizable_type_demotion and
	vectorizable_type_promotion for basic blocks.
	(supportable_widening_operation): Don't assume loop vectorization.
	* tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
	basic blocks.  Update vectorization factor for basic block
	vectorization.
	(vect_analyze_slp_instance): Allow multiple types for basic block
	vectorization.  Recheck unrolling factor after construction of SLP
	instance.

2011-09-27  Richard Guenther  <rguenther@suse.de>

	* tree-object-size.c (compute_object_sizes): Fix dumping of
	folded statement.

2011-09-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50363
	* tree-ssa-pre.c (create_expression_by_pieces): Handle
	pointer conversions in POINTER_PLUS_EXPRs properly.

2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
	(neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
	(neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
	(neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
	that produce subreg moves.  Define using VQX iterators.

2011-09-27  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (ashrqi3): Split alternative "n"
	into its remaining parts C03, C04, C05, C06, C07 and describe
	impact in CC by attribute "cc" appropriately.
	* config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
	by digging RTX.

2011-09-27  Jakub Jelinek  <jakub@redhat.com>

	* rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
	from 3 x MAX_MACHINE_MODE.
	(CONSTM1_RTX): Define.
	* emit-rtl.c (const_tiny_rtx): Change into array of
	4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
	(gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
	CONSTM1_RTX.
	(init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
	MODE_VECTOR_INT modes.
	* simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
	Optimize if one operand is CONSTM1_RTX.
	* config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
	into mask | x.

2011-09-26  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
	(fcmp{le,ne,gt,eq}{16,32}): Likewise.
	* config/sparc/visintrin.h: Update edge and pixel-compare
	intrinsics to return 'long' instead of 'int'.
	* doc/extend.texi: Update documentation to match.
	* config/sparc/sparc.c (eligible_for_return_delay): When leaf or
	flat, allow any instruction.  Otherwise, when V9 allow parallels
	which consist only of sets to registers outside of %o0 to %o5.
	(sparc_vis_init_builtins): Update VIS builtin types for edge
	and pixel-compare.

	* config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
	is enabled, mark %gsr as global.
	* config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
	(wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.

	* config/sparc/sparc-c.c: New file implementing sparc_target_macros,
	which will now define __VIS and __VIS__ when -mvis is enabled.
	* config/sparc/t-sparc: Likewise.
	* config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
	and add t-sparc to tmake_file for all sparc targets.
	* config/sparc/sparc-protos.h (sparc_target_macros): Declare.
	* config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.

	* config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
	builtins for VIS vector addition and subtraction.
	* config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
	__vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
	__vis_fpsub32, __vis_fpsub32s): New.
	* doc/extend.texi: Document new VIS intrinsics.

2011-09-26  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
	* config/avr/avr.c (avr_out_compare): Print shorter sequence for
	EQ/NE comparisons against +/-1 in the case of unused-after,
	non-ld-regs target.

2011-09-26  Jakub Jelinek  <jakub@redhat.com>

	* gimple-fold.c (gimplify_and_update_call_from_tree): Set
	gctx.into_ssa after push_gimplify_context.

	* gimple.c (gimple_build_call_valist): New function.
	* gimple.h (gimple_build_call_valist): New prototype.
	* tree-ssa-propagate.c (finish_update_gimple_call): New function.
	(update_gimple_call): Likewise.
	(update_call_from_tree): Use finish_update_gimple_call.
	* tree-ssa-propagate.h (update_gimple_call): New prototype.

2011-09-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50472
	* gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
	volatile references.

2011-09-26  Bingfeng Mei <bmei@broadcom.com>

	* doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
	* target.def: (addr_space_subset_p): Likewise.

2011-09-26  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-alias.h (pt_solution_singleton_p): Declare.
	* tree-ssa-structalias.c (pt_solution_singleton_p): New function.
	* tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
	of new var.

2011-09-26  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50465
	* config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
	* config/avr/avr.md (*reload_insi, *reload_insf): Change call to
	output_reload_insisf.
	(adjust_len): Set default to "no".
	Remove alternative "yes".  Add alternatives: "mov8", "mov16",
	"mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
	"lshrhi", "ashlsi, "ashrsi", "lshrsi".
	(*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
	*ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
	*ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
	*lshrsi3_const): Set attribute "adjust_len".
	* config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
	(output_movsisf): Don't pass insn to output_reload_insisf.
	(adjust_insn_length): Handle new alternatives to adjust_len.
	Remove handling of ADJUST_LEN_YES.  Clean-up code.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

	* ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
	may_trap_p to detect loads that may trap of fault.

2011-09-26  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (output_reload_inhi): Change prototype.
	* config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
	(*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
	prototype.
	(*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
	* config/avr/avr.c: Rename output_reload_insisf_1 to
	output_reload_in_const.
	(avr_popcount_each_byte): Handle SFmode, too.
	(output_reload_in_const): Change so it can handle HI loads, too.
	Use avr_popcount_each_byte to work out if scratch register must be
	created on the fly.
	(output_reload_inhi): Rewrite using output_reload_in_const and...
	(output_movhi): ...use it to print constants' loads.
	(adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.

2011-09-25  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md (C, P, Z): New constraints for
	const_doube, const_int, and const_vector "all ones" values.
	Make unused constraint letters comment match reality.
	* config/sparc/predicates.md (const_all_ones_operand,
	register_or_zero_or_all_ones_operand): New predicates.
	* config/sparc/sparc.c (sparc_expand_move): Allow all ones
	as well as zero constants when VIS.
	(sparc_legitimate_constant_p): Likewise.
	* config/sparc/sparc.md (movsi_insn): Add fones alternative.
	(movsf_insn): Likewise
	(movdi_insn_sp64): Add fone alternative.
	(movdf_insn_sp32_v9): Likewise.
	(movdf_insn_sp64): Likewise.

	* configure.ac: Add feature check to make sure the assembler
	supports the FMAF, HPC, and VIS 3.0 instructions found on
	Niagara-3 and later cpus.
	* configure: Rebuild.
	* config.in: Likewise.
	* config/sparc/sparc.opt: New option '-mfmaf'.
	* config/sparc/sparc.md: Add float fused multiply-add patterns.
	* config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
	(ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
	* config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
	ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
	* config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
	by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
	disabled.
	(sparc_rtx_costs): Handle 'FMA'.
	* doc/invoke.texi: Document -mfmaf.

2011-09-25  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Treat
	TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
	DECL_BY_REFERENCE parameters.

2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
	if there is no outgoing edge.

	* tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
	integral types.

2011-09-25  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
	of vect_analyze_bb here.
	(vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.

2011-09-25  Ira Rosen  <ira.rosen@linaro.org>

	* tree-data-ref.c (dr_analyze_innermost): Add new argument.
	Allow not simple iv if analyzing basic block.
	(create_data_ref): Update call to dr_analyze_innermost.
	(stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
	* tree-loop-distribution.c (generate_memset_zero): Likewise.
	* tree-predcom.c (find_looparound_phi): Likewise.
	* tree-data-ref.h (dr_analyze_innermost): Add new argument.

2011-09-24  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
	(SPARC_GSR_REG): Define.
	(FIXED_REGISTERS): Mark GSR as fixed.
	(CALL_USED_REGISTERS): Mark GSR as call used.
	(HARD_REGNO_NREGS): GSR is always 1 register.
	(REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
	(REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
	(REGISTER_NAMES): Add "%gsr".
	* config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
	(UNSPEC_WRGSR): New unspec.
	(GSR_REG): New constant.
	(type): Add new insn type 'gsr'.
	(fpack16_vis, fpackfix_vis, fpack32_vis,
	faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
	(wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
	rdgsr_v8plus): New expanders and insns.
	(alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
	using patterns which show that this is a plus in addition to a
	modification of GSR_REG, instead of an unspec.
	* config/sparc/ultra1_2.md: Handle 'gsr'.
	* config/sparc/ultra3.md: Likewise.
	* config/sparc/niagara.md: Likewise.
	* config/sparc/niagara2.md: Likewise.
	* config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
	end of table.
	(sparc_option_override): Make -mvis imply -mv8plus.
	(hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
	for %gsr.
	(sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
	__builtin_vis_read_gsr.
	(sparc_expand_buildin): Handle builtins that take one argument and
	return void.
	(sparc_fold_builtin): Never fold writes to %gsr.
	* config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
	* doc/extend.texi: Document new VIS intrinsics.

2011-09-23  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (inline_call): Add comment.
	* ipa-inline.h (inline_param_summary): New structure and vector.
	(struct inline_edge_summary): Add param field.
	* ipa-inline-analysis.c (CHANGED): New constant.
	(add_clause): Handle CHANGED and NOT_CONSTANT.
	(predicate_probability): New function.
	(dump_condition): Dump CHANGED predicate.
	(evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
	of unknown function wide invariant.
	(evaluate_conditions_for_edge): Handle change probabilities.
	(inline_edge_duplication_hook): Copy param summaries.
	(inline_edge_removal_hook): Free param summaries.
	(dump_inline_edge_summary): Fix dumping of indirect edges and callee
	sizes; dump param summaries.
	(will_be_nonconstant_predicate): Use CHANGED predicate.
	(record_modified_bb_info): New structure.
	(record_modified): New function.
	(param_change_prob): New function.
	(estimate_function_body_sizes): Compute param summaries.
	(estimate_edge_size_and_time): Add probability argument.
	(estimate_node_size_and_time): Add inline_param_summary argument;
	handle predicate probabilities.
	(remap_predicate): Fix formating.
	(remap_edge_change_prob): New function.
	(remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
	(remap_edge_predicates): ... this one.
	(inline_merge_summary): Remap edge summaries; handle predicate
	probabilities; remove param summaries after we are done.
	(do_estimate_edge_time): Update.
	(do_estimate_edge_growth): Update.
	(read_inline_edge_summary): Read param info.
	(inline_read_summary): Fix formating.
	(write_inline_edge_summary): Write param summaries.

2011-09-23  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_print_operand): Handle %~.
	(ix86_print_operand_punct_valid_p): Return true also for '~'.
	* config/i386/sse.md (i128): New mode_attr.
	(vec_extract_hi_<mode>, vec_extract_hi_<mode>,
	avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
	*avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
	vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
	patterns, use "<sseinsnmode>" for "mode" attribute.
	(vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
	vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
	%~128 in the patterns, use "OI" for "mode" attribute.

2011-09-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50447
	* config/avr/avr.md (adjust_len): Add alternatives "tsthi",
	"tstsi", "compare".
	(*cmpqi_sign_extend): Use s8_operand.
	(*cmphi, *cmpsi): Rewrite using avr_out_compare.
	* config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
	prototypes.
	(out_tsthi, out_tstsi): Remove prototypes.
	(avr_out_tsthi, avr_out_tstsi): New prototypes.
	* config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
	(avr_asm_len): Negative length now sets *plen to -length.
	(compare_sign_p): Return bool instead of int.
	(compare_diff_p, compare_eq_p): Ditto and make static.
	(avr_out_tsthi): New function.
	(avr_out_tstsi): New function.
	(avr_out_compare): New function.
	(adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
	ADJUST_LEN_COMPARE.

2011-09-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50447
	* config/avr/avr.md: (adjust_len): Add alternative "out_plus".
	(addsi3): Rewrite using QI scratch register.  Adjust text
	peepholes using plus:SI.
	(*addsi3_zero_extend.hi): New insn.
	(*subsi3_zero_extend.hi): New insn.
	(*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
	(*subsi3_zero_extend): Ditto.
	(subsi3): Change predicate #2 to register_operand.
	* config/avr/avr-protos.h (avr_out_plus): New prototype.
	(avr_out_plus_1): New static function.
	(avr_out_plus): New function.
	(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.

2011-09-23  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
	GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.

2011-09-23  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_define): Treat a single character in single quotes,
	or a string, as an operand.

2011-09-23  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (jump_func_type): Updated comments.
	(ipa_known_type_data): New type.
	(ipa_jump_func): Use it to describe known type jump functions.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
	reflect the new known type jump function contents.
	(compute_known_type_jump_func): Likewise.
	(combine_known_type_and_ancestor_jfs): Likewise.
	(try_make_edge_direct_virtual_call): Likewise.
	(ipa_write_jump_function): Likewise.
	(ipa_read_jump_function): Likewise.
	* ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
	(ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
	(propagate_accross_jump_function): Likewise.

2011-09-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50446
	* config/avr/avr.md (rotlqi3): Support all offsets 0..7.
	(rotlqi3_4): Turn insn into expander.
	(*rotlqi3): New insn.
	(rotlhi3, rotlsi3): Support rotate left/right by 1.
	(*rotlhi2.1, *rotlhi2.15): New insns.
	(*rotlsi2.1, *rotlsi2.31): New insns.
	* config/avr/constraints.md (C03, C05, C06, C07): New constraints.

2011-09-23  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.

2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* ipa-prop.c (ipa_print_node_jump_functions): Fix typos.

2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* reload.c (find_reloads): Set operand_mode to Pmode for address
	operands consisting of just a CONST_INT.

2011-09-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50482
	* config/i386/i386.c (ix86_expand_sse_movcc): When generating
	blendv, force op_true to register if it doesn't satisfy
	nonimmediate_operand predicate.

2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/50113
	PR middle-end/50061
	* calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
	get the locate.where_pad value for register-only arguments.
	* config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
	(arm_pad_reg_upward): Handle null types.

2011-09-22  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c: Fix overly long lines.

2011-09-22  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (inline_call): Always update jump functions
	after inlining.
	* ipa-inline.c (ipa_inline): Likewise; do not call
	ipa_create_all_structures_for_iinln.
	(ipa_inline): Always free jump functions.
	* ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
	(remap_edge_predicates): Fix pasto.
	(inline_merge_summary): Remove nlined edge predicate; remove hack.
	(inline_analyze_function): Always initialize jump functions.
	(inline_generate_summary): Likewise.
	(inline_write_summary): Always write jump functions when ipa-cp
	is not doing that.
	(inline_read_summary): Always read jump functions when ipa-cp
	is not doing that.
	* ipa-prop.c (iinlining_processed_edges): Remove.
	(update_indirect_edges_after_inlining): Do not use
	iinlining_processed_edges; instead set param_index to -1.
	(propagate_info_to_inlined_callees): Only try to indirect inlining
	when asked to do so; update jump functions of indirect calls, too;
	remove jump functions of the inlined edge.
	(ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
	(ipa_create_all_structures_for_iinln): Remove.
	(ipa_free_all_structures_after_iinln): Do not free
	iinlining_processed_edges.
	* ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.

2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/predicates.md (expandable_comparison_operator): New
	predicate, extracted from...
	(arm_comparison_operator): ...here.
	* config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
	(cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
	(movdfcc): Use expandable_comparison_operator.

2011-09-22  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50447
	PR target/50465
	* config/avr/avr-protos.h (avr_out_bitop): New prototype.
	(avr_popcount_each_byte): New prototype.
	* config/avr/avr.c (avr_popcount): New static function.
	(avr_popcount_each_byte): New function.
	(avr_out_bitop): New function.
	(adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
	avr_out_bitop.  Cleanup code.
	* config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
	(Ca4, Co4, Cx4): New constraints.
	* config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
	alternative.
	(andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
	(andsi3, iorsi3, xorsi3): Ditto.
	(*iorhi3_clobber, *iorsi3_clobber): Remove insns.

2011-09-22  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50451
	* tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
	constant operands in reduction.
	(vect_get_slp_defs): Don't create vector operand for NULL scalar
	operand.

2011-09-22  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
	fpack16, fpack32, fpackfix as const.

	* config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
	I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
	constants.  Use them everywhere.

2011-09-22  Oleg Endo  <oleg.endo@t-online.de>

	* config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
	Added AND special case.  Adapted comments.
	(sh_rtx_costs): Added XOR and IOR case.

2011-09-21  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analsis.c (compute_inline_parameters): Set
	cfun and current_function_decl.

2011-09-21  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
	handled components in parameter of builtin_constant_p.
	(will_be_nonconstant_predicate): Allow loads of non-SSA parameters.

2011-09-21  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
	* ipa-inline.h (estimate_edge_time): Fix pasto.
	* ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.

2011-09-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_sse_movcc): Use
	blendvps, blendvpd and pblendvb if possible.

2011-09-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50464
	* config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
	operand 1 predicate to register_operand and operand 2 predicate
	to nonimmediate_operand.
	* config/i386/i386.c (ix86_expand_sse_movcc): When generating
	xop_pcmov, force op_true to register.  Also, force op_false to
	register if it doesn't satisfy nonimmediate_operand predicate.

2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/bmi2intrin.h (_mulx_u64): New.
	(_mulx_u32): Ditto.

2011-09-21  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/50433
	* ipa-inline-analysis.c (eliminated_by_inlining_prob):
	Use get_base_address.

2011-09-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
	nonimmediate_operand instead of register_operand predicate for operands
	1 and 2, force them into registers if expanding them as comparison.
	(<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
	V8HImode force into register just operand 1.

2011-09-21  Georg-Johann Lay  <avr@gjlay.de>

	PR target/45099
	* config/avr/avr.c (avr_function_arg_advance): Change error to
	warning if a fixed register is needed as function argument.

2011-09-21  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50449
	PR target/50465
	* config/avr/avr.md (adjust_len): New insn attribute.
	(*reload_insi, *reload_insf): Use it.
	(*movsi, *movsf): Use new interface of output_movsisf.
	* config/avr/avr-protos.h (output_movsisf): Change prototype.
	* config/avr/avr.c (output_movsisf): Ditto.
	(adjust_insn_length): Use insn attribute "adjust_len" to adjust
	lengths of insns *reload_insi, *reload_insf.
	(output_reload_insisf_1): New static function.
	(output_reload_insisf): Use it.

2011-09-21  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.c (def_builtin): Change from macro into function.
	(def_builtin_const): New.
	(sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
	other than alignaddr and falignaddr.

	* config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
	UNSPEC_FCMPEQ): New unspec codes.
	(fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
	fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
	* config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
	new pixel compare VIS patterns.
	* config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
	__vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
	__vis_fcmpeq16, __vis_fcmpeq32): New.
	* doc/extend.texi: Document new pixel compare VIS intrinsics.

2011-09-21  Tom de Vries  <tom@codesourcery.com>

	* final.c (final): Handle if JUMP_LABEL is not LABEL_P.

2011-09-20  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
	(aligneddrl<P:mode>_vis): New pattern.
	(edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
	edge32l_vis): Adjust to take Pmode arguments, and return SImode.
	* config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
	alignaddrl insn, and adjust edge operations for updated types.
	* config/sparc/visintrin.h: Likewise.
	* doc/extend.texi: Make typing in VIS documentation match reality.

2011-09-20  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm-arches.def: Add armv6s-m.
	* config/arm/arm-tables.opt: Regenerate.

2011-09-20  Wei Guozhi  <carrot@google.com>

	PR rtl-optimization/49452
	* postreload.c (reload_combine): Invalidate use information when across
	volatile insn.

2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
	Remove maintenance overhead.
	(haifa_sched_init, sched_finish): Update.

2011-09-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
	to calculate unit, prefix_rep and prefix_data16 attributes.
	(*mov<mode>_internal): Ditto for unit attribute.
	(*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
	(*movv2sf_internal): Ditto.
	* config/i386/sse.md (VI1248_256): Remove mode iterator.
	(avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
	(*avx2_eq<mode>3): Ditto.
	(avx2_gt<mode>3): Ditto.

2011-09-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (maxmin): New code iterator.
	* config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
	from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
	code iterator.
	(*avx2_<maxmin:code><mode>3): Macroize isn from
	*avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
	maxmin code iterator.
	(<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
	(<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
	<umaxmin:code>v16qi3.

2011-09-19  Alan Modra  <amodra@gmail.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/50341
	* config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
	split the load of the indirect function's TOC from the call to
	prevent the compiler from moving the load of the new TOC above
	code that references the current function's TOC.
	(call_indirect_aix<ptrsize>_internal): Ditto.
	(call_indirect_aix<ptrsize>_nor11): Ditto.
	(call_indirect_aix<ptrsize>_internal2): Ditto.
	(call_value_indirect_aix<ptrsize>): Ditto.
	(call_value_indirect_aix<ptrsize>_internal): Ditto.
	(call_value_indirect_aix<ptrsize>_nor11): Ditto.
	(call_value_indirect_aix<ptrsize>_internal2): Ditto.

2011-09-19  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (*sse4_1_extractps): Change into
	define_insn_and_split, add =x 0 n and =x x n alternatives
	and split them after reload.

2011-09-19  Alexandre Oliva  <aoliva@redhat.com>

	* tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.

2011-09-19  Alexandre Oliva  <aoliva@redhat.com>

	* emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.

2011-09-19  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50413
	* tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
	a basic block if one of its data-refs can't be analyzed.

2011-09-19  Paul Brook  <paul@codesourcery.com>

	* config/arm/predicates.md (shift_amount_operand): Check constant
	shift count is in range.
	(const_shift_operand): Remove.

2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
	    Iain Sandoe  <developer@sandoe-acoustics.co.uk>

	PR target/50091
	* config/rs6000/rs6000.md (probe_stack): Use explicit operand.
	* config/rs6000/rs6000.c (output_probe_stack_range): Likewise.

2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/bmiintrin.h: Remove tmp.
	* config/i386/tbmintrin.h: Likewise.

2011-09-18  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50414
	* tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
	MIN_EXPR.

2011-09-18  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50412
	* tree-vect-data-refs.c (vect_analyze_group_access): Fail for
	acceses that require epilogue loop if vectorizing outer loop.

2011-09-17  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
	UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
	New unspecs.
	(define_attr type): New type 'edge'.
	(edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
	edge32l_vis): New patterns.
	* config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
	* config/sparc/ultra3.md: Likewise.
	* config/sparc/niagara.md: Likewise.
	* config/sparc/niagara2.md: Likewise.
	* config/sparc/sparc.d (sparc_vis_init_builtins): Generate
	builtins for VIS edge instructions.
	* config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
	(__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
	intrinsics.
	(__v8qi, __v4qi): Make unsigned.
	(__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
	__vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
	__vis_fpack32): Fix types.
	* doc/extend.texi: Document new 'edge' VIS intrinsics.

	* gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
	divide costs.
	(niagara3_costs): New.
	(sparc_option_override): Use it.
	* gcc/config/sparc/niagara2.md: Adjust with more accurate
	Niagara-3 reservations.

2011-09-17  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
	(sse2_avx, sseinsnmode): Add V2TI.
	(REDUC_SMINMAX_MODE): New mode iterator.
	(reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
	reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
	(reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
	(sse2_lshrv1ti3): Rename to...
	(<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
	iterator.  Move before umaxmin expanders.
	* config/i386/i386.h (VALID_AVX256_REG_MODE,
	SSE_REG_MODE_P): Accept V2TImode.
	* config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
	V16HImode, V8SImode and V4DImode.

	* config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
	and V4DImode.
	(ix86_build_signbit_mask): Likewise.
	(ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
	(bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
	instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
	* config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
	(<code><mode>3) ... this.
	(avx2_<code><mode>3 smaxmin expand): Rename to...
	(<code><mode>3) ... this.
	(smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
	(smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
	VI8_AVX2 mode iterator.
	(umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
	VI8_AVX2 mode iterator.
	(vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
	New expanders.

2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-16  David S. Miller  <davem@davemloft.net>

	* config/sparc/visintrin.h: New file.
	* config.gcc: Add it to extra_headers on sparc.

2011-09-16  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
	(ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
	* config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
	reduc_smin_v4sf): Adjust callers.
	(reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
	New expanders.

	* config/i386/sse.md (vec_extract_hi_<mode>,
	vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
	vextracti128 instead of vextractf128 for -mavx2 and
	integer vectors.  For V4DFmode fix up mode attribute.
	(VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
	(vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
	instead of V8SF mode attribute.
	(avx2_extracti128): Change into define_expand.
	* config/i386/i386.c (ix86_expand_vector_extract): Handle
	32-byte vector modes if TARGET_AVX.

2011-09-16  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
	(umulqi3_highpart, smulqi3_highpart): Ditto.
	(*maddqihi4.const, *umaddqihi4.uconst): Ditto.
	(*msubqihi4.const, *umsubqihi4.uconst): Ditto.
	(*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.

2011-09-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50358
	* config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
	(*maddqi4, *maddqi4.const): New insns.
	(*msubqi4, *msubqi4.const): New insns.
	* config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
	PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
	HImode by 1 in the case of multiplying with a CONST_INT.
	Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.

2011-09-15  Jan Hubicka  <jh@suse.cz>

	PR lto/50430
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
	error_mark_node in the DECL_INITIAL of vtable.

2011-09-15  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
	@SYSROOT_CFLAGS_FOR_TARGET@.
	* configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
	* configure: Regenerate.
	(site.exp): Add definition of TEST_ALWAYS_FLAGS.
	Remove setting of GCC_UNDER_TEST.

2011-09-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (output_fp_compare): Return %v prefixed
	instruction mnemonics for TARGET_AVX.

	* config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
	"type" attribute calculation.
	(*movdf_internal): Ditto.
	(*movsf_internal): Ditto.

2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.

2011-09-15  Jason Merrill  <jason@redhat.com>

	PR c++/50361
	* expr.c (count_type_elements): Handle NULLPTR_TYPE.

2011-09-15  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (add_condition): Add conditions parameter;
	simplify obviously true clauses.
	(and_predicates, or_predicates): Add conditions parameter.
	(inline_duplication_hoook): Update.
	(mark_modified): New function.
	(unmodified_parm): New function.
	(eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
	set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
	Use unmodified_parm.
	(estimate_function_body_sizes): Update.
	(remap_predicate): Update.

2011-09-15  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
	read-after-read dependencies in basic block SLP.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
	throughout file.
	* config/rs6000/constraints.md: Likewise.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/microblaze/microblaze.md: Use match_test rather than
	eq/ne symbol_ref throughout file.

2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-14  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/50251
	* explow.c (emit_stack_restore): Set crtl->need_drap if
	stack_restore is emitted.

2011-09-14  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_override_options): Add unaligned_access
	support.
	(arm_file_start): Emit attribute for unaligned access as appropriate.
	* config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
	(UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
	(insv, extzv): Add unaligned-access support.
	(extv): Change to expander. Likewise.
	(extzv_t1, extv_regsi): Add helpers.
	(unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
	(unaligned_storesi, unaligned_storehi): New.
	(*extv_reg): New (previous extv implementation).
	* config/arm/arm.opt (munaligned_access): Add option.
	* config/arm/constraints.md (Uw): New constraint.
	* expmed.c (store_bit_field_1): Adjust bitfield numbering according
	to size of access, not size of unit, when BITS_BIG_ENDIAN !=
	BYTES_BIG_ENDIAN. Don't use bitfield accesses for
	volatile accesses when -fstrict-volatile-bitfields is in effect.
	(extract_bit_field_1): Likewise.

2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* simplify-rtx.c (simplify_subreg): Check that the inner mode is
	a scalar integer before applying integer-only optimisations to
	inner arithmetic.

2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>

	* config/mips/mips.c (mips_expand_epilogue): Generate a
	simple_return only if the return address is in r31.

2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>

	* cfgcleanup.c (try_head_merge_bb): If get_condition returns
	NULL for a jump that is a cc0 insn, pick the previous insn for
	move_before.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mn10300/mn10300.md: Use match_test rather than eq/ne
	symbol_ref throughout file.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
	throughout file.
	* config/arm/neon.md: Likewise.
	* config/arm/vfp.md: Likewise.
	* config/arm/thumb2.md: Likewise.
	* config/arm/cortex-m4.md: Likewise.

2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>

	* config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
	define_insn patterns for combine.

2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>

	* reorg.c: Always define make_return_insns.

2011-09-13  Jan Hubicka  <jh@suse.cz>

	PR other/49533
	* cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.

2011-09-13  Jan Hubicka  <jh@suse.cz>

	PR other/49533
	* ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.

2011-09-13  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(ARM_TARGET2_DWARF_FORMAT): Provide default definition.
	* config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
	* config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
	* config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
	* config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
	* config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
	* config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
	enabling unwind tables.
	(c6x_debug_unwind_info): New function.
	(TARGET_ARM_EABI_UNWINDER): Define.
	(TARGET_DEBUG_UNWIND_INFO): Define.
	* config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
	(TARGET_EXTRA_CFI_SECTION): Remove.
	* config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
	* ginclude/unwind-arm-common.h: New file.

2011-09-13  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50358
	* config/avr/predicates.md (const_1_to_6_operand): New predicate.
	* config/avr/avr.md: (extend_s): New code attribute.
	(mul_r_d): New code attribute.
	(*maddqihi4, *umaddqihi4): New insns.
	(*msubqihi4, *umsubqihi4): New insns.
	(*usmaddqihi4, *sumaddqihi4): New insns.
	(*usmsubqihi4, *susubdqihi4): New insns.
	(*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
	(*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
	(*umsubqihi4.uconst.ashift): New insn-and-split.
	(*msubqihi4.sconst.ashift): New insn-and-split.
	(*sumaddqihi4.uconst): New insn-and-split.
	(*sumsubqihi4.uconst): New insn-and-split.
	* config/avr/avr.c (avr_rtx_costs): Report costs of above in case
	PLUS:HI and MINUS:HI.

2011-09-13  Revital Eres  <revital.eres@linaro.org>

	modulo-sched.c (remove_node_from_ps): Return void instead of bool.
	(optimize_sc): Adjust call to remove_node_from_ps.
	(sms_schedule): Add print info.

2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>

	* rtl.c (copy_rtx): Do not handle frame_related, jump or call
	flags specially.

2011-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/50010
	* dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
	NOTE_INSN_CFI notes, with the exception of
	NOTE_INSN_SWITCH_TEXT_SECTIONS.

2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_epilogue): New structure.
	(mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
	restoring registers.
	(mips_epilogue_emit_cfa_restores): New function.
	(mips_epilogue_set_cfa): Likewise.
	(mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
	the current CFA register from the stack, redefine the CFA in terms
	of the stack pointer.
	(mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
	to the epilogue instructions.

2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
	argument.
	(mips16e_build_save_restore): Update accordingly.

2011-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/50212
	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.

	PR debug/50299
	* calls.c (load_register_parameters): Use use_reg_mode instead
	of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
	entry.
	(expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
	for stack CALL_INSN_FUNCTION_USAGE uses.
	* expr.h (use_reg_mode): New prototype.
	(use_reg): Changed into inline around use_reg_mode.
	* expr.c (use_reg): Renamed to...
	(use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
	mode to that mode instead of VOIDmode.
	* var-tracking.c (prepare_call_arguments): Don't track parameters
	whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
	to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
	EXPR_LIST mode.

2011-09-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/43746
	* config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
	(progmem_section): New Variable.
	(avr_asm_init_sections): Initialize it.
	(TARGET_ASM_SELECT_SECTION): Define to...
	(avr_asm_select_section): ... this new Function.
	(avr_replace_prefix): New Function.
	(avr_asm_function_rodata_section): Use it.
	(avr_insert_attributes): Don't add section attribute for PROGMEM.
	(avr_section_type_flags): Use avr_progmem_p instead of section
	name to detect if object is in PROGMEM.
	(avr_asm_named_section): Set section name prefix for objects in
	PROGMEM.

2011-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/50352
	* config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
	sprintf format string.

2011-09-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50343
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
	that the reduction is over an SSA name before checking its definition.

2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
	throughout file.

2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
	throughout file.
	* config/mips/sb1.md: Likewise.
	* config/mips/predicates.md: Replace (match_test "!...")
	with (not (match_test "..."))
	* config/mips/constraints.md: Likewise.

2011-09-09  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm-cores.def (generic-armv7-a): New architecture.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm.c (arm_file_start): Output .arch directive when
	user passes -mcpu=generic-*.
	(arm_issue_rate): Add genericv7a support.
	* config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
	(ASM_CPU_SPEC): New define.
	* config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
	* config/arm/semi.h (ASM_SPEC): Likewise.
	* doc/invoke.texi (ARM Options): Document -mcpu=generic-*
	and -mtune=generic-*.

2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50328
	* tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
	constant or default-def operand.

2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (create_expression_by_pieces): Fold the
	last statement.

2011-09-09  Richard Guenther  <rguenther@suse.de>

	* gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
	instead of a statement.
	* gimple-fold.c (fold_stmt_inplace): Likewise.
	* sese.c (graphite_copy_stmts_from_block): Adjust.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
	fold_stmt.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(forward_propagate_addr_expr_1): adjust.
	(associate_plusminus): Likewise.
	(ssa_forward_propagate_and_combine): Likewise.
	* tree-ssa-mathopts.c (replace_reciprocal): Adjust.
	(execute_cse_reciprocals): Likewise.
	* tree-ssa.c (insert_debug_temp_for_var_def): Adjust.

2011-09-09  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_split_and_operand_count):
	Return a positive value to indicate that the bits at the
	bottom of the register should be cleared.

2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (swap_tree_operands): Always adjust
	existing operand positions.

2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50333
	* tree-data-ref.c (split_constant_offset): Do not try to handle
	ternary ops.

2011-09-08  Andrew Stubbs  <ams@codesourcery.com>

	PR tree-optimization/50318
	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
	typo in use of mult_rhs1 and mult_rhs2.

2011-09-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
	(standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.

2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.md (push_multi): Emit predicates.
	(push_fp_multi): Likewise.
	* config/arm/arm.c (vfp_output_fstmd): Likewise.

2011-09-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/33255 - Support -Wunused-local-typedefs warning
	* c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
	(pushdecl): Use the new record_locally_defined_typedef.
	(store_parm_decls): Allocate cfun->language.
	(finish_function): Use the new maybe_warn_unused_local_typedefs,
	and free cfun->language.
	(c_push_function_context): Allocate cfun->language here only if needed.
	(c_pop_function_context): Likewise, mark cfun->language
	for collection only when it should be done.
	* c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
	* c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
	maybe_record_local_typedef_use.
	* doc/invoke.texi: Update documentation for
	-Wunused-local-typedefs.

2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config/i386/i386-protos.h (ix86_lea_outperforms): New.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.

	* config/i386/i386.c (LEA_MAX_STALL): New.
	(increase_distance): Likewise.
	(insn_defines_reg): Likewise.
	(insn_uses_reg_mem): Likewise.
	(distance_non_agu_define_in_bb): Likewise.
	(distance_agu_use_in_bb): Likewise.
	(ix86_lea_outperforms): Likewise.
	(ix86_ok_to_clobber_flags): Likewise.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.
	(distance_non_agu_define): Search in pred BBs added.
	(distance_agu_use): Search in succ BBs added.
	(IX86_LEA_PRIORITY): Value changed from 2 to 0.
	(LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
	(ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.

	* config/i386/i386.md: Split added to transform non destructive
	add into move and add.
	(lea_1): transformed into insn_and_split to avoid AGU stalls.
	(lea<mode>_2): Likewise.

2011-09-08  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/50287
	* ipa-split.c (split_function): Do not create SSA names for
	non-gimple-registers.

2011-09-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
	skip builtins with vdefs that do not really store something.
	(propagate_necessity): For calls to free that we can associate
	with an allocation function do not mark the freed pointer
	definition necessary.
	(eliminate_unnecessary_stmts): Remove a call to free if
	the associated call to an allocation function is not necessary.

2011-09-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
	allocation functions as necessary.

2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin-driver.c (darwin_find_version_from_kernel): New routine
	cut from ...
	(darwin_default_min_version): Amended to provide defaults
	for the cross directory case.
	(darwin_driver_init): call darwin_default_min_version unconditionally.
	* config/darwin.h (DEF_MIN_OSX_VERSION): New.
	* config/darwin9.h: Likewise.
	* config/darwin10.h: Likewise.
	* config/rs6000/darwin7.h: Likewise.

2011-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/50310
	* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
	code early if TARGET_AVX.
	(ix86_expand_fp_vcond): Handle LTGT and UNEQ.

2011-09-07  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
	duplicates.

	PR target/50310
	* config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
	"mode" attribute computation.

2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>

	* regrename.c (struct du_head): Make nregs signed.
	(closed_chains): Remove.
	(create_new_chain): Return the new chain.
	(chain_from_id): New static function.
	(dump_def_use_chain): Change argument to be an int, indicating
	the first ID to print.  All callers changed.
	(merge_overlapping_regs): Use chain_from_id.  Assert that
	chains don't conflict with themselves.
	(rename_chains): Take no argument.  Iterate over id_to_chain
	rather to find chains to rename.  Clear tick before the main loop.
	(struct incoming_reg_info): New struct.
	(struct bb_rename_info): New struct.
	(init_rename_info, set_incoming_from_chain, merge_chains): New
	static functions.
	(regrename_analyze): New static function, broken out of
	regrename_optimize.  Record and make use of open chain information
	at basic block boundaries, and merge chains where possible.
	(scan_rtx_reg): Make this_nregs signed.  Don't update
	closed_chains.
	(build_def_use): Return a bool to indicate success.  All callers
	changed.  Don't initialize global data here.
	(regrename_optimize): Move most code out of here into
	regrename_analyze.
	* regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
	range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
	static inline functions.
	* vec.h (FOR_EACH_VEC_ELT_FROM): New macro.

	* bb-reorder.c (insert_section_boundary_note): Don't check
	optimize_function_for_speed_p.
	(gate_handle_partition_blocks): Do it here instead.
	(gate_handle_reorder_blocks): Move preliminary checks here ...
	(rest_of_handle_reorder_blocks): ... from here.

2011-09-07  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/50301
	* ipa-cp.c (find_more_values_for_callers_subset): Check jump
	function index bounds.
	(perhaps_add_new_callers): Likewise.

2011-09-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/49911
	* tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
	enumerations to the corresponding plain integer type.

2011-09-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50319
	* tree-if-conv.c (set_bb_predicate): Assert we only set
	canonical predicates.
	(add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
	around canonical predicates.
	(predicate_bbs): Do not re-gimplify already canonical
	predicates.  Properly unshare them though.
	(find_phi_replacement_condition): Simplify.

2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/49030
	* config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
	* config/arm/arm.c (maybe_get_arm_condition_code): New function,
	reusing the old code from get_arm_condition_code.  Return ARM_NV
	for invalid comparison codes.
	(get_arm_condition_code): Redefine in terms of
	maybe_get_arm_condition_code.
	* config/arm/predicates.md (arm_comparison_operator): Use
	maybe_get_arm_condition_code.

2011-09-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
	Canonicalize negated predicates by swapping edges.
	(forward_propagate_into_cond): Likewise.

2011-09-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50213
	* tree-flow.h (simple_iv_increment_p): Declare.
	* tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
	POINTER_PLUS_EXPR.
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
	not propagate simple IV counter increments.

2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
	    Iain Sandoe  <iains@gcc.gnu.org>

	* config/rs6000/rs6000.c (compute_save_world_info): Test
	cfun->has_nonlocal_label to determine if the out-of-line save
	world call may be used.

2011-09-07  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
	label on the parallel part of the insn.

2011-09-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/50191
	* dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
	avoid_constant_pool_reference first instead of last.

2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/configfiles.texi (Configuration Files): Update documentation
	about tm_p.h and remove FIXME comment.

2011-09-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
	(function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.

2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin10.h Remove duplicate LIB_SPEC.

2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>

	PR middle-end/44382
	* target.def (reassociation_width): New hook.

	* doc/tm.texi.in (reassociation_width): Likewise.

	* doc/tm.texi (reassociation_width): Likewise.

	* doc/invoke.texi (tree-reassoc-width): New param documented.

	* hooks.h (hook_int_uint_mode_1): New default hook.

	* hooks.c (hook_int_uint_mode_1): Likewise.

	* config/i386/i386.h (ix86_tune_indices): Add
	X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.

	(TARGET_REASSOC_INT_TO_PARALLEL): New.
	(TARGET_REASSOC_FP_TO_PARALLEL): Likewise.

	* config/i386/i386.c (initial_ix86_tune_features): Add
	X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.

	(ix86_reassociation_width): New function.

	* params.def (PARAM_TREE_REASSOC_WIDTH): New param added.

	* tree-ssa-reassoc.c (get_required_cycles): New function.
	(get_reassociation_width): Likewise.
	(swap_ops_for_binary_stmt): Likewise.
	(rewrite_expr_tree_parallel): Likewise.

	(rewrite_expr_tree): Refactored.  Part of code moved into
	swap_ops_for_binary_stmt.

	(reassociate_bb): Now checks reassociation width to be used and
	call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.

2011-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47025
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
	uses nothing.
	(call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
	BUILT_IN_FREE.
	(stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
	definitely points to.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	BUILT_IN_VA_START doesn't let its va_list argument escape.
	* tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
	not make any previous stores necessary.

2011-09-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline.h (struct inline_summary): Move versionable flag...
	* cgraph.h (struct cgraph_local_info): ...here
	* ipa-cp.c (determine_versionability): Use the new versionable flag.
	(determine_versionability): Likewise.
	(ipcp_versionable_function_p): Likewise.
	(ipcp_generate_summary): Likewise.
	* ipa-inline-analysis.c (dump_inline_summary): Do not dump the
	versionable flag.
	(compute_inline_parameters): Do not clear the versionable flag.
	(inline_read_section): Do not stream the versionable flag.
	(inline_write_summary): Likewise.
	* lto-cgraph.c (lto_output_node): Stream the versionable flag.
	(input_overwrite_node): Likewise.

2011-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48149
	* tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
	(vn_valueize): Move earlier.
	(valueize_expr): Use vn_valueize.
	(simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
	operands.
	(simplify_unary_expression): Simplify.

2011-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48317
	* tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
	trailing array.
	(sizeof_vn_nary_op): New inline function.
	(vn_nary_op_lookup_pieces): Adjust.
	(vn_nary_op_insert_pieces): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
	(init_vn_nary_op_from_pieces): Adjust signature.  Deal with
	any number of operands.
	(vn_nary_length_from_stmt): New function.
	(init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
	(vn_nary_op_lookup_pieces): Adjust signature and allocate properly
	sized temporary.
	(vn_nary_op_lookup): Likewise.
	(vn_nary_op_lookup_stmt): Likewise.
	(vn_nary_op_insert_into): Likewise.
	(vn_nary_op_insert_stmt): Likewise.
	(visit_use): Handle CONSTRUCTOR as nary.
	* tree-ssa-pre.c (phi_translate_1): Adjust.
	(create_expression_by_pieces): Likewise.
	(compute_avail): Likewise.

2011-09-06  Ira Rosen  <ira.rosen@linaro.org>

	 * config/arm/arm.c (arm_preferred_simd_mode): Check
	TARGET_NEON_VECTORIZE_DOUBLE instead of
	TARGET_NEON_VECTORIZE_QUAD.
	(arm_autovectorize_vector_sizes): Likewise.
	* config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
	mask of mvectorize-with-neon-double.  Add RejectNegative.
	(mvectorize-with-neon-double): New.

2011-09-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.

2011-09-06  Tom de Vries  <tom@codesourcery.com>

	* recog.c (asm_labels_ok): New function.
	(check_asm_operands): Use asm_labels_ok.

2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/49606
	* config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
	(PMODE_INSN): New macro.
	* config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
	(mips_got_load, mips_expand_synci_loop): Likewise.
	(mips_save_gp_to_cprestore_slot): Handle SImode and DImode
	cprestore patterns.
	(mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
	copygp_mips16 patterns.
	(mips_expand_prologue): Handle SImode and DImode potential_cprestore
	and use_cprestore patterns.
	(mips_override_options): Check for incompatible -mabi and -mlong
	combinations.
	* config/mips/mips.md (unspec_got<mode>): Rename to...
	(unspec_got_<mode>): ...this.
	(copygp_mips16): Use the Pmode iterator.
	(potential_cprestore, cprestore, use_cprestore): Likewise.
	(clear_cache, indirect_jump): Use PMODE_INSN.
	(indirect_jump<mode>): Rename to...
	(indirect_jump_<mode>): ...this.
	(tablejump): Use PMODE_INSN.
	(tablejump<mode>): Rename to...
	(tablejump_<mode>): ...this.
	(exception_receiver): Handle restore_gp_si and restore_gp_di.
	(restore_gp): Use the Pmode iterator.
	* config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
	PMODE_INSN.

2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
	Fix the type of the BIT_AND_EXPR.

2011-09-05  David S. Miller  <davem@davemloft.net>

	* config.host: Add driver-sparc.o and sparc/x-sparc on
	native sparc*-*-linux* builds.
	* config/sparc/driver-sparc.c: Correct Linux strings.
	* config/sparc/linux.h: Add DRIVER_SELF_SPECS.
	* config/sparc/linux64.h: Likewise.
	* doc/invoke.texi: Document that Linux also supports
	-mcpu=native and -mtune=native on sparc.

	* config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
	PROCESSOR_NIAGARA4): New.
	* config/sparc/sparc.opt: Handle new processor types.
	* config/sparc/sparc.md: Add to "cpu" attribute.
	* config/sparc/sparc.h (TARGET_CPU_niagara3,
	TARGET_CPU_niagara4): New, treat as niagara2.
	* config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/niagara2.md: Schedule niagara3 like niagara2.
	* config/sparc/sparc.c (sparc_option_override): Add
	niagara3 and niagara4 handling.
	(sparc32_initialize_trampoline): Likewise.
	(sparc64_initialize_trampoline): Likewise.
	(sparc_use_sched_lookahead): Likewise.
	(sparc_issue_rate): Likewise.
	(sparc_register_move_cost): Likewise.
	* config/sparc/driver-sparc.c (cpu_names): Use niagara3
	and niagara4 as appropriate.
	* doc/invoke.texi: Document new processor types.
	* config.gcc: Recognize niagara3 and niagara4 in --with-cpu
	and --with-tune options.

	* config/sparc/sol2-64.h: Move ...
	* config/sparc/default-64.h: ... to here.  Update comment.
	* config.gcc: Update Solaris sparc to use default-64.h, also
	prefix this header into the list on sparc64-*-linux.
	* config/sparc/linux64.h (TARGET_DEFAULT): Only override if
	TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
	to MASK_HARD_QUAD.

2011-09-05  Georg-Johann Lay  <avr@gjlay.de>

	PR target/50289
	* config/avr/avr.c (sequent_regs_live): Don't recognize sequences
	that contain global register variable.

2011-09-05  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.

2011-09-05  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (layout_type): Use size_binop for array size
	calculations.

2011-09-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (progmem_section): Remove Declaration.
	* config/avr/avr.c (progmem_section): Make static and rename to
	progmem_swtable_section.
	(avr_output_addr_vec_elt): No need to switch sections.
	(avr_asm_init_sections): Use output_section_asm_op as section
	callback for progmem_swtable_section.
	(avr_output_progmem_section_asm_op): Remove Function.
	(TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
	(avr_asm_function_rodata_section): New static Function.
	* config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
	alignment 2**1 for jump tables.

2011-09-04  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
	parameter is SSA name.

2011-09-04  Richard Guenther  <rguenther@suse.de>

	Revert
	2011-08-31  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
	special-casing.

2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>

	PR debug/49901
	* config/darwin.h (DEBUG_MACRO_SECTION): New macro.

2011-09-04  Jakub Jelinek  <jakub@redhat.com>
	    Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50208
	* tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
	argument.  Check that def_stmt is inside the loop.
	(vect_recog_widen_mult_pattern): Update calls to
	vect_handle_widen_mult_by_cons.
	(vect_operation_fits_smaller_type): Check that def_stmt is
	inside the loop.

2011-09-04  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vectorizer.c (vect_print_dump_info): Print line
	number when dumping to a file.
	(vectorize_loops): Add new messages to dump file.

2011-09-03  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_jump_func_t): New typedef.
	(struct ipa_edge_args): Removed field argument_count, field
	jump_functions turned into a vector.
	(ipa_set_cs_argument_count): Removed.
	(ipa_get_cs_argument_count): Updated to work on vectors.
	(ipa_get_ith_jump_func): Likewise.
	* ipa-prop.c (ipa_count_arguments): Removed.
	(compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
	jump functions.  Update caller.
	(compute_pass_through_member_ptrs): Likewise.
	(compute_cst_member_ptr_arguments): Likewise.
	(ipa_compute_jump_functions_for_edge): Get number of arguments from
	the statement, allocate vector.
	(ipa_compute_jump_functions): Do not call ipa_count_arguments.
	(duplicate_ipa_jump_func_array): Removed.
	(ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
	(ipa_read_node_info): Allocate vector.

2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/50232
	* config/pa/pa.md (return): Define "return" insn pattern.
	(epilogue): Use it when no epilogue is needed.
	* config/pa/pa.c (pa_can_use_return_insn): New function.
	* config/pa/pa-protos.h (pa_can_use_return_insn): Declare.

2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
	* tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
	Force at least BITS_PER_UNIT alignment on the new variable.

2011-09-02  Gary Funck <gary@intrepid.com>

	* opts.c (print_specific_help): Fix off-by-one compare in
	assertion check.
	* opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
	CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
	Increase by +5 to allow for more languages.
	* optc-gen.awk: Generate #if that ensures that the number of
	languages is within the implementation-defined limit.

2011-09-02  Michael Matz  <matz@suse.de>

	PR middle-end/50260
	* ipa-split.c (split_function): Call add_referenced_var.

	* tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
	(cond_if_else_store_replacement_1): Ditto.
	* tree-ssa-pre.c (get_representative_for): Ditto.
	(create_expression_by_pieces): Ditto.
	(insert_into_preds_of_block): Ditto.
	* tree-sra.c (create_access_replacement): Ditto.
	(get_replaced_param_substitute): Ditto.

2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>

	* config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
	automata_options.
	(d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
	(l1w, s1w, l2w, s2w): Define in the main automaton.
	(fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
	units.
	* config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
	(c6x_unit_names): Add the new units.
	(c6x_unit_codes): New static array.
	(UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
	UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
	UNIT_QID_SIDE_OFFSET): New macros.
	(RESERVATION_S2): Adjust value.
	(c6x_option_override): Compute c6x_unit_codes.
	(assign_reservations): Take the unit_mask of the last instruction
	into account.  Detect floating point reservations by looking for
	the new units.  Don't assign reservations if the field is already
	nonzero.
	(struct c6x_sched_context): Add member prev_cycle_state_ctx.
	(init_sched_state): Initialize it.
	(c6x_clear_sched_context): Free it.
	(insn_set_clock): Clear reservation.
	(prev_cycle_state): New static variable.
	(c6x_init_sched_context): Save it.
	(c6x_sched_init): Allocate space for it and clear it.
	(c6x_sched_dfa_pre_cycle_insn): New static function.
	(c6x_dfa_new_cycle): Save state at the start of a new cycle.
	(c6x_variable_issue): Only record units in the unit_mask that
	were not set at the start of the cycle.
	(c6x_variable_issue): Compute and store the unit_mask from the
	current state.
	(reorg_split_calls): Ensure the new information remains correct.
	(TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
	TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
	* config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
	* config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
	Add special reservations.
	* config/c6x/c6x-sched.md: Regenerate.

2011-09-02  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_node_params): Removed fields
	called_with_var_arguments and node_versionable.
	(ipa_set_called_with_variable_arg): Removed.
	(ipa_is_called_with_var_arguments): Likewise.
	* ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
	(determine_versionability): Do not check for type attributes and va
	builtins.  Record versionability into inline summary.
	(initialize_node_lattices): Do not check
	ipa_is_called_with_var_arguments.
	(propagate_constants_accross_call): Likewise, ignore arguments we do
	not have PARM_DECLs for, set variable flag for parameters that were
	not passed a value.
	(create_specialized_node): Dump info that we cannot change signature.
	* ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
	number of arguments.
	(ipa_make_edge_direct_to_target): Likewise.
	(ipa_update_after_lto_read): Likewise.
	(ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
	* tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
	they were remapped.

2011-09-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/27460
	PR middle-end/29269
	* doc/md.texi (vcond): Document.
	* genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
	optab with two modes.
	* optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
	(enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
	(vcond_optab): Adjust.
	(vcondu_optab): Likewise.
	(expand_vec_cond_expr_p): Adjust prototype.
	* optabs.c (get_vcond_icode): Adjust.
	(expand_vec_cond_expr_p): Likewise.
	(expand_vec_cond_expr): Likewise.
	* tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
	vector type.
	(vectorizable_condition): Allow differing types for comparison
	and result.
	* config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
	for the comparison.
	* config/i386/sse.md (vcond<mode>): Split to
	vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
	vcond<V_128:mode><VI124_128:mode> and
	vcondu<V_128:mode><VI124_128:mode>.
	(vcondv2di): Change to vcond<VI8F_128:mode>v2di.
	(vconduv2di): Likewise.
	* config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
	(vcondu<mode>): Likewise.
	* config/ia64/vect.md (vcond<mode>): Likewise.
	(vcondu<mode>): Likewise.
	(vcondv2sf): Likewise.
	* config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
	* config/rs6000/paired.md (vcondv2sf): Likewise.
	* config/rs6000/vector.md (vcond<mode>): Likewise.
	(vcondu<mode>): Likewise.
	* config/spu/spu.md (vcond<mode>): Likewise.
	(vcondu<mode>): Likewise.

2011-09-02  Richard Guenther  <rguenther@suse.de>

	* pretty-print.h (pp_unsigned_wide_integer): New.
	* tree-pretty-print.c (dump_generic_node): Print unsigned
	host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.

2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/49987
	* config/rs6000/rs6000.c (paired_expand_vector_init): Check for
	valid CONST_VECTOR operands.
	(rs6000_expand_vector_init): Likewise.

2011-09-02  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
	BINFO_VTABLE.  Parameter delta removed, all callers updated.
	* tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
	BINFO_VTABLE.
	* cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
	all calls.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
	handling of thunk_delta.
	* ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
	(devirtualization_time_bonus): Do not handle thunk deltas.
	(ipcp_discover_new_direct_edges): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	(try_make_edge_direct_simple_call): Likewise.
	(try_make_edge_direct_virtual_call): Likewise.
	* lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
	parameter set as unused.
	(output_edge_opt_summary): Likewise.  Mark both parameters as unused.
	* lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
	parameter set as unused.
	(output_edge_opt_summary): Likewise.  Mark both parameters as unused.
	(input_edge_opt_summary): Likewise.
	* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
	BINFO_VIRTUALS at all.
	* lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.

2011-09-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
	(ccp_fold_stmt): Continue replacing args when folding alloca fails.

2011-08-31  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
	handling here, from ...
	(expand_expr_real_1): ... here.
	* gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
	and VEC_COND_EXPR.
	* gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
	a GIMPLE_TERNARY_RHS.
	* tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
	and VEC_COND_EXPR here ...
	(verify_gimple_assign_single): ... not here.
	* gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
	* tree-object-size.c (cond_expr_object_size): Adjust.
	(collect_object_sizes_for): Likewise.
	* tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
	* tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
	(ssa_forward_propagate_and_combine): Adjust.
	* tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
	as ternary.
	* tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
	* tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
	* tree-vect-stmt.c (vectorizable_condition): Likewise.
	* tree-vrp.c (extract_range_from_cond_expr): Likewise.
	(extract_range_from_assignment): Likewise.

2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/i386/i386.md: Use (match_test ...) for attribute tests.
	* config/i386/mmx.md: Likewise.
	* config/i386/sse.md: Likewise.
	* config/i386/predicates.md (call_insn_operand): Use
	(not (match_test "...")) instead of (match_test "!...")
	* config/i386/constraints.md (w): Likewise.

2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Describe the use of match_tests in attribute tests.
	* rtl.def (MATCH_TEST): Update commentary.
	* genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
	(write_test_expr, walk_attr_value): Handle MATCH_TEST.

2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
	(attr_string): Use copy_md_ptr_loc.

2011-08-31  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/49886
	* ipa-inline-analysis.c (compute_inline_parameters): Set
	can_change_signature of noes with typde attributes.
	* ipa-split.c (split_function): Do not skip any arguments if
	can_change_signature is set.

2011-08-31  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
	check removed.

2011-08-31  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
	special-casing.

2011-08-31  Marc Glisse  <marc.glisse@inria.fr>

	* doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.

2011-08-31  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43513
	* Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
	* tree-ssa-ccp.c (params.h): Include.
	(fold_builtin_alloca_for_var): New function.
	(ccp_fold_stmt): Use fold_builtin_alloca_for_var.

2011-08-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_valid_target_attribute_inner_p):
	Handle FMA option.

2011-08-30  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
	b3 and b4 unsigned.

2011-08-30  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (arm_gen_constant): Set can_negate correctly
	when code is SET.

2011-08-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48571
	* gimple.h (maybe_fold_offset_to_address): Remove.
	(maybe_fold_offset_to_reference): Likewise.
	(maybe_fold_stmt_addition): Likewise.
	(may_propagate_address_into_dereference): Likewise.
	* tree-inline.c (remap_gimple_op_r): Do not reconstruct
	array references.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
	addresses instead.
	(may_propagate_address_into_dereference): Remove.
	(maybe_fold_offset_to_array_ref): Likewise.
	(maybe_fold_offset_to_reference): Likewise.
	(maybe_fold_offset_to_address): Likewise.
	(maybe_fold_stmt_addition): Likewise.
	(fold_gimple_assign): Do not reconstruct array references but
	instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
	MEM_REF addresses.
	(gimple_fold_stmt_to_constant_1): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	* gimplify.c (gimplify_conversion): Likewise.
	(gimplify_expr): Likewise.

2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/fmaintrin.h: New.
	* config.gcc: Add fmaintrin.h.
	* config/i386/i386.c
	(enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
	<IX86_BUILTIN_VFMADDSD3>: Likewise.
	* config/i386/sse.md (fmai_vmfmadd_<mode>): New.
	(*fmai_fmadd_<mode>): Likewise.
	(*fmai_fmsub_<mode>): Likewise.
	(*fmai_fnmadd_<mode>): Likewise.
	(*fmai_fnmsub_<mode>): Likewise.
	* config/i386/immintrin.h: Add fmaintrin.h.

2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>

	* genautomata.c (NO_COMB_OPTION): New macro.
	(no_comb_flag): New static variable.
	(gen_automata_option): Handle NO_COMB_OPTION.
	(comb_vect_p): False if no_comb_flag.
	(add_vect): Move computation of min/max values.  Return early if
	no_comb_flag.
	* doc/md.texi (automata_option): Document no-comb-vect.

	* config/i386/i386.c (get_pc_thunk_name): Change prefix to
	"__x86.get_pc_thunk".

	* bb-reorder.c (insert_section_boundary_note): Only do it if
	we reordered the blocks; i.e. not if !optimize_function_for_speed_p.

2011-08-30  Christian Bruel  <christian.bruel@st.com>

	* coverage.c (coverage_init): Check flag_branch_probabilities instead of
	flag_profile_use.

2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
	to off.  Document switch.
	* doc/invoke.texi (-msave-toc-indirect): Ditto.

2011-08-29  Jakub Jelinek  <jakub@redhat.com>

	* gthr-posix.h (__gthread_active_p): Do not use preprocessor
	conditionals and comments inside macro arguments.

2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
	    Richard Guenther  <rguenther@suse.de>

	* tree.h (constant_boolean_node): Adjust prototype.
	* fold-const.c (fold_convert_loc): Move aggregate conversion
	leeway down.
	(constant_boolean_node): Make value parameter boolean, add
	vector type handling.
	(fold_unary_loc): Use constant_boolean_node.
	(fold_binary_loc): Preserve types properly when folding
	COMPLEX_EXPR <__real x, __imag x>.
	* gimplify.c (gimplify_expr): Handle vector comparison.
	* tree.def (EQ_EXPR, ...): Document behavior on vector typed
	comparison.
	* tree-cfg.c (verify_gimple_comparison): Verify vector typed
	comparisons.

2011-08-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48722
	* emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
	reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
	(verify_rtl_sharing): Likewise and verify_rtx_sharing
	in there too.
	(unshare_all_rtl_in_chain): For CALL_INSNs
	copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.

2011-08-29  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
	on the built ADDR_EXPR.

2011-08-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/50215
	* var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
	before adding ENTRY_VALUE to val->locs.

2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>

	PR bootstrap/50218
	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
	comp.

2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/rtl.texi (simple_return): Document.
	(parallel, PATTERN): Here too.
	* doc/md.texi (return): Mention it's allowed to expand to simple_return
	in some cases.
	(simple_return): Document standard pattern.
	* gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
	* final.c (final_scan_insn): Use ANY_RETURN_P on body.
	* reorg.c (function_return_label, function_simple_return_label):
	New static variables, replacing...
	(end_of_function_label): ... this.
	(simplejump_or_return_p): New static function.
	(optimize_skip, steal_delay_list_from_fallthrough,
	fill_slots_from_thread): Use it.
	(relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
	(rare_destination, follow_jumps): Use ANY_RETURN_P on body.
	(find_end_label): Take a new arg which is one of the two return
	rtxs.  Depending on which, set either function_return_label or
	function_simple_return_label.  All callers changed.
	(make_return_insns): Make both kinds.
	(dbr_schedule): Adjust for two kinds of end labels.
	* function.c (emit_return_into_block): Set JUMP_LABEL properly.
	* genemit.c (gen_exp): Handle SIMPLE_RETURN.
	(gen_expand, gen_split): Use ANY_RETURN_P.
	* df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
	* rtl.def (SIMPLE_RETURN): New code.
	* ifcvt.c (find_if_case_1): Be more careful about
	redirecting jumps to the EXIT_BLOCK.
	* jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
	returnjump_p_1): Handle SIMPLE_RETURNs.
	* print-rtl.c (print_rtx): Likewise.
	* rtl.c (copy_rtx): Likewise.
	* bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
	* combine.c (simplify_set): Likewise.
	* resource.c (find_dead_or_set_registers, mark_set_resources):
	Likewise.
	* emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
	copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
	(init_emit_regs): Initialize simple_return_rtx.
	* cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
	force_nonfallthru_and_redirect.
	* rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
	(GR_SIMPLE_RETURN): New enum value.
	(simple_return_rtx): New macro.
	* basic-block.h (force_nonfallthru_and_redirect): Adjust
	declaration.
	* cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
	argument.  All callers changed.  Be careful about what kinds of
	returnjumps to generate.
	* config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
	ix86_pad_short_function): Likewise.
	* config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
	of return.
	* config/mips/mips.md (any_return): New code_iterator.
	(optab): Add cases for return and simple_return.
	(return): Expand to a simple_return.
	(simple_return): New pattern.
	(*<optab>, *<optab>_internal for any_return): New patterns.
	(return_internal): Remove.
	* config/mips/mips.c (mips_expand_epilogue): Make the last insn
	a simple_return_internal.

2011-08-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*absneg<mode>2): Fix split condition.
	(vec_extract_lo_<mode>): Prevent both operands in memory.
	(vec_extract_lo_v16hi): Ditto.
	(*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.

2011-08-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
	(*sse2_mulv4si3): Ditto.
	(mulv2di3): Ditto.
	* config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
	notes to REG_EQUAL.

2011-08-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50202
	* config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
	when all outputs are unused.
	(sse4_2_pcmpistr): Ditto.

2011-08-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (round<mode>2): New expander.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
	(struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
	descriptions.
	(ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
	(ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.

2011-08-26  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/50083
	* convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
	only when TARGET_C99_FUNCTIONS.
	<BUILT_IN_NEARBYINT{,F,L}>: Ditto.
	<BUILT_IN_RINT{,F,L}>: Ditto.

2011-08-26  Michael Matz  <matz@suse.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR lto/50165
	* lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
	don't call strlen twice, use memcpy.

2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/bmi2intrin.h: Allow in <immintrin.h>.
	* config/i386/bmiintrin.h: Likewise.
	* config/i386/lzcntintrin.h: Likewise.

	* config/i386/immintrin.h: Include <lzcntintrin.h>,
	<bmiintrin.h> and <bmi2intrin.h>.

2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/50166
	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
	* configure: Regenerate.

2011-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/50179
	* c-typeck.c (c_process_expr_stmt): Skip over nops and
	call mark_exp_read even if exprv is ADDR_EXPR.

2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>

	* df-problems.c (df_note_bb_compute): Pass uses rather than defs
	to df_set_dead_notes_for_mw.

2011-08-26  Richard Guenther  <rguenther@suse.de>

	* varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].

2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
	    Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
	(struct ivopts_data): Add loop_single_exit_p field.
	(niter_for_exit): Change parameter desc_p into return value.  Return
	desc if	desc->may_be_zero.  Free desc if unused.
	(niter_for_single_dom_exit): Change return type.
	(find_induction_variables): Handle changed return type of
	niter_for_single_dom_exit.  Dump may_be_zero.
	(add_candidate_1): Keep original base and step type for IP_ORIGINAL.
	(set_use_iv_cost): Add and handle comp parameter.
	(determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
	comp argument to set_use_iv_cost.
	(strip_wrap_conserving_type_conversions, expr_equal_p)
	(difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
	(may_eliminate_iv): Add comp parameter.  Handle new return type of
	niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
	(determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
	and may_eliminate_iv.
	(rewrite_use_compare): Move call to iv_elimination_compare to ...
	(may_eliminate_iv): Here.
	(tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.

2011-08-26  Tom de Vries  <tom@codesourcery.com>

	* tree-pretty-print (dump_generic_node): Test for NULL_TREE before
	accessing TREE_TYPE.

2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>

	* config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
	(*ior_scc_scc_cmp): Likewise
	(*and_scc_scc): Likewise.
	(*and_scc_scc_cmp): Likewise.
	(*and_scc_scc_nodom): Likewise.
	(*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.

2011-08-26  Jakub Jelinek  <jakub@redhat.com>

	* rtlanal.c (nonzero_bits1): Handle CLRSB.

2011-08-26  Richard Guenther  <rguenther@suse.de>

	* expr.c (string_constant): Handle &MEM_REF.

2011-08-26  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (struct four_ints): New type.
	(count_insns_for_constant): Delete function.
	(find_best_start): Delete function.
	(optimal_immediate_sequence): New function.
	(optimal_immediate_sequence_1): New function.
	(arm_gen_constant): Move constant splitting code to
	optimal_immediate_sequence.
	Rewrite constant negation/invertion code.

2011-08-26  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm-protos.h (const_ok_for_op): Add prototype.
	* config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
	Remove prototype. Remove static function type.
	* config/arm/arm.md (*arm_addsi3): Add addw/subw support.
	Add arch attribute.
	* config/arm/constraints.md (Pj, PJ): New constraints.

2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
	("cortex_a9_multiply_long"): New and use above.  Handle all
	long multiply cases.
	("cortex_a9_multiply"): Handle smmul and smmulr.
	("cortex_a9_mac"): Handle smmla.

2011-08-25  Richard Henderson  <rth@redhat.com>

	PR 50132
	PR 49864
	* cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
	non-constant stack adjutment.
	* expr.c (find_args_size_adjust): Break out from ...
	(fixup_args_size_notes): ... here.
	* rtl.h (find_args_size_adjust): Declare.

2011-08-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
	sse4 and sse4_noavx.
	(enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
	(*pushdf_rex64): Change Y2 register constraint to x.
	(*movdf_internal_rex64): Ditto.
	(*zero_extendsidi2_rex64): Ditto.
	(*movdi_internal): Change Y2 register constraint to x
	and update "isa" attribute.
	(*pushdf): Ditto.
	(*movdf internal): Ditto.
	(zero_extendsidi2_1): Ditto.
	(*truncdfdf_mixed): Ditto.
	(*truncxfdf2_mixed): Ditto.
	* config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
	register constraint to x.
	(*movv2sf_internal_rex64): Ditto.
	(*mov<mode>_internal): Change Y2 register constraint to x
	and add "isa" attribute.
	(*movv2sf_internal): Ditto.
	(*vec_extractv2si_1): Ditto.
	* config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
	constraints to x and update "isa" attribute.
	(*vec_interleave_highv2df): Change Y3 registerconstraint
	to x and update "isa" attribute.
	(*vec_interleave_lowv2df): Ditto.
	(*vec_concatv2df): Change Y2 register constraint to x and
	update "isa" attribute.
	(sse2_loadld): Ditto.
	(*vec_extractv2di_1): Ditto.
	(*vec_dupv4si): Ditto.
	(*vec_dupv2di): Ditto.
	(*vec_concatv4si): Ditto.
	(vec_concatv2di): Ditto.
	* config/i386/constraints.md (Y2): Remove.
	(Y3): Ditto.
	(Y4): Ditto.

2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>

	* regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
	dump_def_use_chain): Don't declare.
	(mark_conflict, create_new_chain): Move before users.
	(regrename_optimize): Move to near end of file.

2011-08-25  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr-protos.h (byte_immediate_operand): Remove Prototype.
	(secondary_input_reload_class): Remove Prototype.
	* config/avr/avr.c (byte_immediate_operand): Remove Function.
	* config/avr/avr.md (setmemhi): Use u8_operand.
	(strlenhi): Use const0_rtx for comparison.
	* config/avr/avr.h (avr_reg_order): Remove Declaration.

2011-08-25  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (reg_class_tab): Make local to
	avr_regno_reg_class.  Return smallest register class available.

2011-08-25  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (STR_PREFIX_P): New Define.
	(avr_asm_declare_function_name): Use it.
	(avr_asm_named_section): Use it.
	(avr_section_type_flags): Use it.

2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/md.texi (automata_option): Document collapse-ndfa.
	* genautomata.c (COLLAPSE_OPTION): New macro.
	(collapse_flag): New static variable.
	(struct description): New member normal_decls_num.
	(struct automaton): New members advance_ainsn and collapse_ainsn.
	(gen_automata_option): Check for COLLAPSE_OPTION.
	(collapse_ndfa_insn_decl): New static variable.
	(add_collapse_ndfa_insn_decl, special_decl_p): New functions.
	(find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
	(transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
	necessary.  Use normal_decls_num rather than decls_num, remove
	test for special decls.
	(create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
	(make_automaton); Likewise.  Use the new advance_cycle_insn member
	of struct automaton.
	(create_composed_state): Disallow advance-cycle arcs if collapse_flag
	is set.
	(NDFA_to_DFA): Don't create composed states for the collapse-ndfa
	transition.  Create the necessary transitions for it.
	(create_ainsns): Return void.  Take an automaton_t argument, and
	update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
	callers changed.
	(COLLAPSE_NDFA_VALUE_NAME): New macro.
	(output_tables): Output code to define it.
	(output_internal_insn_code_evaluation): Output code to accept
	const0_rtx as collapse-ndfa transition.
	(output_default_latencies, output_print_reservation_func,
	output_print_description): Reorganize loops to use normal_decls_num
	as loop bound; remove special case for advance_cycle_insn_decl.
	(initiate_automaton_gen): Handle COLLAPSE_OPTION.
	(check_automata_insn_issues): Check for collapse_ainsn.
	(expand_automate): Allocate sufficient space.  Initialize
	normal_decls_num.

2011-08-25  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Fix indentation from r177991.

2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>

	* regrename.c (struct du_head): Remove member terminated.
	(create_new_chain): Don't initialize it.
	(scan_rtx_reg): Don't set or test it, test the open_chains_set
	bitmap instead.
	(tick, this_tick): New global variables, moved out of
	regrename_optimize.
	(current_id, open_chains, closed_chains, open_chains_set,
	live_in_chains, live_hard_regs): Reorder declarations.
	(dump_def_use_chain): Move function earlier in the file.
	(rename_chains): New static function, broken out of
	regrename_optimize.
	(regrename_optimize): Use it.  Remove #if 0'ed code.

2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* varasm.c: (default_binds_local_p_1): Commentary typo fix.

2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/50172
	* config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.

2011-08-24  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
	ref in the basic-block case.  Move stripping array-refs
	to the place we create an access-function for it.  Remove
	bogus stripping down a MEM_REF to its base.

2011-08-24  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Fold &a < &a + 4 even
	with -fno-strict-overflow.

2011-08-24  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.c (vect_print_dump_info): Avoid the
	file and location clutter when dumping to dump files.

2011-08-24  Simon Baldwin  <simonb@google.com>

	* gengtype-state.c (write_state): Remove timestamped header line.

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
	(CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
	(CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
	(CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
	(collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
	(c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
	(intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
	rules.
	(lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).

2011-08-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50067
	* tree-data-ref.c (dr_analyze_indices): Do not add an access
	function for a MEM_REF base that has no evolution in the loop
	nest or that is not analyzable.

2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>

	* ira.c (ira_init_register_move_cost): Check small subclasses
	through ira_reg_class_max_nregs and ira_available_class_regs.

2011-08-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Yp): New register constraint.
	* config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
	Yp register constraint.
	(*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
	(*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
	(*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.

2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (<s>mul<mode>3_highpart): Update.

2011-08-23  Mark Heffernan  <meheff@google.com>

	PR middle-end/38509
	* common.opt (Wfree-nonheap-object): New option.
	* doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
	* builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
	to warning.
	(expand_builtin): Make warning conditional.

2011-08-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
	(length_immediate): Handle imulx, ishiftx and rotatex.
	(imm_disp): Ditto.
	(isa): Add bmi2.
	(enabled): Handle bmi2.
	(*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
	(*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
	(*bmi2_umulditi3_1): New insn pattern.
	(*bmi2_umulsidi3_1): Ditto.
	(*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
	(*bmi2_ashl<mode>3_1): New insn pattern.
	(*ashl<mode>3_1): Add ishiftx BMI2 alternative.
	(*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
	(*bmi2_ashlsi3_1_zext): New insn pattern.
	(*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
	(*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
	(*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
	(*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
	(*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
	flags dependency.
	(*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
	(*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
	(*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
	flags dependency.
	(*bmi2_rorx<mode>3_1): New insn pattern.
	(*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
	(*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
	(*rotatert<mode>3_1 splitter): Ditto.
	(*bmi2_rorxsi3_1_zext): New insn pattern.
	(*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
	(*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
	(*rotatertsi3_1_zext splitter): Ditto.

2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
	(OPTION_MASK_ISA_BMI2_UNSET): Likewise.
	(ix86_handle_option): Handle OPT_mbmi2 case.
	* config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/bmi2intrin.h: New file.
	* config/i386/cpuid.h (bit_BMI2): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	BMI2 feature.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Conditionally define __BMI2__.
	* config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
	Handle BMI2 option.
	(ix86_valid_target_attribute_inner_p): Handle BMI2 option.
	(print_reg): New code.
	(ix86_print_operand): Likewise.
	(ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
	IX86_BUILTIN_PEXT64.
	(bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
	IX86_BUILTIN_PEXT64.
	* config/i386/i386.h (TARGET_BMI2): New.
	* config/i386/i386.md (UNSPEC_PDEP): New.
	(UNSPEC_PEXT): Likewise.
	(*bmi2_bzhi_<mode>3): Likewise.
	(*bmi2_pdep_<mode>3): Likewise.
	(*bmi2_pext_<mode>3): Likewise.
	* config/i386/i386.opt (mbmi2): New.
	* config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
	is defined.
	* doc/extend.texi: Document BMI2 built-in functions.
	* doc/invoke.texi: Document -mbmi2.

2011-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/50161
	* simplify-rtx.c (simplify_const_unary_operation): If
	op is CONST_INT, don't look at op_mode, but use instead mode.
	* optabs.c (add_equal_note): For FFS, CLZ, CTZ,
	CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
	operation and TRUNCATE/ZERO_EXTEND if needed.
	* doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
	Document that operand mode must be same as operation mode,
	or VOIDmode.
	* config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
	*paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
	*popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
	*ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
	use the mode of operand for the operation and add truncate
	or zero_extend around if needed.
	* config/c6x/c6x.md (ctzdi2): Likewise.
	* config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.

2011-08-12  Michael Matz  <matz@suse.de>

	* cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
	(gimple_expand_cfg): Merge alignment info for coalesced pointer
	SSA names.

2011-08-23  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
	* tree-affine.h (aff_comb_cannot_overlap_p): Declare.
	* tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
	from ...
	* tree-ssa-loop-im.c (cannot_overlap_p): ... here.
	(mem_refs_may_alias_p): Adjust.
	* tree-data-ref.h (dr_may_alias_p): Adjust.
	* tree-data-ref.c: Include tree-affine.h.
	(dr_analyze_indices): Do nothing for the non-loop case.
	(dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
	more cases in the non-loop case.
	* graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
	calls to dr_may_alias_p.
	(write_alias_graph_to_ascii_ecc): Likewise.
	(write_alias_graph_to_ascii_dot): Likewise.
	(build_alias_set_optimal_p): Likewise.

2011-08-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50162
	* tree-vect-stmts.c (vectorizable_call): Fix argument lookup.

2011-08-23  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (dr_analyze_indices): Add comments, handle
	REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
	(create_data_ref): Also dump access functions for the created data-ref.

2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/50155
	* config/i386/sse.md (VI_AVX2): New.
	(<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
	(*<plusminus_insn><mode>3): Ditto.
	(<sse2_avx2>_andnot<mode>3): Ditto.
	(*andnot<mode>3): Fix order of cond operands.
	Add asserts for correct TARGET_xxx.
	(*<any_logic:code><mode>3): Ditto.

2011-08-22  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
	* config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
	* config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
	regclass argument type to reg_class_t. Change 'max' and 'v' vars
	and return types to unsigned char. Use reg_class_contents instead
	of class_contents.
	(TARGET_CLASS_MAX_NREGS): Define.

2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>

	* config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
	to make computed_jump_p return true.

2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
	(PICFLAG_FOR_TARGET): Substitute.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2011-08-22  Dodji Seketeli  <dodji@redhat.com>

	* c-family/c-pch.c (c_common_read_pch): Re-set line table right
	after reading in the pch.

2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>

	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
	* configure: Regenerated.

2011-08-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/50133
	* tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
	from stmt instead of some statement around gsi.

	PR middle-end/50141
	* expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
	innerdecl is a VAR_DECL.

2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx2intrin.h: New file.
	* config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
	PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
	V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
	V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
	V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
	V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
	V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
	V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
	V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
	V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
	V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
	V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
	V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
	V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
	V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
	V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
	V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
	V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
	VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
	VOID_FTYPE_PV8SI_V8SI_V8SI,
	V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
	V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
	V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
	V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
	V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
	V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
	V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
	V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
	V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
	V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
	V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
	V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
	V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
	V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
	V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
	V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
	V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
	V4DI_FTYPE_V4DI_INT_CONVERT,
	V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
	IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
	IX86_BUILTIN_VBROADCASTSS_PS256,
	IX86_BUILTIN_VBROADCASTSD_PD256,
	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
	IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
	IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
	IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
	IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
	IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
	IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
	IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
	IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
	(bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
	(bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
	IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
	IX86_BUILTIN_VBROADCASTSD_PD256,
	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
	(ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
	IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
	IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
	IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
	IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
	IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
	IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
	IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
	IX86_BUILTIN_GATHERDIV8SI.
	(ix86_preferred_simd_mode): Support AVX2 modes.
	(ix86_expand_args_builtin): Support AVX2 builtins.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.
	* config/i386/i386.md (UNSPEC_VPERMSI): New.
	(UNSPEC_VPERMDF): Likewise.
	(UNSPEC_VPERMSF): Likewise.
	(UNSPEC_VPERMDI): Likewise.
	(UNSPEC_VPERMTI): Likewise.
	(UNSPEC_GATHER): Likewise.
	(ssemodesuffix): Extend.
	* config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
	is defined.
	* config/i386/predicates.md (const1248_operand): New.
	* config/i386/sse.md (VI1_AVX2): New mode iterator.
	(VI2_AVX2): Likewise.
	(VI4_AVX2): Likewise.
	(VI8_AVX2): Likewise.
	(VIMAX_AVX2): Likewise.
	(SSESCALARMODE): Likewise.
	(VI12_AVX2): Likewise.
	(VI24_AVX2): Likewise.
	(VI124_AVX2): Likewise.
	(VI248_AVX2): Likewise.
	(VI48_AVX2): Likewise.
	(VI4SD_AVX2): Likewise.
	(V48_AVX2): Likewise.
	(AVX256MODE2P): Likewise.
	(AVXMODE48P_DI): Likewise.
	(sse2_avx2): New mode attribute.
	(ssse3_avx2): Likewise.
	(sse4_1_avx2): Likewise.
	(avx_avx2): Likewise.
	(ssebytemode): Likewise.
	(AVXTOSSEMODE): Likewise.
	(AVXMODE48P_DI): Likewise.
	(gthrfirstp): Likewise.
	(gthrlastp): Likewise.
	(lshift): New code_iterator
	(lshift): New code attribute.
	(lshift): Likewise.
	(ssescalarmodesuffix): Update.
	(sseunpackmode): Likewise.
	(ssepackmode): Likewise.
	(avx2_vec_dupv4sf): New insn pattern.
	(avx2_vec_dupv8sf): Likewise.
	(avx2_interleave_highv4di): Likewise.
	(avx2_interleave_lowv4di): Likewise.
	(avx2_umulv4siv4di3): Likewise
	(*avx2_umulv4siv4di3): Likewise
	(avx2_pmaddwd): Likewise.
	(*avx2_pmaddwd): Likewise.
	(avx2_lshrqv4di3): Likewise.
	(avx2_lshlqv4di3): Likewise.
	(avx2_lshl<mode>3): Likewise.
	(avx2_<umaxmin:code><mode>3): Likewise.
	(*avx2_<umaxmin:code><mode>3): Likewise.
	(avx2_<smaxmin:code><mode>3): Likewise.
	(*avx2_<smaxmin:code><mode>3): Likewise.
	(avx2_eq<mode>3): Likewise.
	(*avx2_eq<mode>3): Likewise.
	(avx2_gt<mode>3): Likewise.
	(avx2_interleave_highv32qi): New.
	(avx2_interleave_lowv32qi): Likewise.
	(avx2_interleave_highv16hi): Likewise.
	(avx2_interleave_lowv16hi): Likewise.
	(avx2_interleave_highv8si): Likewise.
	(avx2_interleave_lowv8si): Likewise.
	(avx2_pshufd): Likewise.
	(avx2_pshufd_1): Likewise.
	(avx2_pshuflwv3): Likewise.
	(avx2_pshuflw_1): Likewise.
	(avx2_pshufhwv3): Likewise.
	(avx2_pshufhw_1): Likewise.
	(avx2_uavgv32qi3): Likewise.
	(*avx2_uavgv32qi3): Likewise.
	(avx2_uavgv16hi3): Likewise.
	(*avx2_uavgv16hi3): Likewise.
	(avx2_pmovmskb): Likewise.
	(avx2_phaddwv16hi3): Likewise.
	(avx2_phadddv8si3): Likewise.
	(avx2_phaddswv16hi3): Likewise.
	(avx2_phsubwv16hi3): Likewise.
	(avx2_phsubdv8si3): Likewise.
	(avx2_phsubswv16hi3): Likewise.
	(avx2_pmaddubsw256): Likewise.
	(avx2_umulhrswv16hi3): Likewise.
	(*avx2_umulhrswv16hi3): Likewise.
	(avx2_packusdw): Likewise.
	(avx2_pblendd<mode>): Likewise.
	(avx2_<code>v16qiv16hi2): Likewise.
	(avx2_<code>v8qiv8si2): Likewise.
	(avx2_<code>v8hiv8si2): Likewise.
	(avx2_<code>v4qiv4di2): Likewise.
	(avx2_<code>v4hiv4di2): Likewise.
	(avx2_<code>v4siv4di2): Likewise.
	(avx2_pbroadcast<mode>): Likewise.
	(avx2_permvarv8si): Likewise.
	(avx2_permv4df): Likewise.
	(avx2_permvarv8sf): Likewise.
	(avx2_permv4di): Likewise.
	(avx2_permv2ti): Likewise.
	(avx2_vec_dupv4df): Likewise.
	(avx2_vbroadcasti128_<mode>): Likewise.
	(avx2_vec_set_lo_v4di): Likewise.
	(avx2_vec_set_hi_v4di): Likewise.
	(*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
	(avx2_extracti128): Likewise.
	(avx2_inserti128): Likewise.
	(avx2_ashrvv8si): Likewise.
	(avx2_ashrvv4si): Likewise.
	(avx2_<lshift>vv8si): Likewise.
	(avx2_<lshift>v<mode>): Likewise.
	(avx2_<lshift>vv2di): Likewise.
	(avx2_gathersi<mode>): Likewise.
	(*avx2_gathersi<mode>): Likewise.
	(avx2_gatherdi<mode>): Likewise.
	(*avx2_gatherdi<mode>): Likewise.
	(avx2_gatherdi<mode>256): Likewise.
	(*avx2_gatherdi<mode>256): Likewise.
	(<plusminus_insn><mode>3): Use VI mode iterator.
	(*<plusminus_insn><mode>3): Use VI mode iterator.
	(<sse2_avx2>_<plusminus_insn><mode>3): Rename from
	sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
	(*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
	*sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
	(mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
	(*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
	(<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
	Use VI2_AVX2 mode iterator.
	(*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
	Use VI2_AVX2 mode iterator.
	(mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
	(*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
	(*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
	Use VI4_AVX2 mode iterator.
	(ashr<mode>3): Use VI24_AVX2 mode iterator.
	(lshr<mode>3): Use VI248_AVX2 mode iterator.
	(<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
	Use VIMAX_AVX2 mode iterator.
	(<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
	Use VI mode iterator.
	(*andnot<mode>3): Update for AVX2.
	(*<any_logic:code><mode>3): Likewise.
	(<sse2_avx2>_packsswb): Rename from sse2_packsswb.
	Use VI1_AVX mode iterator.
	(<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
	Use VI2_AVX mode iterator.
	(<sse2_avx2>_packuswb): Rename from sse2_packsswb.
	Use VI1_AVX mode iterator.
	(<sse2_avx2>_psadbw): Rename from sse2_psadbw.
	Use VI8_AVX2 mode iterator.
	(<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
	Use VI1_AVX2 mode iterator.
	(<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
	Use VI124_AVX2 mode iterator.
	(<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
	Use SSESCALARMODE mode iterator.
	(abs<mode>2): Use VI124_AVX2 mode iterator.
	(<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
	Use VI8_AVX2 mode iterator.
	(<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
	Use VI1_AVX2 mode iterator.
	(<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
	Use VI1_AVX2 mode iterator.
	(<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
	Use VI2_AVX2 mode iterator.
	(<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
	avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
	(<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
	avx_maskstore<ssemodesuffix><avxsizesuffix>.
	Use V48_AVX2 mode iterator.
	* doc/extend.texi: Document AVX2 built-in functions.
	* doc/invoke.texi: Document -mavx2.

2011-08-22  Matthias Klose  <doko@debian.org>

	Revert:
	2011-07-11  Arthur Loiret  <aloiret@debian.org>
		    Matthias Klose  <doko@debian.org>
	* config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
	tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
	convention.
	* config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.

2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>

	PR bootstrap/50146
	* ira-color.c (assign_hard_reg): Move saved_nregs declaration
	to #ifndef HONOR_REG_ALLOC_ORDER block.

2011-08-21  Richard Henderson  <rth@redhat.com>

	* rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
	* dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
	* resource.c (next_insn_no_annul): Likewise.
	(mark_set_resources): Likewise.
	* reorg.c (delete_from_delay_slot): Likewise.
	(dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
	(get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.

2011-08-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_div): Remove.
	(sgnprefix): Update for removal.
	(u): Ditto.

2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
	for ira_reg_class_max_nregs.  Increase pressure by 1.
	(mark_pseudo_regno_subword_dead): Use allocno class
	for ira_reg_class_max_nregs.

2011-08-20  Richard Henderson  <rth@redhat.com>

	* 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: Adjust include path for soft-fp.

2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/46770
	* config.gcc (tm_file): Add initfini-array.h if
	.init_arrary/.fini_array are supported.

	* crtstuff.c: Don't generate .ctors nor .dtors sections if
	USE_INITFINI_ARRAY is defined.

	* output.h (default_elf_init_array_asm_out_constructor): New.
	(default_elf_fini_array_asm_out_destructor): Likewise.
	* varasm.c (elf_init_array_section): Likewise.
	(elf_fini_array_section): Likewise.
	(get_elf_initfini_array_priority_section): Likewise.
	(default_elf_init_array_asm_out_constructor): Likewise.
	(default_elf_fini_array_asm_out_destructor): Likewise.

	* config/initfini-array.h: New.

2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_class_max_nregs): Check that the mode is
	OK for ST_REGS and FP_REGS before taking those classes into account.

2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_reorg_process_insns): Check for jumps
	before checking for annulled branches.

2011-08-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_binary_operator_ok): Use
	satisfies_constraint_L.

2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
	    Michael Matz  <matz@suse.de>

	* config/i386/i386.c (ix86_expand_round_sse4): Expand as
	trunc (a + copysign (nextafter (0.5, 0.0), a)).

2011-08-20  Anatoly Sokolov  <aesok@post.ru>

	* doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_preferred_output_reload_class): Don't use
	PREFERRED_OUTPUT_RELOAD_CLASS macro.
	* system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.

2011-08-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48739
	* tree-ssa.c: Include cfgloop.h.
	(execute_update_addresses_taken): When updating ssa, if in loop closed
	SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
	* Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).

2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49936
	* ira.c (ira_init_register_move_cost): Ignore too small subclasses
	for calculation of max register move costs.

2011-08-19  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_postfix_expression): Convert operands of
	__builtin_complex to their semantic types.

2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/49721
	* explow.c (convert_memory_address_addr_space): Also permute the
	conversion and addition of constant for zero-extend.

2011-08-19  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
	* doc/extend.texi (__builtin_complex): Document.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
	beyond conversions.
	(convert_mult_to_widen): Convert constant inputs to the right type.
	(convert_plusminus_to_widen): Don't automatically reject inputs that
	are not an SSA_NAME.
	Convert constant inputs to the right type.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
	to the correct type.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
	unsigned inputs of different modes.
	(convert_plusminus_to_widen): Likewise.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
	'type'.
	Use 'type' from caller, not inferred from 'rhs'.
	Don't reject non-conversion statements. Do return lhs in this case.
	(is_widening_mult_p): Add new argument 'type'.
	Use 'type' from caller, not inferred from 'stmt'.
	Pass type to is_widening_mult_rhs_p.
	(convert_mult_to_widen): Pass type to is_widening_mult_p.
	(convert_plusminus_to_widen): Likewise.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
	Ensure the the larger type is the first operand.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (convert_mult_to_widen): Convert
	unsupported unsigned multiplies to signed.
	(convert_plusminus_to_widen): Likewise.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
	conversion statement separating multiply-and-accumulate.

2011-08-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50067
	* tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
	offset only if we accounted for it.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.md (maddhidi4): Remove '*' from name.
	* expr.c (expand_expr_real_2): Use find_widening_optab_handler.
	* optabs.c (find_widening_optab_handler_and_mode): New function.
	(expand_widen_pattern_expr): Use find_widening_optab_handler.
	(expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	* optabs.h (find_widening_optab_handler): New macro define.
	(find_widening_optab_handler_and_mode): New prototype.
	* tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
	type precision rules.
	(verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
	* tree-ssa-math-opts.c (build_and_insert_cast): New function.
	(is_widening_mult_rhs_p): Allow widening by more than one mode.
	Explicitly disallow mis-matched input types.
	(convert_mult_to_widen): Use find_widening_optab_handler, and cast
	input types to fit the new handler.
	(convert_plusminus_to_widen): Likewise.

2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

	* expr.c (expand_expr_real_2): Use widening_optab_handler.
	* genopinit.c (optabs): Use set_widening_optab_handler for $N.
	(gen_insn): $N now means $a must be wider than $b, not consecutive.
	* optabs.c (widened_mode): New function.
	(expand_widen_pattern_expr): Use widening_optab_handler.
	(expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	* optabs.h (widening_optab_handlers): New struct.
	(optab_d): New member, 'widening'.
	(widening_optab_handler): New function.
	(set_widening_optab_handler): New function.
	* tree-ssa-math-opts.c (convert_mult_to_widen): Use
	widening_optab_handler.
	(convert_plusminus_to_widen): Likewise.

2011-08-19  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
	pedantic.
	* c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
	* ginclude/stdnoreturn.h (noreturn): Don't define for C++.

2011-08-19  Joseph Myers  <joseph@codesourcery.com>

	* opth-gen.awk: Do not declare target save/restore structures and
	functions if IN_RTS defined.

2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	PR target/49437
	* config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
	when stack was realigned in interrupt handler prologue.

2011-08-18  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (shadow_tag_warned): Check for _Noreturn.
	(quals_from_declspecs): Assert _Noreturn not present.
	(grokdeclarator): Handle _Noreturn.
	(build_null_declspecs): Initialize noreturn_p.
	(declspecs_add_scspec): Handle RID_NORETURN.
	* c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
	(c_parser_attributes): Handle RID_NORETURN.
	* c-tree.h (struct c_declspecs): Add noreturn_p.
	* ginclude/stdnoreturn.h: New.
	* Makefile.in (USER_H): Add stdnoreturn.h.

2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
	(OPTION_MASK_ISA_AVX_UNSET): Update.
	(OPTION_MASK_ISA_AVX2_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx2 case.
	* config/i386/cpuid.h (bit_AVX2): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	AVX2 feature.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Conditionally define __AVX2__.
	* config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
	Define "core-avx2" processor alias.  Handle avx2 option.
	(ix86_valid_target_attribute_inner_p): Handle avx2 option.
	* config/i386/i386.h (TARGET_AVX2): New.
	* config/i386/i386.opt (mavx2): New.
	* doc/invoke.texi: Document -mavx2.

2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49890
	* ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
	subclasses of class which is superset of a pressure class.

2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
	    Igor Zamyatin <igor.zamyatin@intel.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): Replace int
	with HOST_WIDE_INT for isa_flag.
	(ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
	isa variables.

	* config/i386/i386.c (ix86_target_string): Replace int with
	HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
	(ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
	(pta_flags): Removed.
	(PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
	(pta): Use HOST_WIDE_INT on flags.
	(builtin_isa): Use HOST_WIDE_INT on isa.
	(ix86_add_new_builtins): Likewise.
	(def_builtin): Use HOST_WIDE_INT on mask.
	(def_builtin_const): Likewise.
	(builtin_description): Likewise.

	* config/i386/i386.opt (ix86_isa_flags): Replace int with
	HOST_WIDE_INT.
	(ix86_isa_flags_explicit): Likewise.
	(x_ix86_isa_flags_explicit): Likewise.

2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/50107
	* ira-int.h (ira_hard_reg_not_in_set_p): Remove.
	(ira_hard_reg_in_set_p): New.

	* ira-color.c (calculate_saved_nregs): New.
	(assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
	hard regs.
	(allocno_reload_assign, fast_allocation): Use
	ira_hard_reg_set_intersection_p instead of
	ira_hard_reg_not_in_set_p.

	* ira.c (setup_reg_renumber): Use
	ira_hard_reg_set_intersection_p instead of
	ira_hard_reg_not_in_set_p.
	(setup_allocno_assignment_flags, calculate_allocation_cost): Use
	ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.

	* ira-costs.c (ira_tune_allocno_costs): Use
	ira_hard_reg_set_intersection_p instead of
	ira_hard_reg_not_in_set_p.

2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
	    Igor Zamyatin <igor.zamyatin@intel.com>

	* hwint.h (HOST_WIDE_INT_1): New.

	* opt-functions.awk (switch_bit_fields): Initialize the
	host_wide_int field.
	(host_wide_int_var_name): New.
	(var_type_struct): Check and return HOST_WIDE_INT.

	* opt-read.awk: Handle HOST_WIDE_INT for "Variable".

	* optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.

	* opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
	check masks for HOST_WIDE_INT.

	* opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
	(option_enabled): Likewise.
	(get_option_state): Likewise.

	* opts.h (cl_option): Add cl_host_wide_int.  Change var_value
	to HOST_WIDE_INT.

2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Marc Glisse  <marc.glisse@normalesup.org>

	PR libstdc++-v3/1773
	* target.def (decl_mangling_context): New C++ hook.
	* doc/tm.texi: Regenerate.
	* config/sol2-cxx.c, config/sol2-stubs.c: New files.
	* config/sol2-protos.h: Group by source file.
	(solaris_cxx_decl_mangling_context): Declare.
	* config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
	* config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
	Use $<.
	* config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
	Add sol2-stubs.o to extra_objs.

2011-08-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/50009
	* stor-layout.c (update_alignment_for_field): Don't ICE on
	packed flexible array members if ms_bitfield_layout_p.

	PR target/50092
	* config/i386/i386.c (assign_386_stack_local): Call validize_mem
	on the result before returning it.

	PR debug/50017
	* tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
	is a debug stmt, use location of the first non-debug stmt after it.

2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
	(arm_size_rtx_costs): Likewise.

2011-08-18  Richard Guenther  <rguenther@suse.de>

	* tree.h (tree_int_cst_msb): Remove.
	* tree.c (tree_int_cst_msb): Likewise.
	(tree_int_cst_sign_bit): Move from ...
	* tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.

2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>

	* doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
	* doc/tm.texi: Regenerate.
	* target.def (rtx_costs): Add an opno parameter.
	* hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
	* hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
	* cse.c (COST_IN): Add an opno parameter.
	(notreg_cost): Likewise.  Update call to rtx_cost.
	(COST, fold_rtx): Update accordingly.
	* dojump.c (prefer_and_bit_test): Update call to rtx_cost.
	* expmed.c (emit_store_flag): Likewise.
	* optabs.c (avoid_expensive_constant): Add an opno parameter.
	Update call to rtx_cost.
	(expand_binop_directly, expand_binop): Likewise.
	(expand_twoval_binop, prepare_cmp_insn): Likewise.
	* rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
	(set_src_cost, get_full_set_src_cost): Update accordingly.
	* rtlanal.c (rtx_cost): Add an opno parameter.  Update call
	to target hook.
	(get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
	(default_adress_cost): Update calls to rtx_cost.

	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
	(arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
	(arm_rtx_costs): Add an opno parameter.
	* config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
	adjust any recursive rtx-cost calls.
	* config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
	* config/cris/cris.c (cris_rtx_costs): Likewise.
	* config/frv/frv.c (frv_rtx_costs): Likewise.
	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
	* config/i386/i386.c (ix86_rtx_costs): Likewise.
	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
	* config/mep/mep.c (mep_rtx_cost): Likewise.
	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
	* config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
	(mips_zero_extend_cost): Add an opno parameter.
	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
	* config/mn10300/mn10300.c (mn10300_address_cost): Update call
	to rtx_cost.
	(mn10300_rtx_costs): Add an opno parameter and adjust any recursive
	rtx-cost calls.
	* config/pa/pa.c (hppa_rtx_costs): Likewise.
	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
	* config/picochip/picochip.c (picochip_rtx_costs): Likewise.
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
	(rs6000_debug_rtx_costs): Likewise.
	* config/s390/s390.c (s390_rtx_costs): Likewise.
	* config/score/score-protos.h (score_rtx_costs): Likewise.
	* config/score/score.c (score_rtx_costs): Likewise.
	* config/sh/sh.c (andcosts): Update call to rtx_cost.
	(sh_rtx_costs): Add an opno parameter.
	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
	* config/spu/spu.c (spu_rtx_costs): Likewise.
	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
	* config/v850/v850.c (v850_rtx_costs): Likewise.
	* config/vax/vax.c (vax_rtx_costs): Likewise.
	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.

2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>

	* rtl.h (set_src_cost, get_full_set_src_cost): New functions.
	* auto-inc-dec.c (attempt_change): Use set_src_cost instead of
	rtx_cost.
	* calls.c (precompute_register_parameters): Likewise.
	* combine.c (expand_compound_operation, make_extraction): Likewise.
	(force_to_mode, distribute_and_simplify_rtx): Likewise.
	* dse.c (find_shift_sequence): Likewise.
	* expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
	* expr.c (compress_float_constant): Likewise.
	* fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
	* gcse.c (want_to_gcse_p): Likewise.
	* ifcvt.c (noce_try_sign_mask): Likewise.
	* loop-doloop.c (doloop_optimize): Likewise.
	* loop-invariant.c (create_new_invariant): Likewise.
	* optabs.c (avoid_expensive_constant): Likewise.
	* postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
	(try_replace_in_use, reload_cse_move2add): Likewise.
	* reload1.c (calculate_elim_costs_all_insns): Likewise.
	(note_reg_elim_costly): Likewise.
	* rtlanal.c (insn_rtx_cost): Likewise.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
	* stmt.c (lshift_cheap_p): Likewise.
	* tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
	* config/avr/avr.c (final_prescan_insn): Likewise.
	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
	* config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.

2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>

	* rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
	* auto-inc-dec.c (attempt_change): Use set_rtx_cost.
	* cfgloopanal.c (seq_cost): Likewise.
	* loop-invariant.c (create_new_invariant): Likewise.
	* postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
	(reload_cse_move2add): Use get_full_set_rtx_cost.

2011-08-18  Richard Guenther  <rguenther@suse.de>

	* expr.c (get_inner_reference): Fix typo in last change.

2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
	    Joseph Myers  <joseph@codesourcery.com>

	PR tree-optimization/49963
	* hwint.c (absu_hwi): Define.
	* hwint.h (absu_hwi): Declare.
	* fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
	of abs_hwi.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.

2011-08-18  Richard Guenther  <rguenther@suse.de>

	* expr.c (get_inner_reference): Sign-extend the constant
	twos-complement offset before doing arbitrary precision
	arithmetic on it.
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
	(get_constraint_for_1): Pass the offset of a MEM_REF unchanged
	to get_constraint_for_ptr_offset.

2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/50068
	* config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.

2011-08-17  Richard Guenther  <rguenther@suse.de>

	* tree.h (convert_to_ptrofftype_loc): New function.
	(convert_to_ptrofftype): Define.
	* builtins.c (expand_builtin_bzero): Use size_type_node.
	(fold_builtin_bzero): Likewise.
	(std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
	* c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
	* cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
	(cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
	* expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
	* fold-const.c (build_range_check): Negate using the original type.
	(fold_unary_loc): Use fold_build_pointer_plus_loc.
	* gimple-fold.c (gimple_adjust_this_by_delta): Use
	convert_to_ptrofftype.
	* gimplify.c (gimplify_self_mod_expr): Likewise.
	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
	(graphite_create_new_loop_guard): Likewise.
	* graphite-sese-to-poly.c (my_long_long): Remove.
	(scop_ivs_can_be_represented): Adjust.
	* tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
	* tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
	* tree-loop-distribution.c (build_size_arg_loc): Use
	size_type_node.
	(generate_memset_zero): Simplify.
	* tree-mudflap.c: Use fold_convert, not convert.
	* tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
	its own type.
	(determine_offset): Likewise for DR_STEP.
	(valid_initializer_p): Likewise.
	* tree-profile.c (prepare_instrumented_value): Convert the pointer
	to an integer type of same size.
	* tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
	to sizetype without need.
	* tree-ssa-address.c (tree_mem_ref_addr): Likewise.
	* tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(determine_exit_conditions): Adjust comment.
	* tree-ssa-pre.c (create_expression_by_pieces): Use
	convert_to_ptrofftype.
	* tree-ssa-structalias.c (get_constraint_for_1): Likewise.
	* varasm.c (array_size_for_constructor): Compute using double_ints.

2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
	when generating an integer result where possible.  Short-cut
	comparison against 0 also for QImode.

2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
	* config/spu/spu-protos.h (spu_legitimize_reload_address): Add
	prototype.
	* config/spu/spu.c (spu_legitimize_reload_address): New function.
	(spu_legitimate_address_p): Do not check displacement if the base
	is an eliminable stack register.

2011-08-16  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
	PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
	* config/m32c/m32c-protos.h (m32c_preferred_reload_class,
	m32c_preferred_output_reload_class): Remove.
	* config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
	Change rclass argument and return types to reg_class_t. Use
	reg_class_subset_p instead of class_sizes.
	(m32c_preferred_output_reload_class): Make static. Change rclass
	argument and return types to reg_class_t.
	(TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.

2011-08-16  Kai Tietz  <ktietz@redhat.com>

	* config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.

2011-08-16  Richard GUenther  <rguenther@suse.de>

	PR tree-optimization/50082
	* tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
	warnings here, instead of ...
	(ssa_forward_propagate_and_combine): ... here.
	(forward_propagate_into_comparison_1): Adjust.
	(forward_propagate_into_comparison): Likewise.
	(forward_propagate_into_gimple_cond): Likewise.
	(forward_propagate_into_cond): Likewise.

2011-08-16  Andreas Schwab  <schwab@redhat.com>

	* ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
	instead of ggc_alloc_zone_vec_rtvec_def.

2011-08-16  Richard Guenther  <rguenther@suse.de>

	* tree.h (ptrofftype_p): New helper function.
	* tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
	offset verification.
	(verify_gimple_assign_binary): Likewise.
	* tree.c (build2_stat): Likewise.
	* tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
	(reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.

2011-08-16  Liang Wang  <lwang1@marvell.com>

	* ggc.h (ggc_alloc_rtvec_sized): Change arguments of
	ggc_alloc_zone_vec_rtvec_def.

2011-08-16  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_multiplicative_op_1): New
	helper factored out from ...
	(extract_range_from_binary_expr_1): ... here.  Re-structure
	to not glob handling too different tree codes.

2011-08-15  Richard Henderson  <rth@redhat.com>

	PR middle-end/50006
	* explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
	setting out to include allocate_stack named pattern as well.
	* builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
	* stmt.c (expand_stack_restore): Likewise.

2011-08-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50082
	* fold-const.c (maybe_canonicalize_comparison_1): Properly
	convert the modified operand to the other operand type.
	(fold_comparison): Call maybe_canonicalize_comparison_1 with
	useless conversions stripped from comparison operands.

2011-08-15  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
	(extract_range_from_unary_expr_1): Restructure.

2011-08-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50058
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
	copy matching.

2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/50022
	* config/arm/arm.c (output_move_double): Add 2 parameters
	to count the number of insns emitted and whether to emit or not.
	Use the flag to decide when to emit and count number of instructions
	that will be emitted.
	Handle case where output_move_double might be called for calculating
	lengths with an invalid constant.
	(arm_count_output_move_double_insns): Define.
	* config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
	(output_move_double): Adjust prototype.
	* config/arm/vfp.md ("*movdi_vfp"): Adjust call to
	output_move_double.
	("*movdi_vfp_cortexa8"): Likewise and add attribute
	for ce_count.
	* config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
	("*movdf_soft_insn"): Likewise.
	* config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
	("*cirrus_thumb2_movdi"): Likewise.
	("*thumb2_cirrus_movdf_hard_insn"): Likewise.
	("*cirrus_movdf_hard_insn"): Likewise.
	* config/arm/neon.md (*neon_mov<mode> VD): Likewise.
	* config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
	("mov<mode>_internal VMMX"): Likewise.
	* config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.

2011-08-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_round_sse4): New function.
	* config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
	* config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
	for TARGET_ROUND.

	(rint<mode>2): Simplify TARGET_ROUND check.
	(floor<mode>2): Ditto.
	(ceil<mode>2): Ditto.
	(btrunc<mode>2): Ditto.

2011-08-14  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
	as mmix_preferred_output_reload_class.

2011-08-14  Georg-Johann Lay  <avr@gjlay.de>

	* PR target/49903
	* config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
	(branch_unspec): New insn.
	(branch): Beauty farm.
	* config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
	to be IF_THEN_ELSE.
	(avr_compare_pattern, avr_reorg_remove_redundant_compare):
	New static functions.
	(avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
	Use CONST_INT_P.  Beauty.

2011-08-12  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/49994
	* sched-init.h (struct deps_desc): Add sched_before_next_jump.
	* sched-deps.c (init_deps): Clear it.
	(deps_analyze_insn): Consume it.
	(sched_analyze_insn): Fill it.

2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/48328
	* config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
	for tbh instructions.

2011-08-12  Diego Novillo  <dnovillo@google.com>

	* data-streamer.h (streamer_write_zero): Rename from output_zero.
	(streamer_write_uhwi): Rename from lto_output_uleb128.
	(streamer_write_hwi): Rename from output_sleb128.
	(streamer_write_string): Rename from lto_output_string.
	(streamer_string_index): Rename from lto_string_index.
	(streamer_write_string_with_length): Rename from
	lto_output_string_with_length.
	(streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
	(streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
	(streamer_read_string): Rename from lto_input_string.
	(streamer_read_indexed_string): Rename from input_string_internal.
	(streamer_read_uhwi): Rename from lto_input_uleb128.
	(streamer_read_hwi): Rename from lto_input_sleb128.
	(streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
	(streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
	(streamer_write_enum): Rename from lto_output_enum.
	(streamer_read_enum): Rename from lto_input_enum.
	(streamer_write_record_start): Rename from output_record_start.
	(streamer_read_record_start): Rename from input_record_start.
	(streamer_write_bitpack): Rename from lto_output_bitpack.
	(streamer_read_bitpack): Rename from lto_input_bitpack.
	(streamer_write_char_stream): Rename from lto_output_1_stream.
	(streamer_read_uchar): Rename from lto_input_1_unsigned.
	* tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
	(streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
	(streamer_read_string_cst): Rename from input_string_cst.
	(streamer_read_chain): Rename from lto_input_chain.
	(streamer_alloc_tree): Rename from lto_materialize_tree.
	(streamer_read_tree_body): Rename from lto_input_tree_pointers.
	(streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
	(streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
	(streamer_read_integer_cst): Rename from lto_input_integer_cst.
	(streamer_read_tree_bitfields): Rename from tree_read_bitfields.
	(streamer_write_chain): Rename from lto_output_chain.
	(streamer_write_tree_header): Rename from lto_output_tree_header.
	(streamer_pack_tree_bitfields): Rename from pack_value_fields.
	(streamer_write_tree_body): Rename from lto_output_tree_pointers.
	(streamer_write_integer_cst): Rename from lto_output_integer_cst.
	(streamer_write_builtin): Rename from lto_output_builtin_tree.
	(streamer_check_handled_ts_structures): Rename from
	check_handled_ts_structures.
	(streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
	(streamer_tree_cache_insert_at): Rename from
	lto_streamer_cache_insert_at.
	(streamer_tree_cache_append): Rename from lto_streamer_cache_append.
	(streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
	(streamer_tree_cache_get): Rename from lto_streamer_cache_get.
	(streamer_tree_cache_create): Rename from lto_streamer_cache_create.
	(streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
	* tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
	(write_identifier): Rename from output_identifier.
	(write_ts_common_tree_pointers): Rename from
	lto_output_ts_common_tree_pointers.
	(write_ts_vector_tree_pointers): Rename from
	lto_output_ts_vector_tree_pointers.
	(write_ts_complex_tree_pointers): Rename from
	lto_output_ts_complex_tree_pointers.
	(write_ts_decl_minimal_tree_pointers): Rename from
	lto_output_ts_decl_minimal_tree_pointers.
	(write_ts_decl_common_tree_pointers): Rename from
	lto_output_ts_decl_common_tree_pointers.
	(write_ts_decl_non_common_tree_pointers): Rename from
	lto_output_ts_decl_non_common_tree_pointers.
	(write_ts_decl_with_vis_tree_pointers): Rename from
	lto_output_ts_decl_with_vis_tree_pointers.
	(write_ts_field_decl_tree_pointers): Rename from
	lto_output_ts_field_decl_tree_pointers.
	(write_ts_function_decl_tree_pointers): Rename from
	lto_output_ts_function_decl_tree_pointers.
	(write_ts_type_common_tree_pointers): Rename from
	lto_output_ts_type_common_tree_pointers.
	(write_ts_type_non_common_tree_pointers): Rename from
	lto_output_ts_type_non_common_tree_pointers.
	(write_ts_list_tree_pointers): Rename from
	lto_output_ts_list_tree_pointers.
	(write_ts_vec_tree_pointers): Rename from
	lto_output_ts_vec_tree_pointers.
	(write_ts_exp_tree_pointers): Rename from
	lto_output_ts_exp_tree_pointers.
	(write_ts_block_tree_pointers): Rename from
	lto_output_ts_block_tree_pointers.
	(write_ts_binfo_tree_pointers): Rename from
	lto_output_ts_binfo_tree_pointers.
	(write_ts_constructor_tree_pointers): Rename from
	lto_output_ts_constructor_tree_pointers.
	(write_ts_target_option): Rename from lto_output_ts_target_option.
	(write_ts_translation_unit_decl_tree_pointers): Rename from
	lto_output_ts_translation_unit_decl_tree_pointers.
	* tree-streamer.c (streamer_tree_cache_add_to_node_array):
	Rename from lto_streamer_cache_add_to_node_array.
	(streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
	(record_common_node): Rename from lto_record_common_node.

	* streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
	declarations.
	* data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
	function.
	* data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
	unused function.
	* Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
	(ipa-reference.o): Likewise.
	* lto-section-out.c: Include data-streamer.h.
	* ipa-reference.c: Include data-streamer.h.

2011-08-12  Nick Clifton  <nickc@redhat.com>

	* builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
	* doc/md.texi (cmpstrn): Note that the comparison stops if both
	fetched bytes are zero.
	(cmpstr): Likewise.
	(cmpmem): Note that the comparison does not stop if both of the
	fetched bytes are zero.

2011-08-12  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
	BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
	* convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
	BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
	to integer_type_node.
	* fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
	BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
	* builtins.c (expand_builtin_in): Ditto.
	(mathfn_built_in_1): Ditto.
	(expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
	BUILT_IN_IFLOOR.
	(expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
	BUILT_IN_IROUND.
	(fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
	BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
	BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.

2011-08-12  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.

2011-08-12  Romain Geissler  <romain.geissler@gmail.com>

	* Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.

2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/arm/arm.c (get_label_padding): New function.
	(create_fix_barrier, arm_reorg): Use it.

2011-08-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49781
	* config/i386/i386.md (*lea_5_zext): New.
	(*lea_6_zext): Ditto.
	* config/i386/predicates.md (const_32bit_mask): New predicate.
	(lea_address_operand): Reject AND.
	* config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
	const_32bit_mask immediate.
	(ix86_print_operand_address): Handle AND.
	(memory_address_length): Ditto.

2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
	    Brian Hackett  <bhackett1024@gmail.com>

	* plugin.def: Add event for finish_decl.
	* plugin.c (register_callback, invoke_plugin_callbacks): Same.
	* c-decl.c (finish_decl): Invoke callbacks on above event.
	* doc/plugins.texi: Document above event.

2011-08-11  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
	lookups, make looking through aggregate copies stronger.

2011-08-11  Richard Henderson  <rth@redhat.com>

	PR bootstrap/50018
	* expr.c (fixup_args_size_notes): Accept and ignore normal calls.

2011-08-11  Richard Guenther  <rguenther@suse.de>

	* lto-cgraph.c (input_node): Use DECL_BUILT_IN.
	* tree-vrp.c (stmt_interesting_for_vrp): Likewise.
	(vrp_visit_stmt): Likewise.

2011-08-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50040
	* gimplify.c (gimplify_modify_expr_complex_part): Mark the
	load of the other piece with TREE_NO_WARNING.
	* tree-flow.h (warn_uninit): Adjust prototype.
	* tree-ssa.c (warn_uninit): Take uninitialized SSA name,
	the base variable and the expression that is used separately.
	Properly query all TREE_NO_WARNING flags.
	(struct walk_data): Remove.
	(warn_uninitialized_var): Likewise.
	(warn_uninitialized_vars): Do not walk gimple pieces but simply
	look at all SSA uses of the statement.  Handle unused memory
	separately.
	* tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.

2011-08-11  Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>

	* config/rx/rx.md (movsicc): Allow register to register transfers.
	(*movsicc): Likewise.
	(*stcc): Restrict this pattern to EQ and NE compares.
	(*stcc_reg): New pattern.  Works for any comparison but only for
	register transfers.

2011-08-11  Diego Novillo  <dnovillo@google.com>

	* tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
	Call stream_write_tree instead of output_record_start.
	(lto_output_ts_binfo_tree_pointers): Likewise.

	* streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
	Convert it to a macro.
	(stream_read_tree): Likewise.

	* lto-streamer.h (lto_stream_as_builtin_p): Move ...
	* tree-streamer.h (lto_stream_as_builtin_p): ... here.

	* lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
	and tree_read_bitfields.
	* lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
	(lto_write_tree): Call it.
	* lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
	* streamer-hooks.h (struct streamer_hooks): Remove fields
	name, is_streamable and alloc_tree. Update all users.
	* tree-streamer-in.c (tree_read_bitfields): Factor out of ...
	(lto_materialize_tree): ... here.
	Handle CALL_EXPR codes.
	Remove call to lto_streamer_cache_append.
	* tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
	* tree-streamer.h (tree_read_bitfields): Declare.

	* Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
	(gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
	* tree-streamer.h (stream_read_tree): New.  Replace all calls
	to lto_input_tree with it.
	(stream_write_tree): New.  Replace all calls to lto_output_tree,
	lto_output_tree_ref and lto_output_tree_or_ref with it.
	* lto-streamer-in.c (lto_read_tree): Inline code from
	lto_streamer_read_tree.
	(lto_input_tree): Move from tree-streamer-in.c.
	* lto-streamer-out.c (lto_output_tree_ref): Make static.
	Remove handling of NULL values for EXPR.
	Do not handle EXPRs that are not indexable.
	(lto_write_tree): Move from tree-streamer-out.c.
	Inline lto_streamer_write_tree.
	(lto_output_tree): Move from tree-streamer-out.c.
	If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
	* lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
	(lto_preload_common_nodes): Likewise.
	Remove assertions and adjustments for nodes
	main_identifier_node, ptrdiff_type_node and fileptr_type_node.
	(lto_streamer_hooks_init): Set streamer_hooks.write_tree to
	lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
	* lto-streamer.h (lto_input_tree): Declare.
	(lto_output_tree_ref): Remove.
	* streamer-hooks.h (struct streamer_hooks): Remove fields
	preload_common_nodes, indexable_with_decls_p,
	pack_value_fields, unpack_value_fields and output_tree_header.
	Update all users.
	* tree-streamer-in.c (lto_materialize_tree): Make extern.
	(lto_input_tree_pointers): Likewise.
	(lto_read_tree): Move to lto-streamer-in.c.
	(lto_input_integer_cst): Make extern.
	(lto_get_pickled_tree): Likewise.
	(lto_get_builtin_tree): Likewise.
	(lto_input_tree): Move to lto-streamer-in.c.
	* tree-streamer-out.c (pack_value_fields): Make extern.
	(lto_output_tree_or_ref): Remove.  Replace all callers with
	calls to stream_write_tree.
	(lto_output_builtin_tree): Make extern.
	(lto_streamer_write_tree): Inline into lto_write_tree.
	(lto_output_tree_pointers): Make extern.
	(lto_output_tree_header): Likewise.
	(lto_output_integer_cst): Likewise.
	(lto_write_tree): Move to lto-streamer-out.c.
	(lto_output_tree): Likewise.
	* tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
	(preload_common_nodes): Likewise.
	(lto_streamer_cache_create): Call it.
	* tree-streamer.h: Include streamer-hooks.h.
	(stream_write_tree): New.
	(stream_read_tree): New.
	(lto_input_tree): Remove.
	(lto_materialize_tree): Declare.
	(lto_input_tree_pointers): Declare.
	(lto_get_pickled_tree): Declare.
	(lto_get_builtin_tree): Declare.
	(lto_input_integer_cst): Declare.
	(lto_output_tree_header): Declare.
	(pack_value_fields): Declare.
	(lto_output_tree_pointers): Declare.
	(lto_output_integer_cst): Declare.
	(lto_output_builtin_tree): Declare.

2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
	only if producer writes to the register given by regno.

2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	* sched-deps.c (sched_get_condition_with_rev): Rename to ...
	(sched_get_condition_with_rev_uncached): ... this.  Factor out
	condition caching logic into ...
	(sched_get_condition_with_rev): ... this.  Reimplement.  Do not
	attempt to use cache for instructions with zero luid.
	(sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
	* sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.

2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (get_seqno_of_a_pred): Rename to
	get_seqno_for_a_jump.  Update the caller.
	(get_seqno_by_succs): New.  Use it ...
	(get_seqno_for_a_jump): ... here to find a seqno if looking at
	predecessors was not sufficient.
	(get_seqno_by_preds): Include head in iteration range, exclude insn.

2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (invalidate_av_set): Remove the assert.

2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.h (register_unavailable_p): Declare.
	* sel-sched-ir.c (register_unavailable_p): New.  Use it...
	(set_unavailable_target_for_expr): ... here to properly test
	availability of a register.
	(speculate_expr): Ditto.
	* sel-sched.c (substitute_reg_in_expr): Ditto.
	(av_set_could_be_blocked_by_bookkeeping_p): Ditto.

2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched.c (verify_target_availability): Fix usage of
	hard_regno_nregs.

2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
	recognized by cannot_copy_insn_p hook and volatile instructions.

2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (merge_expr_data): Take maximum spec.

2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>

	* doc/md.texi (define_bypass): Say that the instruction names can
	be filename-style globs.
	* Makefile.in (FNMATCH_H): Define.
	(build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
	* genattrtab.c: Include fnmatch.h.
	(bypass_list): Change field name from "insn" to "pattern".
	(gen_bypass_1): Update accordingly.
	(process_bypasses): Use fnmatch to check for matches between
	insn reservations and define_bypasses.
	* genautomata.c: Include fnmatch.h.
	(bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
	and out_pattern respectively.
	(gen_bypass, insert_bypass): Update accordingly.
	(for_each_matching_insn, process_bypass_2, process_bypass_1)
	(process_bypass): New functions.
	(process_decls): Use process_bypass.  Update after field name changes.

2011-08-11  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49687
	* config/avr/avr.md (smulqi3_highpart): New insn.
	(umulqi3_highpart): New insn.
	(*subqi3.ashiftrt7): New insn.
	(smulhi3_highpart): New expander.
	(umulhi3_highpart): Nex expander.
	(*smulhi3_highpart_call): New insn.
	(*umulhi3_highpart_call): New insn.
	(extend_u): New code attribute.
	(extend_prefix): Rename code attribute to extend_su.
	* config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
	widening QI/HI multiply.

2011-08-11  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50039
	* tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
	that DEF_STMT has a stmt_vec_info.

2011-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (can_trust_pointer_alignment): Remove.
	* builtins.c (can_trust_pointer_alignment): Remove.

2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>

	* c-typeck.c (scalar_to_vector): New function. Try scalar to
	vector conversion.
	(stv_conv): New enum for scalar_to_vector return type.
	(build_binary_op): Adjust.
	* doc/extend.texi: Description of scalar to vector expansion.

2011-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_pointer_alignment): Remove max-align argument.
	(get_object_alignment): Likewise.
	* builtins.c (get_object_alignment_1): Adjust.
	(get_object_alignment): Remove max-align argument.
	(get_pointer_alignment): Likewise.
	(expand_builtin_strlen): Adjust.
	(expand_builtin_memcpy): Likewise.
	(expand_builtin_mempcpy_args): Likewise.
	(expand_builtin_strncpy): Likewise.
	(expand_builtin_memset_args): Likewise.
	(expand_builtin_memcmp): Likewise.
	(expand_builtin_strcmp): Likewise.
	(expand_builtin_strncmp): Likewise.
	(get_builtin_sync_mem): Likewise.
	(fold_builtin_memset): Likewise.
	(fold_builtin_memory_op): Likewise.
	(expand_builtin_memory_chk): Likewise.
	* emit-rtl.c (get_mem_align_offset): Likewise.
	(set_mem_attributes_minus_bitpos): Likewise.
	* expr.c (expand_assignment): Likewise.
	(expand_expr_real_1): Likewise.
	* tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
	* value-prof.c (gimple_stringops_transform): Likewise.

2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>

	* doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
	* doc/tm.texi: Regenerate.

2011-08-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/29560
	* config/avr/avr.md (*ashlhiqi3): New insn-and-split.
	(*ashl<extend_prefix>qihiqi3): New insn-and-splits.
	(*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
	Add peephole2 to map ashlhi3 to ashlqi3 if high part of
	shift target is unused.

2011-08-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49937
	* tree-ssa-ccp.c (get_value_from_alignment): Re-implement
	using get_object_alignment_1.

2011-08-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_emit_i387_round): New function.
	* config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
	* config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
	Use ix86_emit_i387_round to expand round function for i387 math.
	(lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
	Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.

2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sync.c: Move to ../libgcc.
	* Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
	* config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
	Remove.

2011-08-09  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
	* config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
	* config/mmix/mmix.c (mmix_register_move_cost): Make static.
	Change 'from' and 'to' arguments type to reg_class_t.
	(TARGET_REGISTER_MOVE_COST): Define.

2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/50026
	Revert:
	PR rtl-optimization/49990
	* ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
	ignore classes which can not change mode.
	(find_costs_and_classes): Ditto.

2011-08-09  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
	information for ranges with only negative values.
	(extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
	BIT_AND_EXPR handling to handle ranges with negative values.

2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c: Remove traling spaces.
	* config/i386/sse.md: Likewise.
	(*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
	(*fma_fmsub_<mode>): Likewise.
	(*fma_fnmadd_<mode>): Likewise.
	(*fma_fnmsub_<mode>): Likewise.

2011-08-09  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md: Disable extender peepholes at -O3.

2011-08-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49781
	* config/i386/i386.md (reload_noff_load): New.
	(reload_noff_store): Ditto.
	* config/i386/i386.c (ix86_secondary_reload): Use
	CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
	double-word moves from/to non-offsetable addresses instead of
	generating XMM temporary.

2011-08-09  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.

2011-08-09  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/50014
	* tree-vect-loop.c (vectorizable_reduction): Get def type before
	calling vect_get_vec_def_for_stmt_copy ().

2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49990
	* ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
	ignore classes which can not change mode.
	(find_costs_and_classes): Ditto.

2011-08-08  Richard Henderson  <rth@redhat.com>

	PR middle-end/49990
	* config/i386/i386.c (ix86_expand_prologue): Call
	for SEH target gen_prologue_use instead of gen_blockage
	at prologue's end.

2011-08-08  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/49923
	* tree-sra.c (access_precludes_ipa_sra_p): Also check access
	memory alignment.

2011-08-08  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
	(DATA_STREAMER_H): New.
	(GIMPLE_STREAMER_H): New.
	(TREE_STREAMER_H): New.
	(STREAMER_HOOKS_H): New.
	(OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
	gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
	tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
	(data-streamer.o): New.
	(data-streamer-in.o): New.
	(data-streamer-out.o): New.
	(gimple-streamer-in.o): New.
	(gimple-streamer-out.o): New.
	(streamer-hooks.o): New.
	(tree-streamer.o): New.
	(tree-streamer-in.o): New.
	(tree-streamer-out.o): New.
	(lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
	(lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
	GIMPLE_STREAMER_H and TREE_STREAMER_H.
	(lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
	GIMPLE_STREAMER_H and TREE_STREAMER_H.
	(lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
	(ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
	(ipa-inline-analysis.o): Likewise.
	(ipa-pure-const.o): Likewise.
	* data-streamer-in.c: New.
	* data-streamer-out.c: New.
	* data-streamer.c: New.
	* data-streamer.h: New.
	* gimple-streamer-in.c: New.
	* gimple-streamer-out.c: New.
	* gimple-streamer.h: New.
	* ipa-inline-analysis.c: Include data-streamer.h.
	* ipa-prop.c: Include data-streamer.h.
	* ipa-pure-const.c: Include data-streamer.h.
	* lto-cgraph.c: Include data-streamer.h.
	* lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
	(lto_input_widest_uint_uleb128): Likewise.
	(lto_input_sleb128): Likewise.
	(bp_unpack_var_len_unsigned): Likewise.
	(bp_unpack_var_len_int): Likewise.
	* lto-section-out.c (lto_output_uleb128_stream): Move to
	data-streamer-out.c.
	(lto_output_widest_uint_uleb128_stream): Likewise.
	(lto_output_sleb128_stream): Likewise.
	(bp_pack_var_len_unsigned): Likewise.
	(bp_pack_var_len_int): Likewise.
	* lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
	(struct string_slot): Remove.  Update all users.
	(lto_tag_check_set): Make extern.
	(lto_tag_check_range): Move to lto-streamer.h.
	(lto_tag_check): Likewise.
	(hash_string_slot_node): Remove.  Update all users.
	(eq_string_slot_node): Remove.  Update all users.
	(string_for_index): Move to data-streamer-in.c
	(input_string_internal): Likewise.
	(input_string_cst): Move to tree-streamer-in.c.
	(input_identifier): Likewise.
	(lto_input_string): Move to data-streamer-in.c
	(input_record_start): Move to data-streamer.h
	(canon_file_name): Use new definition of struct string_slot
	from data-streamer.h.  Set S_SLOT.LEN.
	(lto_input_location): Make extern.
	(lto_input_chain): Move to tree-streamer-in.c.
	(lto_init_eh): Make extern.
	(input_phi): Move to gimple-streamer-in.c.
	(input_gimple_stmt): Likewise.
	(input_bb): Likewise.
	(unpack_ts_base_value_fields): Move to tree-streamer-in.c.
	(unpack_ts_real_cst_value_fields): Likewise.
	(unpack_ts_fixed_cst_value_fields): Likewise.
	(unpack_ts_decl_common_value_fields): Likewise.
	(unpack_ts_decl_wrtl_value_fields): Likewise.
	(unpack_ts_decl_with_vis_value_fields): Likewise.
	(unpack_ts_function_decl_value_fields): Likewise.
	(unpack_ts_type_common_value_fields): Likewise.
	(unpack_ts_block_value_fields): Likewise.
	(unpack_ts_translation_unit_decl_value_fields): Likewise.
	(unpack_value_fields): Likewise.
	(lto_materialize_tree): Likewise.
	(lto_input_ts_common_tree_pointers): Likewise.
	(lto_input_ts_vector_tree_pointers): Likewise.
	(lto_input_ts_complex_tree_pointers): Likewise.
	(lto_input_ts_decl_minimal_tree_pointers): Likewise.
	(lto_input_ts_decl_common_tree_pointers): Likewise.
	(lto_input_ts_decl_non_common_tree_pointers): Likewise.
	(lto_input_ts_decl_with_vis_tree_pointers): Likewise.
	(lto_input_ts_field_decl_tree_pointers): Likewise.
	(lto_input_ts_function_decl_tree_pointers): Likewise.
	(lto_input_ts_type_common_tree_pointers): Likewise.
	(lto_input_ts_type_non_common_tree_pointers): Likewise.
	(lto_input_ts_list_tree_pointers): Likewise.
	(lto_input_ts_vec_tree_pointers): Likewise.
	(lto_input_ts_exp_tree_pointers): Likewise.
	(lto_input_ts_block_tree_pointers): Likewise.
	(lto_input_ts_binfo_tree_pointers): Likewise.
	(lto_input_ts_constructor_tree_pointers): Likewise.
	(lto_input_ts_target_option): Likewise.
	(lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
	(lto_input_tree_pointers): Likewise.
	(lto_get_pickled_tree): Likewise.
	(lto_get_builtin_tree): Likewise.
	(lto_read_tree): Likewise.
	(lto_input_integer_cst): Likewise.
	(lto_input_tree): Likewise.
	* lto-streamer-out.c: Include data-streamer.h,
	gimple-streamer.h and streamer-hooks.h.
	(struct string_slot): Move to data-streamer.h.
	(hash_string_slot_node): Likewise.
	(eq_string_slot_node): Likewise.
	(lto_string_index): Move to data-streamer-out.c.
	(lto_output_string_with_length): Likewise.
	(lto_output_string): Likewise.
	(output_string_cst): Move to tree-streamer-out.c.
	(output_identifier): Likewise.
	(output_zero): Move to data-streamer-out.c
	(output_uleb128): Likewise.
	(output_sleb128): Likewise.
	(output_record_start): Move to data-streamer.h
	(pack_ts_base_value_fields): Move to tree-streamer-out.c.
	(pack_ts_real_cst_value_fields): Likewise.
	(pack_ts_fixed_cst_value_fields): Likewise.
	(pack_ts_decl_common_value_fields): Likewise.
	(pack_ts_decl_wrtl_value_fields): Likewise.
	(pack_ts_decl_with_vis_value_fields): Likewise.
	(pack_ts_function_decl_value_fields): Likewise.
	(pack_ts_type_common_value_fields): Likewise.
	(pack_ts_block_value_fields): Likewise.
	(pack_ts_translation_unit_decl_value_fields): Likewise.
	(pack_value_fields): Likewise.
	(lto_output_chain): Likewise.
	(lto_output_ts_common_tree_pointers): Likewise.
	(lto_output_ts_vector_tree_pointers): Likewise.
	(lto_output_ts_complex_tree_pointers): Likewise.
	(lto_output_ts_decl_minimal_tree_pointers): Likewise.
	(lto_output_ts_decl_common_tree_pointers): Likewise.
	(lto_output_ts_decl_non_common_tree_pointers): Likewise.
	(lto_output_ts_decl_with_vis_tree_pointers): Likewise.
	(lto_output_ts_field_decl_tree_pointers): Likewise.
	(lto_output_ts_function_decl_tree_pointers): Likewise.
	(lto_output_ts_type_common_tree_pointers): Likewise.
	(lto_output_ts_type_non_common_tree_pointers): Likewise.
	(lto_output_ts_list_tree_pointers): Likewise.
	(lto_output_ts_vec_tree_pointers): Likewise.
	(lto_output_ts_exp_tree_pointers): Likewise.
	(lto_output_ts_block_tree_pointers): Likewise.
	(lto_output_ts_binfo_tree_pointers): Likewise.
	(lto_output_ts_constructor_tree_pointers): Likewise.
	(lto_output_ts_target_option): Likewise.
	(lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
	(lto_output_tree_pointers): Likewise.
	(lto_output_tree_header): Likewise.
	(lto_output_builtin_tree): Likewise.
	(lto_write_tree): Likewise.
	(lto_output_integer_cst): Likewise.
	(lto_output_tree): Likewise.
	(output_phi): Move to gimple-streamer-out.c.
	(output_gimple_stmt): Likewise.
	(output_bb): Likewise.
	* lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
	(streamer_hooks): Move to streamer-hooks.c.
	(check_handled_ts_structures): Move to tree-streamer.c
	(lto_streamer_cache_add_to_node_array): Likewise.
	(lto_streamer_cache_insert_1): Likewise.
	(lto_streamer_cache_insert): Likewise.
	(lto_streamer_cache_insert_at): Likewise.
	(lto_streamer_cache_append): Likewise.
	(lto_streamer_cache_lookup): Likewise.
	(lto_streamer_cache_get): Likewise.
	(lto_record_common_node): Likewise.
	(lto_preload_common_nodes): Likewise.
	(lto_streamer_cache_create): Likewise.
	(lto_streamer_cache_delete): Likewise.
	(streamer_hooks_init): Move to streamer-hooks.c.
	* lto-streamer.h: Include diagnostic.h
	(struct output_block, struct lto_input_block,
	struct data_in, struct bitpack_d): Remove forward declarations.
	(struct bitpack_d): Move to data-streamer.h.
	(struct lto_streamer_cache_d): Move to tree-streamer.h.
	(struct streamer_hooks): Move to streamer-hooks.h.
	(bp_pack_var_len_unsigned): Move to data-streamer.h.
	(bp_pack_var_len_int): Likewise.
	(bp_unpack_var_len_unsigned): Likewise.
	(bp_unpack_var_len_int): Likewise.
	(lto_input_location): Declare.
	(lto_tag_check_set): Declare.
	(lto_init_eh): Declare.
	(lto_output_tree_ref): Declare.
	(lto_output_location): Declare.
	(bitpack_create): Move to data-streamer.h.
	(bp_pack_value): Likewise.
	(lto_output_bitpack): Likewise.
	(lto_input_bitpack): Likewise.
	(bp_unpack_value): Likewise.
	(lto_output_1_stream): Likewise.
	(lto_input_1_unsigned): Likewise.
	(lto_output_int_in_range): Likewise.
	(lto_input_int_in_range): Likewise.
	(bp_pack_int_in_range): Likewise.
	(bp_unpack_int_in_range): Likewise.
	(lto_output_enum): Likewise.
	(lto_input_enum): Likewise.
	(bp_pack_enum): Likewise.
	(bp_unpack_enum): Likewise.
	* streamer-hooks.c: New.
	* streamer-hooks.h: New.
	* tree-streamer-in.c: New.
	* tree-streamer-out.c: New.
	* tree-streamer.c: New.
	* tree-streamer.h: New.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gthr-posix95.h: Remove.
	* gthr.h [_PTHREADS95]: Remove.
	* configure.ac (enable_threads): Remove posix95.
	* configure: Regenerate.
	* doc/install.texi (Configuration, --enable-threads): Remove posix95.

2011-08-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49781
	* config/i386/i386.c (ix86_decompose_address): Allow zero-extended
	SImode addresses.
	(ix86_print_operand_address): Handle zero-extended addresses.
	(memory_address_length): Add length of addr32 prefix for
	zero-extended addresses.
	(ix86_secondary_reload): Handle moves to/from double-word general
	registers from/to zero-extended addresses.
	* config/i386/predicates.md (lea_address_operand): Reject
	zero-extended operands.

2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/48007
	* config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.

	* system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
	(ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.

	* unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
	(_Unwind_Context_Reg_Val): Likewise.
	(_Unwind_Get_Unwind_Word): Likewise.
	(_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
	(_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
	(_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
	for EXTENDED_CONTEXT_BIT.
	(__frame_state_for): Likewise.
	(uw_init_context_1): Likewise.
	(_Unwind_GetGR): Updated.
	(_Unwind_SetGR): Likewise.
	(_Unwind_GetGRPtr): Likewise.
	(_Unwind_SetGRPtr): Likewise.
	(_Unwind_SetGRValue): Likewise.
	(_Unwind_GRByValue): Likewise.
	(uw_install_context_1): Likewise.

	* doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
	ASSUME_EXTENDED_UNWIND_CONTEXT.
	* doc/tm.texi: Regenerated.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
	Linux/GNU-specific.
	(DEC Alpha Options, -mtune): Likewise.
	(MIPS Options, -march): native is supported on IRIX.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/driver-sparc.c: New file.
	* config/sparc/x-sparc: New file.
	* config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
	* config/sparc/sparc.opt (native): New value for enum processor_type.
	* config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
	* config/sparc/sparc.c (sparc_option_override): Abort if
	PROCESSOR_NATIVE gets here.
	* config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
	(EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
	DRIVER_SELF_SPECS): Define.
	* doc/invoke.texi (SPARC Options, -mcpu): Document native.
	(SPARC Options, -mtune): Likewise.
	* configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
	Substitute result.
	* configure: Regenerate.
	* Makefile.in (EXTRA_GCC_LIBS): Set.
	(xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
	(cpp$(exeext)): Likewise.

2011-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_unary_expr_1): New function,
	split out from ...
	(extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
	by composition.

2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>

	PR tree-optimization/50005
	* ipa-inline-analysis (remap_predicate): Add cast to
	silence signed/unsigned comparison warning.

2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>

	* modulo-sched.c (get_sched_window): Use a table for the debug output.
	Print the current ii.
	(sms_schedule_by_order): Reduce whitespace in dump line.

2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>

	* modulo-sched.c (get_sched_window): Use just one loop for predecessors
	and one loop for successors.  Fix upper bound of memory range.

2011-08-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50001
	* config/alpha/alpha.c (alpha_instantiate_decls): New function.
	(TARGET_INSTANTIATE_DECLS): New define.

2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
	    Mikael Morin  <mikael.morin@sfr.fr>

	* Makefile.in (INCLUDES_FOR_TARGET): New.
	(LIBGCC2_CFLAGS): Use it.
	(CRTSTUFF_CFLAGS): Use it instead of INCLUDES.

2011-08-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Simplify
	frame->save_regs_using_mov calculation.

2011-08-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
	* config/i386/sse.md (castmode): New mode attribute.
	(avx_<castmode><avxsizesuffix>_<castmode>): Rename from
	avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.

2011-08-05  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49494
	* ipa-inline-analysis.c (remap_predicate): Add bounds check.

2011-08-05  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49500
	* tree-emultls.c (new_emutls_decl):Add alias_of parameter;
	handle aliases.
	(create_emultls_var):New function.
	(ipa_lower_emutls): Handle aliases correctly.

2011-08-05  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49735
	* ipa-inline.c (recursive_inlining): Look through aliases.

2011-08-05  Jason Merrill  <jason@redhat.com>

	* config/i386/i386.c (setup_incoming_varargs_ms_64): Move
	declarations to beginning of function.

2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/49900
	* sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
	ensure basic blocks stay in the same order.

2011-08-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
	store_bit_field.
	(s390_expand_atomic): Same.

2011-08-05  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/49977
	* dwarf2cfi.c (scan_insn_after): Split out of ...
	(scan_trace): ... here.  Correctly place notes wrt sequences.

2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
	    Richard Henderson  <rth@redhat.com>

	PR rtl-opt/49982
	* expr.c (fixup_args_size_notes): Look through no-op moves.

2011-08-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*push<mode>2): Use "o" constraint instead
	of "m" for operand 0.  Add type and mode attribute.
	(*pushxf_nointeger"): Use "<" constraint for operand 0.
	(*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
	constraint instead of "o" for opreand 1.
	(*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
	(*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
	operand 0, alternative 4.
	(*movdf_internal_rex64): Ditto for operand 0, alernative 6.

2011-08-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (lea_address_operand): Rename from
	no_seg_address_operand.
	* config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
	(*lea_1_zext): Ditto.
	(*lea_2): Ditto.
	(*lea_2_zext): Ditto.

2011-08-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
	parts.base and parts.index.
	* config/i386/predicates.md (aligned_operand): Ditto.
	(cmpxchg8b_pic_memory_operand): Ditto.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/soft-fp: Move to ../libgcc.
	* Makefile.in (SFP_MACHINE): Remove.
	(libgcc-support): Remove $(SFP_MACHINE) dependency.
	* config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
	* config/arm/t-arm-softfp: Move to
	../libgcc/config/arm/t-softfp.
	* config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
	* config/c6x/t-c6x-softfp: Remove.
	* config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
	* config/i386/t-fprules-softfp: Move to
	../libgcc/config/t-softfp-tf.
	* config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
	* config/ia64/t-fprules-softfp: Remove.
	* config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
	* config/lm32/t-fprules-softfp: Remove.
	* config/moxie/sfp-machine.h: Remove.
	* config/moxie/t-moxie-softfp: Remove.
	* config/rs6000/darwin-ldouble-format: Move to
	../libgcc/config/rs6000/ibm-ldouble-format.
	* config/rs6000/darwin-ldouble.c: Move to
	../libgcc/config/rs6000/ibm-ldouble.c
	* config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
	* config/rs6000/libgcc-ppc64.ver: Likewise.
	* config/rs6000/sfp-machine.h: Likewise.
	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
	$(srcdir)/config/rs6000/libgcc-ppc64.ver.
	(LIB2FUNCS_EXTRA): Remove.
	(TARGET_LIBGCC2_CFLAGS): Remove.
	* config/rs6000/t-aix52: Likewise
	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
	$(srcdir)/config/rs6000/darwin-ldouble.c.
	(SHLIB_MAPFILES): Remove.
	* config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
	$(srcdir)/config/rs6000/darwin-ldouble.c.
	* config/rs6000/t-fprules-softfp: Move to
	../libgcc/config/t-softfp-sfdf.
	* config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
	* config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
	* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
	$(srcdir)/config/rs6000/darwin-ldouble.c.
	* config/score/sfp-machine.h: Move to ../libgcc/config/score.
	* config/score/t-score-softfp: Remove.
	* config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
	soft-fp/t-softfp from tmake_file.
	(arm*-*-uclinux*): Likewise.
	(arm*-*-ecos-elf): Likewise.
	(arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
	(arm*-*-rtems*): Likewise.
	(arm*-*-elf): Likewise.
	(moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
	tmake_file.
	(moxie-*-uclinux*): Likewise.
	(moxie-*-rtems*): Likewise.
	(lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
	tmake_file.
	(lm32-*-rtems*): Likewise.
	(lm32-*-uclinux*): Likewise.
	(powerpc-*-freebsd*): Remove rs6000/t-freebsd,
	rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
	(powerpc-*-linux*, powerpc64-*-linux*): Remove
	rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
	(score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
	tmake_file.
	(tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
	tmake_file.
	(tic6x-*-uclinux): Likewise.
	(i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
	soft-fp/t-softfp from tmake_file.
	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
	(x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
	(i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
	(i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
	(i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
	(libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
	(libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
	TPBIT, TPBIT_FUNCS.
	* config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
	* config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
	Remove.
	* config/arm/t-vxworks: Likewise.
	* config/arm/t-wince-pe: Likewise.
	* config/avr/t-avr (fp-bit.c, FPBIT): Remove.
	* config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/bfin/t-bfin-elf: Likewise.
	* config/bfin/t-bfin-linux: Likewise.
	* config/bfin/t-bfin-uclinux: Likewise.
	* config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
	Remove.
	* config/fr30/t-fr30: Likewise.
	* config/frv/t-frv: Likewise.
	* config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
	* config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/m32c/t-m32c: Likewise.
	* config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
	* config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/mcore/t-mcore: Likewise.
	* config/mep/t-mep: Likewise.
	* config/microblaze/t-microblaze: Likewise.
	* config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
	* config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
	* config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/mn10300/t-linux: Remove.
	* config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/pdp11/t-pdp11: Likewise.
	* config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
	* config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
	* config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	(LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
	* config/rs6000/t-aix52: Likewise.
	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
	$(srcdir)/config/rs6000/ppc64-fp.c.
	* config/rs6000/t-fprules-fpbit: Remove.
	* config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
	* config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/sh/t-netbsd (FPBIT, DPBIT): Remove.
	* config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/sparc/t-elf: Likewise.
	* config/sparc/t-leon: Likewise.
	* config/sparc/t-leon3: Likewise.
	* config/spu/t-spu-elf: Likewise.
	(DPBIT_FUNCS): Remove.
	* config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
	* config/v850/t-v850: Likewise.
	* config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
	(avr-*-*): Likewise.
	(h8300-*-rtems*): Set libgcc_tm_file.
	(h8300-*-elf*): Likewise.
	(powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
	tmake_file.
	(powerpc-*-eabisim*): Likewise.
	(powerpc-*-elf*): Likewise.
	(powerpc-*-eabialtivec*): Likewise.
	(powerpc-xilinx-eabi*): Likewise.
	(powerpc-*-eabi*): Likewise.
	(powerpc-*-rtems*): Likewise.
	(powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
	(powerpcle-*-elf*): Likewise.
	(powerpcle-*-eabisim*): Likewise.
	(powerpcle-*-eabi*): Likewise.
	(rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
	(am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
	* doc/fragments.texi (Target Fragment, Floating Point Emulation):
	Remove.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (UNWIND_H): Remove.
	(LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
	../libgcc/Makefile.in.
	(LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
	(LIBUNWINDDEP): Remove.
	(libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
	(libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
	LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
	(stmp-int-hdrs): Remove $(UNWIND_H) dependency.
	Don't copy $(UNWIND_H).
	* config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
	* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
	unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
	unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
	unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
	* unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
	* config/arm/libunwind.S, config/arm/pr-support.c,
	config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
	../libgcc/config/arm.
	* config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
	* config/frv/t-frv ($(T)frvbegin$(objext)): Use
	$(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
	($(T)frvend$(objext)): Likewise.
	* config/ia64/t-glibc (LIB2ADDEH): Remove.
	* config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
	* config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
	config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
	../libgcc/config/ia64.
	* config/ia64/t-hpux (LIB2ADDEH): Remove.
	* config/ia64/t-ia64 (LIB2ADDEH): Remove.
	* config/ia64/t-vms (LIB2ADDEH): Remove.
	* config/ia64/vms.h (UNW_IVMS_MODE,
	MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
	* config/picochip/t-picochip (LIB2ADDEH): Remove.
	* config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
	* config/rs6000/t-darwin (LIB2ADDEH): Remove.
	* config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
	* config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
	$(srcdir)/../libgcc to refer to unwinder sources.
	* config/spu/t-spu-elf (LIB2ADDEH): Remove.
	* config/t-darwin (LIB2ADDEH): Remove.
	* config/t-freebsd (LIB2ADDEH): Remove.
	* config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
	* config/t-libunwind-elf: Move to ../libgcc/config.
	* config/t-linux (LIB2ADDEH): Remove.
	* config/t-sol2 (LIB2ADDEH): Remove.
	* config/xtensa/t-xtensa (LIB2ADDEH): Remove.
	* system.h (MD_FROB_UPDATE_CONTEXT): Poison.

2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (processor_alias_table): Add core-avx-i.

	* doc/invoke.texi: Document core-avx-i.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* tsystem.h (CONST_CAST2, CONST_CAST): Define.

2011-08-05  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
	result of multiple results reduction when extracting the final
	value using scalar code.

2011-08-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49984
	* tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.

2011-08-05  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
	return true for constant integer ranges.
	(extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
	BIT_IOR_EXPR handling.

2011-08-04  Kai Tietz  <ktietz@redhat.com>

	* config/i386/i386.c (setup_incoming_varargs_ms_64): Set
	ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.

2011-08-04  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vectorizer.h (struct _stmt_vec_info): Add new field for
	pattern def statement, and its access macro.
	(NUM_PATTERNS): Set to 5.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
	pattern def statement.
	(vect_transform_loop): Likewise.
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
	function vect_recog_over_widening_pattern ().
	(vect_operation_fits_smaller_type): New function.
	(vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
	Likewise.
	(vect_pattern_recog_1): Move the code that marks pattern
	statements to vect_mark_pattern_stmts (), and call it.  Update
	documentation.
	* tree-vect-stmts.c (vect_supportable_shift): New function.
	(vect_analyze_stmt): Handle pattern def statement.
	(new_stmt_vec_info): Initialize pattern def statement.

2011-08-04  Richard Henderson  <rth@redhat.com>

	PR target/49964
	* config/i386/i386.c (ix86_expand_call): Don't create nested
	PARALLELs for TARGET_VZEROUPPER.
	(ix86_split_call_vzeroupper): Fix extraction of the original call.
	* config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
	recognize nested PARALLELs.
	(*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
	*call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
	*sibcall_value_pop_vzeroupper): Likewise.

2011-08-04  Richard Henderson  <rth@redhat.com>

	PR middle-end/49968
	* calls.c (expand_call): Use fixup_args_size_notes for
	emit_stack_restore.
	* expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
	in non-standard modes.

2011-08-04  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (self_spec): New variable.
	(static_specs): Add self_spec.
	(main): Call do_self_spec on "self_spec" specs after reading
	user specs files.  Move compare_debug handling right after that.

2011-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
	(value_range_nonnegative_p): New function.
	(ssa_name_nonnegative_p): Use it.
	(value_range_constant_singleton): New function.
	(op_with_constant_singleton_value_range): Use it.
	(extract_range_from_binary_expr_1): New function, split out from ...
	(extract_range_from_binary_expr): ... this.  Remove fallback
	constant folding done here.

2011-08-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49806
	* tree-vrp.c (op_with_boolean_value_range_p): New function.
	(simplify_truth_ops_using_ranges): Simplify.  Allow inserting
	a new statement for a final conversion to bool.

2011-08-04  Romain Geissler  <romain.geissler@gmail.com>

	* gengtype-state.c: Include "bconfig.h" if
	GENERATOR_FILE is defined, "config.h" otherwise.
	* gengtype.c: Likewise.
	* gengtype-lex.l: Likewise.
	* gengtype-parse.c: Likewise.
	* Makefile.in (gengtype-lex.o-warn): New variable.
	(plugin_resourcesdir): Likewise.
	(plugin_bindir): Likewise.
	(plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
	(MOSTLYCLEANFILES): Add gengtype$(exeext).
	(native): Depend on gengtype$(exeext) is $enable_plugin
	is set to "yes".
	(gtype.state): Depend on s-gtype. Use temporary file.
	(gengtype-lex.o): New rule.
	(gengtype-parse.o): Likewise.
	(gengtype-state.o): Likewise.
	(gengtype$(exeext)): Likewise.
	(install-gengtype): Likewise.
	(gengtype.o): Likewise.
	(build/gengtype.o): Depend on version.h.
	(build/gengtype-state): Depend on double-int.h, version.h,
	$(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
	(install-plugin): Depend on install-gengtype.

2011-08-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49905
	* tree.h (init_attributes): New prototype.
	* attribs.c (init_attributes): No longer static.

2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
	maybe_suffix.

2011-08-03  David Li  <davidxl@google.com>

	* tree-optimize.c (execute_fixup_cfg): Fix up entry
	outgoing edge counts after inlining.

2011-08-03  David Li  <davidxl@google.com>

	* profile.c (compute_branch_probabilities): Compute
	function frequency after profile annotation.

2011-08-04  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
	use_backchain_to_restore_sp initialisation.
	(rs6000_legitimate_offset_address_p): Simplify offset test.

2011-08-03  Richard Henderson  <rth@redhat.com>

	* config/spu/spu.md: Use define_c_enum instead of define_constants.
	(UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
	(UNSPECV_NOP): New.

2011-08-03  Richard Henderson  <rth@redhat.com>

	PR target/34888
	* config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.

2011-08-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49948
	* gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.

2011-08-03  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.c (class_sizes): Remove.
	(reduce_class): Change arguments and return type to reg_class_t.
	Change type cc var to HARD_REG_SET. Change type best var to
	reg_class_t. Change type best_size var to unsigned int. Remove
	initialization class_sizes var. Use reg_class_size array instead
	of class_sizes. Use reg_class_contents array instead
	of class_contents.

2011-08-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/49958
	* fold-const.c (fold_binary_loc): Only associate
	(+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
	overflow wraps.

2011-08-03  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/49941
	* jump.c (mark_jump_label): Comment.
	(mark_jump_label_1): Set JUMP_LABEL for return jumps.
	* emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
	(mark_used_flags): Don't mark RETURN.

2011-08-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49938
	* tree-scalar-evolution.c (interpret_loop_phi): Gracefully
	deal with a POLYNOMIAL_CHREC.

2011-08-03  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (calculate_stage_count,
	calculate_must_precede_follow, get_sched_window,
	try_scheduling_node_in_cycle, remove_node_from_ps): Add
	declaration.
	(update_node_sched_params, set_must_precede_follow, optimize_sc):
	New functions.
	(reset_sched_times): Call update_node_sched_params.
	(sms_schedule): Call optimize_sc.
	(get_sched_window): Change function arguments.
	(sms_schedule_by_order): Update call to get_sched_window.
	Call set_must_precede_follow.
	(calculate_stage_count): Add function argument.

2011-08-02  Richard Henderson  <rth@redhat.com>

	PR target/49864
	PR target/49879
	* reg-notes.def (REG_ARGS_SIZE): New.
	* calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
	(expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
	* cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
	different stack levels.
	* combine-stack-adj.c (adjust_frame_related_expr): Remove.
	(maybe_move_args_size_note): New.
	(combine_stack_adjustments_for_block): Use it.
	* combine.c (distribute_notes): Place REG_ARGS_SIZE.
	* dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
	(dw_trace_info): Add beg_true_args_size, end_true_args_size,
	beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
	(cur_cfa): New.
	(queued_args_size): Remove.
	(add_cfi_args_size): Assert size is non-negative.
	(stack_adjust_offset, dwarf2out_args_size): Remove.
	(dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
	(notice_args_size, notice_eh_throw): New.
	(dwarf2out_frame_debug_def_cfa): Use cur_cfa.
	(dwarf2out_frame_debug_adjust_cfa): Likewise.
	(dwarf2out_frame_debug_cfa_offset): Likewise.
	(dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
	(dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
	(change_cfi_row): Don't emit args_size.
	(maybe_record_trace_start_abnormal): Split out from ...
	(maybe_record_trace_start): Here.  Set args_size_undefined.
	(create_trace_edges): Update to match.
	(scan_trace): Handle REG_ARGS_SIZE.
	(connect_traces): Connect args_size between EH insns.
	* emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
	* explow.c (suppress_reg_args_size): New.
	(adjust_stack_1): Split out from ...
	(adjust_stack): ... here.
	(anti_adjust_stack): Use it.
	(allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
	* expr.c (mem_autoinc_base): New.
	(fixup_args_size_notes): New.
	(emit_single_push_insn_1): Rename from emit_single_push_insn.
	(emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
	* recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
	* reload1.c (reload_as_needed): Likewise.
	* rtl.h (fixup_args_size_notes): Declare.

2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR bootstrap/49914
	* fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
	of abs.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.

2011-08-02  Richard Henderson  <rth@redhat.com>

	* config/h8300/h8300.c (push, pop): Return the insn.
	(h8300_swap_into_er6): Generate correct unwind info.
	(h8300_swap_out_of_er6): Likewise.
	* dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
	complex cfa expression.
	(dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.

2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.

2011-08-02  Richard Henderson  <rth@redhat.com>

	PR target/49878
	* config/h8300/h8300.c (h8300_move_ok): New.
	* config/h8300/h8300-protos.h: Declare it.
	* config/h8300/h8300.md (P): New mode iterator.
	(*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
	(*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
	(movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
	(*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
	(*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
	and pushqi1_h8300hs_normal; use PRE_MODIFY and
	register_no_sp_elim_operand.
	(*pushhi1_h8300hs_<P>): Similarly.
	(pushqi1, pushhi1, pushhi1_h8300): Remove.
	* config/h8300/predicates.md (register_no_sp_elim_operand): New.

2011-08-02  Richard Henderson  <rth@redhat.com>

	PR target/49881
	* config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (enum c_parser_prec): New enum, moved from within
	c_parser_binary_expression.
	(c_parser_binary_expression): Add PREC argument.  Stop parsing
	if operator has lower or equal precedence than PREC.
	(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
	callers.
	(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
	Adjust c_finish_omp_atomic caller.
	(c_parser_omp_taskyield): New function.
	(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
	(c_parser_omp_clause_name): Handle final and mergeable clauses.
	(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
	functions.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
	and PRAGMA_OMP_CLAUSE_MERGEABLE.
	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
	(c_parser_omp_clause_reduction): Handle min and max.
	* c-typeck.c (c_finish_omp_clauses): Don't complain about
	const qualified predetermined vars in firstprivate clause.
	andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
	Handle MIN_EXPR and MAX_EXPR.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
	and OMP_CLAUSE_MERGEABLE.
	(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
	and OMP_ATOMIC_CAPTURE_NEW.
	* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
	OMP_CLAUSE_MERGEABLE.
	(omp_clause_code_name): Likewise.
	(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
	* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
	and OMP_CLAUSE_MERGEABLE.
	(OMP_CLAUSE_FINAL_EXPR): Define.
	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
	OMP_CLAUSE_MERGEABLE.
	(expand_task_call): Likewise.
	(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
	(expand_omp_atomic_fetch_op): Handle cases where old or new
	value is needed afterwards.
	(expand_omp_atomic): Call expand_omp_atomic_load resp.
	expand_omp_atomic_store.
	* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
	OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
	OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Likewise.
	* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
	OMP_ATOMIC_CAPTURE_NEW): New.
	* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
	(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
	New inlines.
	* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
	* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
	OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.

2011-08-02  Kai Tietz  <ktietz@redhat.com>

	* gimple.c (canonicalize_cond_expr_cond): Handle cast from
	boolean-type.
	(ssa_forward_propagate_and_combine): Interprete result of
	forward_propagate_comparison.
	* gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
	boolean-typed operands for comparisons.

2011-08-02  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/libgcc.S: Gather related function in the
	same input section.
	(__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
	__divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
	references.
	(__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
	__udivmodsi4, __divmodsi4, __prologue_saves__,
	__epilogue_restores__, _exit, __tablejump2__, __tablejump__,
	__do_copy_data, __do_clear_bss, __do_global_ctors,
	__do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.

2011-08-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47766
	* doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
	(stack_protect_test): The pattern compares ptr_mode value.

2011-08-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
	note for save_LR_around_toc_setup sequence.

2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.

2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
	* hwint.c: Include diagnostic-core.h.
	(abs_hwi): New.
	(gcd): Moved here...
	(pos_mul_hwi): New.
	(mul_hwi): New.
	(least_common_multiple): Moved here...
	* hwint.h (gcd): ... from here.
	(least_common_multiple): ... from here.
	(HOST_WIDE_INT_MIN): New.
	(HOST_WIDE_INT_MAX): New.
	(abs_hwi): Declared.
	(gcd): Declared.
	(pos_mul_hwi): Declared.
	(mul_hwi): Declared.
	(least_common_multiple): Declared.
	* omega.c (check_pos_mul): Removed.
	(check_mul): Removed.
	(omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
	mul_hwi instead of check_mul.

2011-08-01  Richard Henderson  <rth@redhat.com>

	PR target/49881
	* config/avr/avr.h (PUSH_ROUNDING): New.
	* config/avr/avr.md (pushqi1): Rename from *pushqi.
	(*pushhi, *pushsi, *pushsf): Remove.
	(MPUSH): New mode iterator.
	(push<MPUSH>1): New expander.

2011-08-01  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
	PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
	* config/mmix/mmix-protos.h (mmix_preferred_reload_class,
	mmix_preferred_output_reload_class): Remove.
	* config/mmix/mmix.c (mmix_preferred_reload_class,
	mmix_preferred_output_reload_class): Make static. Change rclass
	argument and return type to reg_class_t.
	(TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.

2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>

	* mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
	handling.

2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47766
	* config/i386/i386.md (PTR): New.
	(stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
	(stack_protect_test): Likewise.
	(stack_protect_set_<mode>): Replace ":P" with ":PTR".
	(stack_tls_protect_set_<mode>): Likewise.
	(stack_tls_protect_test_<mode>): Likewise.

2011-08-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49927
	* config/i386/i386.c (ix86_address_subreg_operand): New.
	(ix86_decompose_address): Use ix86_address_subreg_operand.
	(ix86_legitimate_address_p): Do not assert that subregs satisfy
	register_no_elim_operand in DImode.

2011-08-01  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49926
	* tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
	in a chain doesn't have uses both inside and outside the loop.

2011-08-01  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (mcu_type_s): Add errata_skip field.
	* config/avr/avr-devices.c (avr_mcu_types): Use it.
	* config/avr/avr-mcus.def (AVR_MCU): Use it.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
	define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
	* config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
	Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
	to detect if XJMP must not be skipped.

2011-08-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
	Delete.
	* config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
	(rs6000_emit_prologue): Don't prematurely return when
	TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
	save_toc_in_prologue case.
	(rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
	calls_alloca.

2011-08-01  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-devices.c: Delete SVN property svn:executable.
	* config/avr/predicates.md: Ditto.
	* config/avr/driver-avr.c: Ditto.
	* config/avr/genopt.sh: Set SVN property svn:executable to *.

2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* calls.c (emit_library_call_value_1): Declare size only if
	BLOCK_REG_PADDING is defined.

2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/49547
	* config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/i386.opt (mlzcnt): New.
	* config/i386/abmintrin.h: File removed.
	(__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
	* config/i386/lzcntintrin.h: ... here.  New file.
	(__lzcnt): Rename to ...
	(__lzcnt32): ... this.
	* config/i386/bmiintrin.h (head): Update copyright year.
	(__lzcnt_u16): Removed.
	(__lzcnt_u32): Likewise.
	(__lzcnt_u64): Likewise.
	* config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
	is defined, remove abmintrin.h.
	* config/i386/cpuid.h (bit_LZCNT): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	LZCNT feature.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__LZCNT__ if needed.
	* config/i386/i386.c (ix86_target_string): New option -mlzcnt.
	(ix86_option_override_internal): Handle LZCNT option.
	(ix86_valid_target_attribute_inner_p): Likewise.
	(struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
	* config/i386/i386.h (TARGET_LZCNT): New.
	(CLZ_DEFINED_VALUE_AT_ZERO): Update.
	* config/i386/i386.md (clz<mode>2): Update insn constraint.
	(clz<mode>2_lzcnt): Likewise.
	* doc/invoke.texi: Mention -mlzcnt option.
	* doc/extend.texi: Likewise.

2011-08-01  Julian Brown  <julian@codesourcery.com>

	* configure.ac (fixed-point): Add ARM support.
	* configure: Regenerate.
	* config/arm/arm.c (arm_fixed_mode_set): New struct.
	(arm_set_fixed_optab_libfunc): New.
	(arm_set_fixed_conv_libfunc): New.
	(arm_init_libfuncs): Initialise fixed-point helper libfuncs with
	ARM-specific names.
	(aapcs_libcall_value): Return sub-word-size fixed-point libcall
	return values in SImode.
	(arm_return_in_msb): Return fixed-point types in the msb.
	(arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
	upwards.
	(arm_scalar_mode_supported_p): Support fixed-point modes.
	(arm_vector_mode_supported_p): Support vector fixed-point modes.
	* config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
	(LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
	(SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
	(LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
	* config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
	New mode iterators.
	(qaddsub_suf): New mode attribute.
	* config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
	vector modes.
	* config/arm/predicates.md (sat_shift_operator): New predicate.
	* config/arm/arm-fixed.md: New.
	* config/arm/arm.md: Include arm-fixed.md.
	* config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.

2011-08-01  Julian Brown  <julian@codesourcery.com>

	* calls.c (emit_library_call_value_1): Support padding for libcall
	arguments and return values.
	* config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
	downwards in big-endian mode.

2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR debug/49887
	* config/sol2.c (solaris_code_end): Rename to solaris_file_end.
	* config/sol2-protos.h: Likewise.
	* config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
	solaris_code_end.
	* config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
	* config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
	solaris_file_end.
	* config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.

2011-08-01  Julian Brown  <julian@codesourcery.com>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.

2011-08-01  Julian Brown  <julian@codesourcery.com>

	* final.c (output_addr_const): Print fixed-point constants as
	decimal not hex.

2011-08-01  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (initialize_sizetypes): Properly sign-extend
	bitsiztype TYPE_MAX_VALUE.

2011-08-01  Julian Brown  <julian@codesourcery.com>

	* optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
	comparison helpers.

2011-07-31  Richard Henderson  <rth@redhat.com>

	* config/h8300/crti.asm: Add flags to .section directive.
	* config/h8300/crtn.asm: Likewise.

2011-07-31  Richard Henderson  <rth@redhat.com>

	* stor-layout.c (initialize_sizetypes): Handle unsigned short.
	* tree.c (build_common_tree_nodes): Likewise.

2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49880
	* config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
	(divsi3_i1): Likewise.

2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/49749
	* tree-ssa-reassoc.c (get_rank): New forward declaration.
	(PHI_LOOP_BIAS): New macro.
	(phi_rank): New function.
	(loop_carried_phi): Likewise.
	(propagate_rank): Likewise.
	(get_rank): Add calls to phi_rank and propagate_rank.

2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
	of TARGET_64BIT.
	(PTRDIFF_TYPE): Likewise.

2011-07-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49920
	* config/i386/i386.md (strset): Do not expand strset_singleop
	when %eax or $edi are fixed.
	(*strsetdi_rex_1): Disable when %eax or %edi are fixed.
	(*strsetsi_1): Ditto.
	(*strsethi_1): Ditto.
	(*strsetqi_1): Ditto.
	(*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
	(*rep_stossi): Ditto.
	(*rep_stosqi): Ditto.
	(*strlenqi_1): Ditto.
	(cmpstrnsi): Also fail when %ecx is fixed.
	(*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
	(*cmpstrnqi_1): Ditto.
	(*strmovdi_rex_1): Disable when %esi or %edi are fixed.
	(*strmovsi_1): Ditto.
	(*strmovhi_1): Ditto.
	(*strmovqi_1): Ditto.
	(*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
	(*rep_movsi): Ditto.
	(*rep_movqi): Ditto.

2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>

	PR target/47908
	* config/m68k/m68k.c (m68k_override_options_after_change): New function.
	Disable instruction scheduling for non-ColdFire targets.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.

2011-07-31  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
	of anti-dep edge from a branch.
	(add_cross_iteration_register_deps): Create anti-dep edge from
	a branch.

2011-07-31  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c: Change comment.
	(reset_sched_times): Fix print message.
	(print_partial_schedule): Add print info.

2011-07-31  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43513
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
	get_object_alignment and TYPE_ALIGN.

2011-07-30  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43513
	* tree-ssa-dce.c (ref_may_be_aliased): Add assert.
	(propagate_necessity): Handle WITH_SIZE_EXPR call arg.

2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/driver-native.c [__sgi__]: Include <invent.h>,
	<sys/sbd.h>.
	(cpu_types): New array.
	(cputype): New function.
	(host_detect_local_cpu): Only define buf, f if !__sgi__.
	Use scaninvent instead of /proc/cpuinfo if __sgi__.
	* config.host: Also use driver-native.o, mips/x-native on
	mips-sgi-irix*.
	* config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
	(EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
	(DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.

2011-07-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49897
	PR middle-end/49898
	* omp-low.c (use_pointer_for_field): If disallowing copy-in/out
	in nested parallel and outer is a gimple_reg, mark it as addressable
	and set its bit in task_shared_vars bitmap too.

2011-07-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (tp_or_register_operand): Remove predicate.

2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
	IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
	(AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
	AMASK_LOCKPFTCHOK): Define.
	(host_detect_local_cpu): Remove buf, f, cpu_names.
	Define cpu_types, implver, amask.
	Use __builtin_alpha_implver, __builtin_alpha_amask to determine
	native CPU.
	* config.host: Also use driver-alpha.o, alpha/x-alpha on
	alpha*-dec-osf*.
	* config/alpha/osf5.h [__alpha__ || __alpha]
	(host_detect_local_cpu): Declare.
	(EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
	(DRIVER_SELF_SPECS): Define.

2011-07-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47715
	* config/i386/i386.md (*load_tp_x32): New.
	(*load_tp_x32_zext): Ditto.
	(*add_tp_x32): Ditto.
	(*add_tp_x32_zext): Ditto.
	(*load_tp_<mode>): Disable for TARGET_X32 targets.
	(*add_tp_<mode>): Ditto.
	* config/i386/i386.c (get_thread_pointer): Load thread pointer in
	ptr_mode and convert to Pmode if needed.

2011-07-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49687
	* config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
	muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
	*<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
	Add X to register footprint: Clobber r26/r27.

2011-07-29  Richard Guenther  <rguenther@suse.de>

	* builtins.c (fold_builtin_signbit): Build the comparison
	with a proper type.

2011-07-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49893
	* tree-predcom.c (suitable_reference_p): Volatile references
	are not suitable.

2011-07-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49313
	* config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
	(__ctzsi2): Result for 0 may be undefined.
	(__ctzhi2): Result for 0 may be undefined.
	(__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
	(__popcountsi2): Ditto. And don't clobber r26.
	(__popcountdi2): Ditto. And don't clobber r27.
	* config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
	(parityhi2): New expand.
	(paritysi2): New expand.
	(popcounthi2): New expand.
	(popcountsi2): New expand.
	(clzhi2): New expand.
	(clzsi2): New expand.
	(ctzhi2): New expand.
	(ctzsi2): New expand.
	(ffshi2): New expand.
	(ffssi2): New expand.
	(copysignsf3): New insn.
	(bswapsi2): New expand.
	(*parityhi2.libgcc): New insn.
	(*parityqihi2.libgcc): New insn.
	(*paritysihi2.libgcc): New insn.
	(*popcounthi2.libgcc): New insn.
	(*popcountsi2.libgcc): New insn.
	(*popcountqi2.libgcc): New insn.
	(*popcountqihi2.libgcc): New insn-and-split.
	(*clzhi2.libgcc): New insn.
	(*clzsihi2.libgcc): New insn.
	(*ctzhi2.libgcc): New insn.
	(*ctzsihi2.libgcc): New insn.
	(*ffshi2.libgcc): New insn.
	(*ffssihi2.libgcc): New insn.
	(*bswapsi2.libgcc): New insn.

2011-07-29  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (get_value_range): Only set parameter default
	definitions to varying, leave others at undefined.
	(extract_range_from_binary_expr): Fix undefined handling.
	(vrp_visit_phi_node): Handle merged undefined state.

2011-07-29  Wei Guozhi  <carrot@google.com>

	PR rtl-optimization/49799
	* combine.c (make_compound_operation): Check if the bit field is valid
	before change it to bit field extraction.

2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/49891
	* cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
	newly created returnjumps.

2011-07-28  DJ Delorie  <dj@redhat.com>

	* expr.c (expand_expr_addr_expr_1): Detect a user request for a
	local frame in a naked function, and produce a suitable error for
	that specific case.

	* config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
	registers to be reloaded in HI classes when the target is HI.

2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
	bound_one, bound_two.

2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/48648
	* graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
	CLAST assignments.
	(translate_clast): Same.
	(translate_clast_assignment): New.

2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/49876
	* sese.c (rename_uses): Do not return false on gloog_error: set
	the new_expr to integer_zero_node and continue code generation.
	(graphite_copy_stmts_from_block): Remove early exit on gloog_error.

2011-07-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49846
	* var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
	arguments also check if they aren't initialized with a MODE_INT
	mode of the same size.

2011-07-28  Aldy Hernandez  <aldyh@redhat.com>

	* expr.c (get_bit_range): Handle *MEM_REF's.

2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>

	* rtlanal.c (tablejump_p): False for returns.
	* reorg.c (first_active_target_insn): New static function.
	(find_end_label): Set JUMP_LABEL for a new returnjump.
	(optimize_skip, get_jump_flags, rare_destination,
	mostly_true_jump, get_branch_condition,
	steal_delay_list_from_target, own_thread_p,
	fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
	fill_eager_delay_slots, relax_delay_slots, make_return_insns,
	dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
	* jump.c (delete_related_insns): Likewise.
	(jump_to_label_p): New function.
	(redirect_target): New static function.
	(redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
	(redirect_jump_1): Assert that the new label is nonnull.
	(redirect_jump): Likewise.
	(redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
	* ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
	exit block.
	(dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
	changed.  Ensure that the right label is passed to redirect_jump.
	* function.c (emit_return_into_block,
	thread_prologue_and_epilogue_insns): Ensure new returnjumps have
	ret_rtx in their JUMP_LABEL.
	* print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
	* emit-rtl.c (skip_consecutive_labels): Allow the caller to
	pass ret_rtx as label.
	* cfglayout.c (fixup_reorder_chain): Use
	force_nonfallthru_and_redirect rather than force_nonfallthru.
	(duplicate_insn_chain): Copy JUMP_LABELs for returns.
	* rtl.h (ANY_RETURN_P): New macro.
	(jump_to_label_p): Declare.
	* resource.c (find_dead_or_set_registers): Handle ret_rtx in
	JUMP_LABELs.
	(mark_target_live_regs): Likewise.
	* basic-block.h (force_nonfallthru_and_redirect): Declare.
	* cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
	* config/alpha/alpha.c (alpha_tablejump_addr_vec,
	alpha_tablejump_best_label): Remove functions.
	* config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
	alpha_tablejump_best_label): Remove declarations.
	* config/sh/sh.c (barrier_align, split_branches): Adjust for
	ret_rtx in JUMP_LABELs.
	* config/arm/arm.c (is_jump_table): Likewise.

2011-07-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (pic_32bit_opreand): Do not define as
	special predicate.  Remove explicit mode checks.

2011-07-28  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
	DW_AT_data_member_location containing just DW_OP_plus_uconst.

	PR debug/49871
	* dwarf2out.c (size_of_die, value_format, output_die): Use
	DW_FORM_udata instead of DW_FORM_data[48] for
	dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*tls_global_dynamic_64): Update
	length attribute.

2011-07-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47715
	* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
	tls_symbolic_operand check.  Update code sequence for TARGET_X32.
	(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
	(tls_dynamic_gnu2_64): Ditto.
	(*tls_dynamic_gnu2_lea_64): Ditto.
	(*tls_dynamic_gnu2_call_64): Ditto.
	(*tls_dynamic_gnu2_combine_64): Ditto.

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Set need_64bit_hwint to yes for x86 targets.

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47364
	* config/i386/i386.md (strlen<mode>): Replace SWI48x with P.

2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
	before the core constraints. Adjust attributes.
	("*thumb2_movdf_vfp"): Likewise.

2011-07-28  Kai Tietz  <ktietz@redhat.com>

	* tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
	(simplify_truth_ops_using_ranges): Likewise.
	(build_assert_expr_for): Likewise.
	(build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
	and handle BIT_NOT_EXPR for truth-operation.

2011-07-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49313
	Undo r176835 from trunk
	2011-07-27  Georg-Johann Lay

2011-07-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49687
	* config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
	Add _muluhisi3, _mulshisi3, _usmulhisi3.
	* config/avr/libgcc.S (__mulsi3): Rewrite.
	(__mulhisi3): Rewrite.
	(__umulhisi3): Rewrite.
	(__usmulhisi3): New.
	(__muluhisi3): New.
	(__mulshisi3): New.
	(__mulohisi3): New.
	(__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
	declare.
	* config/avr/predicates.md (pseudo_register_operand): Rewrite.
	(pseudo_register_or_const_int_operand): New.
	(combine_pseudo_register_operand): New.
	(u16_operand): New.
	(s16_operand): New.
	(o16_operand): New.
	* config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
	* config/avr/avr.md (QIHI, QIHI2): New mode iterators.
	(any_extend, any_extend2): New code iterators.
	(extend_prefix): New code attribute.
	(mulsi3): Rewrite. Turn insn to expander.
	(mulhisi3): Ditto.
	(umulhisi3): Ditto.
	(usmulhisi3): New expander.
	(*mulsi3): New insn-and-split.
	(mulu<mode>si3): New insn-and-split.
	(muls<mode>si3): New insn-and-split.
	(mulohisi3): New insn-and-split.
	(*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
	*usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
	*sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
	*ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
	insn-and-split.
	(*mulsi3_call): Rewrite.
	(*mulhisi3_call): Rewrite.
	(*umulhisi3_call): Rewrite.
	(*usmulhisi3_call): New insn.
	(*muluhisi3_call): New insn.
	(*mulshisi3_call): New insn.
	(*mulohisi3_call): New insn.
	(extendqihi2): Use combine_pseudo_register_operand as predicate
	for operand 1.
	(extendqisi2): Ditto.
	(zero_extendqihi2): Ditto.
	(zero_extendqisi2): Ditto.
	(zero_extendhisi2): Ditto.
	(extendhisi2): Ditto. Don't early-clobber operand 0.

2011-07-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/49471
	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
	iv only when the largest type is unsigned.  Do not call
	lang_hooks.types.type_for_size.

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45450
	* graphite-poly.c (apply_poly_transforms): Disable legality check
	after an openscop read.

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/47691
	* graphite-clast-to-gimple.c (translate_clast_user): Update use of
	copy_bb_and_scalar_dependences.
	* sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
	(graphite_copy_stmts_from_block): Update call to rename_uses.
	(copy_bb_and_scalar_dependences): Update call to
	graphite_copy_stmts_from_block.
	* sese.h (copy_bb_and_scalar_dependences): Update declaration.

2011-07-27  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49313
	* config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
	(__ctzsi2): Result for 0 may be undefined.
	(__ctzhi2): Result for 0 may be undefined.
	(__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
	(__popcountsi2): Ditto. And don't clobber r26.
	(__popcountdi2): Ditto. And don't clobber r27.
	* config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
	(parityhi2): New expand.
	(paritysi2): New expand.
	(popcounthi2): New expand.
	(popcountsi2): New expand.
	(clzhi2): New expand.
	(clzsi2): New expand.
	(ctzhi2): New expand.
	(ctzsi2): New expand.
	(ffshi2): New expand.
	(ffssi2): New expand.
	(copysignsf3): New insn.
	(bswapsi2): New expand.
	(*parityhi2.libgcc): New insn.
	(*parityqihi2.libgcc): New insn.
	(*paritysihi2.libgcc): New insn.
	(*popcounthi2.libgcc): New insn.
	(*popcountsi2.libgcc): New insn.
	(*popcountqi2.libgcc): New insn.
	(*popcountqihi2.libgcc): New insn-and-split.
	(*clzhi2.libgcc): New insn.
	(*clzsihi2.libgcc): New insn.
	(*ctzhi2.libgcc): New insn.
	(*ctzsihi2.libgcc): New insn.
	(*ffshi2.libgcc): New insn.
	(*ffssihi2.libgcc): New insn.
	(*bswapsi2.libgcc): New insn.

2011-07-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_move): Do not explicitly check
	the mode of symbolic_opreand RTXes.

2011-07-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (x86_64_movabs_operand): Return false
	for pic_32bit_operand RTXes.
	* config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
	in DImode.

2011-07-27  Kai Tietz  <ktietz@redhat.com>

	* config/i386/i386.c (ix86_option_override_internal): Allow -mabi
	for 32-bit, too.
	(ix86_handle_abi_attribute): Allow function attributes
	ms_abi/sysv_abi in 32-bit mode, too.
	* doc/extend.texi: Adjust attribute documentation.

	* gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
	expression handling.
	(and_var_with_comparison_1): Likewise.

2011-07-27  Aldy Hernandez  <aldyh@redhat.com>

	* params.h (ALLOW_STORE_DATA_RACES): New.
	* params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
	* Makefile.in (expr.o): Depend on PARAMS_H.
	* machmode.h (get_best_mode): Add argument.
	* fold-const.c (optimize_bit_field_compare): Add argument to
	get_best_mode.
	(fold_truthop): Same.
	* ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
	* expr.c (emit_group_store): Same.
	(copy_blkmode_from_reg): Same.
	(write_complex_part): Same.
	(optimize_bitfield_assignment_op): Add argument.
	Add argument to get_best_mode.
	(get_bit_range): New.
	(expand_assignment): Calculate maxbits and pass it down accordingly.
	(store_field): New argument.
	(expand_expr_real_2): New argument to store_field.  Include params.h.
	* expr.h (store_bit_field): New argument.
	* stor-layout.c (get_best_mode): Restrict mode expansion by taking
	into account maxbits.
	* calls.c (store_unaligned_arguments_into_pseudos): New argument
	to store_bit_field.
	* expmed.c (store_bit_field_1): New argument.  Use it.
	(store_bit_field): Same.
	(store_fixed_bit_field): Same.
	(store_split_bit_field): Same.
	(extract_bit_field_1): Pass new argument to get_best_mode.
	(extract_bit_field): Same.
	* stmt.c (store_bit_field): Pass new argument to store_bit_field.
	* doc/invoke.texi: Document parameter allow-store-data-races.

2011-07-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.

2011-07-27  Kai Tietz  <ktietz@redhat.com>

	* tree-vrp.c (extract_range_from_binary_expr): Remove
	TRUTH-binary cases and add new bitwise-cases.
	(extract_range_from_assignment): Likewise.
	(register_edge_assert_for_1): Likeiwise.
	(register_edge_assert_for): Likewise.
	(simplify_truth_ops_using_ranges): Likewise.
	(simplify_stmt_using_ranges): Likewise.

2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47372
	* config/i386/i386.c (ix86_delegitimize_address): Call
	simplify_gen_subreg for PIC with mode of x only if modes of
	x and orig_x are different.

2011-07-26  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_macinfo_op): Ensure fd->filename points
	to GC allocated copy of the string.
	(dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
	before .debug_line, not after it.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/47046
	* tree-chrec.h (evolution_function_is_affine_p): Recursively call
	evolution_function_is_affine_p on CHREC_RIGHT.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (max_stmt_executions_tree): Do not call
	lang_hooks.types.type_for_size.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/47653
	* graphite-scop-detection.c (graphite_can_represent_loop): Discard
	loops using wrapping semantics.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/48805
	* tree-scalar-evolution.c (instantiate_scev_r): Return
	chrec_dont_know for ADDR_EXPR.

2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47369
	PR target/49853
	* config/i386/i386.c (ix86_expand_move): Call convert_to_mode
	if legitimize_tls_address returned operand in wrong mode. Allow
	SImode and DImode symbolic operand for PIC.  Call convert_to_mode
	if legitimize_pic_address returned operand in wrong mode.

2011-07-26  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
	return false for invariants.

2011-07-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (add->lea splitter): Implement using SWI
	mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
	(add->lea zext splitter): Change operand 2 predicate to
	x86_64_nonmemory_operand.

2011-07-26  Richard Guenther  <rguenther@suse.de>

	* predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
	frequency makes everything hot.

2011-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49840
	* tree-vrp.c (range_fits_type_p): Properly handle full
	double-int precision.

2011-07-26  Martin Jambor  <mjambor@suse.cz>

	PR bootstrap/49786
	* ipa-cp.c (update_profiling_info): Avoid overflow when updating
	counts.
	(update_specialized_profile): Likewise.

2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47381
	PR target/49832
	PR target/49833
	* config/i386/i386.md (i): Change SImode attribute to "e".
	(g): Change SImode attribute to "rme".
	(di): Change SImode attribute to "nF".
	(general_operand): Change SImode attribute to x86_64_general_operand.
	(general_szext_operand): Change SImode attribute to
	x86_64_szext_general_operand.
	(immediate_operand): Change SImode attribute to
	x86_64_immediate_operand.
	(nonmemory_operand): Change SImode attribute to
	x86_64_nonmemory_operand.
	(*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
	(*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
	(*lea_1): Use SWI48 mode iterator.
	(*lea_1_zext): New insn pattern.
	(testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
	(*bt<mode>): Ditto.
	(*add<mode>1): Use x86_64_general_operand predicate for operand 2.
	Update operand constraints.
	(addsi_1_zext): Ditto.
	(*add<mode>2): Ditto.
	(*addsi_3_zext): Ditto.
	(*subsi_1_zext): Ditto.
	(*subsi_2_zext): Ditto.
	(*subsi_3_zext): Ditto.
	(*addsi3_carry_zext): Ditto.
	(*<plusminus_insn>si3_zext_cc_overflow): Ditto.
	(*mulsi3_1_zext): Ditto.
	(*andsi_1): Ditto.
	(*andsi_1_zext): Ditto.
	(*andsi_2_zext): Ditto.
	(*<any_or:code>si_1_zext): Ditto.
	(*<any_or:code>si_2_zext): Ditto.
	(*test<mode>_1): Use <general_operand> predicate for operand 1.
	(*and<mode>_2): Ditto.
	(mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
	(add->lea splitter): Check operand modes in insn constraint.  Extend
	operands less than SImode wide to SImode.
	(add->lea zext splitter): Do not extend input operands to DImode.
	(*lea_general_1): Handle only QImode and HImode operands.
	(*lea_general_2): Ditto.
	(*lea_general_3): Ditto.
	(*lea_general_1_zext): Remove.
	(*lea_general_2_zext): Ditto.
	(*lea_general_3_zext): Ditto.
	(*lea_general_4): Check operand modes in insn constraint.  Extend
	operands less than SImode wide to SImode.
	(ashift->lea splitter): Ditto.
	* config/i386/i386.c (ix86_print_operand_address): Print address
	registers with 'q' modifier on 64bit targets.
	* config/i386/predicates.md (pic_32bit_opreand): Define as special
	predicate.  Reject non-SI and non-DI modes.

2011-07-25  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/49671
	* tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
	TREE_THIS_NOTRAP into the inner most MEM_REF.
	Always copy TREE_THIS_VOLATILE.
	* tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
	arguments are not volatile references.

2011-07-25  Richard Henderson  <rth@redhat.com>

	* insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
	* final.c (final_scan_insn): Don't test for it.
	(rest_of_clean_state): Likewise.

2011-07-25  Richard Henderson  <rth@redhat.com>

	PR debug/49841
	* config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
	(emit_frame_save): Likewise.
	(rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
	insn onto a dummy blockage insn after the join label.

2011-07-25  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (dw_trace_info): Add ID member.
	(get_trace_index): Remove.  Change users to use ID member.
	(before_next_cfi_note): New.
	(connect_traces): Remove unreachable traces before the main loop.
	Look across one trace and generate remember/restore_state if needed.

2011-07-25  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.

2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>

	* genattr.c (write_upcase, gen_attr <enum definition writing>):
	Move to ...
	* genattr-common.c ... here.
	(main): Call gen_attr.
	* optc-gen.awk: Make generated program include insn-attr-common.h .
	* Makefile.in (oprions.o): Depend on insn-attr-common.h

2011-07-25  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
	PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
	* config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
	m32c_print_operand, m32c_print_operand_address): Remove.
	* config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
	Change return type to bool. Change argument type to bool.
	(m32c_print_operand, m32c_print_operand_address): Make static.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
	TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document mmap.

2011-07-25  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
	PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
	* config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
	mmix_print_operand, mmix_print_operand_address): Remove.
	* config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
	Change return type to bool. Change argument type to bool.
	(mmix_print_operand, mmix_print_operand_address): Make static.
	(mmix_intval, mmix_output_condition): Change 'x' argument type
	to const_rtx.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
	TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2011-07-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/39386
	* config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
	shift counter for x << x and x >> x shifts.

2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/47124
	* config.gcc: Reject *-*-solaris2 configuration.

2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>

	PR tree-optimization/49809
	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
	gimple_get_lhs instead of gimple_assign_lhs.

2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* system.h [__cplusplus]: Wrap C function declarations in extern "C".

2011-07-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49822
	* tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
	more.  Make sure to preserve stmts with side-effects.  Properly
	handle virtual defs, follow a longer def chain.

2011-07-22  Romain Geissler  <romain.geissler@gmail.com>

	PR plugins/45348
	PR plugins/48425
	PR plugins/46577
	* Makefile.in: Do not flatten c-family directory when installing
	plugin headers.

2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
	original nodes if we are dealing with virtual clones.

2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>

	* common/config/c6x/c6x-common.c: New file.

2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>

	* tree-flow.h (tree_ssa_loop_version): Remove unused declaration.

2011-07-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49715
	* tree-vrp.c: Include expr.h and optabs.h.
	(range_fits_type_): New function.
	(simplify_float_conversion_using_ranges): Likewise.
	(simplify_stmt_using_ranges): Call it.
	* Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
	* optabs.c (can_float_p): Export.
	* optabs.h (can_float_p): Declare.

2011-07-25  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (num_vr_values, values_propagated): New global vars.
	(get_value_range): For out-of-range SSA names or names created
	after propagation return a read-only varying range.
	(dump_all_value_ranges): Adjust.
	(vrp_initialize): Likewise.
	(vrp_finalize): Likewise.

2011-07-24  Richard Henderson  <rth@redhat.com>

	PR debug/49831
	* dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
	them entirely.

2011-07-24  Richard Henderson  <rth@redhat.com>

	PR debug/49825
	* dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
	(dwarf2out_notice_stack_adjust): Use args_size from call_insn.

2011-07-24  Richard Henderson  <rth@redhat.com>

	PR debug/49827
	* dwarf2cfi.c (create_trace_edges): Handle sequences properly.

2011-07-24  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
	Zero args_size for abnormal edges.  Adjust all callers.

2011-07-24  Richard Henderson  <rth@redhat.com>

	PR debug/49825
	* dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.

2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/49835
	* collect2.c (demangle_flag): Removed.

2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>

	* configure.ac (demangler_in_ld): Default to yes.
	* configure: Regenerated.
	* collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
	mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
	--no-demangle options straight through to ld.  When
	HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
	way that has the intended effect on Windows.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c: Include basic-block.h.
	(dw_label_info): Remove.
	(trace_work_list, trace_index): New.
	(remember_row, emit_cfa_remember): Remove.
	(dw_trace_info_hash, dw_trace_info_eq): New.
	(get_trace_index, get_trace_info): New.
	(save_point_p): New.
	(free_cfi_row): Remove.
	(add_cfi): Do not emit DW_CFA_remember_state.
	(cfa_row_equal_p): New.
	(barrier_args_size): Remove.
	(compute_barrier_args_size_1, compute_barrier_args_size): Remove.
	(dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
	(maybe_record_trace_start, create_trace_edges, scan_trace): New.
	(dwarf2out_cfi_begin_epilogue): Remove.
	(dwarf2out_frame_debug_restore_state): Remove.
	(connect_traces, create_pseudo_cfg): New.
	(create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
	* Makefile.in (dwarf2cfi.o): Update.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (dw_trace_info): New.
	(dw_label_info): New.
	(cie_return_save): New.
	(cur_trace): New.
	(queued_args_size): Rename from args_size.  Update all users.
	(cfa_store, cfa_temp, regs_saved_in_regs): Remove.
	(def_cfa_1): Use cur_trace instead of cfa_*.
	(dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
	(clobbers_queued_reg_save, reg_saved_in): Likewise.
	(dwarf2out_frame_debug_expr): Likewise.
	(create_cie_data): Split out from ...
	(execute_dwarf2_frame): ... here.  Initialize cur_trace.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
	Update all users to match.
	(execute_dwarf2_frame): Free reg_saved_in_data.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
	(queued_reg_saves): Don't GTY.  Change to a VEC.
	(queue_reg_save): Update to match.
	(dwarf2out_flush_queued_reg_saves): Likewise.
	(clobbers_queued_reg_save): Likewise.
	(reg_saved_in): Likewise.
	(execute_dwarf2_frame): Free queued_reg_saves.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (add_cfi_args_size): Split out from...
	(dwarf2out_args_size): ... here.
	(add_cfi_restore): Split out from ...
	(dwarf2out_frame_debug_cfa_restore): ... here.
	(def_cfa_0): Split out from ...
	(def_cfa_1): ... here.
	(cfi_oprnd_equal_p, cfi_equal_p): New.
	(change_cfi_row): New.
	(add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
	(create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
	(output_cfis): Remove.
	* dwarf2out.c (output_fde): Simplify output_cfi loop.
	(dwarf2out_switch_text_section): Don't call output_cfis.
	(dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
	* dwarf2out.h: Update decls.
	(enum dw_val_class): Add dw_val_class_none.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (update_row_reg_save): New.
	(dwarf2out_frame_debug_cfa_expression): Use it.
	(dwarf2out_frame_debug_cfa_restore): Likewise.
	(reg_save): Likewise.  Do not emit DW_CFA_same_value.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
	(cie_cfi_row): New.
	(new_cfi_row, copy_cfi_row, free_cfi_row): New.
	(cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
	(cur_row, remember_row): New.
	(def_cfa_1): Use cur_row instead of the old_* variables.
	(dwarf2out_frame_debug_restore_state): Similarly.
	(dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
	(dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
	(dwarf2out_frame_debug_adjust_cfa): Likewise.
	(dwarf2out_frame_debug_cfa_offset): Likewise.
	(dwarf2out_frame_debug_expr): Likewise.
	(execute_dwarf2_frame): Set up cur_row.
	* dwarf2out.h (struct cfa_loc): Mark for GTY.

2011-07-23  Richard Henderson  <rth@redhat.com>

	* basic-block.h (EDGE_PRESERVE): New.
	(EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
	* bb-reorder.c: Include except.h.
	(fix_up_crossing_landing_pad): New.
	(find_rarely_executed_basic_blocks_and_crossing_edges): Place
	landing pads in the right partition.  Duplicate as necessary.
	(partition_hot_cold_basic_blocks): Fix up DF info after
	duplicating landing pads.
	* cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
	* cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
	is set properly.  Validate that EH edges are not CROSSING.
	* except.c (expand_dw2_landing_pad_for_region): Split out from ...
	(dw2_build_landing_pads): ... here.
	(convert_to_eh_region_ranges): Remove code to fixup crossing
	landing pads.
	* except.h (expand_dw2_landing_pad_for_region): Declare.
	* tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.

2011-07-23  Richard Earnshaw  <rearnsha@arm.com>

	PR target/49816
	* arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.

2011-07-22  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.

2011-07-22  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (gate_handle_partition_blocks): Honor optimize.

2011-07-22  Richard Henderson  <rth@redhat.com>

	* jump.c (maybe_propagate_label_ref): Split out of...
	(mark_all_labels): ... here.  Do not attempt label_ref
	propagation while in cfglayout mode.

2011-07-22  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
	(DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
	(dwarf_attr_name): Handle DW_AT_GNU_macros.
	(dwarf2out_define): If the vector is empty and
	lineno is 0, emit a dummy entry first.
	(dwarf2out_undef): Likewise.  Remove redundant semicolon.
	(htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
	optimize_macinfo_range): New functions.
	(output_macinfo): Use them.  If !dwarf_strict and .debug_str is
	mergeable, optimize longer strings using
	DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
	optimize longer sequences of define/undef ops from headers
	using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
	emit a section headers.
	(dwarf2out_init): For !dwarf_strict set debug_macinfo_section
	and macinfo_section_label to DEBUG_MACRO_SECTION
	resp. DEBUG_MACRO_SECTION_LABEL.
	(dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
	instead of DW_AT_macro_info.

	PR other/32998
	* common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
	options.
	* dwarf2out.c: Include opts.h.
	(dchar_p): New typedef.  Define heap VEC for it.
	(producer_string): New variable.
	(gen_producer_string): New function.
	(gen_compile_unit_die): Use it.
	(dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
	* Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
	* doc/invoke.texi: Document -grecord-gcc-switches and
	-gno-record-gcc-switches, add a -grecord-gcc-switches reference
	to -frecord-gcc-switches description.

2011-07-22  Jason Merrill  <jason@redhat.com>

	PR c++/30112
	* c-decl.c (c_linkage_bindings): Define.

2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/49815
	* var-tracking.c (vt_finalize): Always free windowed_parm_regs.

2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal): Disallow
	MS ABI in x32 mode.
	(ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
	only for TARGET_LP64.
	(ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.

2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
	avoid warnings when GCC is built with a C++ compiler.

2011-07-22  Martin Jambor  <mjambor@suse.cz>

	PR lto/49796
	* cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
	if decl node is in another partition, call cgraph_get_node only once.

2011-07-22  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (x86_64-*-linux*): Set
	default_gnu_indirect_function to yes.

2011-07-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45819
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
	preserve volatile and notrap flags.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/49794
	* configure.ac: Test AM_ICONV with CXX.
	* configure: Regenerate.
	* config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/49797
	* graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
	(set_cloog_options): Use it.

2011-07-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/49756
	* gcc.c (main): Call stack_limit_increase (64MB).
	* toplev.c (toplev_main): Likewise.

2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
	instead of force_reg.

2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_move): Convert to Pmode if
	needed and use force_reg after convert.
	(ix86_expand_call): Likewise.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/47654
	PR middle-end/49649
	* graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
	in parameter.  Initialize v1 and v2 based on the values returned
	by clast_name_to_lb_ub.
	(type_for_clast_red): Pass v1 and v2 in parameter, and set their
	values.
	(type_for_clast_bin): Same.
	(type_for_clast_expr): Same.
	(type_for_clast_eq): Update calls to type_for_clast_expr.
	(type_for_clast_for): Same.
	(build_iv_mapping): Same.
	* graphite-ppl.h (value_min): New.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (type_for_interval): Generate signed
	types whenever possible.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (struct clast_name_index): Add lb
	and ub fields.
	(new_clast_name_index): Add lb and ub parameters.
	(free_clast_name_index): New.
	(clast_name_to_lb_ub): New.
	(save_clast_name_index): Add lb and ub parameters.
	(compute_bounds_for_param): New.
	(type_for_level): Removed.
	(type_for_clast_for): Removed level parameter.  Do not call
	type_for_level.
	(graphite_create_new_loop): Store the lb and ub for the clast_name
	of the iterator of the loop that has been generated.
	(graphite_create_new_loop_guard): Remove parameter level.
	(create_params_index): Store the lb and ub of each parameter.
	(gloog): Use free_clast_name_index.  Pass to create_params_index
	the current scop.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
	(max_precision_type): Inline max_signed_precision_type.
	(type_for_clast_red): Use max_precision_type.
	(type_for_clast_bin): Same.
	(type_for_clast_for): Same.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
	type_for_interval.
	(gcc_type_for_value): Renamed type_for_value.
	(gcc_type_for_clast_term): Renamed type_for_clast_term.
	(gcc_type_for_clast_expr): Renamed type_for_clast_expr.
	(gcc_type_for_clast_red): Renamed type_for_clast_red.
	(gcc_type_for_clast_bin): Renamed type_for_clast_bin.
	(gcc_type_for_clast_eq): Renamed type_for_clast_eq.
	(graphite_translate_clast_equation): Update calls.
	(compute_type_for_level): Renamed type_for_level.
	(gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
	(build_iv_mapping): Update calls.
	(graphite_create_new_loop_guard): Same.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
	comment.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (struct ivs_params): New.
	(clast_name_to_gcc): Use ivs_params to pass around parameters.
	(clast_to_gcc_expression): Same.
	(clast_to_gcc_expression_red): Same.
	(gcc_type_for_clast_term): Same.
	(gcc_type_for_clast_expr): Same.
	(gcc_type_for_clast_red): Same.
	(gcc_type_for_clast_bin): Same.
	(gcc_type_for_clast_eq): Same.
	(graphite_translate_clast_equation): Same.
	(graphite_create_guard_cond_expr): Same.
	(graphite_create_new_guard): Same.
	(graphite_create_new_loop): Same.
	(build_iv_mapping): Same.
	(translate_clast_user): Same.
	(graphite_create_new_loop_guard): Same.
	(translate_clast): Same.
	(translate_clast_for_loop): Same.
	(translate_clast_for): Same.
	(translate_clast_guard): Same.
	(initialize_cloog_names): Fix typo.
	(gloog): Initialize an ivs_params struct, pass it to translate_clast.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (struct clast_name_index): Add level.
	(new_clast_name_index): Add level parameter.
	(clast_name_to_level): New.
	(save_clast_name_index): Add level parameter.
	(newivs_to_depth_to_newiv): Removed.
	(clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
	(graphite_create_new_loop): Add level parameter.  Pass level to
	save_clast_name_index.
	(translate_clast_for_loop): Pass level to graphite_create_new_loop.
	(create_params_index): Pass level to save_clast_name_index.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
	recompute type, lb, and ub.  Get them from...
	(graphite_create_new_loop_guard): ...here.  Pass in parameter
	pointers to type, lb, and ub.
	(translate_clast_for_loop): Update function calls.
	(translate_clast_for): Same.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_bounds_for_level): Call
	psct_dynamic_dim.
	(translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
	(gcc_type_for_iv_of_clast_loop): Update use of level.
	(gloog): Start counting nesting level from 0.
	* graphite-clast-to-gimple.h (get_scattering_level): Removed.
	* graphite-dependences.c (graphite_carried_dependence_level_k): Call
	psct_dynamic_dim on level.

2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_legitimize_address): Convert to
	Pmode if needed.

2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (function_value_64): Always return pointers
	in Pmode.
	(ix86_promote_function_mode): New.
	(TARGET_PROMOTE_FUNCTION_MODE): Likewise.

2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/49749
	* tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
	remove no-longer-used maxrank variable.

2011-07-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.

2011-07-21  Jason Merrill  <jason@redhat.com>

	* system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
	* recog.h (struct insn_data_d): Check it instead of
	HAVE_DESIGNATED_INITIALIZERS.
	* genoutput.c (output_insn_data): Likewise.

2011-07-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49770
	* tree-ssa-sccvn.c (valueize_refs_1): Return whether we
	valueized any operand.  Renamed from ...
	(valueize_refs): ... this.  New wrapper around valueize_refs_1.
	(valueize_shared_reference_ops_from_ref): Return whether we
	valueized any operand.
	(vn_reference_lookup): Only when we valueized any operand
	use the valueized reference for alias analysis.  Do not preserve
	the original reference tree in this case.

2011-07-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Reject all but
	register operands and subregs of DImode hard registers in index.

2011-07-21  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_unary_loc): Preserve indirect
	comparison cast to none-boolean type.
	* tree-ssa.c (useless_type_conversion_p): Preserve cast
	from/to boolean-type.
	* gimplify.c (gimple_boolify): Handle boolification of comparisons.
	(gimplify_expr): Boolifiy non aggregate-typed comparisons.
	* tree-cfg.c (verify_gimple_comparison): Check result
	type of comparison expression.
	* tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
	of condition result and disallow type-cast sinking into comparison.

2011-07-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (combine_conversions): Return whether
	we have to run cfg-cleanup.  Properly remove dead stmts.
	(ssa_forward_propagate_and_combine): Adjust.

2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>

	* regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.

2011-07-21  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-propagate.c (substitute_and_fold): Use
	do_dce flag to deside, if BB's statements are scanned
	in last to first, or first to last order.

2011-07-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.

2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/constraints.md (w): New.

	* config/i386/i386.c (ix86_output_addr_vec_elt): Check
	TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.

	* config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
	instead of TARGET_64BIT.

	* config/i386/i386.md (indirect_jump): Replace
	nonimmediate_operand with indirect_branch_operand.
	(*indirect_jump): Likewise.  Replace constraint "m" with "w".
	(tablejump): Replace nonimmediate_operand with indirect_branch_operand.
	Convert operand 0 to Pmode for x32 if not PIC.
	(*tablejump_1): Replace nonimmediate_operand with
	indirect_branch_operand.  Replace constraint "m" with "w".
	(*call_vzeroupper): Replace constraint "m" with "w".
	(*call): Likewise.
	(*call_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_rex64_ms_sysv): Likewise.
	(*call_value_vzeroupper): Likewise.
	(*call_value): Likewise.
	(*call_value_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_value_rex64_ms_sysv): Likewise.
	(set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.

	* config/i386/predicates.md (indirect_branch_operand): New.
	(call_insn_operand): Support x32.

2011-07-20  Michael Eager  <eager@eagercon.com>

	* params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.

2011-07-20  Richard Henderson  <rth@redhat.com>

	* cfg.c (dump_bb_info): Dump basic_block->flags.
	* cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.

2011-07-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Allow only subregs
	of DImode hard registers in index.
	(ix86_legitimate_address_p): Allow subregs of base and index to span
	more than a word.  Assert that subregs of base and index satisfy
	register_no_elim_operand predicates.  Reject addresses where
	base and index have different modes.

2011-07-20  Robert Millan  <rmh@gnu.org>

	* config.gcc (mips*-*-linux*): Remove redundant tm_file entry.

2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
	removing now-unnecessary assignment.

2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
	memory address space to the type's address space.

2011-07-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/36467
	PR target/49687
	* config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
	and expand appropriately if there is a CONST_INT in operand2.
	(usmulqihi3): New insn.
	(*sumulqihi3): New insn.
	(*osmulqihi3): New insn.
	(*oumulqihi3): New insn.
	(*muluqihi3.uconst): New insn_and_split.
	(*muluqihi3.sconst): New insn_and_split.
	(*mulsqihi3.sconst): New insn_and_split.
	(*mulsqihi3.uconst): New insn_and_split.
	(*mulsqihi3.oconst): New insn_and_split.
	(*ashifthi3.signx.const): New insn_and_split.
	(*ashifthi3.signx.const7): New insn_and_split.
	(*ashifthi3.zerox.const): New insn_and_split.
	(mulsqihi3): New insn.
	(muluqihi3): New insn.
	(muloqihi3): New insn.
	* config/avr/predicates.md (const_2_to_7_operand): New.
	(const_2_to_6_operand): New.
	(u8_operand): New.
	(s8_operand): New.
	(o8_operand): New.
	(s9_operand): New.
	(register_or_s9_operand): New.

2011-07-20  Kai Tietz  <ktietz@redhat.com>

	* builtins.c (fold_builtin_expect): See through the cast
	from truthvalue_type_node to long.

2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
	where we can use them from the standard and altivec instruction
	sets, instead of always using the 3 operand VSX forms that require
	the destination to overlap one of the inputs.
	(vsx_fms*): Ditto.
	(vsx_fnma*): Ditto.
	(vsx_fnms*): Ditto.

	* config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
	for DF types.
	(fmsdf4_fpr): Ditto.
	(nfmadf4_fpr): Ditto.
	(nfmsdf4_fpr): Ditto.

2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>

	* genrecog.c (make_insn_sequence): Correct position numbering
	when filtering out match_scratch and match_dup.

2011-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
	against already removed statements.
	(forward_propagate_into_comparison): Remove dead defining stmts.
	(forward_propagate_into_gimple_cond): Likewise.
	(forward_propagate_into_cond): Simplify.
	(ssa_forward_propagate_and_combine): Handle changed cfg from
	forward_propagate_into_comparison.
	* tree-ssa-phiopt.c (conditional_replacement): Use proper
	locations for newly built statements.

2011-07-20  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.

2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_class_max_nregs): Fix return type.
	* config/s390/s390-protos.h (s390_class_max_nregs): Likewise.

2011-07-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/18908
	* tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
	ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.

2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>

	* config/frv/frv.c (frv_register_move_cost): Define explicitly
	costs for subclasses of GR_REGS.

2011-07-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49780
	* config/i386/predicates.md (no_seg_addres_operand): No more special.
	* config/i386/i386.c (ix86_decompose_address): Allow only subregs
	of DImode hard registers in base.
	(ix86_legitimate_address_p): Allow SImode and DImode base and index
	registers.

2011-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
	(unify_nodes): Deal with that.
	(solve_graph): Likewise.

2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_canonicalize_comparison): Add case to
	canonicalize left operand from ZERO_EXTEND to AND.

2011-07-20  Anatoly Sokolov  <aesok@post.ru>

	* target.def (class_max_nregs): New hook.
	* doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_class_max_nregs): New function.
	* targhooks.h (default_class_max_nregs): Declare.
	* ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
	x_ira_reg_class_min_nregs arrays to unsigned char.
	* ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
	hook instead of CLASS_MAX_NREGS macro.
	* reginfo.c (restore_register_info): Ditto.
	* ira-conflicts.c (process_regs_for_copy): Use
	ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
	Change type rclass and aclass vars to reg_class_t.
	* ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
	array instead of CLASS_MAX_NREGS macro. Change type rclass var to
	reg_class_t.
	* reload.c (combine_reloads, find_reloads, find_reloads_address_1):
	Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.

	* config/i386/i386.h (CLASS_MAX_NREGS): Remove.
	* config/i386/i386.c (ix86_class_max_nregs): New function.
	(ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
	instead of CLASS_MAX_NREGS macro.
	(TARGET_CLASS_MAX_NREGS): Define.
	* config/avr/avr.h (CLASS_MAX_NREGS): Remove.
	* config/avr/avr-protos.h (class_max_nregs): Remove declaration.
	* config/avr/avr.c (class_max_nregs): Remove function.
	* config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
	* config/spu/spu.h (CLASS_MAX_NREGS): Remove.
	* config/mep/mep.h (CLASS_MAX_NREGS): Remove.
	* config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
	* config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
	* config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
	* config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
	* config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
	* config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
	* config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
	* config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
	* config/score/score.h (CLASS_MAX_NREGS): Remove.
	* config/vax/vax.h (CLASS_MAX_NREGS): Remove.
	* config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
	* config/v850/v850.h (CLASS_MAX_NREGS): Remove.

2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>

	* cif-code.def (OVERWRITABLE): Fix typo and move around.
	(TARGET_OPTIMIZATION_MISMATCH): Delete.
	(EH_PERSONALITY): Fix typo.
	(NON_CALL_EXCEPTIONS): Fix message.
	(OPTIMIZATION_MISMATCH): Adjust message.
	* ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.

2011-07-19  Ian Lance Taylor  <iant@google.com>

	* doc/install.texi (Configuration): Document
	--enable-build-poststage1-with-cxx.

2011-07-19  Robert Millan  <rmh@gnu.org>

	* config/mips/gnu-user.h: Copy from linux.h.  Update comments.
	(GLIBC_DYNAMIC_LINKER): Remove.

	* config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
	(GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
	(BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
	(LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
	GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.

	* config/mips/linux.h: Remove everything except for ...
	(GLIBC_DYNAMIC_LINKER): ... this macro.

	* config/mips/linux64.h: Remove everything except for ...
	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
	(GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
	(BIONIC_DYNAMIC_LINKERN32): ... these macros.
	(GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
	(GNU_USER_LINK_EMULATIONN32): New macros.

	* config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
	Use the new headers.

2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
	Add offset_known_p and size_known_p fields.
	(MEM_OFFSET_KNOWN_P): Update accordingly.
	(MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
	* emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
	(mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
	(clear_mem_offset, set_mem_size, clear_mem_size, change_address)
	(adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
	(init_emit_regs): Likewise.

2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
	(MEM_OFFSET): Change from returning an rtx to returning a
	HOST_WIDE_INT.
	* rtl.h (MEM_OFFSET_KNOWN_P): New macro.
	(MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
	* emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
	(clear_mem_offset): Declare.
	* alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
	MEM_OFFSET_KNOWN_P to test whether the offset is known, and
	MEM_OFFSET to get a HOST_WIDE_INT offset.
	(nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
	(adjust_offset_for_component_ref): Take a bool "known_p"
	parameter and a HOST_WIDE_INT "offset" parameter.
	* builtins.c (get_memory_rtx): As for ao_ref_from_mem.
	Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
	than an rtx.  Use clear_mem_offset to clear the offset.
	* cfgcleanup.c (merge_memattrs): Likewise.
	* dwarf2out.c (tls_mem_loc_descriptor): Likewise.
	* function.c (assign_parm_find_stack_rtl): Likewise.
	(assign_parm_setup_stack): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* reload.c (find_reloads_subreg_address): Likewise.
	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
	* var-tracking.c (INT_MEM_OFFSET): Likewise.
	* emit-rtl.c (set_reg_attrs_from_value): Likewise.
	(get_mem_align_offset): Likewise.
	(set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
	(clear_mem_offset): New function.
	* config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
	offset rather than an rtx.  Assume both the expressio and offset
	are available.
	(r10k_needs_protection_p_1): Update accordingly, checking the
	expression and offset availability here instead.

2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
	(MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
	* rtl.h (MEM_SIZE_KNOWN_P): New macro.
	(MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
	* emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
	(clear_mem_size): Declare.
	* emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
	(clear_mem_size): New function.
	* alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
	MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
	to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
	passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
	to clear the size.
	(nonoverlapping_memrefs_p): Likewise.
	* builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
	(expand_builtin_init_trampoline): Likewise.
	* calls.c (compute_argument_addresses): Likewise.
	* cfgcleanup.c (merge_memattrs): Likewise.
	* dce.c (find_call_stack_args): Likewise.
	* dse.c (record_store, scan_insn): Likewise.
	* dwarf2out.c (dw_sra_loc_expr): Likewise.
	* expr.c (emit_block_move_hints): Likewise.
	* function.c (assign_parm_find_stack_rtl): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* reload.c (find_reloads_subreg_address): Likewise.
	* rtlanal.c (may_trap_p_1): Likewise.
	* var-tracking.c (track_expr_p): Likewise.
	* varasm.c (assemble_trampoline_template): Likewise.
	* config/arm/arm.c (arm_print_operand): Likewise.
	* config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
	* config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
	(expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
	(expand_constant_setmem_prologue): Likewise.
	* config/mips/mips.c (mips_get_unaligned_mem): Likewise.
	* config/rs6000/rs6000.c (expand_block_move): Likewise.
	(adjacent_mem_locations): Likewise.
	* config/s390/s390.c (s390_expand_setmem): Likewise.
	(s390_expand_insv): Likewise.
	* config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
	(*extendqi<mode>2_short_displ): Likewise.
	* config/sh/sh.c (expand_block_move): Likewise.
	* config/sh/sh.md (extv, extzv): Likewise.

2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c (mem_attrs_eq_p): New function, split out from...
	(mem_attrs_htab_eq): ...here.
	(find_mem_attrs): Replace with...
	(set_mem_attrs): ...this function.  Take a mem_attrs structure
	rather than individual fields.
	(set_mem_attributes_minus_bitpos, set_mem_alias_set)
	(set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
	(set_mem_size, change_address, adjust_address_1, offset_address)
	(widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
	Update accordingly.

2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
	(MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
	Provide a dummy definition of MEM_ADDR_SPACE for generators.
	(target_rtl): Add x_mode_mem_attrs.
	(mode_mem_attrs): New macro.
	(get_mem_attrs): New function.
	* emit-rtl.c (get_mem_attrs): Rename to...
	(find_mem_attrs): ...this.
	(set_mem_attributes_minus_bitpos, set_mem_alias_set)
	(set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
	(set_mem_size, change_address, adjust_address_1, offset_address)
	(widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
	Update accordingly.
	(init_emit_regs): Initialize mode_mem_attrs.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
	TRUTH_*_EXPR handling.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-pre.c (fully_constant_expression): Likewise.
	* tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
	Likewise.
	(is_and_or_or): Likewise.
	(is_norm_cond_subset_of): Likewise.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* tree.h (fold_build_pointer_plus_loc): New helper function.
	(fold_build_pointer_plus_hwi_loc): Likewise.
	(fold_build_pointer_plus): Define.
	(fold_build_pointer_plus_hwi): Likewise.
	* builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
	(fold_builtin_memory_op): Likewise.
	(fold_builtin_stpcpy): Likewise.
	(fold_builtin_memchr): Likewise.
	(fold_builtin_strstr): Likewise.
	(fold_builtin_strchr): Likewise.
	(fold_builtin_strrchr): Likewise.
	(fold_builtin_strpbrk): Likewise.
	(fold_builtin_strcat): Likewise.
	(expand_builtin_memory_chk): Likewise.
	(fold_builtin_memory_chk): Likewise.
	* c-typeck.c (build_unary_op): Likewise.
	* cgraphunit.c (thunk_adjust): Likewise.
	* fold-const.c (build_range_check): Likewise.
	(fold_binary_loc): Likewise.
	* omp-low.c (extract_omp_for_data): Likewise.
	(expand_omp_for_generic): Likewise.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	* tree-affine.c (add_elt_to_tree): Likewise.
	* tree-data-ref.c (split_constant_offset_1): Likewise.
	* tree-loop-distribution.c (generate_memset_zero): Likewise.
	* tree-mudflap.c (mf_xform_derefs_1): Likewise.
	* tree-predcom.c (ref_at_iteration): Likewise.
	* tree-ssa-address.c (tree_mem_ref_addr): Likewise.
	(add_to_parts): Likewise.
	(create_mem_ref): Likewise.
	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
	(number_of_iterations_le): Likewise.
	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
	(vect_create_addr_base_for_vector_ref): Likewise.
	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
	(vect_create_cond_for_alias_checks): Likewise.
	* tree-vrp.c (extract_range_from_assert): Likewise.
	* config/alpha/alpha.c (alpha_va_start): Likewise.
	(alpha_gimplify_va_arg_1): Likewise.
	* config/i386/i386.c (ix86_va_start): Likewise.
	(ix86_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mep/mep.c (mep_expand_va_start): Likewise.
	(mep_gimplify_va_arg_expr): Likewise.
	* config/mips/mips.c (mips_va_start): Likewise.
	(mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start): Likewise.
	(rs6000_gimplify_va_arg): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	(s390_gimplify_va_arg): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	(sh_gimplify_va_arg_expr): Likewise.
	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
	* config/spu/spu.c (spu_va_start): Likewise.
	(spu_gimplify_va_arg_expr): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	(xstormy16_gimplify_va_arg_expr): Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start): Likewise.
	(xtensa_gimplify_va_arg_expr): Likewise.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
	(expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
	handling.

	PR middle-end/18908
	* expr.c (expand_expr_real_2): Do not unnecessarily truncate the
	result of BIT_*_EXPR to bitfield precision.

2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>

	PR tree-optimization/49742
	* tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
	as a potential write.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
	* tree-ssa-forwprop.c: Include gimple-pretty-print.h.
	(forward_propagate_comparison): Simplify, remove obsolete code.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
	BIT_XOR_EXPR, same as the RTL expander does.
	* tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
	(verify_gimple_assign_unary): Likewise.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
	* tree-ssa-forwprop.c (forward_propagate_comparison): Handle
	BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.

2011-07-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49768
	* gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
	if offset is smaller than bitoffset, but offset+size is bigger
	than bitoffset.

2011-07-19  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49771
	* tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
	zero step, set segment length to the size of the data-ref's type.

2011-07-18  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
	comments.
	(ipcp_values_pool): Declare.
	(ipcp_sources_pool): Likewise.
	(ipcp_lattice): Changed to forward declaration.
	(ipa_param_descriptor): Removed fields ipcp_lattice, types and
	cannot_devirtualize.
	(ipa_node_params): New fields descriptors, lattices, known_vals,
	clone_for_all_contexts and node dead, removed fields params and
	count_scale.
	(ipa_set_param_count): Removed.
	(ipa_get_param_count): Made to work with descriptors vector.
	(ipa_get_param): Updated.
	(ipa_param_cannot_devirtualize_p): Removed.
	(ipa_param_types_vec_empty): Likewise.
	(ipa_set_param_used): New function.
	(ipa_get_param_used): Updated to use descriptors vector.
	(ipa_func_list): Removed.
	(ipa_init_func_list): Removed declaration.
	(ipa_push_func_to_list_1): Likewise.
	(ipa_pop_func_from_list): Likewise.
	(ipa_push_func_to_list): Removed.
	(ipa_lattice_from_jfunc): Remove declaration.
	(ipa_get_jf_pass_through_result): Declare.
	(ipa_get_jf_ancestor_result): Likewise.
	(ipa_value_from_jfunc): Likewise.
	(ipa_get_lattice): Update.
	(ipa_lat_is_single_const): New function.
	* ipa-prop.c (ipa_push_func_to_list_1): Removed.
	(ipa_init_func_list): Likewise.
	(ipa_pop_func_from_list): Likewise.
	(ipa_get_param_decl_index): Fix coding style.
	(count_formal_params): Removed.
	(count_formal_params_1): Renamed to count_formal_params.
	(ipa_populate_param_decls): Update to use descriptors vector.
	(ipa_initialize_node_params): Likewise.
	(visit_ref_for_mod_analysis): Use ipa_set_param_used.
	(ipa_analyze_params_uses): Likewise.
	(ipa_free_node_params_substructures): Likewise and free also lattices
	and known values.
	(duplicate_array): Removed.
	(ipa_edge_duplication_hook): Add the new edge to the list of edge
	clones.
	(ipa_node_duplication_hook): Update to use new lattices.
	(ipa_free_all_structures_after_ipa_cp): Free alloc pools.
	(ipa_free_all_structures_after_iinln): Likewise.
	(ipa_write_node_info): Update to use new lattices.
	(ipa_read_node_info): Likewise.
	(ipa_get_jf_pass_through_result): New function.
	(ipa_get_jf_ancestor_result): Likewise.
	(ipa_value_from_jfunc): Likewise.
	(ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
	* ipa-cp.c: Reimplemented.
	* params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
	(PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
	(PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
	* Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
	* doc/invoke.texi (devirt-type-list-size): Removed description.
	(ipa-cp-value-list-size): Added description.

2011-07-18  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
	before calling create_basic_block.

2011-07-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49675
	* tree.c (build_common_builtin_nodes): Register
	__builtin_return_address, __cyg_profile_func_enter
	and __cyg_profile_func_exit.

2011-07-18  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (emit_barrier_after_bb): Split out of ...
	(add_labels_and_missing_jumps): ... here.
	(fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.

2011-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47744
	* config/i386/i386.c (ix86_decompose_address): Allow only subregs
	of DImode hard registers in PLUS address chains.

2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/49769
	* config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
	(alpha*-*-freebsd*): Likewise.
	(i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
	i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
	i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
	crtprec80.o, crtfastmath.o to extra_parts for all targets.
	(ia64*-*-elf*): Remove extra_parts.
	(sparc-*-linux*): Add crtfastmath.o to extra_parts.
	(sparc64-*-linux*): Likewise.
	(sparc64-*-freebsd*): Likewise.

	Revert:
	* config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
	(ia64*-*-linux*): Likewise.
	(mips64*-*-linux*): Likewise.
	(mips*-*-linux*): Likewise.

2011-07-18  David Edelsohn  <dje.gcc@gmail.com>

	* doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.

2011-07-18  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Use input_location, not saved_location
	when building new trees.

2011-07-18  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
	expansion result to bitfield precision if required.

2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (i[3456x]86-*-netware*): Remove.

	* gthr-nks.h: Remove.
	* configure.ac (enable_threads): Remove nks.
	* configure: Regenerate.

	* config/i386/i386.c (ix86_encode_section_info): Remove netware
	reference.
	* config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
	<netware.h> reference.

	* config/i386/netware-libgcc.c,
	gcc/config/i386/netware-libgcc.def,
	gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
	gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
	gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
	gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove

	* doc/extend.texi (Function Attributes,
	callee_pop_aggregate_return): Remove i?86-netware reference.
	* doc/install.texi (Configuration, --enable-threads): Remove nks.

2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/49746
	Revert:
	2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
	patterns.

2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/49732
	* tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.

2011-07-16  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document --enable-static-libjava.

2011-07-15  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Replace all three arguments by returning a VEC of edges.
	(add_labels_and_missing_jumps): Accept a VEC of edges, not bare
	pointers and counts.
	(fix_edges_for_rarely_executed_code): Merge ...
	(rest_of_handle_partition_blocks): ... into...
	(partition_hot_cold_basic_blocks): ... here.  Return todo items if
	any work was performed.
	(pass_partition_blocks): Clear todo_flags_finish.

2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/49745
	* gthr-posix.h: Do not include <unistd.h> unconditionally; use
	_GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.

2011-07-15  Jason Merrill  <jason@redhat.com>

	PR testsuite/49741
	* Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
	rather than --tool_opts.

2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Building GCC plugins): gengtype needs its
	corresponding gtype.state.

2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/49723
	* config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.

2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/48220
	* doc/md.texi (Standard Names): Document window_save.
	* cfgexpand.c (expand_debug_parm_decl): New function extracted from
	expand_debug_expr and expand_debug_source_expr.  If the target has
	a window_save instruction, adjust the ENTRY_VALUE_EXP.
	(expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
	SSA_NAME_VAR is a parameter.
	(expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
	* var-tracking.c (parm_reg_t): New type and associated vector type.
	(windowed_parm_regs): New variable.
	(adjust_insn): If the target has a window_save instruction and this
	is the instruction, make its effect on parameter registers explicit.
	(next_non_note_insn_var_location): New function.
	(emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
	(vt_add_function_parameter): If the target has a window_save insn,
	adjust the incoming RTL and record that in windowed_parm_regs.
	(vt_finalize): Free windowed_parm_regs.

2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/invoke.texi (C6X Options): New section.
	* doc/md.texi (TI C6X family): New section.
	* config.gcc: Handle tic6x, in particular tic6x-*-elf and
	tic6x-*-uclinux.
	* longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
	count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
	Provide C6X definitions.
	* config/c6x/c6x.md: New file.
	* config/c6x/constraints.md: New file.
	* config/c6x/predicates.md: New file.
	* config/c6x/c6x-sched.md.in: New file.
	* config/c6x/c6x-sched.md: New file.
	* config/c6x/gensched.sh: New file.
	* config/c6x/c6x-mult.md.in: New file.
	* config/c6x/genmult.sh: New file.
	* config/c6x/c6x-mult.md: New file.
	* config/c6x/sync.md: New file.
	* config/c6x/c6x-protos.h: New file.
	* config/c6x/sfp-machine.h: New file.
	* config/c6x/c6x.c: New file.
	* config/c6x/c6x.h: New file.
	* config/c6x/crti.s: New file.
	* config/c6x/crtn.s: New file.
	* config/c6x/lib1funcs.asm: New file.
	* config/c6x/c6x-modes.def: New file.
	* config/c6x/genopt.sh: New file.
	* config/c6x/c6x.opt: New file.
	* config/c6x/c6x-tables.opt: New file.
	* config/c6x/c6x-opts.h: New file.
	* config/c6x/c6x-isas.def: New file.
	* config/c6x/elf.h: New file.
	* config/c6x/elf-common.h: New file.
	* config/c6x/uclinux-elf.h: New file.
	* config/c6x/t-c6x: New file.
	* config/c6x/t-c6x-elf: New file.
	* config/c6x/t-c6x-uclinux: New file.
	* config/c6x/t-c6x-softfp: New file.
	* config/c6x/gtd.c: New file.
	* config/c6x/gtf.c: New file.
	* config/c6x/ltd.c: New file.
	* config/c6x/ltf.c: New file.
	* config/c6x/ged.c: New file.
	* config/c6x/gef.c: New file.
	* config/c6x/led.c: New file.
	* config/c6x/lef.c: New file.
	* config/c6x/eqd.c: New file.
	* config/c6x/eqf.c: New file.
	* config/c6x/libgcc-c6xeabi.ver: New file.

	Revert
	2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
	PR rtl-optimization/11320
	* sched-int.h (struct deps) [reg_conditional_sets]: New field.
	(struct sched_info) [compute_jump_reg_dependencies]: New prototype.
	* sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
	current_sched_info->compute_jump_reg_dependencies. Record which
	registers are used and which registers are set by the jump.
	Clear deps->reg_conditional_sets after a barrier.
	Set deps->reg_conditional_sets if the insn is a COND_EXEC.
	Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
	(init_deps): Initialize reg_conditional_sets.
	(free_deps): Clear reg_conditional_sets.
	* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
	Mark registers live on entry of the fallthrough block and conditionally
	set as set by the jump. Mark registers live on entry of non-fallthrough
	blocks as used by the jump.
	* sched-rgn.c (compute_jump_reg_dependencies): New prototype.
	Mark new parameters as unused.

2011-07-14  Andrew Pinski  <pinskia@gmail.com>

	PR tree-opt/49309
	* tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
	Use fold_build2_loc instead of build2.
	Use the correct type for the new tree.

2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/11320
	* config/ia64/ia64.md (load_symptr_low): Show a MEM.
	* config/ia64/ia64.c (ia64_expand_load_address): Generate it.

2011-07-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49487
	* config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
	of REG.
	(*rotw<mode>): Use const_int_operand for operand2.
	Use match_scatch for operand3.
	(*rotb<mode>): Ditto
	* config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.

2011-07-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49651
	* tree-ssa-structalias.c (get_constraint_for_1): Properly
	handle dereferences with subvariables.

2011-07-14  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Remove operand swapping.
	(fold_stmt_1): Do it here directly on gimple and as a first thing.

2011-07-14  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Convert the !bool_var result,
	not bool_var when folding bool_var != 1 or bool_var == 0.

2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (schedule_insns): Remove outdated comment.
	(schedule_block): When computing a known value for TODO_SPEC,
	just set it rather than using logical operations.
	(try_ready): Likewise.  Use a local variable rather than a
	pointer to TODO_SPEC.  Reorder an if statement to move the
	easy case to the then block.
	* sched-deps.c (dep_spec_p): New static function.
	(update_dep): Use it to decide whether to call
	change_spec_dep_to_hard.
	(get_back_and_forw_lists): Use it.
	(sd_resolve_dep): Likewise.
	(init_dep): If !USE_DEPS_LIST, use zero to initialize status.
	(haifa_note_mem_dep): Likewise.
	(check_dep): Likewise.
	(sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
	(sched_free_deps): Free in two passes.

2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>

	PR middle-end/49736
	* expr.c (all_zeros_p): Undo bogus part of last change.

2011-07-14  Matthias Klose  <doko@ubuntu.com>

	* doc/extend.texi (optimize attribute): Fix typo.

2011-07-14  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Only do required conversions.

2011-07-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/43746
	* config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
	i.e. use default_elf_select_section.
	(TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
	(READONLY_DATA_SECTION_ASM_OP): Remove.
	(TARGET_ASM_NAMED_SECTION): Move from here...
	* config/avr/avr.c: ...to here.
	(avr_asm_init_sections): Set unnamed callback of readonly_data_section.
	(avr_asm_named_section): Make static.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/49739
	* config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
	and crtfastmath.o for Linux/x86.

2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c: Include "hashtab.h"
	(sched_no_dce): New global variable.
	(INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
	SHADOW_P): New macros.
	(last_clock_var, cycle_issued_insns): Move declarations.
	(must_backtrack): New static variable.
	(struct delay_pair): New structure.
	(delay_htab, delay_htab_i2): New static variables.
	(delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
	record_delay_slot_pair, pair_delay, add_delay_dependencies): New
	functions.
	(dep_cost_1): If delay pairs exist, try to look up the insns and
	use the correct pair delay if we find them.
	(rank-for_schedule): Tweak priority for insns that must be scheduled
	soon to avoid backtracking.
	(queue_insn): Detect conditions which force backtracking.
	(ready_add): Likewise.
	(struct sched_block_state): Add member shadows_only_p.
	(struct haifa_save_data): New structure.
	(backtrack_queue): New static variable.
	(mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
	unschedule_insns_until, restore_last_backtrack_point,
	free_topmost_backtrack_point, free_backtrack_queue,
	estimate_insn_tick, estimate_shadow_tick): New functions.
	(prune_ready_list): New arg shadows_only_p.  All callers changed.
	If true, remove everything that isn't SHADOW_P.  Look up delay
	pairs and estimate ticks to avoid scheduling the first insn too early.
	(verify_shadows): New function.
	(schedule_block): Add machinery to enable backtracking.
	(sched_init): Take sched_no_dce into account when setting
	DF_LR_RUN_DCE.
	(free_delay_pairs): New function.
	(init_h_i_d): Initialize INSN_EXACT_TICK.
	* Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
	* sched-deps.c (sd_unresolve_dep): New function.
	* sched-int. (struct haifa_sched_info): New fields save_state
	and restore_state.
	(struct _haifa_insn_data): New fields exact_tick, tick_estimate,
	feeds_backtrack_insn and shadow_p.
	(DO_BACKTRACKING): New value in enum SCHED_FLAGS.
	(sched_no_dce): Declare variable.
	(record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
	sd_unresolve_dep): Declare functions.
	* modulo-sched.c (sms_sched_info): Clear the two new fields.
	* sched-rgn.c (rgn_const_sched_info): Likewise.
	* sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
	* sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
	(ebb_sched_info): Add them for the two new fields.
	(add_deps_for_risky_insns): Call add_delay_dependencies.

2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
	Rename -mr11.
	* config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
	(rs6000_call_indirect_aix): Ditto.
	* config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
	(call_indirect_aix<ptrsize>_internal): Ditto.
	(call_indirect_aix<ptrsize>_nor11): Ditto.
	(call_indirect_aix<ptrsize>_internal2): Ditto.
	(call_value_indirect_aix<ptrsize>): Ditto.
	(call_value_indirect_aix<ptrsize>_internal): Ditto.
	(call_value_indirect_aix<ptrsize>_nor11): Ditto.
	(call_value_indirect_aix<ptrsize>_internal2): Ditto.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.

2011-07-13  Jason Merrill  <jason@redhat.com>

	* Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.

2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
	* config/spu/spu.md ("clrsb<mode>2"): New expander.

2011-07-13  Thomas Schwinge  <thomas@schwinge.name>

	* acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
	* configure: Regenerate.

2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
	(asm_file_start): Remove.
	(spu_machine_dependent_reorg): Call compute_bb_for_insn and
	free_bb_for_insn around code that modifies insns before
	restarting df analysis.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/49541
	* config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
	(LINK_SPEC): ... here.

2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (struct sched_block_state): New.
	(schedule_block): Move some local variables into such a structure.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/crtprec.c: Move to ../libgcc/config/i386.
	* config/i386/t-crtpc: Remove.
	* config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
	* config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
	tmake_file.
	(x86_64-*-darwin*): Likewise.
	(i[34567]86-*-linux*): Likewise.
	(x86_64-*-linux*): Likewise.

	* config/i386/sol2.h (ENDFILE_SPEC): Redefine.
	Handle -mpc32, -mpc64, -mpc80.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
	* config/alpha/t-crtfm: Remove.
	* config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
	* config/i386/t-crtfm: Remove.
	* config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
	* config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
	* config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
	* config/sparc/t-crtfm: Remove.

	* config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
	(alpha*-*-freebsd*): Likewise.
	(i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
	(x86_64-*-darwin*): Likewise.
	(i[34567]86-*-linux*): Likewise.
	(x86_64-*-linux*): Likewise.
	(x86_64-*-mingw*): Likewise.
	(ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
	(ia64*-*-freebsd*): Likewise.
	(ia64*-*-linux*): Likewise.
	(mips64*-*-linux*): Likewise.
	(mips*-*-linux*): Likewise.
	(sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
	(sparc64-*-linux*): Likewise.
	(sparc64-*-freebsd*): Likewise.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
	* config/darwin-crt3.c: Move to ../libgcc/config.
	* config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
	($(T)crt3$(objext)): Remove.
	* config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
	($(T)crt2$(objext)): Remove.
	* config.gcc (powerpc-*-darwin*): Remove extra_parts.
	(powerpc64-*-darwin*): Likewise.

2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.

	* config/i386/i386.md (*addsi_1_zext): Renamed to ...
	(addsi_1_zext): This.

2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
	* doc/tm.texi: Regenerate.
	* target.def (mergeable_rodata_prefix): New defhookpod.
	* varasm.c (mergeable_string_section, mergeable_constant_section):
	Use it. Allocate name with alloca.

2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.

2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
	overlap check.

2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
	(count_type_elements): Delete.
	(complete_ctor_at_level_p): Declare.
	* expr.c (flexible_array_member_p): New function, split out from...
	(count_type_elements): ...here.  Make static.  Replace allow_flexarr
	parameter with for_ctor_p.  When for_ctor_p is true, return the
	number of elements that should appear in the top-level constructor,
	otherwise return an estimate of the number of scalars.
	(categorize_ctor_elements): Replace p_must_clear with p_complete.
	(categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
	(complete_ctor_at_level_p): New function, borrowing union logic
	from old categorize_ctor_elements_1.
	(mostly_zeros_p): Return true if the constructor is not complete.
	(all_zeros_p): Update call to categorize_ctor_elements.
	* gimplify.c (gimplify_init_constructor): Update call to
	categorize_ctor_elements.  Don't call count_type_elements.
	Unconditionally prevent clearing for variable-sized types,
	otherwise rely on categorize_ctor_elements to detect
	incomplete initializers.

2011-07-13  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_conversion_using_ranges): Make sure
	the final type is integral.

2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>

	* sched-int.h (struct _dep): Add member cost.
	(DEP_COST, UNKNOWN_DEP_COST): New macros.
	* sched-deps.c (init_dep_1): Initialize DEP_COST.
	* haifa-sched.c (dep_cost_1): Use and set DEP_COST.
	(sched_change_pattern): Reset it for dependent insns.

2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
	($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
	* config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
	* config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
	(CRT0_S, MCRT0_S): Remove.
	($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
	Remove.
	(s-crt0): Remove.
	* config.gcc (i[3456x]86-*-netware*): Remove extra_parts.

2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (insert_with_costs): Put semi-colon after empty loop body
	on the next line.
	* emit-rtl.c (push_to_sequence): Likewise.
	* haifa-sched.c (max_issue): Likewise.
	* matrix-reorg.c (add_allocation_site): Likewise.
	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
	* reload.c (alternative_allows_const_pool_ref): Likewise.
	* sched-rgn.c (rgn_add_block): Likewise.
	(rgn_fix_recovery_cfg): Likewise.
	* tree.c (attribute_list_contained): Likewise.

2011-07-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c: Tidy processor feature bitmasks.
	(m_P4_NOCONA): New.

2011-07-12  Andrew Pinski  <pinskia@gmail.com>

	PR rtl-opt/49474
	* cprop.c (find_implicit_sets): Correct the condition.

2011-07-12  Richard Henderson  <rth@redhat.com>

	PR target/49713
	* dwarf2out.h (dwarf_frame_regnum): Remove.
	* dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
	earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
	* dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
	(execute_dwarf2_frame): Initialize them.
	(DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
	users of the macros with the variables.
	(expand_builtin_dwarf_sp_column): Revert last change.
	(expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
	result of DWARF_FRAME_REGNUM into a local variable.

2011-07-12  Richard Henderson  <rth@redhat.com>

	PR target/49714
	* config/i386/i386.c (x86_output_mi_thunk): Use
	machopic_indirect_call_target instead of machopic_indirection_name
	directly.

2011-07-12  Laurent GUERBY  <laurent@guerby.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* prefix.h: Wrap up in extern "C" block.

2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>

	AMD bdver2 Enablement
	* config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
	(case ${target}): Add bdver2.
	* config/i386/driver-i386.c (host_detect_local_cpu): Let
	-march=native recognize bdver2 processors.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	bdver2 def_and_undef
	* config/i386/i386.c (struct processor_costs bdver2_cost): New
	bdver2 cost table.
	(m_BDVER2): New definition.
	(m_AMD_MULTIPLE): Includes m_BDVER2.
	(initial_ix86_tune_features): Add bdver2 tuning.
	(processor_target_table): Add bdver2 entry.
	(static const char *const cpu_names): Add bdver2 entry.
	(ix86_option_override_internal): Add bdver2 instruction sets.
	(ix86_issue_rate): Add bdver2.
	(ix86_adjust_cost): Add bdver2.
	(has_dispatch): Add bdver2.
	* config/i386/i386.h (TARGET_BDVER2): New definition.
	(enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
	(enum processor_type): Add PROCESSOR_BDVER2.
	* config/i386/i386.md (define_attr "cpu"): Add bdver2.
	* config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
	description.

2011-07-12  Richard Henderson  <rth@redhat.com>

	PR target/49714
	* config/i386/i386.c (x86_output_mi_thunk): Fix mode for
	destination address in memory on some paths.

2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>

	* doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
	TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
	(TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
	* function.c (locate_and_pad_parm): Take it into account.
	* target.def (function_arg_round_boundary): New hook.
	* targhooks.c (default_function_arg_round_boundary): New function.
	* targhooks.h (default_function_arg_round_boundary): Declare.
	* doc/tm.texi: Regenerate.

2011-07-12  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
	Do not perform no-op changes.

2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/predicates.md (neon_struct_operand): Make a normal
	predicate.
	(neon_struct_or_register_operand): New predicate.
	* config/arm/neon.md (movmisalign<mode>): Replace predicates
	with neon_struct_or_register_operand.
	(*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
	neon_struct_operand instead of memory_operand.

2011-07-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_get_node_or_alias): Removed declaration.
	* cgraph.c (cgraph_get_node_or_alias): Removed.
	(change_decl_assembler_name): Changed all calls to
	cgraph_get_node_or_alias to a call to cgraph_get_node.
	(cgraph_make_decl_local): Likewise.
	* lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
	* varasm.c (default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Likewise.

2011-07-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49712
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.

2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>

	* genautomata.c (add_arc): Return void.  All callers changed.
	(make_automaton): Remove dead code.

2011-07-11  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
	(DW_FRAME_POINTER_REGNUM): New.
	(expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
	(def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
	(dwf_regno): New.
	(dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
	dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
	dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
	Use it.
	* dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
	* dwarf2out.h (dwarf_frame_regnum): New.
	(struct cfa_loc): Document the domain of the reg member.

2011-07-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
	Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.

2011-07-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49676
	* dwarf2out.c (int_shift_loc_descriptor): New function.
	(int_loc_descriptor): If shorter, emit i as
	(i >> shift), shift, DW_OP_shl for suitable shift value.
	Similarly, try to optimize large negative values using
	DW_OP_neg of a positive value if shorter.
	(size_of_int_shift_loc_descriptor): New function.
	(size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
	changes.
	(mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
	that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
	DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
	is shorter.
	(resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
	addend as added DW_OP_plus if it is shorter.

2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
	(DTORS_SECTION_ASM_OP): Define.

2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
	* config/t-dfprules: Move to ../libgcc/config.
	* config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
	i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
	i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
	(x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
	Likewise.
	(i[34567]86-*-cygwin*): Likewise.
	(i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
	* Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
	(libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
	D64PBIT_FUNCS, D128PBIT_FUNCS.

2011-07-11  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_conversion_using_ranges): Manually
	translate the source value-range through the conversion chain.

2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>

	* expr.c (expand_expr_real_1): Use expand_insn for movmisalign.

2011-07-11  Arthur Loiret  <aloiret@debian.org>

	* config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
	a bi-arch compiler defaulting to 31-bit. In this case:
	(tmake_file): Add s390/t-linux64.
	* doc/install.texi: Add s390-linux to the list of targets supporting
	--enable-targets=all.

2011-07-11  Arthur Loiret  <aloiret@debian.org>
	    Matthias Klose  <doko@debian.org>

	* config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
	a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
	(tm_file): Add mips/linux64.h.
	(tmake_file): Add mips/t-linux64.
	(tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
	* config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
	instead of hardcoded mabi=n32.
	* config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
	tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
	convention.

2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* passes.c (init_optimization_passes): Add invariant motion pass
	after induction variable optimization.

2011-07-11  Georg-Johann Lay  <avr@gjlay.de>

	PR target/39633
	* config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
	offsets 1..5 set cc0 in a usable way.

2011-07-11  Romain Geissler  <romain.geissler@gmail.com>

	* tree.h (call_expr_arg): Remove.
	(call_expr_argp): Likewise.

2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (save_register_window_1): Rename to...
	(window_save): ...this.
	* config/sparc/sparc.c (emit_save_register_window): Rename to...
	(emit_window_save): ...this.
	(sparc_expand_prologue): Adjust to above renaming.

2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_trampoline_init): Use movl instead
	of movabs for x32.

2011-07-10  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
	run final, instead of emitting text directly.

2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal): Turn on
	OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
	small PIC models for TARGET_X32.

2011-07-10  Hans-Peter Nilsson  <hp@axis.com>

	PR target/49684
	* config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
	$(LIBGCC2_CFLAGS).

	PR bootstrap/49680
	* config/cris/cris.c (cris_asm_output_case_end): Robustify against
	stray notes and debug insns by using prev_nonnote_nondebug_insn
	instead of PREV_INSN.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
	DWARF_TYPE_SIGNATURE_SIZE): Move from ...
	* dwarf2out.c: ... here.
	(output_all_cfis): Remove.
	(dwarf2out_switch_text_section): Use output_cfis directly.
	(size_of_locs): Export.
	(output_loc_sequence, output_loc_sequence_raw): Export.
	(div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
	output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
	output_cfa_loc_raw): Move to ...
	* dwarfcfi.c: ... here.
	* dwarf2out.h: Update decls.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
	DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
	* dwarf2cfi.c: ... here.
	(PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
	(DWARF_ROUND, DWARF_CIE_ID): Remove.
	* dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
	(DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
	(DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (cie_return_save): New.
	(queue_reg_save): Use compare_reg_or_pc.
	(dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
	(dwarf2out_frame_debug_expr): Likewise.
	(dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
	(initial_return_save): Likewise.
	(execute_dwarf2_frame): Save and restore initial return save from
	the cie to the fde.
	* config/mips/mips.c (mips_frame_set): Remove special case for
	DWARF_FRAME_RETURN_COLUMN.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (lookup_cfa): Remove.
	(execute_dwarf2_frame): Assert queues are empty on entry.
	Setup initial cfa directly, not via lookup_cfa.
	Don't clear args_size state here.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (add_cfi_vec): New.
	(add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
	(def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
	(execute_dwarf2_frame): Set add_cfi_vec.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* defaults.h (ASM_COMMENT_START): Move here...
	* dwarf2asm.c: ... from here.
	* dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
	* toplev.c: Remove ifndef tests of ASM_COMMENT_START.
	* varasm.c: Likewise.

2011-07-09  Richard Henderson  <rth@redhat.com>

	PR debug/49686
	* dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
	(create_cfi_notes): ... do it here instead.

2011-07-09  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49676
	* dwarf2out.c (size_of_int_loc_descriptor): New function.
	(address_of_int_loc_descriptor): Use it.
	(scompare_loc_descriptor): Optimize EQ/NE comparison with constant.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
	(prologue, epilogue): New.
	(return, *rts): New.
	(blockage, setd, seti): New.
	* config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
	(TARGET_ASM_FUNCTION_EPILOGUE): Remove.
	(pdp11_saved_regno): New.
	(pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
	generate rtl instead of text.
	(pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
	(pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
	* config/pdp11/pdp11-protos.h: Update.

2011-07-09  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
	try to insert an rtl prologue here.
	(rs6000_output_function_epilogue): Similarly.
	* config/rs6000/rs6000.md (prologue): Emit a barrier to
	satisfy !TARGET_SCHED_PROLOG.
	(epilogue, sibcall_epilogue): Likewise.

2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
	(FP_REG_P): Delete.
	(IN_OR_GLOBAL_P): Likewise.

2011-07-08  Jason Merrill  <jason@redhat.com>

	PR c++/45437
	* gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
	compound assignment.

	* cgraph.c (cgraph_add_to_same_comdat_group): New.
	* cgraph.h: Declare it.
	* ipa.c (function_and_variable_visibility): Make sure thunks
	have the right visibility.

2011-07-08  Richard Henderson  <rth@redhat.com>

	PR bootstrap/49680
	* dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
	any tablejump vector.

	PR bootstrap/49680
	* dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
	end of the prologue.

2011-07-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/49621
	* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
	CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
	* config/rs6000/vector.md (vector_select_<mode>,
	vector_select_<mode>_uns): Change second operand of NE to
	CONST0_RTX (<MODE>mode) instead of const0_rtx.
	* config/rs6000/altivec.md (*altivec_vsel<mode>,
	*altivec_vsel<mode>_uns): Expect second operand of NE to be
	zero_constant of the corresponding vector mode.
	* config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
	Likewise.

2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_alias_set_powerset): Remove
	continue from loop, add one more assert.

2011-07-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/46779
	* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
	In particular, allow 8-bit values in r28 and r29.
	(avr_hard_regno_scratch_ok): Disallow any register that might be
	part of the frame pointer.
	(avr_hard_regno_rename_ok): Same.
	(avr_legitimate_address_p): Don't allow SUBREGs.

2011-07-08  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
	big-endian mode.
	(reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
	(reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
	(neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
	(vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
	(neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
	(neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
	(vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
	registers in big-endian mode.

2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>

	* genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
	in terms of another.
	(write_attr_value): Write a cast if necessary.

	* defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
	* doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
	(REG_WORDS_BIG_ENDIAN): Document.
	* doc/tm.texi: Regenerate.
	* reload.c (operands_match_p): Take it into account.
	(reload_adjust_reg_for_mode): Likewise.
	* rtlanal.c (subreg_get_info): Likewise.

2011-07-08  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
	folding.

2011-07-08  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_truth_andor): Factored out truth_andor
	label from fold_binary as function.
	(fold_binary_loc): Replace truth_andor lable
	by function fold_truth_andor.

2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR middle-end/49519
	* calls.c (mem_overlaps_already_clobbered_arg_p): Additional
	check if address is stored in register. If so - give up.
	(check_sibcall_argument_overlap_1): Do not perform check of
	overlapping when it is call to address.

2011-07-08  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
	of magic '31'.

2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>

	* optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
	GET_MODE_BITSIZE where appropriate.
	(widen_leading, expand_parity, expand_ctz, expand_ffs,
	expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
	expand_float, expand_fix): Likewise.
	* expr.c (convert_move, convert_modes, expand_expr_real_2,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	* stor-layout.c (get_mode_bounds): Likewise.
	* cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
	Likewise.
	* convert.c (convert_to_integer): Likewise.
	* expmed.c (expand_shift_1): Likewise.

	* rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
	a bitsize.

	* optabs.c (expand_binop): Tighten conditions for doubleword
	expansions.
	(widen_bswap): Assert that mode bitsize and precision are the same.
	* stor-layout.c (get_best_mode): Skip modes that have lower
	precision than bitsize.
	* recog.c (simplify_while_replacing): Assert that bitsize and
	precision are the same.

2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (LIBGCOV): Remove.
	(libgcc.mvars): Remove LIBGCOV.
	* libgov.c: Move to ../libgcc.

2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.

2011-07-08  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (analyze_all_variable_accesses): Dump that a struture
	is too big for total scalarization.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
	(DBX_DEBUGGING_INFO): Undef.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
	Handle some opcodes specially for debugging.
	* print-rtl.c: Include dwarf2out.h
	(print_rtx): Handle NOTE_INSN_CFI.
	* Makefile.in (print-rtl.o): Update.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* tree-pass.h (pass_dwarf2_frame): Declare.
	* passes.c (init_optimization_passes): Add it.
	* dwarf2cfi.c (dwarf2out_frame_debug): Make static.
	(create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
	make static, do not call add_cfis_to_fde.
	(dwarf2out_frame_debug_init, dwarf2cfi_function_init,
	dwarf2out_frame_init): Merge into...
	(execute_dwarf2_frame): ... here.  New function.
	(dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
	saved_do_cfi_asm to a tri-state variable.
	(gate_dwarf2_frame, pass_dwarf2_frame): New.
	* dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
	if it has yet to be done.  Don't call dwarf2cfi_function_init.
	* dwarf2out.h, debug.h: Update decls.
	* final.c (final_start_function): Don't call
	dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
	* lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
	* toplev.c (lang_dependent_init): Likewise.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
	FDE_TABLE_INCREMENT): Replace with...
	(fde_vec): ... this, a new vector.
	(current_fde): Remove.  Replace all users with cfun->fde.
	(output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
	(size_of_aranges, dwarf2out_finish): Likewise.
	(dwarf2out_alloc_current_fde): Break out from ...
	(dwarf2out_begin_prologue): ... here.
	(dwarf2out_frame_init): Remove.
	* dwarf2cfi.c: Update all users of current_fde.
	(dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
	* dwarf2out.h: Update decls.
	(dw_fde_node): Add fde_index member.
	* function.h (struct function): Add fde member.

2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
	    Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (add_cfi): Remove.
	(dwarf2out_cfi_label): Remove force argument.  Only generate the
	label name.
	(add_fde_cfi): Simplify the different code paths.
	(add_cie_cfi): New.
	(old_cfa, old_cfa_remember): New.
	(def_cfa_1, reg_save): Remove label, add for_cie parameter.
	(last_reg_save_label): Remove.
	(dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
	dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
	dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
	dwarf2out_frame_debug_cfa_expression,
	dwarf2out_frame_debug_cfa_restore,
	dwarf2out_frame_debug_cfa_window_save,
	dwarf2out_frame_debug_expr): Remove label parameter.
	(cfi_label_required_p, add_cfis_to_fde): New.
	(dwarf2out_frame_debug_after_prologue): New.
	(dwarf2cfi_frame_init): Initialize old_cfa.
	(dwarf2out_frame_debug_restore_state): Likewise.
	* dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
	(dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
	* final.c (final_start_function): Call
	dwarf2out_frame_debug_after_prologue.

2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
	    Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (cfi_insn): New.
	(dwarf2out_cfi_label): Don't emit cfi label here.
	(add_fde_cfi): Create a NOTE_INSN_CFI.
	(dwarf2out_frame_debug): Setup cfi_insn.
	(dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
	(dwarf2out_cfi_begin_epilogue): Make static.
	(dwarf2out_frame_debug_restore_state): Make static.
	* dwarf2out.c (output_cfi_directive): Make static.
	(dwarf2out_emit_cfi): New.
	* dwarf2out.h: Update.
	* final.c (final): Remove CFI notes.
	(final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
	dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
	Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
	* insn-notes.def (NOTE_INSN_CFI): New.
	(NOTE_INSN_CFI_LABEL): New.
	* rtl.h (union rtunion_def): Add rt_cfi member.
	(XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c: New file.
	* Makefile.in (OBJS): Add it.
	(GTFILES): Add dwarf2cfi.c and dwarf2out.h.
	* gengtype.c (open_base_files): Include dwarf2out.h.
	* coretypes.h (enum var_init_status): Move from ...
	* rtl.h: ... here.
	* dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
	dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
	expand_builtin_dwarf_sp_column, init_return_column_size,
	expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
	dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
	lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
	old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
	stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
	compute_barrier_args_size, dwarf2out_args_size,
	dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
	queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
	compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
	queue_reg_save, dwarf2out_flush_queued_reg_saves,
	clobbers_queued_reg_save, reg_saved_in, cfa_temp,
	dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
	dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
	dwarf2out_frame_debug_cfa_expression,
	dwarf2out_frame_debug_cfa_restore,
	dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
	dwarf2out_frame_debug, dwarf2out_frame_debug_init,
	dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
	get_cfa_from_loc_descr): Move to dwarf2cfi.c.
	(dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
	dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
	dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
	dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
	dw_loc_descr_node): Move to dwarf2out.h.
	(current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
	mem_loc_descriptor): Export.
	(build_cfa_aligned_loc): Export.  Take CFA as a parameter.
	(dwarf2out_frame_init): Extract CIE generation code to
	dwarf2cfi_frame_init.

2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/49660
	* config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
	MASK_V8PLUS, remove commented out flag and reorder.

2011-07-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/49644
	* c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
	one non-complex and one complex argument, call c_save_expr on both
	operands.

2011-07-07  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/49495
	* cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
	(verify_cgraph_node): Some functinality moved to
	verify_edge_corresponds_to_fndecl, call it.

2011-07-07  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (*local*): Remove.
	* doc/install-old.texi: Don't mention local configurations.

2011-07-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49522
	* df-problems.c (dead_debug_reset): Remove dead_debug_uses
	referencing debug insns that have been reset.
	(dead_debug_insert_before): Don't assert reg is non-NULL,
	instead return immediately if it is NULL.

2011-07-07  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.

2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>

	* hw-doloop.c: New file.
	* hw-doloop.h: New file.
	* Makefile.in (OBJS): Add hw-doloop.o.
	(hw-doloop.o): New rule.
	($(obj_out_file)): Add hw-doloop.h dependency.
	* config/bfin/bfin.c: Include "hw-doloop.h".
	(loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
	(bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
	(hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
	type changed to hwloop_info.  Return bool, true if the loop was
	successfully optimized.  Remove code that was moved to
	hw-doloop.c, and adjust other parts.
	(hwloop_fail): New static function, containing parts that used
	to be in bfin_optimize_loop.
	(bfin_discover_loop, bfin_discover_loops, free_loops,
	bfin_reorder_loops): Remove.
	(hwloop_pattern_reg): New static function.
	(bfin_doloop_hooks): New variable.
	(bfin_reorg_loops): Remove most code, call reorg_loops.
	* config/bfin/bfin.md (doloop_end splitter): Also enable if
	loop counter is a memory_operand.

2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Support --with-multilib-list for x86 Linux targets.

	* configure.ac: Mention x86-64 for --with-multilib-list.
	* configure: Regenerated.

	* config/i386/gnu-user64.h (SPEC_64): Support x32.
	(SPEC_32): Likewise.
	(ASM_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(TARGET_THREAD_SSP_OFFSET): Likewise.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
	(SPEC_X32): New.

	* config/i386/i386.h (TARGET_X32): New.
	(TARGET_LP64): New.
	(LONG_TYPE_SIZE): Likewise.
	(POINTER_SIZE): Likewise.
	(POINTERS_EXTEND_UNSIGNED): Likewise.
	(OPT_ARCH64): Support x32.
	(OPT_ARCH32): Likewise.

	* config/i386/i386.opt (mx32): New.

	* config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
	(GLIBC_DYNAMIC_LINKERX32): Likewise.
	* config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
	(GLIBC_DYNAMIC_LINKERX32): Likewise.

	* config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
	(BIONIC_DYNAMIC_LINKERX32): Likewise.
	(GNU_USER_DYNAMIC_LINKERX32): Likewise.

	* config/i386/t-linux64: Support TM_MULTILIB_CONFIG.

	* doc/install.texi: Document --with-multilib-list for Linux/x86-64.

	* doc/invoke.texi: Document -mx32.

2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>

	* doc/invoke.texi (mwords-little-endian): Deprecate.
	* config/arm/arm.opt (mwords-little-endian): Likewise.
	* config/arm/arm.c (arm_option_override): Warn about the deprecation
	of -mwords-little-endian.

2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>

	* reload1.c (choose_reload_regs): Use mode sizes to check whether
	an old reload register completely defines the required value.

2011-07-07  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_unary_loc): Do not strip sign-changes
	for NEGATE_EXPR.

2011-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_conversion_using_ranges): New function.
	(simplify_stmt_using_ranges): Call it.

2011-07-07  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
	(lookup_logical_inverted_value): Likewise.
	(simplify_bitwise_binary_1): Likewise.
	(simplify_bitwise_binary): Use simplify_bitwise_binary_1.

2011-07-07  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (%[Spec]): Don't document.
	(struct spec_list): Update comment.
	(do_spec_1): Don't handle %[Spec].
	* doc/invoke.texi (%[@var{name}]): Remove documentation of spec.

2011-07-07  Joseph Myers  <joseph@codesourcery.com>

	* common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
	default based on TARGET_ASM_NAMED_SECTION.
	* common/common-target.def (have_named_sections): Default to true.
	* common/config/default-common.c: Don't include tm.h.
	* common/config/picochip/picochip-common.c
	(TARGET_HAVE_NAMED_SECTIONS): Don't define.
	* common/config/m32c/m32c-common.c: Remove.
	* config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
	* config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.

2011-07-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49640
	* gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
	and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libmudflap/49550
	* gcc.c (MFWRAP_SPEC): Also wrap mmap64.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39150
	* configure.ac (gcc_cv_as_hidden): Also accept
	x86_64-*-solaris2.1[0-9]*.
	(gcc_cv_as_cfi_directive): Likewise.
	(gcc_cv_as_comdat_group_group): Likewise.
	(set_have_as_tls): Likewise.
	* configure: Regenerate.
	* config.gcc (i[34567]86-*-solaris2*): Also handle
	x86_64-*-solaris2.1[0-9]*.
	* config.host (i[34567]86-*-solaris2*): Likewise.
	* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
	* config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
	[USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
	(TARGET_LD_EMULATION): Use it.
	* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
	(SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
	* config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
	(ASM_CPU64_DEFAULT_SPEC): Define.
	(ASM_CPU_SPEC): Use %(asm_cpu_default).
	(ASM_SPEC): Redefine.
	(DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
	* config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
	* doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
	(Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
	configuration.
	(Specific, x86_64-*-solaris2.1[0-9]*): Document.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.h (ASM_SPEC): Split into ...
	(ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
	* config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
	* config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
	(ASM_SPEC): Use ASM_SPEC_BASE.
	* config/sparc/sol2.h (ASM_SPEC): Redefine.

2011-07-07  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (*reload_insi): Change predicate #1 to
	const_int_operand.  Ditto for peep2 producing this insn.
	Add argument to output_reload_insisf call.
	(*movsi,*movsf): Add argument to output_movsisf call.
	(*reload_insf): New insn and new peep2 to produce it.
	* config/avr/avr-protos.h (output_movsisf): Change prototype.
	(output_reload_insisf): Change prototype.
	* config/avr/avr.c (avr_asm_len): New function.
	(output_reload_insisf): Rewrite.
	(output_movsisf): Change prototype.  output_reload_insisf for
	all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
	(adjust_insn_length): Add argument to output_movsisf and
	output_reload_insisf call.

2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>

	* emit-rtl.c (paradoxical_subreg_p): New function.
	* rtl.h (paradoxical_subreg_p): Declare.
	* combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
	apply_distributive_law, simplify_comparison, simplify_set): Use it.
	* cse.c (record_jump_cond, cse_insn): Likewise.
	* expr.c (force_operand): Likewise.
	* rtlanal.c (num_sign_bit_copies1): Likewise.
	* reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
	* reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
	(push_reload): Use precision to check for paradoxical subregs.
	* expmed.c (extract_bit_field_1): Likewise.

	* machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
	* combine.c (set_nonzero_bits_and_sign_copies): Use it.
	(find_split-point, combine_simplify_rtx, simplify_if_then_else,
	simplify_set, simplify_logical, expand_compound_operation,
	make_extraction, force_to_mode, if_then_else_cond, extended_count,
	try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
	record_value_for_reg): Likewise.
	* expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
	* simplify-rtx. c (simplify_unary_operation_1,
	simplify_binary_operation_1, simplify_const_relational_operation):
	Likewise.

	* explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
	instead of GET_MODE_BITSIZE where appropriate.
	* rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
	num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
	init_num_sign_bit_copies_in_rep): Likewise.
	* cse.c (fold_rtx, cse_insn): Likewise.
	* loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1,
	simplify_const_unary_operation, simplify_binary_operation_1,
	simplify_const_binary_operation, simplify_ternary_operation,
	simplify_const_relational_operation, simplify_subreg): Likewise.
	* combine.c (try_combine, find_split_point, combine_simplify_rtx,
	simplify_if_then_else, simplify_set, expand_compound_operation,
	expand_field_assignment, make_extraction, if_then_else_cond,
	make_compound_operation, force_to_mode, make_field_assignment,
	reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
	extended_count, try_widen_shift_mode, simplify_shift_const_1,
	simplify_comparison, record_promoted_value, simplify_compare_const,
	record_dead_and_set_regs_1): Likewise.

	Revert:
	* simplify-rtx.c (simplify_const_binary_operation): Use the
	shift_truncation_mask hook instead of performing modulo by width.
	Compare against mode precision, not bitsize.
	* combine.c (combine_simplify_rtx, simplify_shift_const_1):
	Use shift_truncation_mask instead of constructing the value manually.

2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
	declaration.
	(rs6000_save_toc_in_prologue_p): Ditto.

	* config/rs6000/rs6000.opt (-mr11): New switch to disable loading
	up the static chain (r11) during indirect function calls.
	(-msave-toc-indirect): New undocumented debug switch.

	* config/rs6000/rs6000.c (struct machine_function): Add
	save_toc_in_prologue field to note whether the prologue needs to
	save the TOC value in the reserved stack location.
	(rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
	to save the TOC in the prologue, do so.
	(rs6000_trampoline_init): Don't allow creating AIX style
	trampolines if -mno-r11 is in effect.
	(rs6000_call_indirect_aix): New function to create AIX style
	indirect calls, adding support for -mno-r11 to suppress loading
	the static chain, and saving the TOC in the prologue instead of
	the call body.
	(rs6000_save_toc_in_prologue_p): Return true if we are saving the
	TOC in the prologue.

	* config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
	register numbers.
	(TOC_REGNUM): Ditto.
	(STATIC_CHAIN_REGNUM): Ditto.
	(ARG_POINTER_REGNUM): Ditto.
	(SFP_REGNO): Delete, unused.
	(TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
	function descriptor offsets.
	(TOC_SAVE_OFFSET_64BIT): Ditto.
	(AIX_FUNC_DESC_TOC_32BIT): Ditto.
	(AIX_FUNC_DESC_TOC_64BIT): Ditto.
	(AIX_FUNC_DESC_SC_32BIT): Ditto.
	(AIX_FUNC_DESC_SC_64BIT): Ditto.
	(ptrload): New mode attribute for the appropriate load of a pointer.
	(call_indirect_aix32): Delete, rewrite AIX indirect function calls.
	(call_indirect_aix64): Ditto.
	(call_value_indirect_aix32): Ditto.
	(call_value_indirect_aix64): Ditto.
	(call_indirect_nonlocal_aix32_internal): Ditto.
	(call_indirect_nonlocal_aix32): Ditto.
	(call_indirect_nonlocal_aix64_internal): Ditto.
	(call_indirect_nonlocal_aix64): Ditto.
	(call): Rewrite AIX indirect function calls.  Add support for
	eliminating the static chain, and for moving the save of the TOC
	to the function prologue.
	(call_value): Ditto.
	(call_indirect_aix<ptrsize>): Ditto.
	(call_indirect_aix<ptrsize>_internal): Ditto.
	(call_indirect_aix<ptrsize>_internal2): Ditto.
	(call_indirect_aix<ptrsize>_nor11): Ditto.
	(call_value_indirect_aix<ptrsize>): Ditto.
	(call_value_indirect_aix<ptrsize>_internal): Ditto.
	(call_value_indirect_aix<ptrsize>_internal2): Ditto.
	(call_value_indirect_aix<ptrsize>_nor11): Ditto.
	(call_nonlocal_aix32): Relocate in the rs6000.md file.
	(call_nonlocal_aix64): Ditto.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
	-mno-r11 documentation.

2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR other/49658
	* doc/extend.texi (Compound Literals): Fix typo.

2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.

2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>

	* configure.ac (plugin-version.h): Generate
	GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
	GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
	macros.

	* configure: Regenerate.

	* doc/plugins.texi (Building GCC plugins): Mention
	GCCPLUGIN_VERSION ... constant macros in plugin-version.h.

2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>

	* machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
	* combine.c (make_extraction, gen_lowpart_or_truncate,
	apply_distributive_law, simplify_comparison,
	reg_truncated_to_mode, record_truncated_value): Use it.
	* cse.c (notreg_cost): Likewise.
	* expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
	* expr.c (convert_move, convert_modes): Likewise.
	* optabs.c (expand_binop, expand_unop): Likewise.
	* postreload.c (move2add_last_label): Likewise.
	* regmove.c (optimize_reg_copy_3): Likewise.
	* rtlhooks.c (gen_lowpart_general): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1): Likewise.

2011-07-06  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.

2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>

	* cse.c (find_comparison_args): Use val_mode_signbit_set_p.
	* simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
	(val_mode_signbit_p, val_mode_signbit_set_p): New functions.
	(simplify_const_unary_operation, simplify_binary_operation_1,
	simplify_const_binary_operation, simplify_const_relational_operation):
	Use them.  Use GET_MODE_MASK for masking and sign-extensions.
	* combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
	combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
	simplify_shift_const_1, simplify_comparison): Likewise.
	* expr.c (convert_modes): Likewise.
	* rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
	* expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
	* rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.

	* simplify-rtx.c (simplify_ternary_operation): Remove dead code.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49645
	* c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
	register variables.
	* tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
	in type qualification here ...
	(copy_reference_ops_from_ref): ... not here.
	(vn_reference_lookup_3): ... or here.
	(copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
	(vn_reference_lookup): Do the lookup with a valueized ao-ref.

2011-07-06  Ian Lance Taylor  <iant@google.com>

	* doc/install.texi (Configuration): It's
	--enable-gnu-indirect-function, not --enable-indirect-function.

2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>

	* simplify-rtx.c (simplify_const_binary_operation): Use the
	shift_truncation_mask hook instead of performing modulo by width.
	Compare against mode precision, not bitsize.
	* combine.c (combine_simplify_rtx, simplify_shift_const_1):
	Use shift_truncation_mask instead of constructing the value manually.

2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47383
	* tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
	address computation and convert to address_mode if needed.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_common_tree_nodes_2): Merge with
	build_common_tree_nodes.
	* tree.h (build_common_tree_nodes): Adjust prototype.
	(build_common_tree_nodes_2): Remove.
	* doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
	* doc/tm.texi (lang_hooks.builtin_function): Regenerate.

2011-07-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49618
	* tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
	t recurse on the decl.
	<case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
	return true if expr isn't known to be defined in current
	TU or some other LTO partition.

2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
	override CASE_VALUES_THRESHOLD.

	* stmt.c (toplevel): Include params.h.
	(case_values_threshold): Use the --param case-values-threshold
	value if non-zero, otherwise use machine dependent value.
	(expand_case): Use case_values_threshold.

	* Makefile.in (stmt.o): Add $(PARAMS_H) dependency.

	* doc/invoke.texi (--param case-values-threshold): Document.

2011-07-05  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (dwarf2out_cfi_label): Make static.
	(dwarf2out_flush_queued_reg_saves): Make static.
	(dwarf2out_reg_save): Remove.
	(dwarf2out_return_save): Remove.
	(dwarf2out_return_reg): Remove.
	(dwarf2out_reg_save_reg): Remove.
	(dwarf2out_def_cfa): Merge into ...
	(dwarf2out_frame_init): ... here.
	* dwarf2out.h, tree.h: Remove declarations as necessary.

2011-07-05  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
	(ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
	the alloc insn.

	* config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
	(IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
	(process_epilogue): Don't call dwarf2out_def_cfa.

	* config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
	indicate the return address save.
	(process_cfa_register): Likewise.

	* config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
	(process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.

	* config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
	for ar.pfs save at alloc insn.

2011-07-05  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
	(arm_expand_prologue): Use REG_CFA_REGISTER to mark the
	stack pointer save.
	(arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
	(arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
	proper unwind info for a REG_CFA_REGISTER save of stack pointer.
	* config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.

2011-07-05  Richard Henderson  <rth@redhat.com>

	* config/vax/vax.md (define_c_enum unspecv): New.  Define the
	VUNSPEC_* constants here instead of via define_constants.
	(VUNSPEC_PEM): New constant.
	(procedure_entry_mask): New insn.
	(prologue): New expander.
	* config/vax/vax.c (vax_add_reg_cfa_offset): New.
	(vax_expand_prologue): Rename from vax_output_function_prologue;
	emit rtl instead of text.
	(TARGET_ASM_FUNCTION_PROLOGUE): Remove.
	(print_operand): Add 'x' prefix.

2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47715
	* calls.c (precompute_register_parameters): Promote the function
	argument before checking non-legitimate constant.

2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47654
	* graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
	(lst_do_strip_mine_loop): Return an int.
	(lst_do_strip_mine): Same.
	(scop_do_strip_mine): Same.
	(scop_do_block): Loop blocking should strip-mine at least two loops.
	* graphite-interchange.c (lst_interchange_select_outer): Return an int.
	(scop_do_interchange): Same.
	* graphite-poly.h (scop_do_interchange): Update declaration.
	(scop_do_strip_mine): Same.

2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (precision_for_value): Removed.
	(precision_for_interval): Removed.
	(gcc_type_for_interval): Use mpz_sizeinbase.

2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.h (value_max): Correct computation of max.

2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.

2011-07-05  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (c_init_decl_processing): Defer building common
	tree nodes to c_common_nodes_and_builtins.

2011-07-05  Razya Ladelsky  <razya@il.ibm.com>

	PR tree-optimization/49580
	* tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
	the loop's number of iterations.
	* tree-parloops.c (transform_to_exit_first_loop): Add the
	handling of the loop's number of iterations before the call
	to gimple_duplicate_sese_tail.
	Insert the stmt caclculating the new rhs of the loop's
	condition stmt to the preheader instead of iters_bb.

2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/47449
	* fwprop.c (forward_propagate_subreg): Don't propagate hard
	register nor zero/sign extended hard register.

2011-07-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49518
	PR tree-optimization/49628
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
	irrelevant and invariant data-references.
	(vect_analyze_data_ref_access): For invariant loads clear the
	group association.

2011-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/49619
	* combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
	pass VOIDmode as op0_mode to recursive call, and return temp even
	when different from tor, just if it is not IOR of the original
	PLUS arguments.

	PR rtl-optimization/49472
	* simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
	negating MULT, negate the second operand instead of first.
	(simplify_binary_operation_1) <case MULT>: If one operand is
	a NEG and the other is MULT, don't attempt to optimize by negation
	of the MULT operand if it only moves the NEG operation around.

	PR debug/49602
	* tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
	get_current_def return value if it can't be trusted to be
	the current value of the variable in the current bb.

2011-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49600
	* config/i386/i386.md (SSE2 int->float split): Push operand 1 in
	general register to memory for !TARGET_INTER_UNIT_MOVES.

2011-07-04  Georg-Johann Lay  <avr@gjlay.de>

	PR target/44643
	* config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
	instead of TREE_READONLY.

2011-07-04  Georg-Johann Lay  <avr@gjlay.de>

	* doc/extend.texi (AVR Built-in Functions): Update documentation
	of __builtin_avr_fmul*.
	* config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
	* config/avr/avr.md (fmul): Rename to fmul_insn.
	(fmuls): Rename to fmuls_insn.
	(fmulsu): Rename to fmulsu_insn.
	(fmul,fmuls,fmulsu): New expander.
	(*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
	* config/avr/libgcc.S (__fmul): New function.
	(__fmuls): New function.
	(__fmulsu,__fmulsu_exit): New function.

2011-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49615
	* tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
	basic-block index check.

2011-07-04  Georg-Johann Lay  <avr@gjlay.de>

	* longlong.h (count_leading_zeros, count_trailing_zeros,
	COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
	resp. 64.

2011-07-03  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49610
	* tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
	a basic block.

2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>

	* tree.h (TYPE_ARTIFICIAL): New flag.
	* dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
	the DIE of the type if it is artificial.
	(gen_array_type_die): Likewise.
	(gen_enumeration_type_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.
	* lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
	* lto-streamer-out.c (pack_ts_base_value_fields): Likewise.

2011-07-01  Jakub Jelinek  <jakub@redhat.com>

	* tree-object-size.c (pass_through_call): Handle
	BUILT_IN_ASSUME_ALIGNED.

2011-07-01  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.

2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/48016
	* explow.c (update_nonlocal_goto_save_area): Use proper mode
	for stack save area.
	* function.c (expand_function_start): Likewise.

2011-07-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/49596
	* cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
	may have unknown refs.

2011-07-01  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.

2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
	* doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
	(Specific, mips-sgi-irix6): Likewise.

2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libmudflap/49549
	* doc/sourcebuild.texi (Effective-Target Keywords): Document gld.

2011-07-01  Jakub Jelinek  <jakub@redhat.com>

	* tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
	[idx]= and [idx1 ... idx2]= before initializers if needed for
	array initializers.

2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>

	* config.gcc (score-*-elf): Remove score7.o.
	* config/score/t-score-elf: Likewise.
	* config/score/score.c: Merge score7 to score.c and
	remove forwarding functions.
	* config/score/score7.c: Deleted.
	* config/score/score7.h: Deleted.

2011-07-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49603
	* tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.

2011-06-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): Rename total_scalarization to
	grp_total_scalarization
	(completely_scalarize_var): New function.
	(sort_and_splice_var_accesses): Set total_scalarization in the
	representative access.
	(analyze_access_subtree): Propagate total scalarization accross the
	tree, no holes in totally scalarized trees, simplify coverage
	computation.
	(analyze_all_variable_accesses): Call completely_scalarize_var instead
	of completely_scalarize_record.

2011-06-30  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
	(TARGET_DEEP_BRANCH_PREDICTION): Remove.
	* config/i386/i386.c: Don't include dwarf2out.h.
	(initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
	(output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
	all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
	(ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
	(machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.

2011-06-30  Richard Henderson  <rth@redhat.com>

	* reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
	* dwarf2out.c (dwarf2out_frame_debug): Handle it.
	* final.c (final_scan_insn): Look for it, and invoke
	dwarf2out_frame_debug before the insn if found.

2011-06-30  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
	as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.

2011-06-30  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
	Define a vector of this type.
	(regs_saved_in_regs): Use a VEC.
	(num_regs_saved_in_regs): Remove.
	(compare_reg_or_pc): New.
	(record_reg_saved_in_reg): Split out from...
	(dwarf2out_flush_queued_reg_saves): ... here.
	(clobbers_queued_reg_save): Update for VEC.
	(reg_saved_in): Likewise.
	(dwarf2out_frame_debug_init): Likewise.
	(dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
	(dwarf2out_frame_debug_cfa_register): Likewise.

2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/49572
	* tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
	type of the RHS instead of that of the LHS for the expression type.

2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
	unconditionally.

2011-06-30  Richard Guenther  <rguenther@suse.de>

	* opts.c (finish_options): Do not disable IPA-PTA during ltrans.
	* tree-ssa-structalias.c (create_variable_info_for): Do not
	add initial constraints for non-var-decls.  Properly handle
	globals in other ltrans partitions.
	(intra_create_variable_infos): Manually create constraints for
	the fake no-alias parameter.
	(ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
	and assert there are no clones.

2011-06-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46787
	* tree-data-ref.c (dr_address_invariant_p): Remove.
	(find_data_references_in_stmt): Invariant accesses are ok now.
	* tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
	invariant loads.

2011-06-30  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/49094
	* tree-sra.c (tree_non_mode_aligned_mem_p): New function.
	(build_accesses_from_assign): Use it.

2011-06-30  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
	handling of BUILT_IN_ASSUME_ALIGNED.

	PR debug/49364
	* dwarf2out.c (output_abbrev_section): Don't return early
	if abbrev_die_table_in_use is 1.
	(dwarf2out_finish): Instead don't call output_abbrev_section
	nor emit abbrev_section_label in that case.

2011-06-30  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
	for the V850E.

2011-06-30  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
	handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.

2011-06-30  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
	both pattern and original statements if necessary.
	(vect_transform_loop): Likewise.
	* tree-vect-patterns.c (vect_pattern_recog): Update documentation.
	* tree-vect-stmts.c (vect_mark_relevant): Add new argument.
	Mark the pattern statement only if the original statement doesn't
	have its own uses.
	(process_use): Call vect_mark_relevant with additional parameter.
	(vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_get_vec_def_for_operand): Use vectorized pattern statement.
	(vect_analyze_stmt): Handle both pattern and original statements
	if necessary.
	(vect_transform_stmt): Don't store vectorized pattern statement
	in the original statement.
	(vect_is_simple_use_1): Use related pattern statement only if the
	original statement is irrelevant.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.

2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>

	* config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
	option.
	* config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
	entry.
	(TARGET_AVX128_OPTIMAL): New definition.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_TUNE_AVX128_OPTIMAL entry.
	(ix86_option_override_internal): Enable the generation
	of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
	(ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
	(ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.

2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/49539
	* tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
	names by means of stmt_references_abnormal_ssa_name.
	(associate_plusminus): Call can_propagate_from before propagating
	from definition statements.
	(ssa_forward_propagate_and_combine): Remove superfluous newline.

2011-06-29  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi: Document -scev dump modifier.
	* tree-pass.h (TDF_SCEV): New dump flag.
	* tree-dump.c (dump_option_value_in): Add scev.
	* tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
	* tree-scalar-evolution.c: Likewise.

2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
	(cxa_type_match): Correct declaration.
	(__gnu_unwind_pr_common): Reconstruct additional indirection
	when __cxa_type_match returns succeeded_with_ptr_to_base.

2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR rtl-optimization/49114
	* reload.c (struct replacement): Remove SUBREG_LOC member.
	(push_reload): Do not set it.
	(push_replacement): Likewise.
	(subst_reload): Remove dead code.
	(copy_replacements): Remove assertion.
	(copy_replacements_1): Do not handle SUBREG_LOC.
	(move_replacements): Likewise.
	(find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
	Detect subregs via recursive descent instead of via SUBREG_LOC.

2011-06-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_encode_section_info): Dispatch to
	default_encode_section_info.

2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>

	PR tree-optimization/49545
	* builtins.c (get_object_alignment_1): Update function comment.
	Do not use DECL_ALIGN for functions, but test
	TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
	* fold-const.c (get_pointer_modulus_and_residue): Don't check
	for functions here.
	* tree-ssa-ccp.c (get_value_from_alignment): Likewise.

2011-06-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49567
	* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
	non-MODE_INT modes instead of asserting the mode has MODE_INT class.

2011-06-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/34734
	* config/avr/avr.c (avr_handle_progmem_attribute): Move warning
	about uninitialized data attributed 'progmem' from here...
	(avr_encode_section_info): ...to this new function.
	(TARGET_ENCODE_SECTION_INFO): New define.
	(avr_section_type_flags): For data in ".progmem.data", remove
	section flag SECTION_WRITE.

2011-06-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
	_xmulhisi3_exit.
	* config/avr/libgcc.S (_xmulhisi3_exit): New Function.
	(__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
	(__umulhisi3): Ditto.
	* config/avr/avr.md (mulhisi3): New insn expender.
	(umulhisi3): New insn expender.
	(*mulhisi3_call): New insn.
	(*umulhisi3_call): New insn.

2011-06-28  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.

2011-06-28  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
	all code and arguments that handled pushes.  Update all callers.

2011-06-28  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_output_function_prologue): Don't call
	thumb1_output_function_prologue.
	(arm_expand_prologue): Avoid dead store.
	(number_of_first_bit_set): Use ctz_hwi.
	(thumb1_emit_multi_reg_push): New.
	(thumb1_expand_prologue): Merge thumb1_output_function_prologue
	to emit the entire prologue as rtl.
	(thumb1_output_interwork): Split out from
	thumb1_output_function_prologue.
	(thumb1_output_function_prologue): Remove.
	(arm_attr_length_push_multi): Handle thumb1.
	* config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
	(prologue_thumb1_interwork): New.
	(*push_multi): Allow thumb1; use push_mult_memory_operand.
	* config/arm/predicates.md (push_mult_memory_operand): New.

2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sync.md (*stbar): Delete.
	(*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.

2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dom.c (initialize_hash_element): Fix oversight.

2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
	(TARGET_64BIT_DEFAULT): Define.
	* config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
	of tm_file.
	* config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.

2011-06-28  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (in_lto_p): New Variable entry.
	* flags.h (in_lto_p): Move to common.opt.
	* gcc.c: Include params.h.
	(set_option_handlers): Also use common_handle_option and
	target_handle_option.
	(main): Call global_init_params, finish_params and init_options_struct.
	* opts.c (debug_type_names): Move from toplev.c.
	(print_filtered_help): Access quiet_flag through opts pointer.
	(common_handle_option): Return early in the driver for some options.
	Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
	opts pointer.
	* toplev.c (in_lto_p): Move to common.opt.
	(debug_type_names): Move to opts.c.
	* Makefile.in (OBJS): Remove opts.o.
	(OBJS-libcommon-target): Add opts.o.
	(gcc.o): Update dependencies.

2011-06-28  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.

2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
	with '=' constraint modifier.
	(*divdf3_vfp): Likewise.
	("*mulsf3_vfp"): Likewise.
	("*muldf3_vfp"): Likewise.
	("*mulsf3negsf_vfp"): Likewise.
	("*muldf3negdf_vfp"): Likewise.

2011-06-28  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
	relaxation when performing an incremental link.

2011-06-28  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-math-opts.c (execute_optimize_bswap): Search
	within BB from last to first.

2011-06-28  Joseph Myers  <joseph@codesourcery.com>

	* genattr-common.c: New.  Based on genattr.c.
	* Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
	(MOSTLYCLEANFILES): Add insn-attr-common.h.
	(opts.o): Update dependencies.
	(.PRECIOUS): Add insn-attr-common.h.
	(simple_rtl_generated_h): Add insn-attr-common.h.
	(build/genattr-common.o): New.
	(genprogrtl): Add attr-common.
	* genattr.c (main): Include insn-attr-common.h.  Don't generate
	definitions of DELAY_SLOTS or INSN_SCHEDULING.
	* opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.

2011-06-28  Georg-Johann Lay  <avr@gjlay.de>

	* config.gcc (tm_file): Add elfos.h and avr/elf.h for
	avr-*-* and avr-*-rtems* targets.

	* config/avr/elf.h: New file.
	(ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
	(TARGET_ASM_SELECT_SECTION): Define.
	(INIT_SECTION_ASM_OP): Undefine.
	(FINI_SECTION_ASM_OP): Undefine.
	(READONLY_DATA_SECTION_ASM_OP): Undefine.
	(PCC_BITFIELD_TYPE_MATTERS): Undefine.
	(TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
	* config/avr/avr.h:
	(PREFERRED_DEBUGGING_TYPE): Move to elf.h.
	(TARGET_ASM_NAMED_SECTION): Move to elf.h.
	(MAX_OFILE_ALIGNMENT): Move to elf.h.
	(STRING_LIMIT): Move to elf.h.
	(ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
	(ASM_DECLARE_OBJECT_NAME): Remove.
	(ESCAPES): Remove.
	(ASM_OUTPUT_SKIP): Remove.
	(DWARF2_DEBUGGING_INFO): Remove.
	(OBJECT_FORMAT_ELF): Remove.
	(USER_LABEL_PREFIX): Remove.
	(ASM_OUTPUT_EXTERNAL): Remove.
	(ASM_OUTPUT_ASCII): Remove.
	(TYPE_ASM_OP): Remove.
	(SIZE_ASM_OP): Remove.
	(WEAK_ASM_OP): Remove.
	(STRING_ASM_OP): Remove.
	(SET_ASM_OP): Remove.
	(ASM_WEAKEN_LABEL): Remove.
	(TYPE_OPERAND_FMT): Remove.
	(ASM_DECLARE_FUNCTION_SIZE): Remove.
	(ASM_FINISH_DECLARE_OBJECT): Remove.
	(NO_DOLLAR_IN_LABEL): Remove.
	(ASM_GENERATE_INTERNAL_LABEL): Remove.
	(ASM_OUTPUT_CASE_LABEL): Remove.
	* config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
	ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
	(gas_output_ascii): Remove.
	(gas_output_limited_string): Remove.
	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
	* config/avr/avr-protos.h
	(gas_output_ascii): Remove prototye.
	(gas_output_limited_string): Remove prototype.

2011-06-27  Richard Earnshaw  <rearnsha@arm.com>

	PR target/48637
	* arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
	asm operands.

2011-06-27  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
	node instead of references in node.

2011-06-27  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
	* config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
	inside ifdef.

2011-06-27  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (union lang_tree_node): Use it in chain_next expression.

	* builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
	* builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
	find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
	* tree-ssa-ccp.c (bit_value_assume_aligned): New function.
	(evaluate_stmt, execute_fold_all_builtins): Handle
	BUILT_IN_ASSUME_ALIGNED.
	* tree-ssa-dce.c (propagate_necessity): Likewise.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
	call_may_clobber_ref_p_1): Likewise.
	* builtins.c (is_simple_builtin, expand_builtin): Likewise.
	(expand_builtin_assume_aligned): New function.
	* doc/extend.texi (__builtin_assume_aligned): Document.

	PR debug/49544
	* cselib.c (promote_debug_loc): If cselib_preserve_constants
	and l has two DEBUG_INSN owned locs instead of just one, adjust
	the second location's setting_insn too.

2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libmudflap/38738
	* config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.

2011-06-27  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
	bit position of highest bit set into a count of the high zero bits.

2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.

2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/48492
	* dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
	to a NULL parent.

2011-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49394
	* passes.c (execute_one_pass): Restore current_pass after
	applying IPA transforms.

2011-06-27  Kai Tietz  <ktietz@redhat.com>

	* tree-ssa-math-opts.c (do_shift_rotate): Zero bits
	out of type precision after operation.
	(find_bswap): Take for limit value the integer auto-promotion
	into account.

2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
	forward scan as well.

2011-06-27  Tristan Gingold  <gingold@adacore.com>

	PR target/44241
	* config/vms/vms-protos.h: New file.
	* config/vms/vms-crtlmap.map: New file.
	* config/vms/vms.c: New file.
	* config/vms/make-crtlmap.awk: New file.
	* config/vms/vms-crtl.h: File removed.
	* config/vms/vms-crtl-64.h: File removed.
	* config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
	* config/alpha/vms64.h: Do not include vms-crtl-64.h
	* config/alpha/alpha.c (alpha_init_builtins): Remove code to
	clear some builtins on VMS.  Calls vms_patch_builtins.
	(avms_asm_output_external): Remove.
	* config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
	(struct crtl_name_spec): Remove
	(DO_CTRL_NAMES): Remove.
	* config/ia64/vms.h (struct crtl_name_spec): Remove
	(DO_CTRL_NAMES): Remove.
	* config/ia64/ia64.c (alpha_init_builtins): Remove code to
	clear some builtins on VMS.  Calls vms_patch_builtins.
	(ia64_asm_output_external): Remove DO_CRTL_NAME.
	* config/ia64/vms64.h: Do not include vms-crtl-64.h
	* config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.

2011-06-27  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/alpha.c (alpha_end_function): Always generate .end
	directive on VMS.

2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
	the function receives nonlocal gotos.

2011-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49536
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	For non-scalar inner types use a scalar type according to
	the scalar inner mode.

2011-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49365
	* params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.

2011-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49169
	* fold-const.c (get_pointer_modulus_and_residue): Don't rely on
	the alignment of function decls.

2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/47997
	* config/darwin.c (darwin_mergeable_string_section): Place string
	constants in '.cstring' rather than '.const' when CF/NSStrings are
	active.

2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
	(emit_save_register_window): Likewise.
	(sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
	(sparc_flat_expand_prologue): Add comment.  Always emit blockage.
	Swap back %o7/%i7 in register naming.

2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>

	PR driver/49371
	* config/darwin.c (darwin_override_options): Improve warning when
	mdynamic-no-pic is given together with fPIC/fpic, also warn when it
	is given with fpie/fPIE.
	* config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
	* config/darwin9.h (PIE_SPEC): New.

2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>

	* timevar.c (timevar_print): Increase width for display of timevar
	name.

2011-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/46400
	* c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
	instead of TYPE_CHAIN for chain_next for types.

2011-06-24  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
	(create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
	* config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
	(gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
	(sparc_flat_expand_prologue): Emit individual instructions
	instead of one of the above.

2011-06-24  Easwaran Raman  <eraman@google.com>

	PR rtl-optimization/49429
	PR target/49454
	* expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
	MEM_EXPR(y) addressable if emit_block_move_via_libcall is
	used to copy y into x.
	* calls.c (initialize_argument_information): Mark
	an argument addressable if it is passed by invisible reference.
	(emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
	if it is passed by reference.

2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/49504
	* rtlanal.c (nonzero_bits1): Properly handle addition or
	subtraction of a pointer in Pmode if pointers extend unsigned.
	(num_sign_bit_copies1): Likewise.

2011-06-24  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimizations/49516
	* tree-sra.c (sra_modify_assign): Choose the safe path for
	aggregate copies if we also did scalar replacements.

2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/49335
	* config/arm/predicates.md (add_operator): New.
	* config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.

2011-06-24  Andi Kleen  <ak@linux.intel.com>

	* tree-sra.c (type_internals_preclude_sra_p): Add msg
	parameter. Split up ifs and report reason in *msg.
	(reject): Add.
	(find_var_candiate): Add msg variable.
	Split up ifs and report reason to reject.
	(find_param_candidates): Add msg variable.
	Pass msg to type_internals_preclude_sra_p.

2011-06-23  Jeff Law  <law@redhat.com>

	PR middle-end/48770
	* reload.h (reload): Change to return a bool.
	* ira.c (ira): If requested by reload, run a fast DCE pass after
	reload has completed.  Fix comment typo.
	* reload1.c (need_dce): New file scoped static.
	(reload): Set reload_completed here.  Return whether or not a DCE
	pass after reload is needed.
	(delete_dead_insn): Set need_dce as needed.

	PR middle-end/49465
	* tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
	to detect threading through joiner block.  If there was already
	an edge to the new target, then do not change the PHI nodes.

2011-06-23  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
	get_pointer_alignment to see if base isn't sufficiently aligned.

2011-06-23  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/49373
	* tree-pass.h (all_late_ipa_passes): Declare.
	* cgraphunit.c (init_lowered_empty_function): Fix properties.
	(cgraph_optimize): Execute late passes; remove unreachable funcions
	after materialization.
	* ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
	LTOing.
	* passes.c (all_late_ipa_passes): Declare.
	(dump_passes, register_pass): Handle late ipa passes.
	(init_optimization_passes): Move ipa_pta to late passes; schedule
	fixup_cfg at beggining of all_passes.
	(apply_ipa_transforms): New function.
	(execute_one_pass): When doing simple ipa pass, apply all transforms.

2011-06-23  Joseph Myers  <joseph@codesourcery.com>

	* params.c: Include common/common-target.h.  Don't include tm.h.
	(lang_independent_params): Move from toplev.c.
	(global_init_params): New.
	* params.h (global_init_params): Declare.
	* target.def (default_params): Move to common-target.def.
	* toplev.c (lang_independent_options): Remove.
	(lang_independent_params): Move to params.c.
	(general_init): Use global_init_params.
	* common/common-target.def (option_default_params): Move from
	target.def.
	* common/config/ia64/ia64-common.c: Include params.h.
	(ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
	from ia64.c.
	* common/config/rs6000/rs6000-common.c: Include params.h.
	(rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
	from rs6000.c.
	* common/config/sh/sh-common.c: Include params.h.
	(sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
	from sh.c.
	* common/config/spu/spu-common.c: Include params.h.
	(spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
	from spu.c.
	* config/ia64/ia64.c (ia64_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
	* config/rs6000/rs6000.c (rs6000_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
	* config/sh/sh.c (sh_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
	* config/spu/spu.c (spu_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
	* Makefile.in (OBJS): Remove params.o.
	(OBJS-libcommon-target): Add params.o.
	(params.o, $(common_out_object_file)): Update dependencies.
	* doc/tm.texi: Regenerate.

2011-06-23  Alan Modra  <amodra@gmail.com>

	PR bootstrap/49383
	* config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
	invocation for 2011-06-09 changes.

2011-06-22  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/49490
	* omp-low.c (expand_omp_for_static_nochunk): Only
	use n ceil/ nthreads size for the first n % nthreads threads in the
	team instead of all threads except for the last few ones which
	get less work or none at all.

	PR debug/49496
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
	uses.

2011-06-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49493
	* tree-ssa-structalias.c (get_constraint_for_ssa_var):
	Refer to the alias target of variables.
	(associate_varinfo_to_alias_1): Remove.
	(ipa_pta_execute): Do not associate aliases with anything.
	* cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
	(cgraph_function_node): Likewise.
	(cgraph_function_or_thunk_node): Likewise.
	(varpool_variable_node): Likewise.

2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
	* config.gcc (arm*-*-linux*): Default to gnu tls.
	(arm*-*-*): Add --with-tls option.
	(all_defaults): Add 'tls'.

2011-06-22  Richard Henderson  <rth@redhat.com>

	* reg-notes.def (REG_CFA_WINDOW_SAVE): New.
	* dwarf2out.c (dwarf2out_frame_debug): Handle it.
	(dwarf2out_frame_debug_cfa_window_save): Rename from
	dwarf2out_window_save; make static.
	* tree.h (dwarf2out_window_save): Don't declare.

	* config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
	(emit_save_register_window): Rename from gen_save_register_window;
	emit the insn and add REG_CFA_* notes.
	(sparc_expand_prologue): Update to match.
	* config/sparc/sparc.md (save_register_window_1): Simplify from
	save_register_window<P:mode>.

2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49497
	* config/i386/i386.md (*lea_general_2): Always allow SImode.
	(*lea_general_2_zext): Likewise.
	(imul to lea peepholes): Use const359_operand and check
	TARGET_PARTIAL_REG_STALL.

	* config/i386/predicates.md (const359_operand): New.

2011-06-22  Michael Matz  <matz@suse.de>

	* cgraphunit.c (assemble_thunk): Use correct return type.

2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
	    Dmitry Melnik  <dm@ispras.ru>

	* config/arm/arm.c (neon_immediate_valid_for_shift): New function.
	(neon_output_shift_immediate): Ditto.
	* config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
	prototype.
	(neon_output_shift_immediate): Ditto.
	* config/arm/neon.md (vashl<mode>3): Modified constraint.
	(vashr<mode>3_imm): New insn pattern.
	(vlshr<mode>3_imm): Ditto.
	(vashr<mode>3): Modified constraint.
	(vlshr<mode>3): Ditto.
	* config/arm/predicates.md (imm_for_neon_lshift_operand): New
	predicate.
	(imm_for_neon_rshift_operand): Ditto.
	(imm_lshift_or_reg_neon): Ditto.
	(imm_rshift_or_reg_neon): Ditto.

	* optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.

2011-06-22  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
	builtin calls even if likelyvalue is not CONSTANT.
	Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
	Return get_value_for_expr of first operand
	for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
	their non-checking counterparts.
	(call_may_clobber_ref_p_1): Likewise.
	(stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
	like their non-checking counterparts.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
	like their non-checking counterparts.
	(find_func_clobbers): Likewise.
	* tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
	like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.

	* dwarf2out.c (size_of_loc_descr, output_loc_operands,
	mark_base_types, hash_loc_operands, compare_loc_operands): Allow
	DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
	of base type reference as argument.
	(resolve_addr_in_expr): Likewise.  Fix keep computation.
	(convert_descriptor_to_signed): Renamed to...
	(convert_descriptor_to_mode): ... this.  For wider types convert to
	unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
	(typed_binop): New function.
	(scompare_loc_descriptor, ucompare_loc_descriptor,
	minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
	default to unsigned type instead of signed.

	PR debug/47858
	* gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
	(gimple_build_debug_source_bind_stat): New prototype.
	(gimple_build_debug_source_bind): Define.
	(gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
	gimple_debug_source_bind_get_value,
	gimple_debug_source_bind_get_value_ptr,
	gimple_debug_source_bind_set_var,
	gimple_debug_source_bind_set_value): New inlines.
	* gimple.c (gimple_build_debug_source_bind_stat): New function.
	* gimple-pretty-print.c (dump_gimple_debug): Handle
	GIMPLE_DEBUG_SOURCE_BIND.
	* sese.c (rename_uses): Handle gimple_debug_source_bind_p.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* tree-parloops.c (eliminate_local_variables,
	separate_decls_in_region): Likewise.
	(separate_decls_in_region_debug): Renamed from
	separate_decls_in_region_debug_bind.  Handle
	gimple_debug_source_bind_p.
	* tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
	prototypes.
	(DECL_HAS_DEBUG_ARGS_P): Define.
	(struct tree_function_decl): Add has_debug_args_flag field.
	* tree.c (debug_args_for_decl): New variable.
	(decl_debug_args_lookup, decl_debug_args_insert): New functions.
	* tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
	(rewrite_debug_stmt_uses): New function.
	(rewrite_stmt): Use it to rewrite debug stmt uses.
	* rtl.def (DEBUG_PARAMETER_REF): New.
	* rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
	* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
	DEBUG_PARAMETER_REF.
	* rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
	SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
	debug stmts in the first bb.
	* tree-inline.c (remap_ssa_name): If remapping default def
	of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
	a source bind debug stmt.
	(remap_gimple_stmt): Handle gimple_debug_source_bind_p.
	(maybe_move_debug_stmts_to_successors): Likewise.
	(copy_debug_stmt): Likewise.  Avoid shadowing a variable.
	(tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
	debug args vector from old_decl to new_decl.
	* ipa-prop.c (ipa_modify_call_arguments): For optimized away
	or modified parameters, add debug bind stmts before call
	setting DEBUG_EXPR_DECL which is remembered in debug args vector.
	* cfgexpand.c (expand_call_stmt): Call expand_debug_expr
	on DECL_DEBUG_EXPRs from debug args vector.
	(expand_debug_source_expr): New function.
	(expand_debug_locations): Use it for source bind insns.
	(expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
	* var-tracking.c (prepare_call_arguments): Add debug args
	to call_arguments if any.
	* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
	output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
	compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
	(get_ref_die_offset, parameter_ref_descriptor): New functions.
	(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
	(gen_subprogram_die): Handle parameters identified by
	DEBUG_PARAMETER_REF.

2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (ARM Options): Document -mtls-dialect option.
	* doc/install.texi (Configuration): Document --with-tls.
	* config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
	(arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
	(arm_tls_descseq_addr): New.
	(legitimize_tls_address): Add tlsdesc support.
	(arm_cannot_copy_insn_p): Check for tlscall.
	(arm_emit_tls_decoration): Likewise.
	* config/arm/arm.h (TARGET_GNU2_TLS): New.
	(OPTION_DEFAULT_SPECS): Add with-tls support.
	* config/arm/arm.md (R1_REGNUM): Define.
	(tlscall): New.
	* config/arm/arm.opt (tls_type): New enumeration type and values.
	(mtls-dialect): New switch.
	* config/arm/arm-opts.h (enum tls_type): New.

2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	* attribs.c (register_attribute): Added assert to check that all
	attribute specs are registered with a name that is not empty and
	does not start with '_'.
	(decl_attributes): Avoid the lookup of the "naked" attribute spec
	if the function has no attributes.
	* tree.c (is_attribute_with_length_p): Removed.
	(is_attribute_p): Removed.
	(private_is_attribute_p): New.
	(private_lookup_attribute): New.
	(lookup_attribute): Removed.
	(lookup_ident_attribute): New.
	(remove_attribute): Require the first argument to be in the form
	'text', not '__text__'.  Updated asserts.
	(merge_attributes): Use lookup_ident_attributes instead of
	lookup_attribute.
	(merge_dllimport_decl_attributes): Use remove_attribute.
	(attribute_list_contained): Likewise.
	(attribute_list_equal): Immediately return 1 if the arguments are
	identical pointers.
	* tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
	'int'.  Require the first argument to be in the form 'text', not
	'__text__'.  Require the second argument to be an identifier.
	(lookup_attribute): Made inline.  Require the first argument to be
	in the form 'text', not '__text__'.
	(private_is_attribute_p, private_lookup_attribute): New.
	Updated comments.

2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c: Add sync_ or SYNC__ to builtin names.
	* sync-builtins.def: Add sync_ or SYNC__ to builtin names.
	* omp-low.c: Add sync_ or SYNC__ to builtin names.

2011-06-21  Georg-Johann Lay  <avr@gjlay.de>

	PR target/33049
	* config/avr/avr.md (extzv): New expander.
	(*extzv): New insn.
	(*extzv.qihi1, *extzv.qihi2): New insn-and-split.
	* config/avr/constraints.md (C04): New constraint.
	* doc/md.texi (Machine Constraints): Document it.

2011-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49489
	* builtins.c (expand_builtin_unop): Call expand_unop with 0 as
	unsignedp argument instead of 1 for clrsb_optab.
	(fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
	and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
	(fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
	* optabs.c (widen_leading): Call widen_operand and expand_unop
	with 0 as unsignedp argument instead of 1 for clrsb_optab.
	(expand_unop): Subtract difference of mode sizes also for clrsb_optab.

2011-06-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (*jcindirect_jump): Fix build warning.

2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>

	* gensupport.c (add_define_attr): New static function.
	(is_predicable): Allow multi-alternative lists for the "predicable"
	attribute.
	(modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
	(process_one_cond_exec): Call alter_attrs_for_insn.
	* doc/md.texi (Defining Attributes): Mention some standard names.
	(Conditional Execution): Update documentation for "predicable".

	* doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
	__builtin_clrsbll): Document.
	* doc/rtl.texi (clrsb): New entry.
	* optabs.c (widen_leading): Renamed from widen_clz.  New argument
	UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
	(expand_unop): Handle clrsb_optab.
	(init_optabs): Initialize it.
	* optabs.h (enum optab_index): New entry OTI_clrsb.
	(clrsb_optab): Define.
	* genopinit.c (optabs): Add an entry for it.
	* builtins.c (expand_builtin): Handle clrsb builtin functions.
	* builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
	BUILT_IN_CLRSBLL): New.
	* rtl.def (CLRSB): New code.
	* dwarf2out.c (mem_loc_descriptor): Handle it.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
	and popcount.
	* libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
	* libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
	(__ctzDI2): Move declaration.
	* config/bfin/bfin.md (clrsbsi2): New expander.
	(signbitssi2): Use the CLRSB rtx.
	(clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
	* config/bfin/bfin.c (bdesc_1arg): Changed accordingly.

2011-06-21  Richard Guenther  <rguenther@suse.de>

	* ipa-inline-transform.c (inline_transform): Fix previous change.

2011-06-21  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49478
	* tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
	with constant operand.

2011-06-21  Richard Guenther  <rguenther@suse.de>

	* ipa-inline-transform.c (inline_transform): Fix typo.

2011-06-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49483
	* tree-vect-stmts.c (vectorizable_assignment): Also handle
	VIEW_CONVERT_EXPR conversions.

2011-06-21  Joseph Myers  <joseph@codesourcery.com>

	* config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
	* config/avr/avr-tables.opt: New file (generated).
	* config.gcc (avr-*-*): Use avr/avr-tables.opt.
	* config/avr/avr-devices.c (avr_mcu_types): Move contents to
	avr-mcus.def.
	* config/avr/avr.c (avr_help, TARGET_HELP): Remove.
	(avr_option_override): Don't process -mmcu= argument here.  Set
	avr_current_device using avr_mcu_index.
	(avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
	* config/avr/avr.opt (mmcu=): Use Enum.
	* config/avr/t-avr (avr-devices.o): Update dependencies.
	($(srcdir)/config/avr/avr-tables.opt): New.
	* target.def (help): Remove.
	* doc/tm.texi.in (TARGET_HELP): Remove.
	* doc/tm.texi: Regenerate.
	* opts.c: Don't include target.h.
	(common_handle_option): Don't call targetm.help.
	* system.h (TARGET_HELP): Poison.
	* Makefile.in (opts.o): Update dependencies.

2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/usegld.h: New file.
	* config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
	(CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
	(LIB_SPEC): Likewise.  Search /lib.
	(LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
	(RDYNAMIC_SPEC): Handle GNU ld.
	[HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
	Define.
	(SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
	[!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
	(STACK_CHECK_STATIC_BUILTIN): Define.
	* config/sol2.opt (compat-bsd): Remove.
	* config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
	* config/sol2-bi.h: New file.
	* config/sol2-gld.h: Remove.
	* config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
	(NO_DBX_BNSYM_ENSYM): Remove.
	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
	(STACK_CHECK_STATIC_BUILTIN): Remove.
	Test USE_GLD instead of TARGET_GNU_LD.
	* config/i386/sol2-10.h: Rename to ...
	* config/i386/sol2-bi.h .. this.
	(SUBTARGET_EXTRA_SPECS): Redefine.
	(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
	(MULTILIB_DEFAULTS): Remove.
	(DEFAULT_ARCH32_P): Define.
	(LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
	(ARCH64_SUBDIR): Define.
	Test USE_GLD instead of TARGET_GNU_LD.
	(I386_EMULATION): Rename to ...
	(ARCH32_EMULATION): ... this.
	(X86_64_EMULATION): Rename to ...
	(ARCH64_EMULATION): ... this.
	(TARGET_LD_EMULATION): Remove.
	(LINK_ARCH_SPEC): Remove.
	* config/i386/sol2-gas.h: Remove.
	* config/i386/t-sol2-10: Rename to ...
	* config/i386/t-sol2-64: ... this.
	* config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
	(AS_SPARC64_FLAG): Define.
	(ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
	(CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
	depending on TARGET_CPU_DEFAULT.
	(CPP_CPU_SPEC): Redefine.
	(ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
	(CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
	(CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
	(ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
	ASM_ARCH_DEFAULT_SPEC): Redefine.
	(SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
	LINK_ARCH_DEFAULT_SPEC.
	[USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
	[USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
	(ARCH64_SUBDIR): Define.
	(LINK_ARCH64_SPEC): Redefine.
	(CC1_SPEC): Redefine.
	(OPTION_DEFAULT_SPECS): Redefine.
	(MULTILIB_DEFAULTS): Define.
	(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
	[USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
	[USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
	(NO_DBX_BNSYM_ENSYM): Remove.
	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
	(ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
	(TARGET_ASM_NAMED_SECTION): Likewise.
	(STACK_CHECK_STATIC_BUILTIN): Remove.
	* config/sparc/sol2-bi.h: Remove.
	* config/sparc/sol2-gas-bi.h: Remove.
	* config/sparc/sol2-gas.h: Remove.
	* config/sparc/sol2-gld-bi.h: Remove.
	* config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
	common parts ...
	(*-*-solaris2*): ... here.

2011-06-21  Christian Bruel  <christian.bruel@st.com>

	PR other/43564
	* ipa-inline.c (can_inline_edge_p): Check
	!DECL_DISREGARD_INLINE_LIMITS.

2011-06-21  Christian Bruel  <christian.bruel@st.com>

	PR middle-end/49139
	* cgraphunit.c (process_function_and_variable_attributes): warn when
	always_inline functions that are not inline.
	* ipa-inline-transform.c (inline_transform): Always call
	optimize_inline.
	* tree-inline.c (tree_inlinable_function_p): Use error instead
	of sorry.
	(expand_call_inline): Likewise.

2011-06-21  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (dg_target_exps): Set.
	(check_gcc_parallelize): Parallelize gcc testing into 10 jobs
	instead of 7, try to divide it more evenly.

2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>

	PR target/49089
	* config/i386/i386.c (avx256_split_unaligned_load): New definition.
	(avx256_split_unaligned_store): New definition.
	(ix86_option_override_internal): Enable avx256 unaligned load/store
	splitting only when avx256_split_unaligned_load/store is set.

2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>

	* regrename.c (scan_rtx_reg): Handle the case where we write to an
	open chain in a smaller mode without failing the entire block.

2011-06-21  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
	CONST high part large-toc address.
	(rs6000_tls_referenced_p): Make static.
	* config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.

2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/49385
	* config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
	one of the operands is a register.

2011-06-20  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_binary_loc): Add missing folding for truth-not
	operations in combination with binary and.

2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>

	* regrename.c (do_replace): Don't update notes.

2011-06-20  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
	of toc-relative address in CONST.
	(rs6000_delegitimize_address): Recognize changed address.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_emit_move): Don't force these constants to memory.
	* config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
	toc-relative address in CONST.
	(tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
	(tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.

2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	* longlong.h (count_leading_zeros): Use long long builtin for x86-64.
	(count_trailing_zeros): Likewise.

2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/49325
	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
	.init_array can be used with .ctors on targets.
	* configure: Regenerated.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
	if the element type is volatile.

2011-06-18  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_varpool_replace_node): Remove code handling
	extra name aliases.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
	* cgraphbuild.c (record_reference): Remove extra body alias code.
	(mark_load): Likewise.
	(mark_store): Likewise.
	* cgraph.h (varpool_node): Remove extra_name filed;
	add alias_of and extraname_alias.
	(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
	(varpool_alias_aliased_node): New inline function.
	(varpool_variable_node): New function.
	* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
	* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
	* lto-cgraph.c (lto_output_varpool_node): Update streaming.
	(input_varpool_node): Likewise.
	* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
	(varpool_externally_visible_p): Remove extra body alias code.
	(function_and_variable_visibility): Likewise.
	* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
	(ipa_pta_execute): Use it.
	* varpool.c (varpool_remove_node): Remove extra name alias code.
	(varpool_mark_needed_node): Likewise.
	(varpool_analyze_pending_decls): Analyze aliases.
	(assemble_aliases): New functoin.
	(varpool_assemble_decl): Use it.
	(varpool_create_variable_alias): New function.
	(varpool_extra_name_alias): Rewrite.
	(varpool_for_node_and_aliases): New function.

2011-06-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/49411
	* config/i386/i386.c (ix86_expand_multi_arg_builtins): If
	last_arg_constant and last argument doesn't match its predicate,
	for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
	if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
	(ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
	spelling of error message.
	* config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
	vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
	const_0_to_255_operand instead of const_int_operand.

	Revert:
	2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (blendbits): Remove mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
	Check integer value of operand 3 in insn constraint.

2011-06-17  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/48542
	* reload.c (find_equiv_reg): Stop looking when finding a
	setjmp-type call.
	* reload1.c (reload_as_needed): Invalidate all reload
	registers when crossing a setjmp-type call.

2011-06-16  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (struct redirection_data): New field
	intermediate_edge.
	(THREAD_TARGET2): Define.
	(redirection_data_eq): Also check that the intermediate edge is equal.
	(lookup_redirection_data): Drop useless argument.  Extract the
	outgoing_edge and intermediate edge from E.  Callers updated.
	(copy_phi_args, update_destination_phis): New functions.
	(fix_duplicate_block_edges): Likewise.
	(create_edge_and_update_destination_phis): Duplicate all the edges
	hung off e->aux.  Use copy_phi_args.
	(create_duplicates): Use fix_duplicate_block_edges.
	(fixup_template_block): Likewise.
	(redirect_edges): If necessary, redirect the joiner block's incoming
	edge to the duplicate of the joiner block.
	(thread_block): Don't muck up loops when threading through a joiner
	block.
	(thread_through_loop_header): Handle threading through a joiner block.
	(mark_threaded_blocks, register_jump_thread): Likewise.
	* tree-flow.h (register_jump_thread): Add new argument.  Callers
	updated.
	* tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
	(thread_across_edge): Handle threading through a joiner block.

2011-06-16  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/49343
	* tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
	calculate offset, provide 2nd operand for the new COMPONENT_REF.

2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin-protos.h (machopic_select_rtx_section): Move to
	inside RTX_CODE ifdef.

2011-06-16  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
	Disallow NULL pointer for pointer arithmetic.

2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/49398
	Revert.
	2011-06-10  Wei Guozhi  <carrot@google.com>

	PR target/45335
	* config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
	stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
	(ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
	related peephole2.
	(strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
	related peephole2.
	* config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
	(arm_legitimate_ldrd_p): New prototype.
	(arm_output_ldrd): New prototype.
	* config/arm/arm.c (arm_check_ldrd_operands): New function.
	(arm_legitimate_ldrd_p): New function.
	(arm_output_ldrd): New function.

2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR middle-end/46500
	* doc/tm.texi.in: Update Copyright date.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_setup_incoming_varargs): Replace
	CUMULATIVE_ARGS* argument type with cumulative_args_t.
	(default_pretend_outgoing_varargs_named): Likewise.
	(hook_pass_by_reference_must_pass_in_stack): Likewise.
	(hook_callee_copies_named): Likewise.
	(default_function_arg_advance): Likewise.
	(default_function_arg): Likewise.
	(default_function_incoming_arg): Likewise.
	(hook_bool_CUMULATIVE_ARGS_false): Likewise.
	(hook_bool_CUMULATIVE_ARGS_true): Likewise.
	(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
	(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
	(hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
	* targhooks.h (default_setup_incoming_varargs): Likewise.
	(default_pretend_outgoing_varargs_named): Likewise.
	(hook_pass_by_reference_must_pass_in_stack): Likewise.
	(hook_callee_copies_named): Likewise.
	(default_function_arg_advance): Likewise.
	(default_function_arg): Likewise.
	(default_function_incoming_arg): Likewise.
	(hook_bool_CUMULATIVE_ARGS_false): Likewise.
	(hook_bool_CUMULATIVE_ARGS_true): Likewise.
	(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
	(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
	(hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
	* target.def (pass_by_reference): Likewise.
	(setup_incoming_varargs, strict_argument_naming): Likewise.
	(pretend_outgoing_varargs_named, callee_copies): Likewise.
	(arg_partial_bytes, function_arg_advance, function_arg): Likewise.
	(function_incoming_arg): Likewise.
	* target.h: Don't include "tm.h" .
	(cumulative_args_t): New typedef.
	[GCC_TM_H] (get_cumulative_args): New static inline function.
	[GCC_TM_H] (pack_cumulative_args): Likewise.
	* config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
	argument type with cumulative_args_t.
	(alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
	(alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
	* config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
	(frv_arg_partial_bytes, frv_function_arg): Likewise.
	(frv_function_incoming_arg, frv_function_arg_advance): Likewise.
	(frv_function_arg_1): Likewise.
	* config/s390/s390.c (s390_pass_by_reference): Likewise.
	(s390_function_arg_advance, s390_function_arg): Likewise.
	* config/m32c/m32c.c (m32c_function_arg): Likewise.
	(m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
	(m32c_strict_argument_naming): Likewise.
	* config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
	(spu_function_arg_advance): Likewise.
	(spu_setup_incoming_varargs): Likewise.  Make static.
	* config/spu/spu-protos.h (spu_setup_incoming_varargs):
	Remove prototype.
	* config/sparc/sparc.c (sparc_strict_argument_naming): Replace
	CUMULATIVE_ARGS* argument type with cumulative_args_t.
	(sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
	(sparc_function_arg, sparc_function_incoming_arg): Likewise.
	(sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
	* config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
	(mep_pass_by_reference, mep_function_arg): Likewise.
	(mep_function_arg_advance): Likewise.
	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
	(m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
	(m32r_function_arg, m32r_function_arg_advance): Likewise.
	* config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
	* config/i386/i386.c (ix86_function_arg_advance): Likewise.
	(ix86_function_arg, ix86_pass_by_reference): Likewise.
	(ix86_setup_incoming_varargs): Likewise.
	* config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
	(sh_strict_argument_naming): Likewise.
	(sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
	(sh_callee_copies, sh_arg_partial_bytes): Likewise.
	(sh_function_arg_advance, sh_function_arg): Likewise.
	* config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
	(pdp11_function_arg_advance): Likewise.
	* config/microblaze/microblaze.c (microblaze_function_arg_advance):
	Likewise.
	(microblaze_function_arg, function_arg_partial_bytes): Likewise.
	* config/avr/avr.c (avr_function_arg): Likewise.
	(avr_function_arg_advance): Likewise.
	* config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
	(xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
	(xtensa_function_arg_1): Likewise.
	* config/stormy16/stormy16.c (xstormy16_function_arg_advance):
	Likewise.
	(xstormy16_function_arg): Likewise.
	* config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
	(fr30_arg_partial_bytes, fr30_function_arg): Likewise.
	(fr30_function_arg_advance): Likewise.
	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
	(lm32_function_arg, lm32_function_arg_advance): Likewise.
	* config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
	(moxie_function_arg, moxie_function_arg_advance): Likewise.
	(moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
	* config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
	(cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
	(cris_function_arg, cris_function_incoming_arg): Likewise.
	(cris_function_arg_advance, cris_function_arg_1): Likewise.
	* config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
	(iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
	(iq2000_function_arg, iq2000_function_arg_advance): Likewise.
	* config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
	(mn10300_function_arg, mn10300_function_arg_advance): Likewise.
	(mn10300_arg_partial_bytes): Likewise.
	* config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
	(ia64_arg_partial_bytes, ia64_function_arg): Likewise.
	(ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
	(ia64_function_arg_1): Likewise.
	* config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
	(m68k_function_arg): Likewise.
	* config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
	(rs6000_function_arg, setup_incoming_varargs): Likewise.
	(rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
	* config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
	(picochip_function_arg, picochip_incoming_function_arg): Likewise.
	(picochip_arg_advance): Likewise.
	* config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
	(mcore_arg_partial_bytes, mcore_function_arg): Likewise.
	(mcore_function_arg_advance): Likewise.
	* config/score/score.c (score_pass_by_reference): Likewise.
	(score_function_arg_advance): Likewise.
	(score_arg_partial_bytes): Likewise.  Make static.
	* config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
	* config/arm/arm.c (arm_arg_partial_bytes): Replace
	CUMULATIVE_ARGS* argument type with cumulative_args_t.
	(arm_function_arg, arm_function_arg_advance): Likewise.
	(arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
	* config/pa/pa.c (pa_pass_by_reference): Likewise.
	(pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
	(pa_function_arg): Likewise.
	* config/mips/mips.c (mips_strict_argument_naming): Likewise.
	(mips_function_arg, mips_function_arg_advance): Likewise.
	(mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
	(mips_callee_copies, mips_setup_incoming_varargs): Likewise.
	* config/vax/vax.c (vax_function_arg): Likewise.
	(vax_function_arg_advance): Likewise.
	* config/h8300/h8300.c (h8300_function_arg): Likewise.
	(h8300_function_arg_advance): Likewise.
	* config/v850/v850.c (v850_pass_by_reference): Likewise.
	(v850_strict_argument_naming, v850_function_arg): Likewise.
	(v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
	(v850_setup_incoming_varargs): Likewise.
	* config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
	(mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
	(mmix_function_arg, mmix_pass_by_reference): Likewise.
	(mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
	with const void *.
	* config/bfin/bfin.c (setup_incoming_varargs): Replace
	CUMULATIVE_ARGS* argument type with cumulative_args_t.
	(bfin_function_arg_advance, bfin_function_arg): Likewise.
	(bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
	* calls.c (emit_call_1): Change type of args_so_far to
	cumulative_args_t.  Changed all callers.
	(initialize_argument_information): Likewise.
	(expand_call, emit_library_call_value_1): Use pack_cumulative_args.
	* dse.c (get_call_args): Likewise.
	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
	* function.c (pass_by_reference, reference_callee_copied): Likewise.
	(struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
	New member args_so_far_v.  Changed all users.
	* var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
	* config/mips/mips.c (mips_output_args_xfer): Likewise.
	* config/s390/s390.c (s390_call_saved_register_used): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/microblaze/microblaze.c (microblaze_expand_prologue):
	Likewise.
	* config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
	m32r_pass_by_reference.

2011-06-16  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vectorizer.h (vect_recog_func_ptr): Change the first
	argument to be a VEC of statements.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
	assert that pattern statements have to have their vector type set.
	* tree-vect-patterns.c (vect_recog_widen_sum_pattern):
	Change the first argument to be a VEC of statements.  Update
	documentation.
	(vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
	(vect_handle_widen_mult_by_const): New function.
	(vect_recog_widen_mult_pattern):  Change the first argument to be a
	VEC of statements.  Update documentation.  Check that the constant is
	INTEGER_CST.  Support multiplication by a constant that fits an
	intermediate type - call vect_handle_widen_mult_by_const.
	(vect_pattern_recog_1): Update vect_recog_func_ptr and its
	call.  Handle additional pattern statements if necessary.

2011-06-16  Nick Clifton  <nickc@redhat.com>

	PR target/49427
	* config.gcc: Set cpu_type to v850 for any V850 architecture.
	(v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
	md_file, extra_modes, out_file and extra_options are these are all
	deduced from cpu_type.

2011-06-16  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
	truncation mask to 63.

2011-06-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49313
	PR target/29524
	* longlong.h: Add AVR support:
	(count_leading_zeros): New macro.
	(count_trailing_zeros): New macro.
	(COUNT_LEADING_ZEROS_0): New macro.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
	_ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
	_parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
	_bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
	(LIB2FUNCS_EXCLUDE): Add _clz.
	* config/avr/libgcc.S (XCALL): Move up in file.
	(XJMP): New C Macro.
	(DEFUN): New asm macro.
	(ENDF): New asm macro.
	(__ffssi2): New function.
	(__ffshi2): New function.
	(__loop_ffsqi2): New function.
	(__ctzsi2): New function.
	(__ctzhi2): New function.
	(__clzdi2): New function.
	(__clzsi2): New function.
	(__clzhi2): New function.
	(__paritydi2): New function.
	(__paritysi2): New function.
	(__parityhi2): New function.
	(__parityqi2): New function.
	(__popcounthi2): New function.
	(__popcountsi2): New function.
	(__popcountdi2): New function.
	(__popcountqi2): New function.
	(__bswapsi2): New function.
	(__bswapdi2): New function.
	(__ashldi3): New function.
	(__ashrdi3): New function.
	(__lshrdi3): New function.
	Fix suspicous lines.

2011-06-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (canonicalize_cond_expr_cond): (bool)x is not
	the same as x != 0.
	* fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
	to (bool) X & 1.
	* ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
	equality compares against zero for the lower bit.

2011-06-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49419
	* tree-vrp.c (execute_vrp): Call init_range_assertions
	before estimate_numbers_of_iterations, call
	free_number_of_iterations_estimates before calling
	remove_range_assertions.

2011-06-16  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (struct ps_insn): Remove row_rest_count field.
	(struct partial_schedule): Add rows_length field.
	(verify_partial_schedule): Check rows_length.
	(ps_insert_empty_row): Handle rows_length.
	(create_partial_schedule): Likewise.
	(free_partial_schedule): Likewise.
	(reset_partial_schedule): Likewise.
	(create_ps_insn): Remove rest_count argument.
	(remove_node_from_ps): Update rows_length.
	(add_node_to_ps): Update rows_length and call create_ps_insn
	without passing row_rest_count.
	(rotate_partial_schedule): Update rows_length.

2011-06-16  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (add_intra_loop_mem_dep): New function.
	(build_intra_loop_deps): Call it.

2011-06-13  Jeff Law  <law@redhat.com>

	* df-problems.c (df_lr_local_compute): Manually CSE
	PIC_OFFSET_TABLE_REGNUM.
	* df-scan.c (df_get_regular_block_artificial_uses): Likewise.
	(df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (handle_alias_pairs): New function.
	(cgraph_finalize_compilation_unit): Use it.
	* ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
	as externally visible.

2011-06-15  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Reduce all integral types to
	bitfield precision.
	(expand_expr_real_1): Likewise.

2011-06-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/48613
	* ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
	ipa_node_params_vector is NULL.

2011-06-15  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49382
	* dwarf2out.c (dw_loc_list_node): Add force field.
	(add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
	location in the list, even if it is modified before first real insn.
	(output_loc_list): Emit empty ranges with force flag set.
	(dw_loc_list): If first range of a PARM_DECL is empty, set force flag.

2011-06-15  Alexander Monakov  <amonakov@ispras.ru>

	PR target/49349
	* sel-sched.c (find_place_for_bookkeeping): Add new parameter
	(fence_to_rewind).  Use it to notice when bookkeeping will be placed
	above a fence.  Update comments.
	(generate_bookkeeping_insn): Rewind fence when bookkeeping code is
	placed just above it.  Do not allow NULL place_to_insert.

2011-06-15  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
	(slpeel_tree_peel_loop_to_edge): Don't call
	remove_dead_stmts_from_loop.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Don't
	remove irrelevant pattern statements.  For irrelevant statements
	check if it is the last statement of a detected pattern, use
	corresponding pattern statement instead.
	(destroy_loop_vec_info): No need to remove pattern statements,
	only free stmt_vec_info.
	(vect_transform_loop): For irrelevant statements check if it is
	the last statement of a detected pattern, use corresponding
	pattern statement instead.
	* tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
	pattern statements.  Set basic block for the new statement.
	(vect_pattern_recog): Update documentation.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
	operands of pattern statements.
	(vectorizable_call): Fix printing.  In case of a pattern statement
	use the lhs of the original statement when creating a dummy
	statement to replace the original call.
	(vect_analyze_stmt): For irrelevant statements check if it is
	the last statement of a detected pattern, use corresponding
	pattern statement instead.
	* tree-vect-slp.c (vect_schedule_slp_instance): For pattern
	statements use gsi of the original statement.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
	common/common-target-def.h.
	* target.def (default_target_flags, handle_option,
	supports_split_stack, optimization_table, init_struct,
	except_unwind_info, unwind_tables_default, have_named_sections):
	Move to common/common-target.def.
	* target.h (enum opt_levels, struct default_options): Move to
	common/common-target.h.
	* targhooks.c (default_except_unwind_info,
	dwarf2_except_unwind_info, sjlj_except_unwind_info,
	default_target_handle_option, empty_optimization_table): Move to
	common/common-targhooks.c.
	* targhooks.h (default_except_unwind_info,
	dwarf2_except_unwind_info, sjlj_except_unwind_info,
	default_target_handle_option, empty_optimization_table): Move to
	common/common-targhooks.h.
	* common/common-target-def.h: Include common/common-targhooks.h.
	(TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
	defined.
	* common/common-target.def (handle_option, option_init_struct,
	option_optimization_table, default_target_flags,
	except_unwind_info, supports_split_stack, unwind_tables_default,
	have_named_sections): Move from target.def.
	(HOOK_PREFIX): Undefine at end of file.
	* common/common-target.h: Include input.h.
	(enum opt_levels, struct default_options): Move from target.h.
	* common/common-targhooks.c, common/common-targhooks.h: New.
	* config.gcc (target_has_targetm_common): Default to yes.
	(moxie*): Set target_has_targetm_common=no.
	(hppa*-*-*): Don't set target_has_targetm_common=yes.
	* doc/tm.texi: Regenerate.
	* Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
	(C_TARGET_DEF_H): Add common/common-targhooks.h.
	(GCC_OBJS): Remove vec.o.
	(OBJS): Remove hooks.o and vec.o.
	(OBJS-libcommon-target): Add vec.o, hooks.o and
	common/common-targhooks.o.
	(c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
	tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
	expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
	cfglayout.o, $(out_object_file), $(common_out_object_file)):
	Update dependencies.
	(common/common-targhooks.o): New.
	* common/config/default-common.c: Include tm.h.  Add FIXME comment.
	* common/config/pa/pa-common.c: Include more headers.  Take
	copyright dates from pa.c.
	(pa_option_optimization_table, pa_handle_option,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_HANDLE_OPTION): Move from pa.c.
	* common/config/alpha/alpha-common.c,
	common/config/arm/arm-common.c, common/config/avr/avr-common.c,
	common/config/bfin/bfin-common.c,
	common/config/cris/cris-common.c,
	common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
	common/config/h8300/h8300-common.c,
	common/config/i386/i386-common.c,
	common/config/ia64/ia64-common.c,
	common/config/iq2000/iq2000-common.c,
	common/config/lm32/lm32-common.c,
	common/config/m32c/m32c-common.c,
	common/config/m32r/m32r-common.c,
	common/config/m68k/m68k-common.c,
	common/config/mcore/mcore-common.c,
	common/config/mep/mep-common.c,
	common/config/microblaze/microblaze-common.c,
	common/config/mips/mips-common.c,
	common/config/mmix/mmix-common.c,
	common/config/mn10300/mn10300-common.c,
	common/config/pdp11/pdp11-common.c,
	common/config/picochip/picochip-common.c,
	common/config/rs6000/rs6000-common.c,
	common/config/rx/rx-common.c, common/config/s390/s390-common.c,
	common/config/score/score-common.c, common/config/sh/sh-common.c,
	common/config/sparc/sparc-common.c,
	common/config/spu/spu-common.c, common/config/v850/v850-common.c,
	common/config/vax/vax-common.c,
	common/config/xstormy16/xstormy16-common.c,
	common/config/xtensa/xtensa-common.c: New.
	* config/alpha/alpha.c: Include common/common-target.h.
	(alpha_option_optimization_table, alpha_handle_option,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
	* config/arm/arm-protos.h (arm_except_unwind_info): Declare.
	* config/arm/arm.c (arm_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
	arm-common.c.
	* config/avr/avr.c (avr_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
	to avr-common.c.
	* config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
	(bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
	TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
	* config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
	* config/cris/cris.c (cris_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
	cris-common.c.
	* config/fr30/fr30.c (fr30_option_optimization_table,
	TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
	to fr30-common.c.
	* config/frv/frv.c (frv_option_optimization_table,
	MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
	* config/h8300/h8300.c (h8300_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
	* config/i386/i386-protos.h (ix86_handle_option): Declare.
	* config/i386/i386.c: Include common/common-target.h.
	(OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
	OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
	OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
	OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
	OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
	OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
	OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
	OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
	OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
	OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
	OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
	OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
	OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
	OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
	OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
	OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
	OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
	OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
	OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
	OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
	OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
	OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
	OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
	OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
	OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
	OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
	OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
	OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
	OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
	ix86_option_optimization_table, ix86_option_init_struct,
	ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
	i386-common.c.
	* config/i386/t-i386 (i386.o): Update dependencies.
	* config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
	* config/ia64/ia64.c (ia64_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	ia64_handle_option): Move to ia64-common.c.
	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
	* config/lm32/lm32.c (lm32_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
	to lm32-common.c.
	* config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
	m32c-common.c.
	* config/m32r/m32r.c (m32r_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
	m32r_handle_option): Move to m32r-common.c.
	(m32r_memory_move_cost): Remove comment referring to
	TARGET_HANDLE_OPTION.
	* config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
	Move to m68k-common.c.
	* config/mcore/mcore.c (mcore_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
	* config/mep/mep.c (mep_option_optimization_table,
	mep_handle_option, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
	Move to mep-common.c.
	* config/microblaze/microblaze.c
	(microblaze_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
	* config/mips/mips.c (mips_handle_option,
	mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
	mips-common.c.
	* config/mmix/mmix.c (mmix_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
	Move to mmix-common.c.
	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
	mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
	* config/pa/pa.c: Include common/common-target.h.
	(pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	pa_handle_option): Move to pa-common.c.
	(pa_option_override): Use targetm_common.except_unwind_info.
	(pa_asm_output_mi_thunk, pa_function_section): Use
	targetm_common.have_named_sections.
	* config/pdp11/pdp11.c (pdp11_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
	pdp11_handle_option, pdp11_option_init_struct): Move to
	pdp11-common.c.
	* config/picochip/picochip.c (picochip_option_optimization_table,
	TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
	* config/rs6000/rs6000.c: Include common/common-target.h.
	(rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
	TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
	rs6000_handle_option): Move to rs6000-common.c.
	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
	* config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
	* config/s390/s390.c (processor_flags_table,
	s390_option_optimization_table, s390_option_init_struct,
	s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
	TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
	* config/s390/s390.h (processor_flags_table): Declare.
	* config/score/score.c (score_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
	score_handle_option): Move to score-common.c.
	* config/sh/sh.c (sh_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
	sh_handle_option, sh_option_init_struct): Move to sh-common.c.
	* config/sparc/sparc.c: Include common/common-target.h.
	(sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
	* config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
	spu_option_init_struct): Move to spu-common.c.
	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
	* config/v850/v850.c (small_memory_physical_max,
	v850_handle_memory_optionn v850_handle_option,
	v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
	v850-common.c.
	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
	* config/xtensa/xtensa.c (xtensa_option_optimization_table,
	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
	Move to xtensa-common.c.
	* cfglayout.c: Include common/common-target.h.
	(fixup_reorder_chain): Use targetm_common.have_named_sections.
	* cfgrtl.c: Include common/common-target.h.
	(force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
	targetm_common.have_named_sections.
	* dbxout.c: Include common/common-target.h.
	(dbxout_function_end): Use targetm_common.have_named_sections.
	* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
	targetm_common.except_unwind_info.
	* dwarf2out.c: Include common/common-target.h.
	(dwarf2out_do_frame, dwarf2out_do_cfi_asm,
	dwarf2out_begin_prologue, dwarf2out_frame_init,
	dwarf2out_frame_finish, dwarf2out_assembly_start): Use
	targetm_common.except_unwind_info.
	* except.c: Include common/common-target.h.
	(init_eh, finish_eh_generation,
	output_one_function_exception_table): Use
	targetm_common.except_unwind_info.
	(switch_to_exception_section): Use targetm_common.have_named_sections.
	* explow.c: Include common/common-target.h.
	* expr.c: Include common/common-target.h.
	(build_personality_function): Use targetm_common.except_unwind_info.
	* function.c: Include common/common-target.h.
	(expand_function_end): Use targetm_common.except_unwind_info.
	* haifa-sched.c: Include common/common-target.h.
	(sched_create_recovery_edges): Use targetm_common.have_named_sections.
	* lto-opts.c: Include common/common-target.h instead of target.h.
	(lto_reissue_options): Use targetm_common.handle_option.
	* opts.c: Include common/common-target.h.
	(target_handle_option): Use targetm_common.handle_option.
	(init_options_struct): Update comment referring to
	targetm.target_option.optimization.  Use
	targetm_common.default_target_flags,
	targetm_common.unwind_tables_default and
	targetm_common.option_init_struct.
	(default_options_optimization): Use
	targetm_common.option_optimization_table.
	(finish_options): Use targetm_common.except_unwind_info,
	targetm_common.unwind_tables_default,
	targetm_common.have_named_sections and
	targetm_common.supports_split_stack.
	* toplev.c: Include common/common-target.h.
	(process_options): Use targetm_common.have_named_sections.
	* tree-tailcall.c: Include common/common-target.h.
	(suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
	* tree.c: Include common/common-target.h.
	(build_common_builtin_nodes): Use targetm_common.except_unwind_info.
	* varasm.c: Include common/common-target.h.
	(resolve_unique_section, hot_function_section,
	default_function_section): Use targetm_common.have_named_sections.

2011-06-14  Easwaran Raman  <eraman@google.com>

	PR rtl-optimization/44194
	* dse.c: Include tree-flow.h
	(insn_info): Add new field non_frame_wild_read.
	(group_info): Add new fields escaped_n and escaped_p.
	(kill_on_calls): New variable.
	(get_group_info): Initialize gi->escaped_n and gi->escaped_p.
	(dse_step0): Initialize kill_on_calls.
	(can_escape): New function.
	(set_usage_bits): Add additional parameter; record information
	about escaped locations.
	(record_store): Pass EXPR corresponding to MEM to set_usage_bits.
	(dse_step2_nospill): Set kill_on_calls based on
	group->escaped_n and group->escaped_n.
	(add_wild_read): Refactor into...
	(reset_active_stores): ... New function, and
	(free_read_records): ... New function.
	(add_non_frame_wild_read): New function.
	(scan_insn): Call add_non_frame_wild_read on non-const calls.
	(scan_reads_nospill): Handle instructions with non_frame_wild_read.
	(dse_step5_nospill): Call scan_reads_nospill for instructions
	marked as non_frame_wild_read.
	(dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* common/common-target-def.h, common/common-target.def,
	common/common-target.h, common/config/default-common.c,
	common/config/pa/pa-common.c: New files.
	* Makefile.in (common_out_file, common_out_object_file,
	COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
	(OBJS-libcommon-target): Include $(common_out_object_file).
	(prefix.o): Update dependencies.
	($(common_out_object_file), common/common-target-hooks-def.h,
	s-common-target-hooks-def-h): New.
	(s-tm-texi): Also check timestamp on common-target.def.
	(build/genhooks.o): Update dependencies.
	* config.gcc (common_out_file, target_has_targetm_common): Define.
	* config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
	TARGET_ALWAYS_STRIP_DOTDOT.
	* configure.ac (common_out_object_file): Define.
	(common_out_file, common_out_object_file): Substitute.
	(common): Create directory.
	* configure: Regenerate.
	* doc/tm.texi.in (targetm_common): Document.
	(TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
	* doc/tm.texi: Regenerate.
	* genhooks.c (hook_array): Also include common/common-target.def.
	* prefix.c (tm.h): Don't include.
	(common/common-target.h): Include.
	(ALWAYS_STRIP_DOTDOT): Don't define.
	(update_path): Use targetm_common.always_strip_dotdot instead of
	ALWAYS_STRIP_DOTDOT.
	* system.h (ALWAYS_STRIP_DOTDOT): Poison.

2011-06-14  David Li  <davidxl@google.com>

	* passes.c (execute_function_todo): Remove TODO_dump_func.
	(execute_one_pass): Remove TODO_dump_func.
	(execute_function_dump): New function.
	* tree-vrp.c: Remove TODO_dump_func.
	* regrename.c: Remove TODO_dump_func.
	* fwprop.c: Remove TODO_dump_func.
	* tree-into-ssa.c: Remove TODO_dump_func.
	* tree-complex.c: Remove TODO_dump_func.
	* tracer.c: Remove TODO_dump_func.
	* tree-loop-distribution.c: Remove TODO_dump_func.
	* postreload-gcse.c: Remove TODO_dump_func.
	* postreload.c: Remove TODO_dump_func.
	* tree-ssa-loop-ch.c: Remove TODO_dump_func.
	* tree-tailcall.c: Remove TODO_dump_func.
	* ipa-cp.c: Remove TODO_dump_func.
	* final.c: Remove TODO_dump_func.
	* tree-emutls.c: Remove TODO_dump_func.
	* omp-low.c: Remove TODO_dump_func.
	* tree-ssa-dse.c: Remove TODO_dump_func.
	* tree-ssa-uncprop.c: Remove TODO_dump_func.
	* auto-inc-dec.c: Remove TODO_dump_func.
	* reorg.c: Remove TODO_dump_func.
	* tree-ssa-copyrename.c: Remove TODO_dump_func.
	* tree-ssa-ccp.c: Remove TODO_dump_func.
	* compare-elim.c: Remove TODO_dump_func.
	* mode-switching.c: Remove TODO_dump_func.
	* modulo-sched.c: Remove TODO_dump_func.
	* tree-call-cdce.c: Remove TODO_dump_func.
	* cse.c: Remove TODO_dump_func.
	* web.c: Remove TODO_dump_func.
	* tree-stdarg.c: Remove TODO_dump_func.
	* lto-streamer-out.c: Remove TODO_dump_func.
	* tree-ssa-math-opts.c: Remove TODO_dump_func.
	* tree-ssa-dom.c: Remove TODO_dump_func.
	* tree-nrv.c: Remove TODO_dump_func.
	* loop-init.c: Remove TODO_dump_func.
	* gimple-low.c: Remove TODO_dump_func.
	* ipa-inline.c: Remove TODO_dump_func.
	* tree-ssa-sink.c: Remove TODO_dump_func.
	* jump.c: Remove TODO_dump_func.
	* ifcvt.c: Remove TODO_dump_func.
	* tree-ssa-loop.c: Remove TODO_dump_func.
	* recog.c: Remove TODO_dump_func.
	* dse.c: Remove TODO_dump_func.
	* tree-ssa-ifcombine.c: Remove TODO_dump_func.
	* matrix-reorg.c: Remove TODO_dump_func.
	* tree-eh.c: Remove TODO_dump_func.
	* regmove.c: Remove TODO_dump_func.
	* function.c: Remove TODO_dump_func.
	* tree-vectorizer.c: Remove TODO_dump_func.
	* ipa-split.c: Remove TODO_dump_func.
	* gcse.c: Remove TODO_dump_func.
	* tree-if-conv.c: Remove TODO_dump_func.
	* init-regs.c: Remove TODO_dump_func.
	* tree-ssa-phiopt.c: Remove TODO_dump_func.
	* implicit-zee.c: Remove TODO_dump_func.
	* lower-subreg.c: Remove TODO_dump_func.
	* bt-load.c: Remove TODO_dump_func.
	* tree-dfa.c: Remove TODO_dump_func.
	* except.c: Remove TODO_dump_func.
	* emit-rtl.c: Remove TODO_dump_func.
	* store-motion.c: Remove TODO_dump_func.
	* cfgexpand.c: Remove TODO_dump_func.
	* tree-cfgcleanup.c: Remove TODO_dump_func.
	* cfgcleanup.c: Remove TODO_dump_func.
	* tree-ssa-pre.c: Remove TODO_dump_func.
	* tree-sra.c: Remove TODO_dump_func.
	* tree-mudflap.c: Remove TODO_dump_func.
	* tree-ssa-copy.c: Remove TODO_dump_func.
	* cfglayout.c: Remove TODO_dump_func.
	* tree-ssa-forwprop.c: Remove TODO_dump_func.
	* tree-ssa-dce.c: Remove TODO_dump_func.
	* ira.c: Remove TODO_dump_func.
	* tree-ssa.c: Remove TODO_dump_func.
	* integrate.c: Remove TODO_dump_func.
	* tree-optimize.c: Remove TODO_dump_func.
	* tree-ssa-phiprop.c: Remove TODO_dump_func.
	* tree-object-size.c: Remove TODO_dump_func.
	* combine.c: Remove TODO_dump_func.
	* bb-reorder.c: Remove TODO_dump_func.
	* cprop.c: Remove TODO_dump_func.
	* var-tracking.c: Remove TODO_dump_func.
	* tree-profile.c: Remove TODO_dump_func.
	* tree-vect-generic.c: Remove TODO_dump_func.
	* reg-stack.c: Remove TODO_dump_func.
	* sched-rgn.c: Remove TODO_dump_func.
	* tree-ssa-structalias.c: Remove TODO_dump_func.
	* tree-switch-conversion.c: Remove TODO_dump_func.
	* tree-cfg.c: Remove TODO_dump_func.
	* tree-ssa-reassoc.c: Remove TODO_dump_func.
	* combine-stack-adj.c: Remove TODO_dump_func.
	* dce.c: Remove TODO_dump_func.
	* tree-ssanames.c: Remove TODO_dump_func.
	* regcprop.c: Remove TODO_dump_func.

2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47364
	* builtins.c (expand_builtin_strlen): Expand strlen to Pmode
	and properly handle result not in Pmode.

2011-06-14  Robert Millan  <rmh@gnu.org>

	* config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
	* config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
	`config/linux.h'.

	* config/i386/kfreebsd-gnu64.h: New file.
	* config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
	with `i386/kfreebsd-gnu64.h'.

	* config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
	(GNU_USER_LINK_EMULATION64): New macros.
	* config/i386/gnu-user64.h (LINK_SPEC): Rely on
	`GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
	of hardcoding `elf_i386' and `elf_x86_64'.

2011-06-14  Nick Clifton  <nickc@redhat.com>

	PR target/49403
	* config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.

	PR target/49402
	* config.gcc(v850*-*-*): Avoid duplication of v850.opt.

2011-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/49103
	* tree.h (DECL_NONSHAREABLE): Define.
	(struct tree_decl_common): Change decl_common_unused to
	decl_nonshareable_flag.
	* cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
	Ignore vars with DECL_NONSHAREABLE bit set.
	* tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
	on stores to automatic aggregate vars.

	PR rtl-optimization/49390
	Revert:
	2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>

	* cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
	MEM_ALIAS_SET.

2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
	    Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
	Document changed semantics.
	(max_stmt_executions, max_stmt_executions_int): Declare.
	* tree-data-ref.c (estimated_loop_iterations)
	(estimated_loop_iterations_int): Move functions...
	* tree-ssa-loop-niter.c (estimated_loop_iterations)
	(estimated_loop_iterations_int): here.
	(record_estimate): Change nb_iterations_upper_bound and
	nb_iterations_estimate semantics.
	(max_stmt_executions, max_stmt_executions_int): New function.
	* tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
	(max_stmt_executions_tree): this.
	(analyze_miv_subscript): Use max_stmt_executions_tree instead of
	estimated_loop_iterations_tree.
	tree-ssa-loop-ivopts.c (avg_loop_niter): Use
	max_stmt_executions_int instead of estimated_loop_iterations_int.
	* predict.c (predict_loops): Idem.
	* tree-parloops.c (parallelize_loops): Idem.
	* tree-data-ref.c (analyze_siv_subscript_cst_affine)
	(compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
	(init_omega_for_ddr_1): Idem.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
	(loop_prefetch_arrays): Idem
	* graphite-sese-to-poly.c (build_loop_iteration_domains): Use
	max_stmt_executions instead of estimated_loop_iterations.
	* tree-data-ref.c (estimated_loop_iterations_tree): Idem.
	* tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
	instead of nb_iterations_upper_bound.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.

2011-06-14  Richard Henderson  <rth@redhat.com>

	PR debug/48459
	* dwarf2out.c (frame_pointer_fb_offset_valid): New.
	(based_loc_descr): Assert it's true.
	(compute_frame_pointer_to_fb_displacement): Set it, rather than
	aborting immediately.

2011-06-14  Sanjin Liu	<scliu@faraday-tech.com>
	    Mingfeng Wu  <mingfeng@faraday-tech.com>

	* doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
	similarly to DECL_COMDAT.
	* cgraphunit.c (cgraph_analyze_function): Likewise.
	* ipa.c (function_and_variable_visibility): Likewise.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
	BINFO_VIRTUALS when streaming for ltrans unit.

2011-06-13  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
	(movdi_internal64): Same.

2011-06-13  Edmar Wienskoski  <edmar@freescale.com>

	PR target/44618
	* config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
	a set of similar patterns, where the MATCH_OPERAND for the function
	argument is replaced with individual references to hardware registers.
	(save_fpregs_<mode>): Ditto
	(restore_gpregs_<mode>): Ditto
	(return_and_restore_gpregs_<mode>): Ditto
	(return_and_restore_fpregs_<mode>): Ditto
	(return_and_restore_fpregs_aix_<mode>): Ditto

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* ipa-utils.c (postorder_stack): New structure.
	(ipa_reverse_postorder): Handle aliases.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (reset_edge_caches): Walk aliases.
	(update_caller_keys): Do not test inlinability of aliases.
	* ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
	(do_estimate_growth): Fix typo.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
	(can_remove_node_now_p): ... here; handle same comdat groups.
	(clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
	(inline_call): Update use of can_remove_node_now_p.

2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
	condition to disallow non-identical memory locations.
	(*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
	preference to bit manipulation instructions.

2011-06-13  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_for_node_thunks_and_aliases,
	cgraph_for_node_and_aliases): Fix thinko in recursive walking.
	(nonremovable_p): New function.
	(cgraph_can_remove_if_no_direct_calls_p): New function.
	(used_from_object_file_p): New functoin.
	(cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
	references from aliases.
	* cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
	* ipa-inline.c (check_caller_edge): New function.
	(want_inline_function_called_once_p): Use it; accept aliases called
	once, too.
	* ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.

2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/48454
	* config/arm/neon.md (vec_pack_trunc): Set the lengths
	correctly for the case with Quad vectors.

2011-06-13  Jakub Jelinek  <jakub@redhat.com>
	    Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49352
	* tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
	all, make sure loop_use_stmt after the loop is a def stmt of a used
	SSA_NAME that is the only one defined inside of the loop.  Don't
	check for COND_EXPR and GIMPLE_BINARY_RHS.
	(vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
	check_reduction is true.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49373
	* ipa.c (cgraph_externally_visible_p): Check resolution info.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48836
	* ipa-inline-transform.c: Include tree-pass.h
	(inline_transform): Set TODO_update_ssa_only_virtuals.
	* Makefile.in (ipa-inline-transform.o): Add tree-pass.h.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49378
	* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
	aliases and thunks.

2011-06-12  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
	Take number of iterations to peel into account for equally frequent
	misalignment values.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (produce_symtab): Stream out the newly
	represented aliases.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
	varying args.
	(ipa_update_after_lto_read): Likewise.
	(ipa_write_node_info): Do not sream call_with_var_arguments.
	(ipa_read_node_info): Likewise.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_merge_cgraph_nodes): Update merging of aliases.
	* cgraph.c (same_body_aliases_done): New global var.
	(cgraph_same_body_alias_1): Rename to ...
	(cgraph_create_function_alias): ... this one; reorg to new
	representation.
	(cgraph_same_body_alias): Use cgraph_create_function_alias;
	record references when asked to.
	(cgraph_add_thunk): Fix formating.
	(cgraph_get_node): Kill same body alias code.
	(cgraph_node_for_asm): Likewise.
	(cgraph_remove_same_body_alias): Remove.
	(cgraph_remove_node): Kill same body alias code.
	(cgraph_mark_address_taken_node): Mark also the aliased function
	as having address taken.
	(dump_cgraph_node): Dump same body aliases.
	(cgraph_for_node_thunks_and_aliases): Update for new alias
	representation.
	(cgraph_for_node_and_aliases): Likewise.
	* cgraph.h (same_body): Kll pointer.
	(same_body_alias): Update comment.
	(same_body_aliases_done): Declare.
	(cgraph_remove_same_body_alias): Remove declaration.
	(cgraph_create_function_alias): Declare.
	(cgraph_process_same_body_aliases): Declare.
	(cgraph_function_with_gimple_body_p): Check for alias.
	(cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
	(cgraph_alias_aliased_node): New function.
	(cgraph_function_node): Update for new aliases.
	(cgraph_function_or_thunk_node): Likewise.
	* ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
	(inline_call): Remove dead aliases.
	* cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
	name hack for same body aliases.
	(clone_of_p): Look through aliases.
	(verify_cgraph_node): Verify aliases.
	(cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
	(cgraph_process_same_body_aliases): New function.
	(process_function_and_variable_attributes): Disable weakref warning on
	alias.
	(cgraph_analyze_functions): Handle aliases.
	(cgraph_mark_functions_to_output): Handle aliases same way as thunks.
	(assemble_thunks): Rename to ...
	(assemble_thunks_and_aliases): ... this one; handle aliases, too.
	(cgraph_expand_function): Remove alias output code.
	(cgraph_output_in_order): Skip aliases.
	(cgraph_preserve_function_body_p): Aliases don't need preserving.
	* ipa-ref.c (ipa_ref_use_name): Add alias reference.
	(ipa_record_reference): Do not assert on alias references.
	(ipa_ref_has_aliases_p): New function.
	* ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
	(ipa_ref_has_aliases_p): Declare.
	* lto-cgraph.c (lto_output_node): Handle aliases.
	(input_node): Likewise.
	* lto-streamer-out.c (lto_output): Skip aliases.
	(produce_symtab): Kill same_body_alias code.
	* ipa-utils.c (ipa_reverse_postorder): Add FIXME.
	(ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
	* ipa-inline.c (update_caller_keys): Walk aliases.
	(inline_small_functions): Fix thinko in previous patch.
	* ipa.c (cgraph_externally_visible_p): Do not walk aliases.
	(function_and_variable_visibility): Do not walk same body aliases.
	* tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
	(ipa_pta_execute): Use it.

2011-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
	(*vec_dupv2df): Rename from vec_dupv2df.
	(vec_dupv2df): New expander.

2011-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.

2011-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Use default value in "isa" attribute.
	* config/i386/sse.md: Ditto.
	* config/i386/mmx.md: Ditto.

2011-06-10  Wei Guozhi  <carrot@google.com>

	PR target/45335
	* config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
	stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
	(ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
	related peephole2.
	(strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
	related peephole2.
	* config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
	(arm_legitimate_ldrd_p): New prototype.
	(arm_output_ldrd): New prototype.
	* config/arm/arm.c (arm_check_ldrd_operands): New function.
	(arm_legitimate_ldrd_p): New function.
	(arm_output_ldrd): New function.

2011-06-10  David Li  <davidxl@google.com>

	* cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
	* passes.c (passr_eq): New function.
	(create_pass_tab): New function.
	(pass_traverse): New function.
	(dump_one_pass): New function.
	(dump_pass_list): New function.
	(dump_passes): New function.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
	setting the nothrow flag.
	* ipa-reference.c (propagate): Skip aliases.
	* ipa-pure-const.c (propagate_pure_const): Skip aliases.
	(propagate_nothrow): Skip aliases; do not update cgraph.
	(local_pure_const): Do not update cgraph.
	* tree-profile.c (tree_profiling): Do fixup_cfg.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_non_local_node_p_1): Break out from ...;
	(cgraph_local_node_p): ... here; handle aliases.
	(has_addr_references_p): Break out from ...;
	(cgraph_remove_unreachable_nodes) ... here.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* opts.c (default_options): Enlist OPT_finline_functions_called_once.
	* common.opt (flag_inline_functions_called_once): Do not
	initialize to 1.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
	(ipcp_initialize_node_lattices): Do not deal with aliases;
	Do not try to propagate through thunks.
	(ipcp_change_tops_to_bottom): Do not deal with aliases.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (ipa_write_node_info): Stream jump functions
	for indirect calls.
	(ipa_read_node_info): Likewise.

2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR lto/49302
	* tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
	(build_and_insert_call): Likewise.
	(build_and_insert_ref): New.
	(gimple_expand_builtin_pow): Minor cleanup.
	(gimple_expand_builtin_cabs): New.
	(execute_cse_sincos): Add case for BUILT_IN_CABS.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
	(ipcp_cloning_candidate_p): Aliases are not clonning candidates.
	(ipcp_initialize_node_lattices): We don't propagate through an aliases.
	(ipcp_propagate_stage): Skip aliases when propagating.
	(ipcp_need_redirect_p): Skip aliases.
	(ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
	collect_callers_of_node.
	* ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
	for aliases.
	(ipa_compute_jump_functions): Look through aliases.

2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.

2011-06-10  Hans-Peter Nilsson  <hp@axis.com>

	* ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
	Adjust comments.
	* system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_process_devirtualization_opportunities):
	Update call of gimple_get_virt_method_for_binfo.
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
	refuse_thunks parameter.
	(gimple_fold_call): Update.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Update.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
	(not_all_callers_have_enough_arguments_p): ... this one; turn into
	worker for cgraph_for_node_and_aliases.
	(convert_callers_for_node): Break out from ...
	(convert_callers): ... here.
	(modify_function): Use collect_callers_of_node.
	(ipa_early_sra): Use cgraph_for_node_and_aliases.

2011-06-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49361
	* fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
	when not already in gimple form.

2011-06-10  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/49344
	* tree-ssa-math-opts.c (convert_mult_to_fma): Use
	FOR_EACH_PHI_OR_STMT_USE.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (can_remove_node_now_p): Move out of...
	(clone_inlined_nodes): ... here.
	(inline_call): Use cgraph_function_or_thunk_node; redirect edge
	to real destination prior inlining.
	* ipa-inline.c (caller_growth_limits, can_inline_edge_p,
	can_early_inline_edge_p, want_early_inline_function_p,
	want_early_inline_function_p, want_inline_small_function_p,
	want_inline_self_recursive_call_p, want_inline_function_called_once_p,
	edge_badness, update_all_callee_keys, lookup_recursive_calls,
	add_new_edges_to_heap, inline_small_functions, flatten_function,
	inline_always_inline_functions, early_inline_small_functions): Use
	cgraph_function_or_thunk_node.
	* ipa-inline-analysis.c (evaluate_conditions_for_edge,
	dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
	(do_estimate_edge_growth_1): Break out from ...
	(do_estimate_growth) ... here; walk aliases.
	(inline_generate_summary): Skip aliases.

2011-06-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
	forward when combining, visit inserted stmts when a stmt was changed.

2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* tree.h (error_operand_p): Add.
	* dbxout.c (dbxout_type_fields): Use the latter.
	* c-decl.c (add_stmt): Likewise.
	* gimplify.c (omp_add_variable, omp_notice_variable,
	gimplify_scan_omp_clauses): Likewise.

2011-06-10  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_function_arg_advance): Fix thinko about
	when a value is actually passed in regs.

2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
	    Laurent Rougé  <laurent.rouge@menta.fr>

	* doc/invoke.texi (SPARC options): Add -mflat.
	* config/sparc/sparc.opt: Likewise.
	* config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
	(sparc_flat_expand_prologue): Declare.
	(sparc_flat_expand_epilogue): Likewise.
	* config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
	(CPP_ENDIAN_SPEC): Replace with...
	(CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
	(CPP_SPEC): Adjust to above change.
	(EXTRA_SPECS): Likewise.
	(SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
	(INCOMING_REGNO): Likewise.
	(OUTGOING_REGNO): Likewise.
	(LOCAL_REGNO): Likewise.
	(SETUP_FRAME_ADDRESSES): Likewise.
	(FIXED_REGISTERS): Set 0 for %fp.
	(CALL_USED_REGISTERS): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
	(EXIT_IGNORE_STACK): Define to 1 unconditionally.
	(RETURN_ADDR_REGNUM): Define.
	(RETURN_ADDR_RTX): Use it.
	(INCOMING_RETURN_ADDR_REGNUM): Define.
	(INCOMING_RETURN_ADDR_RTX): Use it.
	(DWARF_FRAME_RETURN_COLUMN): Likewise.
	(EH_RETURN_REGNUM): Define.
	(EH_RETURN_STACKADJ_RTX): Use it.
	(EH_RETURN_HANDLER_RTX): Delete.
	(EPILOGUE_USES): Use them and add TARGET_FLAT handling.
	* config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
	Delete.
	(struct machine_function): Add frame_size, apparent_frame_size,
	frame_base_reg, frame_base_offset, n_global_fp_regs and
	save_local_in_regs_p fields.
	(sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
	sparc_frame_base_offset, sparc_n_global_fp_regs,
	sparc_save_local_in_regs_p): New macros.
	(sparc_option_override): Error out if -fcall-saved-REG is specified
	for Out registers.
	(eligible_for_restore_insn): Fix formatting.
	(eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
	(eligible_for_sibcall_delay): Likewise.
	(RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
	(sparc_legitimate_address_p): Adjust to above change.
	(save_global_or_fp_reg_p): New predicate.
	(return_addr_reg_needed_p): Likewise.
	(save_local_or_in_reg_p): Likewise.
	(sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
	(SORR_SAVE, SORR_RESTORE): Delete.
	(sorr_pred_t): New typedef.
	(sorr_act_t): New enum.
	(save_or_restore_regs): Rename to...
	(emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
	parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
	ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
	mechanism.  Add CFI information for double-word saves in 32-bit mode.
	(emit_adjust_base_to_offset): New function extracted from...
	(emit_save_or_restore_regs): ...this.  Rename the rest to...
	(emit_save_or_restore_regs_global_fp_regs): ...this.
	(emit_save_or_restore_regs_local_in_regs): New function.
	(gen_create_flat_frame_[123]): New functions.
	(sparc_expand_prologue): Use SIZE local variable.  Adjust.
	(sparc_flat_expand_prologue): New function.
	(sparc_asm_function_prologue): Add TARGET_FLAT handling.
	(sparc_expand_epilogue): Use SIZE local variable.  Adjust.
	(sparc_flat_expand_epilogue): New function.
	(sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
	(output_return): Likewise.
	(output_sibcall): Likewise.
	(sparc_output_mi_thunk): Likewise.
	(sparc_frame_pointer_required): Likewise.
	(sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
	function optimization.
	* config/sparc/sparc.md (flat): New attribute.
	(prologue): Add TARGET_FLAT handling.
	(save_register_window): Disable if TARGET_FLAT.
	(create_flat_frame_[123]): New patterns.
	(epilogue): Add TARGET_FLAT handling.
	(sibcall_epilogue): Likewise.
	(eh_return): New expander.
	(eh_return_internal): New insn and splitter.
	(return_internal): Add TARGET_FLAT handling.
	(untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
	(save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
	(nonlocal_goto): Add TARGET_FLAT handling.
	* config/sparc/t-elf: Add -mflat multilib.
	* config/sparc/t-leon: Likewise.

2011-06-10  Jan Hubicka  <jh@suse.cz>

	* ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
	* ipa-pure-const.c (analyze_function): Aliases don't need analysis.
	(self_recursive_p): Use cgraph_function_node.
	(propagate_pure_const): Likewise.
	(propagate_nothrow): Likewise.
	* ipa-reference.c (ipa_reference_get_not_read_global): Use
	cgraph_function_node.
	(propagate_bits): Likewise.
	(propagate): Likewise.

2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
	    Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
	* config/arm/vfp.md (*arm_movdi_vfp): Delete.
	(*thumb2_movdi_vfp): Delete.
	(*arm_movdi_vfp_cortexa8): Delete.
	(*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
	(*movdi_vfp_cortexa8): Likewise.

2011-06-10  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (initialize_sizetypes): Give names to all
	sizetype kinds.

2011-06-10  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49318
	* tree-vect-loop.c (vect_determine_vectorization_factor): Remove
	irrelevant pattern statements.

2011-06-10  Hans-Peter Nilsson  <hp@axis.com>

	* system.h (SETJMP_VIA_SAVE_AREA): Poison.

	PR bootstrap/49354
	* ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
	to last assignment.

2011-06-09  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
	do not recompute reachable flag.
	(cgraph_finalize_function, cgraph_analyze_functions): Set
	redefined_extern_inline here.

2011-06-09  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
	(cgraph_only_called_directly_p): ... this one; bring offline.
	(resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
	varpool_used_from_object_file_p): Drop names from the declaratoin.
	(cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
	collect_callers_of_node): New.
	(cgraph_function_node, cgraph_function_or_thunk_node): New functions.
	(cgraph_edge_recursive_p): Use cgraph_function_node.
	* cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
	(cgraph_node_cannot_be_local_p_1): Break out from ...
	(cgraph_node_can_be_local_p): ... here; walk aliases.
	(cgraph_for_node_thunks_and_aliases): New function.
	(cgraph_for_node_and_aliases): New function.
	(cgraph_make_node_local_1): Break out from ...
	(cgraph_make_node_local) ... here; use
	cgraph_for_node_thunks_and_aliases.
	(cgraph_set_nothrow_flag_1): Break out from ...
	(cgraph_set_nothrow_flag) ... here;
	use cgraph_for_node_thunks_and_aliases.
	(cgraph_set_const_flag_1): Break out from ...
	(cgraph_set_const_flag) ... here;
	use cgraph_for_node_thunks_and_aliases.
	(cgraph_set_pure_flag_1): Break out from ...
	(cgraph_set_pure_flag) ... here;
	use cgraph_for_node_thunks_and_aliases.
	(cgraph_propagate_frequency_1): Break out from ...
	(cgraph_propagate_frequency) ... here; use
	cgraph_for_node_thunks_and_aliases.
	(cgraph_used_from_object_file_p): Do not care about aliases.
	(cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
	New functions.
	(collect_callers_of_node_1, collect_callers_of_node): New functions.

2011-06-10  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/49154
	* config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
	(enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
	(PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
	* config/cris/cris.h (cris_register_move_cost): Remove
	!TARGET_V32 code.  Tweak comments.

2011-06-09  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_eh_tables): Mark personality function as having
	address taken.

2011-06-10  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/49154
	* ira-costs.c (setup_regno_cost_classes_by_mode): If there already
	is a matching slot in the hashtable, assign it to classes_ptr.

	PR rtl-optimization/49154
	* doc/tm.texi.in (Register Classes): Document rule for the narrowest
	register classes.
	* doc/tm.texi: Regenerate.

2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49307
	* config/sh/sh.md (UNSPEC_CHKADD): New.
	(chk_guard_add): New define_insn_and_split.
	(symGOT_load): Use chk_guard_add instead of blockage.

2011-06-09  Kai Tietz  <ktietz@redhat.com>

	* libgcc2.c (L_trampoline): Include windows.h for mingw targets.

2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (return_internal): Adjust 'length' attribute.

2011-06-09  Wei Guozhi  <carrot@google.com>

	PR target/46975
	* config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
	(peephole2 for conditional move): Generate 16 bit instructions.

2011-06-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdi_internal_rex64): Merge
	alternatives 6 and 8.

2011-06-09  David Li  <davidxl@google.com>

	* cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
	* passes.c (passr_eq): New function.
	(create_pass_tab): New function.
	(pass_traverse): New function.
	(dump_one_pass): New function.
	(dump_pass_list): New function.
	(dump_passes): New function.

2011-06-09  David Li  <davidxl@google.com>

	* tree-complex.c (tree_lower_complex): Gate cleanup.
	* tree-stdarg.c (check_all_va_list_escapes): Ditto.
	(execute_optimize_stdarg): Ditto.
	* tree-eh.c (execute_lower_eh_dispatch): Ditto.
	(execute_cleanup_eh_1): Ditto.
	(execute_cleanup_eh): Ditto.
	* gcse.c (gate_rtl_pre): Ditto.
	(execute_rtl_pre): Ditto.
	* except.c (finish_eh_generation): Ditto.
	(convert_to_eh_region_ranges): Ditto.
	* cprop.c (one_cprop_pass): Ditto.

2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/48673
	* config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
	in all basic blocks.

2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
	(ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	[IN_LIBGCC2]: Don't include <windows.h>.
	* config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
	* config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/alpha/alpha.c (alpha_trampoline_init): Test
	HAVE_ENABLE_EXECUTE_STACK.
	* config/i386/i386.c (ix86_trampoline_init): Likewise.
	* config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
	(sparc64_initialize_trampoline): Likewise.
	* libgcc2.c [L_enable_execute_stack]: Remove.
	* system.h (ENABLE_EXECUTE_STACK): Poison.
	* doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
	* doc/tm.texi: Regenerate.
	* Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.

2011-06-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49308
	* dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
	variable.  After resetting and rescanning insn continue with previous
	statement.

2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
	(gcc_cv_ld_hidden): Likewise.
	* configure: Regenerate.
	* config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
	(ix86_stack_protect_fail): Mark unused.
	(TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility)
	[TARGET_MACHO]: Don't define.
	(TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
	(TARGET_STACK_PROTECT_FAIL): Likewise.
	(rs6000_stack_protect_fail): Mark unused.
	* dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
	USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.

2011-06-08  Andi Kleen  <ak@linux.intel.com>

	* varasm.c (get_section): Print location of other conflict
	for section conflicts.

2011-06-08  Andi Kleen  <ak@linux.intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu):
	Add model 0x2d Intel CPU.

2011-06-08  Andi Kleen  <ak@linux.intel.com>

	* reginfo.c (global_regs_decl): Add.
	(globalize_reg): Add decl parameter. Compute location.  Pass location
	to warnings and add inform. Store decl in global_regs_decl.
	* rtl.h (globalize_reg): Update prototype.
	* varasm.c (make_decl_rtl): Pass decl to globalize_reg().

2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>

	* treestruct.def (TS_TYPE_DECL): Fix the printable name typo.

2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49305
	* config/sh/predicates.md (general_movsrc_operand): Check
	mode for memory with indexed address for QI and HImode.
	(general_movdst_operand): Likewise.

2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.

2011-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
	(num_ssa_operands): Likewise.
	(op_iter_init_phiuse): Forward-declare.
	(delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.

2011-06-08  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (ARM Options): Update description of
	-mthumb-interwork.

2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	unknown Intel family 0x6 CPUs.

2011-06-08  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (mark_rw_status): Removed.
	(analyze_access_subtree): New parameter parent instead of
	mark_read and mark_write, propagate from that.

2011-06-08  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
	for double-precision helper functions in hard-float mode if only
	single-precision arithmetic is supported in hardware.

2011-06-08  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/49303
	* sel-sched.c (move_op): Use correct type for 'res'.  Verify that
	code_motion_path_driver returned 0 or 1.
	(sel_region_finish): Clear h_d_i_d.

2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (prepare_move_operands): Set pic register
	appropriately for global and local dynamic tls models even
	if flag_pic is unset.

2011-06-07  Jason Merrill  <jason@redhat.com>

	* pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.

2011-06-07  Xinliang David Li  <davidxl@google.com>
	* passes.c (enable_disable_pass): Handle assembler name.
	(is_pass_explicitly_enabled_or_disabled): Ditto.

2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR tree-optimization/48497
	* doc/sourcebuild.texi (Directives, dg-additional-options): Document.

2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
	to use gimple_val_nonnegative_real_p.
	* gimple-fold.c (gimple_val_nonnegative_real_p): New function.
	* gimple.h (gimple_val_nonnegative_real_p): New declaration.

2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*movsf_internal): Optimize AVX check.

2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>

	* config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
	constant vectors.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (initialize_sizetypes): Initialize all
	sizetypes based on target definitions.
	(set_sizetype): Remove.
	* tree.c (build_common_tree_nodes): Do not call set_sizetype.
	* tree.h (set_sizetype): Remove.

2011-06-07  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Unify V850 architecture options and add support for
	newer V850 architectures.
	* config/v850/t-v850e: Delete.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_common_tree_nodes): Also initialize size_type_node.
	Call set_sizetype from here.

2011-06-07  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
	(*maddhisi4tb, *maddhisi4tt): New define_insns.

2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>

	* simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
	multiplies.
	* doc/md.texi (Canonicalization of Instructions): Document widening
	multiply canonicalization.

2011-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/49299
	* value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.

2011-06-07  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
	a pointer.
	* tree-vect-patterns.c (vect_recog_widen_sum_pattern,
	vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
	vect_recog_pow_pattern): Likewise.
	(vect_pattern_recog_1): Remove declaration.
	(widened_name_p): Remove declaration.  Add new argument to specify
	whether to check that both types are either signed or unsigned.
	(vect_recog_widen_mult_pattern): Update documentation.  Handle
	unsigned patterns and multiplication by constants.
	(vect_pattern_recog_1): Update vect_recog_func references.  Use
	statement information from the statement returned from pattern
	detection functions.
	(vect_pattern_recog): Update vect_recog_func reference.
	* tree-vect-stmts.c (vectorizable_type_promotion): For widening
	multiplication by a constant use the type of the other operand.

2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/49145
	* combine.c (make_compound_operation): Handle ZERO_EXTEND specially.

2011-06-06  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49262
	* dwarf2out.c (native_encode_initializer): Decrement count in each
	iteration.

	PR debug/49294
	* dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
	non-MODE_INT modes.

	PR c++/49264
	* gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
	if stmt folded into nothing.
	* tree-inline.c (fold_marked_statements): If a builtin at the end of
	a bb folded into nothing, just update cgraph edges and move to next bb.
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
	to be NULL.  Don't compute count and frequency if new_call is NULL.

2011-06-04  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
	(cgraph.o): Likewise.
	(cgraphunit.o): Likewise.
	* cgraphunit.c: Include lto-streamer.h
	(cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
	if LTO is enabled.
	* lto-streamer-in.c (unpack_value_fields): Call
	streamer_hooks.unpack_value_fields if set.
	(lto_materialize_tree): For unhandled nodes, first try to
	call lto_streamer_hooks.alloc_tree, if it exists.
	(lto_input_ts_decl_common_tree_pointers): Move reading of
	DECL_INITIAL to lto_streamer_read_tree.
	(lto_read_tree): Call lto_streamer_hooks.read_tree if set.
	(lto_streamer_read_tree): New.
	(lto_reader_init): Rename from lto_init_reader.
	Move initialization code to lto/lto.c.
	* lto-streamer-out.c (pack_value_fields): Call
	streamer_hooks.pack_value_fields if set.
	(lto_output_tree_ref): For tree nodes that are not normally indexable,
	call streamer_hooks.indexable_with_decls_p before giving up.
	(lto_output_ts_decl_common_tree_pointers): Move handling
	for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
	(lto_output_tree_header): Call streamer_hooks.is_streamable instead of
	lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
	(lto_write_tree): Call lto_streamer_hooks.write_tree if set.
	(lto_streamer_write_tree): New.
	(lto_output): Call lto_streamer_init directly.
	(lto_writer_init): Remove.
	* lto-streamer.c (streamer_hooks): New.
	(lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
	instead of lto_preload_common_nodes.
	(lto_is_streamable): Move from lto-streamer.h
	(lto_streamer_hooks_init): New.
	(streamer_hooks): New.
	(streamer_hooks_init): New.
	* lto-streamer.h (struct output_block): Forward declare.
	(struct lto_input_block): Likewise.
	(struct data_in): Likewise.
	(struct bitpack_d): Likewise.
	(struct streamer_hooks): Declare.
	(streamer_hooks): Declare.
	(lto_streamer_hooks_init): Declare.
	(lto_streamer_write_tree): Declare.
	(lto_streamer_read_tree): Declare.
	(streamer_hooks_init): Declare.
	(lto_is_streamable): Move to lto-streamer.c

2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* longlong.h (smul_ppmm): The resulting register pair contains the
	higher order word first.

2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* builtins.c (powi_table): Remove.
	(powi_lookup_cost): Remove.
	(powi_cost): Remove.
	(expand_powi_1): Remove.
	(expand_powi): Remove.
	(expand_builtin_pow_root): Remove.
	(expand_builtin_pow): Remove.
	(expand_builtin_powi): Eliminate handling of constant exponent.
	(expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.

2011-06-06  Alexandre Oliva  <aoliva@redhat.com>

	* cprop.c (local_cprop_pass): Don't set changed for debug insns.

2011-06-06  Alexandre Oliva  <aoliva@redhat.com>

	* dce.c (reset_unmarked_insns_debug_uses): New.
	(delete_unmarked_insns): Skip debug insns.
	(prescan_insns_for_dce): Likewise.
	(rest_of_handle_ud_dce): Reset debug uses of removed sets.
	* reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
	active reg can be found.
	(subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
	(convert_regs_1): Use it.

2011-06-06  Alexandre Oliva  <aoliva@redhat.com>

	* tree-pretty-print.c (dump_function_header): Add flags.
	Don't dump decl_uid with nouid.
	* tree-pretty-print.h (dump_function_header): Adjust.
	* final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
	* passes.c (pass_init_dump_file): Pass dump_flags on.
	* tree-cfg.c (gimple_dump_cfg): Pass flags on.

2011-06-06  Alexandre Oliva  <aoliva@redhat.com>

	PR bootstrap/49270
	* ipa-inline-analysis.c (read_predicate): Initialize all clauses.

2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>

	PR tree-optimization/49243
	* calls.c (setjmp_call_p): Also check if fndecl has the
	returns_twice attribute.

2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
	-ffast-math etc.

2011-06-06  Richard Henderson  <rth@redhat.com>
	    Georg-Johann Lay  <avr@gjlay.de>

	PR target/42210
	* config/avr/predicates.md (const1_operand, const_0_to_7_operand):
	New predicates.
	* config/avr/avr.md ("insv"): New insn expander.
	("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
	"*insv.not.io", "*insv.reg"): New insns.

2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/49285
	* config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
	to nonimmediate_operand from memory_operand for the operand that is to
	be forced to memory by the expander.  Lose the constraints.

2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (output_return): Fix thinko in the output of an
	EH return when delayed branches are disabled.

2011-06-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
	Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
	calculation.
	(*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
	Simplify MODE_V1DF and MODE_V2SF handling.
	(*movsf_internal): Remove x constraint from alternative 7 of operand 1.
	Simplify MODE_SF handling.

2011-06-04  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/48893
	PR tree-optimization/49091
	PR tree-optimization/49179
	* ipa-inline-analysis.c (evaluate_conditions_for_known_args):
	Bounds check.

2011-06-04  Jan Hubicka  <jh@suse.cz>

	PR lto/48954
	* lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
	bitmaps.

2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi: Document -Wdelete-non-virtual-dtor.

2011-06-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/49281
	* config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
	to be strictly smaller than 1 << shiftcount.

2011-06-04  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/48929
	* ipa-inline-analysis.c (remap_edge_predicates): Fix handling
	of empty predicate.

2011-06-04  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/48333
	* calls.c (emit_call_1): Prefer the __builtin declaration of
	builtin functions.

2011-06-03  Diego Novillo  <dnovillo@google.com>

	* lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
	(lto_input_tree_pointers): Likewise.
	* lto-streamer-out.c (pack_value_fields): Likewise.
	(lto_output_tree_pointers): Likewise.
	* lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
	and OPTIMIZATION_NODE.

2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
	* config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
	* config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
	* config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
	* config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
	* config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
	* config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
	* config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
	* config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
	* config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
	* config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
	* config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
	* config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
	* config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
	* config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
	* config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
	* config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
	* config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
	* config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
	* config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
	* config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
	* config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
	* config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
	* config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
	* config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
	* config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
	* config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
	* config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
	* config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
	* config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
	* config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
	* config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
	* config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
	* config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
	* config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
	* config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
	* system.h (MD_UNWIND_SUPPORT): Poison.
	* doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
	* doc/tm.texi: Regenerate.
	* unwind-dw2.c: Include md-unwind-support.h instead of
	MD_UNWIND_SUPPORT.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/xtensa/unwind-dw2-xtensa.c: Likewise.

2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>

	* varpool.c (varpool_extra_name_alias): Return NULL, not false.

2011-06-03  Richard Henderson  <rth@redhat.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
	(sigill_hdlr): Correct insn, insn size.
	(set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.

2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
	t-slibgcc-dummy.
	* config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
	* config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
	* config/mips/t-iris: Remove.
	* config/mips/t-irix6: New file.
	* config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.

2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (LIB2ADDEHDEP): Remove.
	* config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
	* config/arm/t-symbian (LIB2ADDEHDEP): Remove.
	* config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
	* config/t-darwin (LIB2ADDEHDEP): Remove.
	* config/t-freebsd (LIB2ADDEHDEP): Remove.
	* config/t-linux (LIB2ADDEHDEP): Remove.

2011-06-03  Diego Novillo  <dnovillo@google.com>

	* lto-streamer-in.c (get_resolution): Move to lto/lto.c.
	(lto_register_var_decl_in_symtab): Likewise.
	(lto_register_function_decl_in_symtab): Likewise.
	(lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
	logic to uniquify_nodes.

2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/t-osf5: Remove.
	* config/alpha/t-osf-pthread: Remove.
	* config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
	* mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.

2011-06-03  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
	(strongarm1110): Use strongarm tuning.
	* config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
	* config/arm/arm.c (arm_strongarm_tune): New.
	(arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
	(arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
	(arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
	setting, using previous defaults or 1 for Cortex-A5.
	(arm_option_override): Set max_insns_skipped from current tuning.

2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/install.texi (Options specification): Document --with-specs.

2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/neon.md (orndi3_neon): Actually split it.

2011-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
	* var-tracking.c (reverse_op): Limite recurse depth to 5.

2011-06-02  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47590
	* target.def (delay_sched2, delay_vartrack): New.
	* doc/tm.texi.in: Update.
	* doc/tm.texi: Rebuild.
	* sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
	* var-tracking.c (gate_handle_var_tracking): Likewise.
	* config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
	(bfin_flag_var_tracking): Drop.
	(output_file_start): Don't save and override flag_var_tracking.
	(bfin_option_override): Ditto flag_schedule_insns_after_reload.
	(bfin_reorg): Test original variables.
	(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
	* config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
	(ia64_flag_var_tracking): Drop.
	(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
	(ia64_file_start): Don't save and override flag_var_tracking.
	(ia64_override_options_after_change): Ditto
	flag_schedule_insns_after_reload.
	(ia64_reorg): Test original variables.
	* config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
	(picochip_flag_var_tracking): Drop.
	(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
	(picochip_option_override): Don't save and override
	flag_schedule_insns_after_reload.
	(picochip_asm_file_start): Ditto flag_var_tracking.
	(picochip_reorg): Test original variables.
	* config/spu/spu.c (spu_flag_var_tracking): Drop.
	(TARGET_DELAY_VARTRACK): Define.
	(spu_var_tracking): New.
	(spu_machine_dependent_reorg): Call it.
	(asm_file_start): Don't save and override flag_var_tracking.

2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49163
	* config/sh/predicates.md (general_movsrc_operand): Return 0
	for memory and memory subreg of which address is an invalid
	indexed address for QI and HImode.
	(general_movdst_operand): Likewise.

2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
	edges only, when there is a non-local label in the function.
	* postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.

2011-06-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Y3): New register constraint.
	* config/i386/sse.md (*vec_interleave_highv2df): Merge with
	*sse3_interleave_highv2df and *sse2_interleave_highv2df.
	(*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
	*sse2_interleave_lowv2df.

2011-06-02  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
	* config/arm/arm.c (arm_cortex_a5_branch_cost): New.
	(arm_cortex_a5_tune): New.

2011-06-02  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm-protos.h (tune_params): Add branch_cost hook.
	* config/arm/arm.c (arm_default_branch_cost): New.
	(arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
	(arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
	(arm_fa726_tune): Set branch_cost field using
	arm_default_branch_cost.
	* config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
	current_tune structure.
	* dojump.c (tm_p.h): Include file.

2011-06-02  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
	tuning.
	(cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
	(cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
	* config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
	field.
	* config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
	(arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
	(arm_fa726te_tune): Add prefer_constant_pool setting.
	(arm_v6t2_tune, arm_cortex_tune): New.
	* config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
	prefer_constant_pool setting.

2011-06-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
	switch statement.
	* config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
	(*movdf_internal) <case 6,7,8>: Ditto.

	* config/i386/constraints.md (Y4): New register constraint.
	* config/i386/sse.md (vec_set<mode>_0): Merge with
	*vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
	(*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
	*vec_extractv2di_1_sse.
	(*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
	and *vec_concatv2di_rex64_sse.

2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>

	PR target/48807
	* config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
	of cgraph_local_info for null before attempting to use it.

2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* function.h (struct stack_usage): Remove dynamic_alloc_count field.
	(current_function_dynamic_alloc_count): Delete.
	* builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
	(expand_builtin_nonlocal_goto): Remove obsolete comment.
	(expand_builtin_update_setjmp_buf): Remove dead code.
	* cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
	* explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
	support.
	* function.c (instantiate_virtual_regs): Likewise.
	* postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
	for a block with a single abnormal incoming edge.
	* config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
	(SETJMP_VIA_SAVE_AREA): Delete.
	* config/sparc/sparc-protos.h (load_got_register): Declare.
	* config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
	(load_got_register): Make global.
	(sparc_frame_pointer_required): Add 'static'.
	(sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
	(sparc_builtin_setjmp_frame_value): New function.
	* config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
	(save_stack_nonlocal): New expander.
	(restore_stack_nonlocal): Likewise.
	(nonlocal_goto): Remove modes, adjust predicates and reimplement.
	(nonlocal_goto_internal): New insn.
	(goto_handler_and_restore): Delete.
	(builtin_setjmp_setup): Likewise.
	(do_builtin_setjmp_setup): Likewise.
	(setjmp): Likewise.
	(builtin_setjmp_receiver): New expander.

2011-06-01  David Li  <davidxl@google.com>

	PR middle-end/49261
	* tree-pretty-print.c (dump_function_header): Format cleanup.

2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49238
	* config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
	needed when original operands are used for msw_skip comparison.

2011-06-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49250
	* var-tracking.c (add_uses, add_stores): Don't call
	cselib_subst_to_values on ENTRY_VALUE.

2011-06-01  Diego Novillo  <dnovillo@google.com>

	* lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
	output_record_start with LTO_null instead of output_zero.
	(lto_output_ts_binfo_tree_pointers): Likewise.
	(lto_output_tree): Likewise.
	(output_eh_try_list): Likewise.
	(output_eh_region): Likewise.
	(output_eh_lp): Likewise.
	(output_eh_regions): Likewise.
	(output_bb): Likewise.
	(output_function): Likewise.
	(output_unreferenced_globals): Likewise.
	* lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
	instead of NUM_TREE_CODES.
	(lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
	(lto_output_int_in_range): Change << to >> when shifting VAL.

2011-06-01  Diego Novillo  <dnovillo@google.com>

	* lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
	Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.

2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/45074
	* optabs.h (valid_multiword_target_p): Declare.
	* expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
	doing multi-word operations.
	* optabs.c (expand_binop): Likewise.
	(expand_doubleword_bswap): Likewise.
	(expand_absneg_bit): Likewise.
	(expand_unop): Likewise.
	(expand_copysign_bit): Likewise.
	(multiword_target_p): New function.

2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/48830
	PR rtl-optimization/48808
	PR rtl-optimization/48792
	* reload.c (push_reload): Check contains_reg_of_mode.
	* reload1.c (strip_paradoxical_subreg): New function.
	(gen_reload_chain_without_interm_reg_p): Use it to handle
	paradoxical subregs.
	(emit_output_reload_insns, gen_reload): Likewise.

2011-06-01  David Li  <davidxl@google.com>

	* predict.c : Change pass name
	* ipa.c: Ditto.
	* dce.c: Ditto.
	* tree-profile.c: Ditto.
	* except.c: Ditto.

2011-06-01  David Li  <davidxl@google.com>

	* tree-pretty-print.c (dump_function_header): New function.
	* final.c (rest_of_clean_state): Use header dumper.
	* tree-cfg.c (gimple_dump_cfg): Use header dumper.
	* passes.c (pass_init_dump_file): Use header dumper.

2011-06-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
	ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
	popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
	New functions.
	(mem_loc_descriptor): Use them.

	* var-tracking.c (create_entry_value): New function.
	(vt_add_function_parameter): Use it.

2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
	Include <signal.h>, <ucontext.h>.
	(sigill_caught): Define.
	(sigill_hdlr): New function.
	(set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
	insns can be executed.
	* config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
	* config/sparc/sol2.h (ENDFILE_SPEC): Remove.

2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/t-slibgcc-darwin: Move to ...
	* config/t-slibgcc-dummy: ... this.  Clarify comments.
	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
	powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
	(i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
	(i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
	Remove i386/t-crtstuff from tmake_file.
	(i[34567]86-*-solaris2*): Remove t-svr4,
	t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
	t-slibgcc-dummy.
	(sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
	(sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
	sparc/t-crtfm from tmake_file.
	(sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
	t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
	Remove extra_parts.
	* config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
	* config/i386/t-nwld (SHLIB_LINK): Remove.
	* config/i386/t-rtems-i386: Rename to ...
	* config/i386/t-rtems: ... this.
	($(T)crti.o, $(T)crtn.o): Remove.
	(FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
	(dp-bit.c, fp-bit.c, xp-bit.c): Remove.
	(EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
	* config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
	EXTRA_MULTILIB_PARTS): Remove.
	* config/sparc/t-sol2-64: Likewise.
	* config/sparc/t-sol2: Remove.
	* config/sparc/t-crtin: Remove.
	* config/sparc/gmon-sol2.c: Move to ../libgcc/config.
	* config/i386/gmon-sol2.c: Remove.
	* config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
	* config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
	* config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
	* config/i386/sol2-gc1.asm: Remove.
	* config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
	* config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
	* config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
	* config/t-slibgcc-sld: Remove.

2011-06-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
	base_type_for_mode with op_mode instead of mode.

2011-06-01  Paul Brook  <paul@cpodesourcery.com>

	* config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
	Cortex-A15.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (FL_DIV): Rename...
	(FL_THUMB_DIV): ... to this.
	(FL_ARM_DIV): Define.
	(FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
	(arm_arch_hwdiv): Remove.
	(arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
	(arm_issue_rate): Add cortexr5.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
	__ARM_ARCH_EXT_IDIV__.
	(TARGET_IDIV): Define.
	(arm_arch_hwdiv): Remove.
	(arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
	* config/arm/arm.md (tune_cortexr4): Add cortexr5.
	(divsi3, udivsi3): New patterns.
	* config/arm/thumb2.md (divsi3, udivsi3): Remove.
	* doc/invoke.texi: Document ARM -mcpu=cortex-r5

2011-06-01  Martin Jambor  <mjambor@suse.cz>

	* ipa-utils.c (ipa_dfs_info): New field scc_no.
	* ipa-utils.c (searchc): Set scc_no.

2011-06-01  Martin Jambor  <mjambor@suse.cz>

	* ipa-utils.c (searchc_env): New field allow_overwritable.
	(searchc): do not ignore edges to overwritable nodes if indicated
	by env->allow_overwritable.
	(ipa_reduced_postorder): Set env.allow_overwritable.

2011-06-01  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data): Do not reset boolean_type_node nor
	char_type_node.
	* lto-streamer.c (lto_record_common_node): Take node pointer,
	do not register types.
	(lto_preload_common_nodes): Explicitly skip preloading nodes
	that differ between frontends.

2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
	NON_FLOAT_REGS.

2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
	parameter value for dump. Dump cost on outermost call only.
	(rs6000_memory_move_cost): Dump cost on outermost call only.

2011-05-31  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
	DW_OP_GNU_convert ops.

	* cselib.c (promote_debug_loc): Allow l->next non-NULL for
	cselib_preserve_constants.
	(cselib_lookup_1): If cselib_preserve_constants,
	a new VALUE is being created for REG and there is a VALUE for the
	same register in wider mode, add another loc with lowpart SUBREG of
	the wider VALUE.
	(cselib_subst_to_values): Handle ENTRY_VALUE.
	* var-tracking.c  (replace_expr_with_values): Return NULL for
	ENTRY_VALUE too.
	* dwarf2out.c (convert_descriptor_to_signed): New function.
	(mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
	instead of two shifts.
	(mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
	the right mode if needed.
	(mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
	(mem_loc_descriptor) <case UNSIGNED_FIX>: Use
	convert_descriptor_to_signed.
	(mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
	BSWAP, ROTATE, ROTATERT>: Handle these rtls.

	PR target/48688
	* config/i386/i386.md (*lea_general_4): New define_insn_and_split.

2011-05-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
	of X87MODEI12 and SWI48x instead of SSEMODEI24.
	(SWI248x): New mode iterator, rename from X87MODEI.
	(X87MODEI): Remove mode iterator.
	(X87MODEI12): Ditto.
	(SSEMODEI24): Ditto.

2011-05-31  Alexandre Oliva  <aoliva@redhat.com>

	* params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
	* doc/invoke.texi: Document max-vartrack-expr-depth.
	* var-tracking.c (EXPR_DEPTH): New.
	(reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.

2011-05-31  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
	* config/i386/sse.md: Add n to negated FMA pattern names.

2011-05-31  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.

2011-05-31  Alexandre Oliva  <aoliva@redhat.com>

	* gengtype-state.c (read_state_params_structs): Initialize previous.

2011-05-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
	(FP push_operand splitters): Merge {TF,XF,DF}mode splitters.

2011-05-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movtf_internal): Avoid allocating general
	registers.  Penalize F*r->o alternative to prevent partial memory
	stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
	CONST_DOUBLE immediates when optimizing function for size.  Do not move
	CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
	(*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
	(*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
	(*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
	alternatives.
	(*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.

	(fp_register_operand splitters): Use fp_register_operand
	constraint.  Do not use FP_REG_P in insn condition.
	(any_fp_register_operand splitters): Use any_fp_register_operand
	constraint.  Do not use ANY_FP_REG_P in insn condition.

2011-05-31  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_inline_failed_t): Give enum a name
	* lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
	(LTO_cgraph_tags): Add LTO_cgraph_last_tag.
	(lto_output_edge): Use output_enum and var_len_unsigned.
	(lto_output_varpool_node): Likewise.
	(input_overwrite_node): Do not take resolution parameter;
	extract it from a bitpack.
	(input_node): Do not read resolution; use input_enum and
	var_len_unsigned.
	(input_varpool_node): Likewise.
	(input_edge): Likewise.
	(input_cgraph_1): Likewise.

2011-05-31  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_register_canonical_type): Do not register
	any types via gimple_register_type.

2011-05-31  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
	of thunks.

2011-05-31  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/49235
	* tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
	(create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.

2011-05-31  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49093
	* tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
	data references.

2011-05-31  Dodji Seketeli  <dodji@redhat.com>

	PR debug/49047
	* dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
	for concrete functions containing the code of cloned functions.

2011-05-31  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
	to ...
	(forward_propagate_into_comparison_1): ... this.
	(forward_propagate_comparison): Rename to ...
	(forward_propagate_into_comparison): ... this.  Split out
	real forward propagation code to ...
	(forward_propagate_comparison): ... this.
	(forward_propagate_into_gimple_cond): Remove looping.
	(forward_propagate_into_cond): Likewise.
	(simplify_not_neg_expr): Return whether we have done something.
	(simplify_gimple_switch): Likewise.
	(tree_ssa_forward_propagate_single_use_vars): Rename to ...
	(ssa_forward_propagate_and_combine): ... this.  Re-structure
	to do a forward forward-propagation walk on BBs and a backward
	stmt combining walk on BBs.  Consistently re-scan changed statements.
	(pass_forwprop): Adjust.

2011-05-30  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_format_type): Correct length of name added to
	obstack for anonymous field.

2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/49186
	* config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
	part of the second operand is 0.

2011-05-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
	to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
	to memory for !TARGET_MEMORY_MISMATCH_STALL.
	(*movdf_internal_rex64): Do not penalize F->r alternative.
	(*movdf_internal): Penalize FYd*r->o alternative to prevent partial
	memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
	when optimizing function for size.  Do not move CONST_DOUBLEs
	directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
	(FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
	SUBREGs.  Do not check for MEM_P operands in the insn condition,
	check for ANY_FP_REGNO_P instead.
	* config/i386/constraints.md (Yd): Enable GENERAL_REGS for
	TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
	function for speed.
	* config/i386/i386.c (ix86_option_override_internal): Do not
	set TARGET_INTEGER_DFMODE_MOVES here.

2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49168
	* config/i386/i386.md (*movtf_internal): Handle misaligned load/store.

2011-05-30  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (modified_type_die, gen_reference_type_die): Use
	DW_TAG_rvalue_reference_type even for
	-gdwarf-4 -fno-debug-types-section.

2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
	(build_and_insert_binop): New.
	(gimple_expand_builtin_pow): Reorder args for
	build_and_insert_call; use build_and_insert_binop; add more
	optimizations for fractional exponents.

2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>

	PR bootstrap/49190

	Revert:
	2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_identifier): Inherit from tree_typed, not
	tree_common.
	(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
	* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
	TS_BASE instead of TS_COMMON.
	* varasm.c (assemble_name): Remove assert.

2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* config.gcc: Keep obselete list sorted.

2011-05-30  Jakub Jelinek  <jakub@redhat.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
	crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
	there is a DRAP register and arg_pointer_rtx is the CFA pointer.
	(vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
	(vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.

2011-05-30  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Compare record
	and union type members properly.

2011-05-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49210
	* ipa-split.c (split_function): Care for the case where the call
	result is not trivially convertible to the result holding variable.

2011-05-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49218
	* tree-vrp.c (adjust_range_with_scev): Properly check whether
	overflow occured.

2011-05-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_comparison):
	New function split out from ...
	(forward_propagate_into_gimple_cond): ... here.  Adjust.
	(forward_propagate_into_cond): Likewise.
	(forward_propagate_comparison): Also propagate into
	comparisons on assignment RHS.  Change return value to
	behave similar to forward_propagate_into_cond.
	(tree_ssa_forward_propagate_single_use_vars): Handle
	strict-overflow warnings properly for forward_propagate_comparison.

2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
	from plugin linker.
	* configure: Regenerate.

2011-05-30  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49199
	* tree-vect-loop.c (vect_is_slp_reduction): Check that the
	non-reduction operands are either defined in the loop or by induction.

2011-05-29  Xinliang David Li  <davidxl@google.com>

	* opts-global.c (handle_common_deferred_options): Handle new options.
	* passes.c (register_one_dump_file): Call register_pass_name.
	(execute_one_pass): Check explicit enable/disable flag.
	(passr_hash): New function.
	(passr_eq): Ditto.
	(register_pass_name): Ditto.
	(get_pass_by_name): Ditto.
	(pass_hash): Ditto.
	(pass_eq): Ditto.
	(enable_pass): Ditto.
	(disable_pass): Ditto.
	(is_pass_explicitly_enabled_or_disabled): Ditto.

2011-05-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movoi_internal_avx): Use
	standard_sse_constant_opcode for alternative 0.
	(*movti_internal_sse): Ditto.
	(*movti_internal_rex64): Use standard_sse_constant_opcode for
	alternative 2.
	(*movdi_internal_rex64): Use standard_sse_constant_opcode for
	sselog1 type moves.
	(*movsi_internal): Ditto.
	(*movdi_internal): Ditto.  Add ssecvt type moves.

2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/48830
	* rtlanal.c (simplify_subreg_regno): Adjust comment.

2011-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/49095
	* config/i386/predicates.md (plusminuslogic_operator): New predicate.
	* config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.

2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/43995
	* config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
	recurse_p argument.  Only follow register copies if it is set,
	and prevent mips_find_pic_call_symbol from recursing.
	(mips_find_pic_call_symbol): Add a recurse_p argument.
	Pass it to mips_pic_call_symbol_from_set.
	(mips_annotate_pic_calls): Update accordingly.

2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c (try_split): Use a loop to search for
	NOTE_INSN_CALL_ARG_LOCATIONs.

2011-05-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49217
	* ipa-pure-const.c (propagate_pure_const): Fix typos.

2011-05-28  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (hash_string_slot_node): Hash string based on its
	length.
	(string_slot_free): Remove
	(create_output_block): Initialize obstack.
	(destroy_output_block): Free obstack.
	(lto_string_index): Add PERSISTENT parameter; do not duplicate
	the string unless it needs to be added into the hash.
	(lto_output_string_with_length): Add persistent attribute;
	handle NULL strings.
	(lto_output_string): Add PERSISTENT parameter.
	(output_string_cst, output_identifier): Simplify.
	(lto_output_location_bitpack): Update.
	(lto_output_builtin_tree): Update.
	* lto-streamer.h (struct output_block): Add obstack.
	(lto_output_string, lto_output_string_with_length): Remove
	declarations; functions are static now.

2011-05-28  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
	pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
	pack_ts_function_decl_value_fields, lto_output_builtin_tree,
	output_cfg, output_gimple_stmt): Use enum and variable length i/o.
	* lto-streamer-in.c (input_cfg, input_gimple_stmt,
	unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
	unpack_ts_decl_with_vis_value_fields,
	unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
	lto_get_builtin_tree): Use enum and variable length i/o.
	* basic-block.h (profile_status_d): Add PROFILE_LAST.
	* lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
	New functions.
	(bp_pack_enum, bp_unpack_enum): New macros.

2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* genrecog.c: Remove redundant forward declarations.

2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* config.gcc: Deprecate mips*-*-openbsd*.

2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/49195
	* genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
	for match_op_dup.

2011-05-27  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/48981
	* gengtype.c (vec_prefix_type): New function.
	(note_def_vec): Use vec_prefix_type and change the length
	attribute to be based on the prefix.
	* vec.c: Include coretypes.h before vec.h.
	(struct vec_prefix): Remove.
	(vec_gc_p_reserve): Change the offsetof to sizeof.
	(vec_gc_p_reserve_exact): Likewise.
	(vec_heap_p_reserve): Likewise.
	(vec_heap_p_reserve_exact): Likewise.
	(vec_stack_o_reserve_1): Copy from +1 instead of from vec.
	(vec_stack_p_reserve): Change the offsetof to sizeof.
	(vec_stack_p_reserve_exact): Likewise.
	* vec.h (struct vec_prefix): New struct definition.
	(VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
	(VEC_T_GTY(T,B)): Likewise.
	(DEF_VEC_FUNC_P(T)): Use prefix field.
	(DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
	(DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.

2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
	(powi_as_mults): Add gimple_set_location.
	(build_and_insert_call): New.
	(gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
	0.5, 0.25, 0.75, 1./3., or 1./6.

2011-05-27  Alexander Monakov  <amonakov@ispras.ru>

	* doc/contrib.texi: Update copyright years.
	(Contributors): Add Zdenek Sojka.

2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>

	* c-decl.c (c_push_function_context): Copy the current statement
	list stack.
	(add_stmt): Check building_stmt_list_p and push_stmt if necessary.
	(finish_struct): Call building_stmt_list_p instead of checking
	cur_stmt_list.
	* c-parser.c (c_parser_postfix_expression): Likewise.
	* c-typeck.c (c_end_compound_stmt): Likewise.
	* print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
	* tree-iterator.c (stmt_list_cache): Change to a VEC.
	(alloc_stmt_list): Adjust for stmt_list_cache's new type.
	(free_stmt_list): Likewise.
	* tree.h (struct tree_statement_list): Include typed_tree instead
	of tree_common.
	* tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
	as TS_TYPED instead of TS_COMMON.

2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
	(HAVE_AS_IX86_TLSGDPTL): Define.
	(gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
	(HAVE_AS_IX86_TLSLDMPLT): Define.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/i386.c (ix86_print_operand): Handle code 'p'.
	* config/i386/i386.md (*tls_global_dynamic_32_gnu): If
	TARGET_SUN_TLS, use @tlsgdplt or @plt.
	(*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
	(*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
	@tlsldmplt or @plt.
	(*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.

2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>

	* sched-int.h (struct _haifa_deps_insn_data): New members cond
	and reverse_cond.
	(INSN_COND, INSN_REVERSE_COND): New macros.
	* sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
	once.
	(sched_get_condition_with_rev): Cache the results, and look them up
	if possible.
	(sched_analyze_insn): Destroy INSN_COND of previous insns if they
	are clobbered by the current insn.
	* target.def (exposed_pipline): New sched data hook.
	* doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
	* doc/tm.texi: Regenerate.

2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/49170
	* tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
	sincos or cexp.

2011-05-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/49189
	* fold-const.c (fold_unary_loc): Do not re-fold folding conversions
	of comparisons.

2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (sched_scan_info): Remove.
	(schedule_block): Call sched_extend_luids rather than sched_init_luids
	with NULL args.
	(extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
	Remove functions.
	(sched_scan): Remove.
	(sched_extend_luids): Renamed from luids_extend_insn and no longer
	static.  All callers changed.
	(sched_init_insn_luid): Renamed from luids_init_insn and no longer
	static.  All callers changed.
	(sched_init_luids): Remove all arguments except the first.  All
	callers changed.  Don't use sched_scan.
	(haifa_init_h_i_d): Likewise.
	(haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
	manually rather than using sched_init_luids.  Likewise with
	extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
	* sel-sched.c (sel_region_target_finish): Call sched_extend_luids
	rather than sched_init_luids with NULL args.
	* sel-sched-ir.c (new_insns): Remove variable.
	(sched_scan): New static function, previously in haifa-sched.c.  Remove
	all arguments but the first two; all callers changed.
	(sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
	rather than sched_init_luids.
	(sel_init_bbs): Remove second argument.  All callers changed.
	(sel_add_bb): Call sched_extend_luids rather than sched_init_luids
	with NULL arguments.
	(create_insn_rtx_from_pattern): Likewise.
	* sel-sched-ir.h (sel_init_bbs): Adjust declaration.
	* sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
	(sched_init_insn_luid, sched_extend_luids): Declare.
	(sched_scan_info_def, sched_scan_info, sched_scan): Remove
	declarations.

2011-05-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/49177
	* fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
	A CMP B ? (T) true : (T) false for non-integral types T again.

2011-05-27  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (lto_string_index): break out from...; offset by 1
	so 0 means NULL string.
	(lto_output_string_with_length): ... here.
	(lto_output_string, output_string_cst, output_identifier): Update
	handling of NULL strings.
	(lto_output_location_bitpack): New function.
	(lto_output_location): Use it.
	(lto_output_tree_ref): Use output_record_start.
	(pack_ts_type_common_value_fields): Pack aliagn & alias set in var
	len values.
	* lto-streamer-in.c (string_for_index): Break out from ...; offset
	values by 1.
	(input_string_internal): ... here;
	(input_string_cst, input_identifier, lto_input_string): Update handling
	of NULL strings.
	(lto_input_location_bitpack): New function
	(lto_input_location): Use it.
	(unpack_ts_type_common_value_fields): Pack align & alias in var len
	values.
	* lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
	bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
	(bp_pack_value): Sanity check the value range.
	* lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
	New functions.
	* lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
	New functions.

2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (reorder_var_tracking_notes): Drop
	call_arg_location instructions down the floor.

2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49154
	* ira.c (setup_pressure_classes): Process class without sublcasses
	as a candidate for pressure classes.

2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/48575
	* genrecog.c (position_type): New enum.
	(position): New structure.
	(decision): Use position structure instead of a string.
	(root_pos, peep2_insn_pos_list): New variables.
	(next_position, compare_positions): New functions.
	(new_decision): Use position structures instead of strings.
	(maybe_both_true): Likewise.
	(change_state): Likewise.
	(write_tree): Likewise.
	(make_insn_sequence): Likewise.

2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
	TS_BASE instead of TS_COMMON.
	(find_decls_types_r): Check for TS_TYPED structure before looking at
	TREE_TYPE.
	* tree.h (struct tree_block): Inherit from tree_base, not tree_common.
	Add chain field.
	(BLOCK_CHAIN): Use new chain field.

2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
	moves expensive on Power7 also.

2011-05-26  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_unary_loc): Remove bogus code.

2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_identifier): Inherit from tree_typed, not
	tree_common.
	(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
	* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
	TS_BASE instead of TS_COMMON.
	* varasm.c (assemble_name): Remove assert.

2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>

	* Makefile.in (srcdirify): Change order so that libgcc_objdir is
	substituted first.
	* libgcc-std.ver: Delete file.

2011-05-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48702
	* tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
	only when we know the base address is within bounds.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
	assume the base address of TARGET_MEM_REFs is in bounds.

2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/49099
	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
	declaration in TARGET_SOLARIS.

2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
	The instruction is then expanded explicitly.
	(supported_compare): Callable instruction.
	(compare): Likewise.

2011-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/49165
	* gimplify.c (shortcut_cond_r): Don't special case
	COND_EXPRs if they have void type on one of their arms.

2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (schedule-block): Reorder the inner scheduling loop
	to reduce duplication, and to achieve a slightly more logical order
	of operations.

2011-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49161
	* tree-vrp.c (struct case_info): New type.
	(compare_case_labels): Sort case_info structs instead of
	trees, and not primarily by CASE_LABEL uids but by
	label_for_block indexes.
	(find_switch_asserts): Put case labels into struct case_info
	array instead of TREE_VEC, adjust sorting, compare label_for_block
	values instead of CASE_LABELs.

2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
	("orndi3_neon"): Likewise.
	("bic<mode>3_neon"): Likewise.

2011-05-26  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49038
	* tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
	Ensure at least one epilogue iteration if required by data
	accesses with gaps.
	* tree-vectorizer.h (struct _loop_vec_info): Add new field
	to mark loops that require peeling for gaps.
	* tree-vect-loop.c (new_loop_vec_info): Initialize new field.
	(vect_get_known_peeling_cost): Take peeling for gaps into
	account.
	(vect_transform_loop): Generate epilogue if required by data
	access with gaps.
	* tree-vect-data-refs.c (vect_analyze_group_access): Mark the
	loop as requiring an epilogue if there are gaps in the end of
	the strided group.

2011-05-25  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_format_type): Output the first field with a usable
	Go type, if any.

2011-05-25  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_format_type): Check for invalid type names, pointer
	target types, and struct field types.

2011-05-25  Jason Merrill  <jason@redhat.com>

	* print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.

2011-05-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.

2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*movqi_extv_1)): Put back
	"register_operand" check in "type" calculation.
	(*movqi_extzv_2): Likewise.

2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.

2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/49160
	* libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
	__mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
	__divxc3, __divtc3): Wrap definitions in #ifndef.

2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49142
	* config/i386/i386.md (*movqi_extv_1_rex64): Remove
	"register_operand" check and replace q_regs_operand with
	QIreg_operand in "type" calculation.
	(*movqi_extv_1): Likewise.
	(*movqi_extzv_2_rex64): Likewise.
	(*movqi_extzv_2): Likewise.

	* config/i386/predicates.md (QIreg_operand): New.

2011-05-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
	type-based offset disambiguation, streamline MEM_REF and
	TARGET_MEM_REF handling.

2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
	(bdesc_special_args): Add pause intrinsic.

	* config/i386/i386.md (UNSPEC_PAUSE): New.
	(pause): Likewise.
	(*pause): Likewise.
	* config/i386/ia32intrin.h (__pause): Likewise.

	* doc/extend.texi (X86 Built-in Functions): Add documentation for
	pause intrinsic.

2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
	(execute_cse_sincos): Add switch case for BUILT_IN_POW.

2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_exp): Inherit from struct tree_typed.
	* tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
	instead of TS_COMMON.

2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>

	* libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
	LIBGCC2_GNU_PREFIX is defined.
	(__N): New macro.
	(__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
	__mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
	__divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
	__clz_tab): Define using __N.
	(__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
	COMPAT_SIMODE_TRAPPING_ARITHMETIC.
	* target.def (libfunc_gnu_prefix): New hook.
	* doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
	(TARGET_LIBFUNC_GNU_PREFIX): Add hook.
	* doc/tm.texi: Regenerate.
	* system.h (LIBGCC2_GNU_PREFIX): Poison.
	* optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
	account.
	(gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
	(init_optabs): Likewise for the bswap libfuncs.
	* tree.c (build_common_builtin_nodes): Likewise for complex multiply
	and divide.
	* config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
	* config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
	* libgcc-std.ver: Remove.
	* Makefile.in (srcdirify): Handle $$(libgcc_objdir).
	* config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
	libgcc-std.ver.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
	* config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
	* config/fixed-bit.h (FIXED_OP): Define differently depending on
	LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
	(FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.

2011-05-25  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (output_record_start): Use lto_output_enum
	(lto_output_tree): Use output_record_start.
	* lto-streamer-in.c (input_record_start): Use lto_input_enum
	(lto_get_pickled_tree): Use input_record_start.
	* lto-section-in.c (lto_section_overrun): Turn into fatal error.
	(lto_value_range_error): New function.
	* lto-streamer.h (lto_value_range_error): Declare.
	(lto_output_int_in_range, lto_input_int_in_range): New functions.
	(lto_output_enum, lto_input_enum): New macros.

2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* common.opt (flag_stack_usage_info): New variable.
	(-Wstack-usage): New option.
	* doc/invoke.texi (Warning options): Document -Wstack-usage.
	* opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
	<OPT_fstack_usage>: Likewise.
	* toplev.c (output_stack_usage): Handle -Wstack-usage.
	* calls.c (expand_call): Test flag_stack_usage_info variable instead
	of flag_stack_usage.
	(emit_library_call_value_1): Likewise.
	* explow.c (allocate_dynamic_stack_space): Likewise.
	* function.c (instantiate_virtual_regs ): Likewise.
	(prepare_function_start): Likewise.
	(rest_of_handle_thread_prologue_and_epilogue): Likewise.
	* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	(thumb1_expand_prologue): Likewise.
	* config/avr/avr.c (expand_prologue): Likewise.
	* config/i386/i386.c (ix86_expand_prologue): Likewise.
	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
	* config/m68k/m68k.c (m68k_expand_prologue): Likewise.
	* config/mips/mips.c (mips_expand_prologue): Likewise.
	* config/pa/pa.c (hppa_expand_prologue): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
	* config/s390/s390.c (s390_emit_prologue): Likewise.
	* config/sh/sh.c (sh_expand_prologue): Likewise.
	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
	* config/spu/spu.c (spu_expand_prologue): Likewise.

2011-05-25  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
	(gimple_canonical_types_compatible_p): Likewise.

2011-05-25  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49062
	* ipa.c (function_and_variable_visibility): Only add to same
	comdat group list if DECL_ONE_ONLY.

2011-05-25  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/49014
	* config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/49128
	* config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.

2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48757
	* ira-build.c (loop_with_eh_edge_p): Rename to
	loop_with_complex_edge_p, check edges on complexity, make function
	conditional.
	(mark_loops_for_removal): Make call of loop_with_complex_edge_p
	conditional.

2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_option_override): If not set by the user,
	force flag_ira_share_save_slots to 0.

2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>

	* var-tracking.c (compute_cfa_pointer): Adjust head comment.
	(vt_initialize): Set PROLOGUE_BB unconditionally.
	Add block comment about CFA_BASE_RTX machinery.
	Reset FP_CFA_OFFSET to -1 on all invalid paths.
	Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.

2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/48187
	* c-parser.c (c_parser_objc_class_instance_variables): More robust
	parsing of syntax error in ObjC instance variable lists.  In
	particular, avoid an infinite loop if there is a stray ']'.
	Updated error message.

2011-05-24  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_define): Don't accept a string immediately after
	another operand.

2011-05-24  Ian Lance Taylor  <iant@google.com>

	* godump.c (struct godump_container): Add invalid_hash field.
	(go_format_type): Return false if type is found in invalid_hash.
	(go_output_typedef): Add invalid type to invalid_hash.
	(go_finish): Create and delete invalid_hash.

2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/46728
	* tree-ssa-math-opts.c (powi_table): New.
	(powi_lookup_cost): New.
	(powi_cost): New.
	(powi_as_mults_1): New.
	(powi_as_mults): New.
	(gimple_expand_builtin_powi): New.
	(execute_cse_sincos): Add switch case for BUILT_IN_POWI.
	(gate_cse_sincos): Remove sincos/cexp restriction.

2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/3746
	* config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
	mips-tdump native.
	* mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
	* mips-tdump.c: Likewise.

2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49128
	* config/i386/driver-i386.c (host_detect_local_cpu): Always
	add -mno-XXX.  Handle FMA.

2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48633
	* ira-build.c (loop_with_eh_edge_p): New function.
	(mark_loops_for_removal): Use it.

2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48971
	* ira.c (setup_pressure_classes): Don't check register move cost
	for classes with one registers.  Don't add pressure class if there
	is a pressure class with the same available hard registers.
	Check contains_reg_of_mode.  Fix a typo in collecting
	temp_hard_regset.  Ignore hard registers not belonging to a class.

2011-05-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49133
	* config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.

2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR gcov-profile/48845
	* config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.

2011-05-24  Richard Guenther  <rguenther@suse.de>

	* gimple.c (compare_type_names_p): Remove for_completion_p arg.
	(gimple_compatible_complete_and_incomplete_subtype_p): Remove.
	(gimple_types_compatible_p_1): Adjust.
	(iterative_hash_canonical_type): Do not bother about complete vs.
	incomplete types.
	(gimple_canonical_types_compatible_p): Likewise.

2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.

2011-05-24  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/49078
	* gimple.c (gimple_register_canonical_type): Revert
	previous change.
	* alias.c (get_alias_set): Only assert that TYPE_CANONICAL
	does not for a tree for the case where it matters.  Cache
	pointer-type alias-sets.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
	(OBJS): Remove options.o, opts-common.o and prefix.o.
	(OBJS-libcommon-target): New.
	(ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
	(BACKEND): Include libcommon-target.a.
	(MOSTLYCLEANFILES): Include libcommon-target.a.
	(libcommon-target.a): New.
	(xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
	prefix.o.

2011-05-23  Joseph Myers  <joseph@codesourcery.com>

	* optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
	parts of output shared with the driver.
	* optc-gen.awk: Don't generate parts of output not shared with the
	driver.
	* opth-gen.awk: Remove GCC_DRIVER conditionals.
	* doc/options.texi (SourcerInclude): Mention options-save.c.
	* Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
	(OBJS): Add options-save.o.
	(options-save.c, options-save.o): New.
	(options.o): Update dependencies.
	(gcc-options.o): Remove.
	(mostlyclean): Remove options-save.c.

2011-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR debug/49032
	* dbxout.c: Include cgraph.h.
	(dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
	and without value expr, return NULL if no varpool node exists for
	it or if it is not needed.
	* Makefile.in (dbxout.o): Depend on $(CGRAPH_H).

	PR c/49120
	* c-decl.c (start_decl): Convert expr to void_type_node.

2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/48826
	* emit-rtl.c (try_split): When splitting a call that is followed
	by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.

2011-05-23  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (expand_debug_expr): For unused non-addressable
	parameters passed in memory prefer using DECL_INCOMING_RTL over
	the pseudos it will be copied into.

2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47315
	* config/i386/i386.c (ix86_option_override_internal): Save the
	initial options after checking vzeroupper.

2011-05-23  David Li  <davidxl@google.com>

	PR tree-optimization/48988
	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
	Initialize has_valid_pred for each pred chain.

2011-05-23  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Always compare type names.
	(iterative_hash_gimple_type): Always hash type names.

2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>

	* c-typeck.c (build_function_call_vec): Tweak call to
	check_function_arguments.

2011-05-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49115
	* tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
	is not necessarily carried out, do not claim it kills the ref.
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.

2011-05-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/15419
	* builtins.c (fold_builtin_memory_op): Be less restrictive about
	what pointer types we accept for folding.

2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gthr-gnat.c: Remove.
	* gthr-gnat.h: Remove.
	* Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
	* config/t-freebsd (LIB2ADDEH): Likewise.
	* config/t-linux (LIB2ADDEH): Likewise.
	* config/t-sol2 (LIB2ADDEH): Likewise.
	* config/ia64/t-vms (LIB2ADDEH): Likewise.
	* configure.ac (target_thread_file): Remove gnat handling.
	* configure: Regenerate.
	* doc/install.texi (Configuration, --enable-threads): Remove gnat.

2011-05-23  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcov.c (create_file_names): If no object directory is specified,
	keep the directory of the file.

2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
	* configure: Regenerate.

2011-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48973
	* expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
	failed and the comparison has a single bit signed type, use
	constm1_rtx instead of const1_rtx for true value.
	(do_store_flag): If ops->type is single bit signed type, disable
	signel bit test optimization and pass -1 instead of 1 as last
	parameter to emit_store_flag_force.

2011-05-23  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
	function.
	(infer_loop_bounds_from_undefined): Use new function.

2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
	(ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
	-O1 for -fno-delayed-branch, -O2 if optimization is enabled,
	and -O0 otherwise.
	(EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.

2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
	(try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
	returns true.

2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.

2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_delegitimize_address): Handle
	UNSPEC_MOVE_PIC pattern.

2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (sparc-*-elf*): Add sparc/t-crtin.
	(sparc-*-rtems*): Likewise.
	(sparc64-*-elf*): Likewise.
	(sparc64-*-rtems*): Likewise.
	(sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
	* config/sparc/t-crtin: New file.
	* config/sparc/t-sol2 (crti.o): Delete rule.
	(crtn.o): Likewise.
	* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
	* config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
	* config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
	(ENDFILE_SPEC): Add crtn.o.

2011-05-22  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/48689
	* fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
	CODE_CONTAINS_STRUCT (TS_COMMON).

2011-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/49029
	* expmed.c (extract_fixed_bit_field): Test whether target can be used
	only after deciding which mode to use.

2011-05-22  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
	for call to get_shiftadd_cost.

2011-05-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/49104
	* config/i386/cpuid.h (bit_MMXEXT): New define.

2011-05-22  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
	initialisation of non-existant args[2] element.  Use args[] array
	not arg[] array to pass arguments to build_function_type_list.

2011-05-22  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/49087
	* tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.

2011-05-21  Jason Merrill  <jason@redhat.com>

	PR c++/49092
	* dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
	static storage duration.

2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
	frame pointer.

2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (eligible_for_return_delay): Do not return
	false if there are call-saved registers here...
	(sparc_can_use_return_insn_p): ...but here instead.
	(save_or_restore_regs): Fix thinko.
	(sparc_expand_prologue): Use current_function_is_leaf.
	(sparc_frame_pointer_required): Likewise.

2011-05-21  Nick Clifton  <nickc@redhat.com>

	PR target/49098
	* config/rx/rx.c (rx_memory_move_cost): Note unused parameters.

2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	* gengtype.c (walk_type): Implemented "atomic" GTY option.
	* doc/gty.texi (GTY Options): Document "atomic" GTY option.

2011-05-21  Joseph Myers  <joseph@codesourcery.com>

	* opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
	* optc-gen.awk: Move common code to opt-read.awk.
	* opth-gen.awk: Likewise.
	* Makefile.in (options.c, s-options-h): Update to use opt-read.awk.

2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>

	* godump.c (go_format_type): Don't use TYPE_ARG_TYPES.

2011-05-20  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c: Include expmed.h.
	(get_shiftadd_cost): New function.
	(force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.

2011-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/49086
	* gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
	for PHI args that are SSA_NAME_IS_DEFAULT_DEF.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in: Update comment referring to $(OBJS-common).

2011-05-20  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_output_typedef): Put enum constants in the macro
	hash table to avoid duplicate Go const definitions.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (LIBDEPS): Add libcommon.a.
	(LIBS): Likewise.
	(GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
	(OBJS-common): Remove diagnostic.o, input.o, intl.o,
	pretty-print.o and version.o.
	(OBJS-libcommon): New.
	(ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
	(BACKEND): Add libcommon.a.
	(MOSTLYCLEANFILES): Likewise.
	(libcommon.a): New.
	(xgcc$(exeext)): Don't explicitly use version.o and intl.o.
	(cpp$(exeext)): Likewise.
	(COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
	pretty-print.o and input.o.
	(lto-wrapper$(exeext)): Don't explicitly use intl.o.
	(lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
	(errors.o): Remove.
	(mips-tfile): Don't explicitly use version.o.
	(mips-tdump): Likewise.
	(gcov.o): Depend on $(DIAGNOSTIC_H).
	(gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
	(GCOV_OBJS): Remove intl.o, version.o and errors.o.
	(GCOV_DUMP_OBJS): Remove version.o and errors.o.
	* gcov-dump.c: Include intl.h and diagnostic.h.
	(main): Initialize diagnostics.
	* gcov.c: Include diagnostic.h.
	(fnotice): Remove.
	(main): Initialize diagnostics.
	* lto-wrapper.c: Include diagnostic.h.
	(main): Initialize diagnostics.

2011-05-20  Michael Matz  <matz@suse.de>

	* Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.

2011-05-20  Michael Matz  <matz@suse.de>
	    Richard Guenther  <rguenther@suse.de>

	* lto-streamer.c (lto_record_common_node): Don't track seen nodes,
	use lto_streamer_cache_append directly instead of returning a VEC.
	(preload_common_node): Remove.
	(lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
	track seen nodes.
	(lto_streamer_cache_create): Call lto_preload_common_nodes.

2011-05-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49079
	* tree-dfa.c (get_ref_base_and_extent): Handle view-converting
	MEM_REFs correctly for the trailing array access detection.
	Special case constants the same way as decls for overall size
	constraining.

2011-05-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
	argument expansion.

2011-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49073
	* gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
	PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
	* tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.

2011-05-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48849
	* gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
	of pointer types the same way the middle-end does.

2011-05-20  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_register_type_1): Do not fiddle with main-variant
	or pointer-to chains.  Delay all fixup to uniquify_nodes.

2011-05-19  Quentin Neill  <quentin.neill@amd.com>

	* config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
	(fma4_fmaddsub): Likewise

2011-05-19  Jan Hubicka  <jh@suse.cz>

	* gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
	(GIMPLE_TYPE_PAIR_SIZE): New macro.
	(type_pair_cache): New static var.
	(lookup_type_pair): Use fixed sized custom hash; make inline.
	(gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
	calls of lookup_type_pair.
	(print_gimple_types_stats): Remove cache stats.
	(free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
	and gtc_ob.

2011-05-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
	when TARGET_RDRND is active.
	(ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
	Generate dummy SImode target register when target is NULL.

2011-05-19  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm-fpus.def: New.
	* config/arm/genopt.sh: Generate Enum and EnumValue entries from
	arm-fpus.def.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
	(arm_option_override): Don't decode FPU name to string here.
	* config/arm/arm.opt (mfpu=): Use Enum.
	* config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
	Update dependencies.

2011-05-19  Joseph Myers  <joseph@codesourcery.com>

	* collect2.c: Include diagnostic.h.
	(fatal_perror, fatal, error, fancy_abort): Remove.
	(main): Set progname.  Call xmalloc_set_program_name and
	diagnostic_initialize.
	(maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
	scan_libraries, resolve_lib_name): Call fatal_error instead of
	fatal and fatal_perror.
	* collect2.h (error, fatal, fatal_perror): Don't declare.
	* tlink.c: Include diagnostic-core.h.
	(recompile_files): Call fatal_error instead of fatal_perror.
	* Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
	pretty-print.o and input.o.
	(collect2.o, tlink.o): Update dependencies.

2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.

2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/40483
	* configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
	COMDAT group syntax, both SPARC and x86 variants.
	(HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
	* configure: Regenerate.
	* config/sol2.h (TARGET_SOLARIS): Define.
	(PUSHSECTION_FORMAT): Remove.
	(SECTION_NAME_FORMAT): Define.
	* config/sol2.c: Include hashtab.h.
	(solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
	expansion, using SECTION_NAME_FORMAT.
	(solaris_comdat_htab): New variable.
	(struct comdat_entry): Define.
	(comdat_hash): New function.
	(comdat_eq): New function.
	(solaris_elf_asm_comdat_section): New function.
	(solaris_define_comdat_signature): New function.
	(solaris_code_end): New function.
	* config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
	(solaris_code_end): Declare.
	* config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
	* config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
	solaris_code_end.
	(i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
	Remove ATTRIBUTE_UNUSED.
	[!USE_GAS]: Call solaris_elf_asm_comdat_section for
	SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
	* config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
	* config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
	* config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
	(PUSHSECTION_FORMAT): Remove.
	(SECTION_NAME_FORMAT): Redefine.

2011-05-19  Kai Tietz  <ktietz@redhat.com>

	* tree-cfg.c (verify_gimple_assign_binary): Barf on
	TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
	(gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.

2011-05-19  Anatoly Sokolov  <aesok@post.ru>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.

2011-05-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48985
	* tree-object-size.c (addr_object_size): If the pointed-to
	variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.

2011-05-19  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Compare names of
	the types themselves.
	(iterative_hash_gimple_type): And hash them that way.
	(gimple_register_type_1): If we register a main variant properly
	initialize the leader to ourselves.

2011-05-19  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
	get_loop_invariant_expr_id.
	(get_loop_invariant_expr_id): Use get_expr_id.
	(parm_decl_cost): New function.
	(determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
	Improve bound cost estimation.  Use different inv_expr_id for elim and
	express cases.

2011-05-19  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
	cost_base.cost == 0.

2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49002
	* config/i386/sse.md
	(avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
	load cast.

2011-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49039
	* tree-vrp.c (extract_range_from_binary_expr): For
	MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
	return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].

2011-05-18  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.

2011-05-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
	(*tls_global_dynamic_64): Ditto.
	(*tls_local_dynamic_base_32_gnu): Ditto.
	(*tls_local_dynamic_base_64): Ditto.
	(tls_initial_exec_64_sun): Ditto.

2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>

	* doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
	* config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
	bf592-none.
	* config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
	* config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
	* config/bfin/bfin.c (bfin_cpus): Add bf592.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	__ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
	* config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
	* config/bfin/elf.h (LIB_SPEC): Add bf592.

2011-05-18  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm-opts.h (enum arm_fp16_format_type, enum
	arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
	* config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
	target_thread_pointer, arm_structure_size_boundary, struct
	float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
	struct abi_name, arm_all_abis): Remove.
	(arm_option_override) Don't process most enumerated option values here.
	Don't process target_fpe_name here.  Work with integer not string for
	structure size boundary; use separate diagnostics for each case.
	* config/arm/arm.h (enum float_abi_type, enum
	arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
	to arm-opts.h.
	(arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
	arm_structure_size_boundary): Remove.
	* config/arm/arm.opt (mabi=): Use Enum and Init.
	(arm_abi_type): New Enum and EnumValue entries.
	(mfloat-abi=): Use Enum and Init.
	(float_abi_type): New Enum and EnumValue entries.
	(mfp=, mfpe=): Replace by separate Alias entries for each argument.
	(mfp16-format=): Use Enum and Init.
	(arm_fp16_format_type): New Enum and EnumValue entries.
	(mstructure-size-boundary=): Use UInteger and Init.
	(mtp=): Use Enum and Init.
	(arm_tp_type): New Enum and EnumValue entries.

2011-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49018
	* gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
	gimple_has_side_effects.

2011-05-18  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_register_type_1): New function, split out from ...
	(gimple_register_type): ... here.  Avoid infinite recursion.

2011-05-18  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/41881
	* tree-vectorizer.h (struct _loop_vec_info): Add new field
	reduction_chains along with a macro for its access.
	* tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
	(destroy_loop_vec_info): Free reduction chains.
	(vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
	(vect_is_slp_reduction): New function.
	(vect_is_simple_reduction_1): Call vect_is_slp_reduction.
	(vect_create_epilog_for_reduction): Support SLP reduction chains.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
	definition types for reduction chains.
	(vect_supported_load_permutation_p): Don't allow permutations for
	reduction chains.
	(vect_analyze_slp_instance): Support reduction chains.
	(vect_analyze_slp): Try to build SLP instance from reduction chains.
	(vect_get_constant_vectors):  Handle reduction chains.
	(vect_schedule_slp_instance): Mark the first statement of the
	reduction chain as reduction.

2011-05-18  Ira Rosen  <ira.rosen@linaro.org>

	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
	names for group elements access.
	* tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
	reduction chains as well.  Remove data reference and interleaving
	related words from the fields names.
	* tree-vect-loop.c (vect_transform_loop): Use new names for group
	elements access.
	* tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
	vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
	vect_update_interleaving_chain, vect_same_range_drs,
	vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
	vect_verify_datarefs_alignment, vector_alignment_reachable_p,
	vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
	vect_analyze_group_access, vect_analyze_data_ref_access,
	vect_create_data_ref_ptr, vect_transform_strided_load,
	vect_record_strided_load_vectors): Likewise.
	* tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
	vect_model_load_cost, vectorizable_store, vectorizable_load,
	vect_remove_stores, new_stmt_vec_info): Likewise.
	* tree-vect-slp.c (vect_build_slp_tree,
	vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.

2011-05-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48989
	* tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
	operand verification.
	(verify_gimple_assign_binary): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Preserve conversions
	to non-1-precision BOOLEAN_TYPEs.

2011-05-18  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.

2011-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/49000
	* tree-ssa.c (execute_update_addresses_taken): Call
	maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
	be rewritten and decl has been marked for renaming, reset
	the debug stmt.

2011-05-17  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (ix86_valid_target_attribute_tree): Use
	enum_opts_set when testing if attributes have set -mfpmath=.

2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_handle_option): Remove unused variable.

2011-05-17  Uros Bizjak  <ubizjak@gmail.com>

	* ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
	info->entry with 0
	* tree-inline.c (maybe_inline_call_in_expr):  Initialize
	id.transform_lang_insert_block with NULL.

2011-05-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
	(output_fp_compare): Change args 3 and 4 to bool.
	(ix86_expand_call): Change arg 6 to bool.
	(ix86_attr_length_immediate_default): Change arg 2 to bool.
	(ix86_attr_length_vex_default): Change arg 3 to bool.
	* config/i386/i386.md: Update all uses.
	* config/i386/i386.c: Ditto.
	(ix86_flags_dependent): Change return type to bool.

2011-05-17  Richard Guenther  <rguenther@suse.de>

	* gimple.c (type_hash_pair_compare): Fix comparison.

2011-05-17  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_gimple_type): Simplify singleton
	case some more, fix final hash value of the non-singleton case.

2011-05-17  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/49013
	Revert
	2011-05-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Use names of the
	type itself, not its main variant.
	(iterative_hash_gimple_type): Likewise.

2011-05-17  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_register_canonical_type): Use the main-variant
	leader for computing the canonical type.

2011-05-17  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_memory_move_cost): Include cost of register
	moves.

	* config/rx/rx.md: Add peephole to remove redundant extensions
	after loads.
	(bitset_in_memory): Use rx_restricted_mem_operand.
	(bitinvert_in_memory): Likewise.
	(bitclr_in_memory): Likewise.

2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md: Add peepholes to match a register move followed
	by a comparison of the moved register.  Replace these with an
	addition of zero that does both actions in one instruction.

2011-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/48986
	* config/i386/sync.md (sync_old_add<mode>): Relax operand 2
	predicate to allow CONST_INT.
	(*sync_old_add_cmp<mode>): New insn and peephole2 for it.

2011-05-16  Joseph Myers  <joseph@codesourcery.com>

	* opts-common.c (opt_enum_arg_to_value): New.
	* opts.h (opt_enum_arg_to_value): Declare.
	* config/i386/i386.opt (fpmath): Remove.
	(mfpmath=): Use Enum, Init and Save.
	(fpmath_unit): New Enum and EnumValue entries.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Update field
	name for function fpmath state.
	* config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
	* config/i386/i386.c: Include diagnostic.h.
	(ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
	(ix86_target_string): Take enum fpmath_unit value instead of string.
	(ix86_debug_options): Update call to ix86_target_string.
	(ix86_option_override_internal): Don't process fpmath strings here.
	(x86_function_specific_save, ix86_function_specific_restore):
	Don't handle fpmath state specially.
	(ix86_function_specific_print): Pass fpmath state to
	ix86_target_string instead of printing in this function.
	(ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
	Handle enum attributes.
	(IX86_ATTR_ENUM, ix86_opt_enum): New.
	(ix86_valid_target_attribute_tree): Update option_strings
	handling.  Handle fpmath as enum option.
	(ix86_can_inline_p): Update field names for function fpmath state.
	(ix86_expand_builtin): Update call to ix86_target_string.
	* config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
	(ix86_fpmath): Remove.
	* config/i386/t-i386 (i386.o): Update dependencies.

2011-05-16  Joseph Myers  <joseph@codesourcery.com>

	PR preprocessor/48677
	* cppspec.c (lang_specific_driver): Set new_decoded_options[0]
	from decoded_options[0], not from itself.

2011-05-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (z): New constraint.
	* config/i386/i386.c (c): New mode attribute.
	(*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
	*call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
	constraint for operand 0.
	(*call_vzeroupper): Ditto.
	(*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
	(*call_rex64_ms_sysv_vzeroupper): Ditto.
	(*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
	Use "lzm" constraint for operand 0.
	(*call_pop_vzeroupper): Ditto.
	(*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
	*sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
	constraint for operand 0.
	(*sibcall_vzeroupper): Ditto.
	(*sibcall_rex64_ms_sysv): Ditto.
	(*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
	(*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
	*sibcall_pop_1.  Use "Uz" constraint for operand 0.
	(*sibcall_pop_vzeroupper): Ditto.
	(*call_value): Merge insn pattern from *call_value_0, *call_value_1,
	*call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
	mode iterator.  Use "<c>zm" constraint for operand 1.
	(*call_value_vzeroupper): Ditto.
	(*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
	for operand 1.
	(*call_value_rex64_ms_sysv_vzeroupper): Ditto.
	(*call_value_pop): Merge insn pattern from *call_value_pop_0 and
	*call_value_pop_1.  Use "lzm" constraint for operand 1.
	(*call_value_pop_vzeroupper): Ditto.
	(*sibcall_value): Merge insn pattern from *sibcall_value_0,
	*sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
	mode iterator.  Use "Uz" constraint for operand 1.
	(*sibcall_value_vzeroupper): Ditto.
	(*sibcall_value_rex64_ms_sysv): Ditto.
	(*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
	(*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
	constraint for operand 1.
	(*sibcall_value_pop_vzeroupper): Ditto.
	(*tls_global_dynamic_64): Use constant_call_address_operand predicate
	and "z" constraint for operand 2.
	(*tls_global_dynamic_32_gnu): Ditto.
	(*tls_local_dynamic_base_32_gnu): Ditto.
	(*tls_local_dynamic_base_64): Ditto.
	(*tls_local_dynamic_32_once): Ditto.
	* config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
	Update all callers.
	* config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.

2011-05-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Use names of the
	type itself, not its main variant.
	(iterative_hash_gimple_type): Likewise.

2011-05-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_gimple_type): Re-instantiate change to
	always visit pointer target and function result and argument types.

2011-05-16  Jason Merrill  <jason@redhat.com>

	PR c++/48999
	* tree-inline.c (copy_statement_list): Put back recursion.

2011-05-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/27663
	PR target/41076
	* config/avr/predicates.md (const_8_16_24_operand): New predicate.
	* config/avr/avr.md ("*ior<mode>qi.byte0",
	"*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.

2011-05-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/45099
	* config/avr/avr.c (avr_function_arg_advance): Error if a fixed
	register is needed for a function argument.

2011-05-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (struct type_hash_pair): New type.
	(type_hash_pair_compare): New function.
	(iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.

2011-05-16  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.

2011-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (floating point move splitters): Fix
	usage of standard_80387_constant_p.
	* config/i386/i386.c (ix86_preferred_reload_class): Ditto.

2011-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal): Simplify insn condition.

2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
	(fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
	(tree_ssa_lim_finalize): Likewise.

2011-05-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraint.md (Yd, Yx): New register constraints.
	* config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
	Yd conditional register constraint.
	(*movtf_internal): Use standard_sse_constant_opcode.
	(*movxf_internal): Merge with *movxf_internal_nointeger.  Use
	Yx conditional register constraint.
	(*movdf_internal): Merge with *movdf_internal_nointeger.  Use
	Yd conditional register constraint.  Use standard_sse_constant_p to
	check for valid SSE constants and call standard_sse_constant_opcode to
	output SSE insn.
	(*movsf_internal): Use standard_sse_constant_p to check for valid SSE
	constants and call standard_sse_constant_opcode to output SSE insn.
	* config/i386/i386.c (ix86_option_ovverride_internal): Set
	TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
	optimize_size is set.
	(standard_sse_constant_opcode): Output conditional AVX insn templates.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-Ofast): Also enables -fstack-arrays.

2011-05-13  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_cst_from_jfunc): New function.
	* ipa-prop.h (ipa_cst_from_jfunc): Declare.
	* ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
	(evaluate_conditions_for_ipcp_clone): Removed.
	(estimate_ipcp_clone_size_and_time): Accept vector of known constants.
	* ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.

2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
	* regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
	lieu of MAY_HAVE_DEBUG_STMTS.
	* tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
	debug statements if !MAY_HAVE_DEBUG_STMTS.

2011-05-13  Martin Thuresson  <martint@google.com>

	PR gcov-profile/47793
	* libgcov.c (gcov_exit): Support relative profile paths.
	* doc/invoke.texi (-fprofile-dir): Update for above change.

2011-05-13  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_canonical_types_compatible_p): Do not use
	type-pair caching, do not compare hashes.

2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>

	PR middle-end/48965
	* tree-cfg.c (edge_to_cases_cleanup): Return true.
	(verify_expr) [CASE_LABEL_EXPR]: Add checking.

2011-05-13  Kai Tietz  <ktietz@redhat.com>

	* gimplify.c (gimplify_expr): Make sure operand is boolified.
	* tree-cfg.c (verify_gimple_assign_unary): Check for boolean
	compatible type for TRUTH_NOT_EXPR.

2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_save_reg): Change return type to bool.
	(ix86_hard_regno_mode_ok): Change return value to bool.  Use
	can_create_pseudo_p ().

2011-05-13  Richard Guenther  <rguenther@suse.de>

	PR lto/48978
	* gimple.c (iterative_hash_gimple_type): Revert change in
	pointer target and function result and argument hashing.

2011-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
	(*movxf_internal_nointeger): Ditto.
	(*movdf_internal_rex64): Ditto.
	(*movdf_internal): Ditto.
	(*movdf_internal_nointeger): Ditto.
	(*movsf_internal): Ditto.
	(sincos splitters): Use can_create_pseudo ().

2011-05-13  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386-opts.h: New.
	* gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
	ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
	ix86_section_threshold): Remove.
	(ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
	OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
	OPT_mbranch_cost_.
	(ix86_option_override_internal): Don't decode strings for options
	other than -march=, -mtune= and -mfpmath=.  Don't allow for
	__attribute__ uses in remaining diagnostics for options with
	string arguments.  Don't check for integer arguments being negative.
	* gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
	enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
	(ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
	ix86_branch_cost, ix86_section_threshold): Remove.
	* gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
	HeaderInclude.
	(malign-functions=, malign-jumps=, malign-loops=): Use UInteger
	but not Var.
	(masm=): Use Enum and Init.
	(asm_dialect): New Enum and EnumValue entries.
	(mbranch-cost=): Use UInteger.
	(mlarge-data-threshold=): Use UInteger and Init.
	(mcmodel=): Use Enum and Init.
	(cmodel): New Enum and EnumValue entries.
	(mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
	(mpreferred-stack-boundary=, mincoming-stack-boundary=,
	mregparm=): Use UInteger.
	(mstringop-strategy=): Use Enum and Init.
	(stringop_alg): New Enum and EnumValue entries.
	(mtls-dialect=): Use Enum and Init.
	(tls_dialect): New Enum and EnumValue entries.
	(mabi=): Use Enum and Init.
	(calling_abi): New Enum and EnumValue entries.
	(mveclibabi=): Use Enum and Init.
	(ix86_veclibabi): New Enum and EnumValue entries.

2011-05-13  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
	* config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.

2011-05-13  Kai Tietz  <ktietz@redhat.com>

	PR middle-end/48984
	* gimplify.c (gimplify_expr): Check for boolean_type_node instead
	for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
	(gimple_boolify): Check for cast for boolean_type_node instead for
	BOOLEAN_TYPE.

2011-05-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48172
	* tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
	multiplying by number of iterations for equal step.
	(vect_create_cond_for_alias_checks): Likewise.

2011-05-13  Andreas Schwab  <schwab@redhat.com>

	* configure.ac: Use AS_HELP_STRING throughout.
	* configure: Regenerate.

2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_emit_restore_sse_regs_using_mov): Likewise.

2011-05-12  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
	SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
	(RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
	* config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
	RTX_OK_FOR_OLO10_P): ...here.
	(sparc_mode_dependent_address_p): Use symbolic_operand instead of
	SYMBOLIC_CONST.

2011-05-12  Kai Tietz  <ktietz@redhat.com>

	* gimplify.c (gimple_boolify): Re-boolify expression
	arguments even if expression type is of kind BOOLEAN_TYPE.
	(gimplify_boolean_expr): Removed.
	(gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
	and XOR. Additional take care that we keep expression's type.
	* tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
	of TRUTH_AND|OR|XOR_EXPR.

2011-05-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48975
	* tree-if-conv.c (combine_blocks): Call free_bb_predicate
	on all bbs here and free and clear ifc_bbs at the end.

2011-05-12  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
	NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
	until after simple checks.
	(gimple_types_compatible_p): Likewise.
	(iterative_hash_gimple_type): Always hash pointer targets
	and function return and argument types.
	(iterative_hash_canonical_type): Do not hash TYPE_QUALS,
	hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
	(gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
	handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
	completely in the simple compare section.
	(gimple_register_canonical_type): Query the cache again after
	registering.

2011-05-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48172
	* tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
	the number of iterations from the segment size calculation.
	(vect_create_cond_for_alias_checks): Adjust.

2011-05-12  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48967
	* var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
	if validate_subreg fails.

2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
	accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
	early.

2011-05-12  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
	(ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
	created builtin into rx_builtins array.
	(rx_builtin_decl): New function.
	(TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.

2011-05-12  DJ Delorie  <dj@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
	* config/rx/rx.c (CC_FLAG_FP): Fix comment.
	(rx_is_legitimate_address): Add pre-decrement and post-increment
	addressing in HImode and QImode.  Fix test for out of range
	REG+INT addressing.
	(rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
	(rx_align_for_label): Test label before extracting its usage count.
	(rx_adjust_insn_lengths): Fix selection of insn codes.
	(TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.

2011-05-11  Jason Merrill  <jason@redhat.com>

	* tree.c (type_hash_canon): Use struct tree_type_non_common.

2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
	reindent the subsequent block.

2011-05-11  Satoru Takabayashi  <satorux@google.com>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* doc/install.texi (Configuration): Document --with-linker-hash-style.
	* gcc.c (init_spec): Handle LINKER_HASH_STYLE.
	* config.in: Add LINKER_HASH_STYLE.
	* configure.ac: Add --with-linker-hash-style.
	* configure: Regenerate.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48964
	* gimple.c (iterative_hash_canonical_type): Fix typo.

2011-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (legitimize_tls_address)
	<case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
	expanders directly for TARGET_GNU2_TLS.  Determine pic and
	__tls_get_addr symbol reference here.  Update call to
	gen_tls_global_dynamic_{32,64} for added arguments.
	<case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
	expanders directly for TARGET_GNU2_TLS.  Determine
	__tls_get_addr symbol reference here.  Update call to
	gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
	unique UNSPEC REG_EQUIV to libcall block.
	(ix86_tls_get_addr): Declare static.
	* config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
	* config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
	Do not determine pic and __tls_get_addr symbol reference here. Do not
	call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
	(tls_local_dynamic_base_32): Ditto for operands 1 and 2.
	(tls_global_dynamic_64): Add operand 2.  Do not determine
	__tls_get_addr symbol reference here.  Do not call
	gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
	(tls_local_dynamic_base64): Ditto for operand 1.

2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>

	* function.c (expand_function_start): Initialize stack_check_probe_note
	only if the generic stack checking mechanism is used.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15256
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
	(A & B) | C, combine (A op CST1) op CST2.
	(tree_ssa_forward_propagate_single_use_vars): Only bother to
	visit assigns that have uses.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
	* lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
	(unpack_ts_type_common_value_fields): ...this.  Update comment.
	(unpack_value_fields): Adjust for renaming.
	(lto_input_ts_type_tree_pointers): Split into...
	(lto_input_ts_type_common_tree_pointer): ...this and...
	(lto_input_ts_type_non_common_tree_pointers): ...this.
	(lto_input_tree_pointers): Adjust for above split.
	* lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
	(pack_ts_type_common_value_fields): ...this.  Update comment.
	(lto_output_ts_type_tree_pointers): Split into...
	(lto_output_ts_type_common_tree_pointers): ...this and...
	(lto_output_ts_type_non_common_tree_pointers): ...this.
	(lto_output_tree_pointers): Adjust for above split.
	* lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
	TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
	* stor-layout.c (vector_type_mode): Adjust location of mode field.
	* tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
	Define.
	(struct tree_type): Split into...
	(struct tree_type_common: ...this and...
	(struct tree_type_with_lang_specific): ...this and...
	(struct tree_type_non_common): ...this.  Adjust accessor macros
	accordingly.
	(TYPE_VALUES_RAW): Define.
	(union tree_node): Update for above changes.
	* tree.c (tree_node_structure_for_code) [tcc_type]: Return
	TS_TYPE_NON_COMMON.
	(initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
	Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
	(tree_code_size) [tcc_type]: Use struct tree_type_non_common.
	* treestructu.def (TS_TYPE): Remove.
	(TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
	Define.

2011-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48159
	* tree-ssa.c (reset_debug_uses): New function.
	* tree-flow.h (reset_debug_uses): New prototype.
	* tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
	* tree-loop-distribution.c (generate_loops_for_partition): Call
	reset_debug_uses on the stmts that will be removed.  Keep around
	all debug stmts, don't count them as bits in partition bitmap.
	(generate_builtin): Don't count debug stmts or labels as bits in
	partition bitmap.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_type_hash_1): Merge with ...
	(gimple_type_hash): ... this.
	(gtc_visit): Remove mode parameter and simplify accordingly.
	(gimple_types_compatible_p_1): Likewise.
	(gimple_types_compatible_p): Likewise.
	(iterative_hash_gimple_type): Likewise.
	(visit): Likewise.
	(gimple_type_eq): Adjust.

2011-05-11  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
	enters the branch create an anti edge in the opposite direction
	to prevent the creation of reg-moves.
	* modulo-sched.c: Adjust comment to reflect the fact we are
	scheduling closing branch.
	(PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
	(stage_count): New field in struct partial_schedule.
	(calculate_stage_count): New function.
	(normalize_sched_times): Rename to reset_sched_times and handle
	incrementing the sched time of the nodes by a constant value
	passed as parameter.
	(duplicate_insns_of_cycles): Skip closing branch.
	(sms_schedule_by_order): Schedule closing branch.
	(ps_insn_find_column): Handle closing branch.
	(sms_schedule): Call reset_sched_times and adjust the code to
	support scheduling of the closing branch.
	(ps_insert_empty_row): Update calls to normalize_sched_times
	and rotate_partial_schedule functions.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48953
	* tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.

2011-05-11  Joseph Myers  <joseph@codesourcery.com>

	* opts.c (finish_options): Move warning settings from process_options.
	* toplev.c (process_options): Move warning settings to finish_options.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/18041
	* tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
	(simplify_bitwise_binary): ... this.  Handle operand conversions
	by applying them to the result instead.
	(tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.

2011-05-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_canonical_types_compatible_p): Split out
	from gimple_types_compatible_p and friends.  Do not recurse
	to pointed-to types.
	(gimple_canonical_type_eq): Use it.
	(iterative_hash_canonical_type): Split out from
	iterative_hash_gimple_type and friends.  Do not recurse
	to pointed-to types.
	(gimple_canonical_type_hash): Use it, allocate the hash here.

2011-05-11  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
	recognizing doloop.

2011-05-11  Revital Eres  <revital.eres@linaro.org>

	* loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
	instead of PREV_INSN.

2011-05-11  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (sms_schedule): Support new form of doloop pattern
	* loop-doloop.c (doloop_condition_get): Likewise.
	* config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
	(doloop_end): New.
	* config/arm/arm.md (*addsi3_compare0): Remove "*".

2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.def (CASE_LABEL_EXPR): Add an operand.
	* tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.

2011-05-10  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (c_override_global_bindings_to_false): Remove.
	(global_bindings_p): Don't check
	c_override_global_bindings_to_false.
	* c-tree.h (c_override_global_bindings_to_false): Remove.
	* c-typeck.c (composite_type): Don't set
	c_override_global_bindings_to_false.

2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48857, 48495
	* config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
	(VSX_MODE): Ditto.
	(VSX_MOVE_MODE): Ditto.
	(ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
	VSX vector types.  Add V2DImode.
	(HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
	ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
	(MODES_TIEABLE_P): Ditto.

	* config/rs6000/rs6000.c (rs6000_emit_move): Use
	ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
	VSX_VECTOR_MODE.
	(init_cumulative_args): Ditto.
	(rs6000_function_arg_boundary): Ditto.
	(rs6000_function_arg_advance_1): Ditto.
	(rs6000_function_arg): Ditto.
	(rs6000_function_ok_for_sibcall): Ditto.
	(emit_frame_save): Ditto.
	(rs6000_function_value): Ditto.
	(rs6000_libcall_value): Ditto.

2011-05-10  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	i386/darwin-lib.h to $libgcc_tm_file.
	* config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.

2011-05-10  Joseph Myers  <joseph@codesourcery.com>

	* doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.

2011-05-10  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
	* config/rs6000/rs6000-tables.opt: New file (generated).
	* config.gcc (powerpc*-*-*, rs6000*-*-*): Add
	rs6000/rs6000-tables.opt to extra_options.
	* config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
	* config/rs6000/rs6000.c (rs6000_select): Remove.
	(processor_target_table): Move contents to rs6000-cpus.def.
	(darwin_rs6000_override_options): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	(rs6000_option_override_internal): Likewise.
	(rs6000_handle_option): Don't assert that global structures are in
	use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
	(rs6000_default_cpu): New variable.
	(rs6000_file_start): Set it instead of local default_cpu.  Check
	rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
	global_options_set.x_rs6000_tune_index instead of rs6000_select.
	(rs6000_darwin_file_start): Check rs6000_default_cpu and
	global_options_set.x_rs6000_cpu_index instead of rs6000_select.
	* config/rs6000/rs6000.h (struct rs6000_cpu_select,
	rs6000_select): Remove.
	* config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
	Remove.
	(mcpu=, mtune=): Use Var, Init, Enum and Save.
	* config/rs6000/t-rs6000
	($(srcdir)/config/rs6000/rs6000-tables.opt): New.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.

2011-05-10  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (libgcc_tm_file): Define instead of including files
	from ../../libgcc/config/ in tm_file.
	* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
	* configure: Regenerate.
	* Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
	libgcc_tm.h, cs-libgcc_tm.h): New.
	(TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
	(clean): Remove libgcc_tm.h.
	* config/arm/symbian.h (RENAME_LIBRARY): Remove.
	* mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
	* system.h (DECLARE_LIBRARY_RENAMES): Poison.

2011-05-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/48896
	* config/avr/avr.c (avr_ret_register): Return unsigned int
	instead of int.
	(avr_function_value): Mark fn_decl_or_type as unused, don't pass
	it to avr_libcall_value.
	avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
	expand_expr.
	(avr_expand_binop_builtin): Ditto.
	(avr_expand_unop_builtin): Ditto.

2011-05-10  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
	(LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
	* config/rx/rx.c (rx_align_for_label): Add label and
	uses_threshold parameters.  Do not align when the label is not
	used enough.
	* config/rx/rx-protos.h (rx_align_for_label): Update prototype.

2011-05-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (combine_conversions): Pattern-match
	a series of conversions and apply foldings similar to what
	fold-const does.
	(tree_ssa_forward_propagate_single_use_vars): Call it.

2011-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48611
	PR tree-optimization/48794
	* tree-eh.c (remove_unreachable_handlers): Don't remove regions
	referenced from RESX or EH_DISPATCH arguments.

	PR debug/48928
	* dfp.c (decimal_to_decnumber): Handle conversion from
	dconst{1,2,m1,half}.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
	for !flag_prefer_avx128.
	(ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.

2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_range_test): Pass LOC to build_range_check.
	(fold_ternary_loc): Use expr_location_or.

2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/48853
	* dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
	POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
	Pmode and mem_mode is not VOIDmode.

2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
	TYPE_QUAL_RESTRICT): Convert to enum.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
	(const_pow2_1_to_8_operand): Ditto.
	(const_pow2_1_to_128_operand): Ditto.
	(const_pow2_1_to_32768_operand): Ditto.
	* config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
	const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
	in insn constraint to check integer value of operand 3.
	* config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.

	(PINSR_MODE): New mode iterator.
	(sse2p4_1): New mode attribute.
	(<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
	sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
	iterator.  Use const_int_operand instead of
	const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
	exact_log2 in insn constraint to check integer value of operand 3.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (blendbits): Remove mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
	Check integer value of operand 3 in insn constraint.

2011-05-09  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
	for diagnostics.
	(lto_symtab_merge): Likewise.  Do not register types here.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	* gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
	* gimple.c (enum gtc_mode): Declare.
	(gimple_types_compatible_p): Make static.

2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (TD/TF mem to reg move splitter): Make the
	temporary register to match Pmode.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
	and *vec_concatv4si_1_avx.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/48927
	* ira-conflicts.c (commutative_constraint_p): Use
	recog_data.alternative_enabled_p to disable alternatives where
	"enabled" attribute is false.
	(get_dup_num): Ditto.
	* ira-lives.c (single_reg_class): Ditto.
	(ira_implicitly_set_insn_hard_regs): Ditto.

2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
	(dataflow_set_preserve_mem_locs): Likewise.

2011-05-09  Philipp Thomas  <pth@suse.de>

	* config/mep/mep.c (mep_validate_vliw): Syntax description
	should not be translated.

2011-05-09  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
	* config/mips/mips-tables.opt: New file (generated).
	* config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
	* config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
	MIPS_ARCH_OPTION_NATIVE): Define.
	* config/mips/mips.c (mips_cpu_info_table): Move contents to
	mips-cpus.def.
	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
	mips_parse_cpu): Remove.
	(mips_cpu_info_from_opt, mips_default_arch): New.
	(mips_handle_option): Don't assert that global structures are in
	use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
	(mips_option_override): Use new variables and functions to set
	state of these options.  Use strcmp to check for individual CPU names.
	* config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
	definition.
	* config/mips/mips.opt (march=): Use ToLower and Enum.
	(mips): Use ToLower, Enum and Var.
	(mtune=): Use ToLower and Enum.
	* config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.

2011-05-08  Jan Hubicka  <jh@suse.cz>

	* gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
	Arrange type pairs to be UID ordered.
	(gimple_lookup_type_leader): Make inline.

2011-05-09  Nick Clifton  <nickc@redhat.com>

	PR target/48899
	* config/iq2000/iq2000.opt (iq2000_tune): Initialise to
	PROCESSOR_DEFAULT.

	PR target/48897
	* config/mn10300/mn10300.c (extract_bundle): Remove spurious local
	variable 's'.

2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>

	* combine.c (simplify_comparison): Abstract out parts into...
	(simplify_compare_const): ... new function.
	(try_combine): Generalize parallel arithmetic/compare combining
	to call simplify_compare_const() and CANONICALIZE_COMPARE().

2011-05-08  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
	(cgraph_create_virtual_clone): Call hooks once virtual clone
	is finished.
	* cgraph.h (cgraph_clone_node): Update prototype.
	* ipa-cp.c (ipcp_estimate_growth): Use
	estimate_ipcp_clone_size_and_time.
	* ipa-inline-transform.c (clone_inlined_nodes): Update.
	* lto-cgraph.c (input_node): Update.
	* ipa-inline.c (recursive_inlining): Update.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
	(evaluate_conditions_for_known_args): Break out from ...
	(evaluate_conditions_for_edge): ... here.
	(evaluate_conditions_for_ipcp_clone): New function.
	(inline_node_duplication_hook): Update clone summary based
	on parameter map.
	(estimate_callee_size_and_time): Rename to ...
	(estimate_node_size_and_time): take NODE instead of EDGE;
	take POSSIBLE_TRUTHS as argument.
	(estimate_callee_size_and_time): Update.
	(estimate_ipcp_clone_size_and_time): New function.
	(do_estimate_edge_time): Update.

2011-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48908
	PR middle-end/48905
	* expmed.c (expand_shift_1): Compute adjusted constant shift
	amount manually.

2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/avr/avr.c (print_operand_address): Fix invalid RTL access.

2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/rs6000.c (output_profile_hook): Fix thinko.

2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi (-fuse-linker-plugin): Improve grammar.

2011-05-07  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (inline_call): Account when program size
	decreases.
	* ipa-inline.c (relative_time_benefit): New function.
	(edge_badness): Reorganize to be power 2 based; fix thinko when
	computing badness for negative growth; update comments to match
	reality; better dumps.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
	type to bool and adjust comment.
	* fold-const.c (fold_range_test): Adjust call to global_bindings_p.
	(fold_mathfn_compare): Remove calls to global_bindings_p.
	(fold_inf_compare): Likewise.
	* stor-layout.c (variable_size): Adjust call to global_bindings_p.
	* c-tree.h (global_bindings_p): Adjust prototype.
	* c-decl.c (global_bindings_p): Return bool and simplify.

2011-05-07  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/48837
	* tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
	when accumulator transformation is performed.

2011-05-06  Jan Hubicka  <jh@suse.cz>

	* i386.h (ix86_tune_indices): Add
	X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
	(TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
	* i386.c (initial_ix86_tune_features): Add
	X86_SOFTARE_PREFETCHING_BENEFICIAL.
	(software_prefetching_beneficial_p): Remove predicate.
	(ix86_option_override_internal): Use new macro.

2011-05-06  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (update_callee_keys): Don't reset node growth cache.

2011-05-06  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_add_thunk): Create real function node instead
	of alias node; finalize it and mark needed/reachale; arrange visibility
	to be right and add it into the corresponding same comdat group list.
	(dump_cgraph_node): Dump thunks.
	* cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
	cgraph_function_with_gimple_body_p,
	cgraph_first_function_with_gimple_body,
	cgraph_next_function_with_gimple_body): New functions.
	(FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
	New macros.
	* ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
	(ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
	* cgraphunit.c (cgraph_finalize_function): Only look into possible
	devirtualization when optimizing.
	(verify_cgraph_node): Verify thunks.
	(cgraph_analyze_function): Analyze thunks.
	(cgraph_mark_functions_to_output): Output thunks only in combination
	with function they are assigned to.
	(assemble_thunk): Turn thunk into non-thunk; don't try to turn
	alias into normal node.
	(assemble_thunks): New functoin.
	(cgraph_expand_function): Use it.
	* lto-cgraph.c (lto_output_node): Stream thunks.
	(input_overwrite_node): Stream in thunks.
	* ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
	* lto-streamer-out.c (lto_output): Do not try to output thunk's body.
	* ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
	* ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
	(inline_analyze_function): Do not care about thunk jump functions.
	(inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
	* ipa-prop.c (ipa_prop_write_jump_functions): Use
	cgraph_function_with_gimple_body_p.
	* passes.c (do_per_function_toporder): Use
	cgraph_function_with_gimple_body_p.
	(execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
	(ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
	(function_called_by_processed_nodes_p): Likewise.

2011-05-06  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
	rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
	entries.
	(mabi=): Replace with separate entries for mabi=altivec,
	mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
	mabi=ieeelongdouble and mabi=ibmlongdouble.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
	check for -mabi=spe without SPE ABI support here.
	(rs6000_handle_option): Replace OPT_mabi_ handling with
	OPT_mabi_altivec and OPT_mabi_spe handling.

2011-05-06  Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (contains_subprogram_definition): New function.
	(should_move_die_to_comdat): Call it.

2011-05-06  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (create_block_for_threading): Do not call
	remove_ctrl_stmt_and_useless_edges.
	(create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
	(fixup_template_block, thread_single_edge): Likewise.
	(mark_threaded_blocks): Use THREAD_TARGET.

2011-05-06  Alan Modra  <amodra@gmail.com>

	PR target/48900
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
	const0_rtx as the arg to the dummy __tls_get_addr libcall.

2011-05-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
	constraint modifier to "r".

2011-05-06  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
	fall through for OPT_mcmodel_.

2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_asm_trampoline_template): Comment
	instruction sizes.
	(s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.

2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/47930
	* config/arm/arm.opt (marm): Document it.
	(mthumb): Reject negative variant.

2011-05-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/48898
	* config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
	Fix typo in "ccvt" variable name.

2011-05-06  Tristan Gingold  <gingold@adacore.com>

	PR target/48895
	* config/vms/vms-ar.c (main): Remove cwd variable.

2011-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48902
	* var-tracking.c (prepare_call_arguments): Move else before #endif.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* except.c (sjlj_emit_dispatch_table): Call build_case_label.
	* gimplify.c (gimplify_switch_expr): Likewise.
	* omp-low.c (expand_omp_sections): Likewise.
	* tree-eh.c (lower_try_finally_switch): Likewise.
	(lower_eh_dispatch): Likewise.
	* tree.h (build_case_label): Declare.
	* tree.c (build_case_label): Define.

2011-05-05  Jason Merrill  <jason@redhat.com>

	PR c++/40975
	* tree-inline.c (copy_tree_r): Use copy_statement_list.
	(copy_statement_list): Don't recurse.
	* stor-layout.c (copy_self_referential_tree_r): Don't allow
	STATEMENT_LIST.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
	through from -mfpu= handling.
	* config/rs6000/rs6000.opt (mfpu=): Use Var and Init.

2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>

	* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
	POST_MODIFY.

2011-05-05  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
	for 11.31.
	(hppa[12]*-*-hpux11*): Ditto.
	(ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
	* config/ia64/hpux-unix2003.h: New.
	* config/pa/pa-hpux1131.opt: New.
	* config/pa/pa-hpux1131.h: New.
	* config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
	* config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
	* config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.

2011-05-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48853
	* dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
	instead of mode as 3rd argument to recursive call.
	(mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
	emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
	VOIDmode.
	(mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
	don't give up if mode is Pmode and mem_mode is not VOIDmode.
	(mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
	use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.

2011-05-05  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
	parenthesis in D-register case.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* opt-functions.awk (var_type_struct): Handle Enum options.
	* optc-gen.awk: Don't check range of variables of character type.
	* config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
	rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
	rs6000_sdata_name, rs6000_explicit_options): Remove.
	(rs6000_option_override_internal): Check for -malign-power here.
	Use global_options_set instead of rs6000_explicit_options.
	(rs6000_parse_fpu_option): Remove.
	(rs6000_handle_option): Access variables via opts and opts_set
	pointers.  Use error_at and warning_at.  Add fall-through
	comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
	OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
	OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
	OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
	here.  Don't use rs6000_parse_fpu_option.
	* config/rs6000/rs6000.h (fpu_type): Remove declaration.
	* config/rs6000/rs6000.opt (rs6000_long_double_type_size,
	rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
	(mrecip=): Use Var.
	(mspe): Use Var and Save.
	(mtraceback=): Use Enum and Var.
	(rs6000_traceback_type): New Enum and EnumValue entries.
	(mfloat-gprs=): Use Enum, Var and Save.
	(rs6000_float_gprs): New Enum and EnumValue entries.
	(mlong-double-): use Var and Save.
	(msched-costly-dep=, minsert-sched-nops=): Use Var.
	(malign-): Use Enum and Var.
	(rs6000_alignment_flags): New Enum and EnumValue entries.
	(mfpu=): Use Enum.
	(fpu_type_t): New Enum and EnumValue entries.
	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
	definition.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
	(rs6000_cmodel): New Enum and EnumValue entries.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
	global_options_set instead of rs6000_explicit_options.
	* config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
	(mtls-size=): Use Enum and Var.
	(rs6000_tls_size): New Enum and EnumValue entries.

2011-05-05  Michael Matz  <matz@suse.de>

	* config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
	* config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
	* config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
	* config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
	* config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
	* config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
	* config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
	* config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
	* config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
	* config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
	* config/mips/linux.h (ENDFILE_SPEC): Add Ofast.

2011-05-05  Richard Guenther  <rguenther@suse.de>

	* expmed.c (expand_variable_shift): Rename to ...
	(expand_shift_1): ... this.  Take an expanded shift amount.
	For rotates recurse directly not building trees for the shift amount.
	(expand_variable_shift): Wrap around expand_shift_1.
	(expand_shift): Adjust.

2011-05-05  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (create_tmp_var_raw): Don't call build_type_variant.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (get_pending_sizes): Remove prototype.
	(put_pending_size): Likewise.
	(put_pending_sizes): Likewise.
	* stor-layout.c (pending_sizes): Delete.
	(get_pending_sizes): Likewise.
	(put_pending_size): Likewise.
	(put_pending_sizes): Likewise.
	(variable_size): Do not call put_pending_size and tidy up.
	* function.h (struct function): Remove dont_save_pending_sizes_p.
	* lto-streamer-in.c (input_function): Do not stream it.
	* lto-streamer-out.c (output_function): Likewise.
	* tree-inline.c (initialize_cfun): Do not copy it.
	* c-decl.c (store_parm_decls): Do not set it.
	* omp-low.c (create_task_copyfn): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.

2011-05-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
	conditions.
	(*movdf_internal): Ditto.
	(*movdf_internal_nointeger): Ditto.
	(*movsf_internal): Ditto.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (finish_decl): Don't call get_pending_sizes.
	(grokparm): Add parameter expr.  Pass it to grokdeclarator.
	(push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
	(c_variable_size): Remove.
	(grokdeclarator): Use save_expr instead of c_variable_size.  Don't
	call put_pending_sizes.
	(get_parm_info): Add parameter expr.  Use it to set
	arg_info->pending_sizes.
	(store_parm_decls): Use arg_info->pending_sizes instead or calling
	get_pending_sizes.
	* c-parser.c (c_parser_parms_declarator): Update call to
	c_parser_parms_list_declarator.
	(c_parser_parms_list_declarator): Take parameter expr.  Update
	call to push_parm_decl.  Update recursive call.  Don't call
	get_pending_sizes.  Update calls to get_parm_info.
	(c_parser_objc_method_definition): Update calls to
	c_parser_objc_method_decl and objc_start_method_definition.
	(c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
	(c_parser_objc_method_decl): Add parameter expr.  Update call to
	grokparm.
	(c_parser_objc_try_catch_finally_statement): Update call to grokparm.
	* c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
	(get_parm_info, grokparm, push_parm_decl): Update prototypes.

2011-05-05  Michael Hope  <michael.hope@linaro.org>

	PR pch/45979
	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
	__ARM_EABI__ hosts.

2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
	(spu_output_mi_thunk): New function.

2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
	targetm.asm_out.print_operand.
	* config/sol2.c: Include target.h.

2011-05-04  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (reset_edge_caches): New function.
	(update_caller_keys): Add check_inlinablity_for; do not
	reset edge caches; remove now unnecesary loop.
	(update_callee_keys): Add comments; reset node_growth_cache of callee.
	(update_all_callee_keys): Likewise.
	(inline_small_functions): Sanity check cache; update code
	recomputing it.

2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/47612
	* df-problems.c (can_move_insns_across): Don't pick a cc0 setter
	as the last insn of the sequence to be moved.

2011-05-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/48864
	* doc/invoke.texi (Ofast): Document that it
	enables Fortran's -fno-protect-parens.

2011-05-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.

2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (variable_size): Do not issue errors.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* coverage.c (tree_coverage_counter_ref): Use integer_type_node
	for array-ref indices.
	(tree_coverage_counter_addr): Likewise.
	(build_fn_info_type): Use size_int for index types.
	(build_gcov_info): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (check_bitfield_type_and_width): Do not pass NULL
	to build_int_cst.
	* c-typeck.c (really_start_incremental_init): Use bitsize_int
	for constructor indices.
	(push_init_level): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* explow.c (promote_mode): Move variable declarations before code.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_function_type_array): Declare.
	(build_varargs_function_type_array): Declare.
	(build_function_type_vec, build_varargs_function_type_vec): Define.
	* tree.c (build_function_type_array_1): New function.
	(build_function_type_array): New function.
	(build_varargs_function_type_array): New function.

2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-loop.c (vectorizable_reduction): Check reduction cost
	before setting STMT_VINFO_TYPE.

2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
	instead of spu_pass_by_reference.

2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* calls.c (emit_library_call_value_1): Invoke
	promote_function_mode hook on libcall arguments.
	* explow.c (promote_function_mode, promote_mode): Handle TYPE
	argument being NULL.
	* targhooks.c (default_promote_function_mode): Lisewise.
	* config/s390/s390.c (s390_promote_function_mode): Likewise.
	* config/sparc/sparc.c (sparc_promote_function_mode): Likewise.

	* doc/tm.texi: Document that TYPE argument might be NULL.

2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>

	* config/bfin/bfin.c (bfin_cpus): Update silicon revisions.

2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>

	From Bernd Schmidt
	* config/bfin/bfin.md (addsi3): Add an alternative for IREGS.

2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
	(MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
	Move ...
	* mips-tfile.c: ... here.
	Don't include coretypes.h, tm.h, filenames.h.
	(saber_stop): Remove definition and all calls.
	[__SABER__]: Remove.
	(__LINE__): Remove default.
	(Size_t, Ptrdiff_t): Remove definitions.
	Replace by size_t, ptrdiff_t.
	[!MIPS_DEBUGGING_INFO]: Remove.
	(SHASH_SIZE, THASH_SIZE): Remove defaults.
	(progname): Add const.
	(STATIC): Remove.
	Replace all uses by static.
	(ALIGN_SYMTABLE_OFFSET): Remove default.
	* mips-tdump.c: Don't include coretypes.h, tm.h.
	Remove !MIPS_IS_STAB guard.
	* Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
	$(TM_H), filenames.h dependencies.
	(mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.

2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>

	From Jie Zhang
	*config/bfin/bfin.c (bfin_extra_live_on_entry): New.
	(TARGET_EXTRA_LIVE_ON_ENTRY): Define.

2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>

	From Bernd Schmidt
	* config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
	account and save/restore RETS.
	(PROFILE_BEFORE_PROLOGUE): Define.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
	the push insn to use predecrement.

2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>

	From Jie Zhang
	* config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.

2011-05-04  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c: Include cfgloop.h.
	(DUMP): New macro.
	(mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
	Lcc or a FLcc insn into the instruction stream.
	(mn10300_block_contains_call): New function.  Returns true if the
	given basic block contains a CALL insn.
	(mn10300_loop_contains_call_insn): New function.  Returns true if
	the given loop contains a CALL insn.
	(mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
	to use the SETLB and Lcc or FLcc insns.
	(mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
	(TARGET_FLAGS): Add MASK_ALLOW_SETLB.
	* config/mn10300/mn10300.opt (msetlb): New option.  Used to
	disable the SETLB optimization.
	* config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
	__SETLB__ or __NO_SETLB__.
	* config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
	(movsf_internal): Handle MDR register.
	(cmpsi): Make visible.
	(setlb): New pattern.
	(Lcc): New pattern.
	(FLcc): New pattern.

2011-05-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/48860
	* config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
	for reg<->xmm moves.
	* config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
	(vec_concatv2di_rex64_sse): Ditto.
	(*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
	(*vec_extractv2di_1_rex64): Ditto.

	Revert:
	2011-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
	reg<->xmm moves.
	(*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* tree.h (int_const_binop): Remove notrunc argument.
	* fold-const.c (int_const_binop): Remove notrunc argument.  Always
	create integer constants that are properly truncated.
	(extract_muldiv_1): Expand one notrunc int_const_binop caller.
	(const_binop): Remove zero notrunc argument to int_const_binop.
	(size_binop_loc): Likewise.
	(fold_div_compare): Likewise.
	(maybe_canonicalize_comparison_1): Likewise.
	(fold_comparison): Likewise.
	(fold_binary_loc): Likewise.
	(multiple_of_p): Likewise.
	* expr.c (store_constructor): Likewise.
	* gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
	(maybe_fold_stmt_addition): Likewise.
	* ipa-prop.c (ipa_modify_call_arguments): Likewise.
	* stor-layout.c (layout_type): Likewise.
	* tree-data-ref.c (tree_fold_divides_p): Likewise.
	* tree-sra.c (build_ref_for_offset): Likewise.
	(build_user_friendly_ref_for_offset): Likewise.
	* tree-ssa-address.c (maybe_fold_tmr): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	* tree-ssa-loop-niter.c (inverse): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
	* tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
	* tree-switch-conversion.c (check_range): Likewise.
	(build_constructors): Likewise.
	* tree-vect-generic.c (expand_vector_piecewise): Likewise.
	* tree-vrp.c (set_and_canonicalize_value_range): Likewise.
	(extract_range_from_assert): Likewise.
	(vrp_int_const_binop): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(check_array_ref): Likewise.
	(find_case_label_range): Likewise.
	(simplify_div_or_mod_using_ranges): Likewise.
	* tree-cfg.c (group_case_labels_stmt): Use double-ints for
	comparing case labels for merging.

2011-05-03  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (debug_str_hash_forced): Removed.
	(gen_label_for_indirect_string): Removed.
	(get_debug_string_label): Removed.
	(AT_string_form): Generate label directly.
	(output_indirect_string): Test indirect_string_node for
	DW_FORM_strp instead of checking label and refcount.
	(prune_indirect_string): Removed.
	(prune_unused_types): Don't check debug_str_hash_forced or
	call prune_indirect_string.

2011-05-04  Alexandre Oliva  <aoliva@redhat.com>

	PR other/48093
	* doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.

2011-05-04  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47994
	PR debug/47919
	* combine.c (try_combine): Skip debug insns at m_split tests.

2011-04-26  Mark Wielaard  <mjw@redhat.com>

	PR42288
	* dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
	when info_section_emitted.

2011-05-03  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips-opts.h: New.
	* config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
	to mips-opts.h.
	(mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
	(mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
	or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
	via opts pointer.
	* config/mips/mips.h (enum mips_code_readable_setting): Move to
	mips-opts.h.
	(mips_abi, mips_code_readable): Don't declare.
	* config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
	(mabi=): Use Enum and Var.
	(mips_abi): New Enum and EnumValue entries.
	(mcode-readable=): Use Enum and Var.
	(mips_code_readable_setting): New Enum and EnumValue entries.
	(mr10k-cache-barrier=): Use Enum and Var.
	(mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.

2011-05-03  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
	replace hash by pointer map.
	(cgraph_node_set_element_def, cgraph_node_set_element,
	const_cgraph_node_set_element, varpool_node_set_element_def,
	varpool_node_set_element, const_varpool_node_set_element): Remove.
	(free_cgraph_node_set, free_varpool_node_set): New function.
	(cgraph_node_set_size, varpool_node_set_size): Use vector size.
	* tree-emutls.c: Free varpool node set.
	* ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
	cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
	debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
	varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
	dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
	Move here from ipa.c; implement using pointer_map
	* ipa.c (cgraph_node_set_new, cgraph_node_set_add,
	cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
	debug_cgraph_node_set, varpool_node_set_new,
	varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
	dump_varpool_node_set, debug_varpool_node_set):
	Move to ipa-uitls.c.
	* passes.c (ipa_write_summaries): Update.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	From Mike Frysinger:
	* config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
	bf542/bf544/bf547/bf548/bf549.

2011-05-03  Uros Bizjak  <ubizjak@gmail.com>

	* expmed.c (extract_bit_field_1): Remove write-only variable "icode".

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	From Bernd Schmidt:
	* config/bfin/bfin.md (MOVCC): New mode_macro.
	(mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
	movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
	comments from generated assembly.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	From Bernd Schmidt
	* config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
	* config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
	* config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
	* config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
	* config/bfin/lib1funcs.asm (___muldi3): New function.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/stormy16/stormy16 (xstormy16_init_builtins): Call
	build_function_type_list instead of build_function_type.
	Rearrange initialization of `args' to do so.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/i386/i386.c (ix86_code_end): Call build_function_type_list
	instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (spe_init_builtins): Call
	build_function_type_list instead of build_function_type.
	(paired_init_builtins, altivec_init_builtins): Likewise.
	(builtin_function_type): Likewise.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/sh/sh.c (sh_media_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/sparc/sparc.c (sparc_file_end): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/alpha/alpha.c (alpha_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/xtensa/xtensa.c (xtensa_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/iq2000/i2000.c (iq2000_init_builtins): Call
	build_function_type_list instead of build_function_type.
	Delete `endlink' variable.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/avr/avr.c (avr_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/picochip/picochip.c (picochip_init_builtins): Call
	build_function_type_list instead of build_function_type.
	Delete `endlink' variable.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/bfin/bfin.c (bfin_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	From Bernd Schmidt
	* config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
	that's not CONST_INT.  Seemingly redundant check is due to PR39768.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	From Jie Zhang:
	* config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
	libbffastfp overrides libgcc when -mfast-fp.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	Originally from Bernd Schmidt
	* config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
	* config/bfin/bfin.c (override_options): Test it and error if
	TARGET_FDPIC.

2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

	Originally From Bernd Schmidt
	* config/bfin/bfin.c (override_options): Disable -fstack-limit for
	FD-PIC.

2011-05-03  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (THREAD_TARGET): define.
	(remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
	(craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
	than accessing AUX field directly.  Free the AUX field before
	clearing it.
	(thread_block, thread_through_loop_header): Likewise.
	(thread_single_edge, mark_threaded_blocks): Likewise.
	(redirect_edges): Delay clearing the AUX field.  Free the AUX field.
	(register_jump_thread): Do not attempt to thread to a NULL edge.

2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>

	* function.c (init_function_start): Call decide_function_section.
	* varasm.c (decide_function_section): New function.
	(assemble_start_function): When not using
	flag_reorder_blocks_and_partition, don't compute in_cold_section_p
	or first_function_block_is_cold.
	* rtl.h (decide_function_section): Declare.

2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/48774
	* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
	only succeed if req_mode is the same as set_mode.

2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>

	* gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
	* genemit.c (gen_exp): Handle RETURN.
	* emit-rtl.c (verify_rtx_sharing): Likewise.
	(init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
	* rtl.c (copy_rtx): RETURN is shared.
	* rtl.h (enum global_rtl_index): Add GR_RETURN.
	(ret_rtx): New.
	* jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
	* config/s390/s390.c (s390_emit_epilogue): Likewise.
	* config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
	* config/cris/cris.c (cris_expand_return): Likewise.
	* config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
	* config/rs6000/rs6000.c (rs6000_make_savres_rtx,
	rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
	* config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
	* config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
	Likewise.
	* config/v850/v850.c (expand_epilogue): Likewise.
	* config/bfin/bfin.c (bfin_expand_call): Likewise.
	* config/arm/arm.md (epilogue): Likewise.
	* config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
	* config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
	variable to ret_reg.

2011-05-03  Richard Guenther  <rguenther@suse.de>

	PR lto/48846
	* lto-streamer-in.c (unpack_ts_decl_common_value_fields):
	Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
	* lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.

2011-05-03  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (grokdeclarator): Instead of looking at
	TREE_OVERFLOW check if the constant fits in the index type.

2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
	(vec_store_lanes<mode><mode>): Likewise.

2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

	* doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
	* optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
	convert_optab_index values.
	(vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
	* genopinit.c (optabs): Initialize the new optabs.
	* internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
	* internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
	(expand_STORE_LANES): New functions.
	* tree.h (build_array_type_nelts): Declare.
	* tree.c (build_array_type_nelts): New function.
	* tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
	(vect_model_load_cost): Likewise.
	(vect_store_lanes_supported, vect_load_lanes_supported)
	(vect_record_strided_load_vectors): Declare.
	* tree-vect-data-refs.c (vect_lanes_optab_supported_p)
	(vect_store_lanes_supported, vect_load_lanes_supported): New functions.
	(vect_transform_strided_load): Split out statement recording into...
	(vect_record_strided_load_vectors): ...this new function.
	* tree-vect-stmts.c (create_vector_array, read_vector_array)
	(write_vector_array, create_array_ref): New functions.
	(vect_model_store_cost): Add store_lanes_p argument.
	(vect_model_load_cost): Add load_lanes_p argument.
	(vectorizable_store): Try to use store-lanes functions for
	interleaved stores.
	(vectorizable_load): Likewise load-lanes and loads.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
	to vect_model_store_cost.
	(vect_build_slp_tree): Likewise vect_model_load_cost.

2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

	* hooks.h (hook_bool_mode_uhwi_false): Declare.
	* hooks.c (hook_bool_mode_uhwi_false): New function.
	* target.def (array_mode_supported_p): New hook.
	* doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
	* doc/tm.texi: Regenerate.
	* stor-layout.c (mode_for_array): New function.
	(layout_type): Use it.
	* config/arm/arm.c (arm_array_mode_supported_p): New function.
	(TARGET_ARRAY_MODE_SUPPORTED_P): Define.

2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/48723
	* config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
	for -fstack-check if the size to allocate is negative.

2011-05-02  Lawrence Crowl  <crowl@google.com>

	* timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
	(timevar_cond_start): New for starting a timer only when it is not
	already running.
	(timevar_cond_stop): New for stopping a timer when it was not already
	running.

	* timevar.c (timevar_stop): Enable start/stop timers to start again.
	(timevar_cond_start): New as above.
	(timevar_cond_stop): New as above.

	* timevar.def: Add start/stop timers for compiler phases,
	TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
	TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
	and TV_PHASE_FINALIZE.
	Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
	Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
	TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
	Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
	Make unused TV_OVERLOAD into a start/stop timer.

	Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
	Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
	to indicate that they are start/stop timers.

	* toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
	Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
	Move initialization to do_compile.
	(do_compile): Add initialization from above.
	Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.

	* c-decl.c (c_write_global_declarations): Add start/stop of
	TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.

	* c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
	or TV_PARSE_INLINE, as appropriate.
	(c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
	(c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.

2011-05-02  Jason Merrill  <jason@redhat.com>

	PR c++/40975
	* tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.

2011-05-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c/35445
	* c-decl.c (finish_decl): Only create a composite if the types are
	compatible.

2011-05-02  Joseph Myers  <joseph@codesourcery.com>

	* config/fr30/fr30-protos.h (Mmode): Don't define.
	* config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
	definition where used.
	* config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
	define.  Expand definitions where used.
	* config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
	Expand definitions where used.
	* config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
	rx_function_arg, rx_function_arg_advance,
	rx_function_arg_boundary): Expand definitions of those macros.
	* config/v850/v850-protos.h (Mmode): Don't define.  Expand
	definition where used.

2011-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
	reg<->xmm moves.
	(*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
	(*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
	with *movv2sf_internal_rex64_avx.
	(*movv2sf_internal): Merge with *movv2sf_internal_avx.
	* config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
	Use %v prefix in insn mnemonic to handle TARGET_AVX.
	(*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
	"vex" in "prefix" attribute calculation.
	(*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.

2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>

	PR target/47951
	* config/bfin/bfin.md (loop_end): Use matching constraints to ensure
	inputs match the output.

2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/47955
	* config/m68k/m68k.c (m68k_expand_prologue): Set
	current_function_static_stack_size.

2011-05-02  Jan Hubicka  <jh@suse.cz>

	* lto-streamer.c (lto_streamer_cache_insert_1,
	lto_streamer_cache_lookup, lto_streamer_cache_create,
	lto_streamer_cache_delete): Use pointer map instead of hashtable.
	* lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.

2011-05-02  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/genopt.sh, config/m68k/m68k-isas.def,
	config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
	config/m68k/t-opts: New files.
	* config/m68k/m68k-tables.opt: New file (generated).
	* config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
	extra_options and m68k/t-opts to tmake_file.
	* config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
	(all_isas): Initialize using m68k-isas.def.
	(all_microarchs): Initialize using m68k-microarchs.def.
	(m68k_find_selection): Remove.
	(m68k_handle_option): Don't assert that global structures are in
	use.  Use error_at.  Access variables via opts pointer.  Don't
	handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
	directly for -m68020-40 and -m68020-60.
	(m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
	m68k_tune_entry here.
	* config/m68k/m68k.h (enum uarch_type, enum target_device): Move
	to m68k-opts.h.
	(m68k_library_id_string): Remove declaration.
	* config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
	(m68k_library_id_string): New Variable.
	(march=, mcpu=, mtune=): Use Enum and Var.

2011-05-02  Richard Guenther  <rguenther@suse.de>

	* varasm.c (output_constructor_regular_field): Compute zero-based
	index with double-ints.  Make sure to ICE instead of producing
	wrong code.
	* cgraph.c (cgraph_add_thunk): Do not create new tree nodes
	in asserts.  Properly use a signed type.

2011-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (V): New mode iterator.
	(V_128): Rename from SSEMODE.  Make V2DF mode conditional on
	TARGET_SSE2.
	(V_256): Rename from AVX256MODE.
	(VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
	condition to all users.
	(VF1): Ditto.
	(VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
	condition to all users.
	(VF_128): Make V4SF mode unconditional.
	(VF_256): Rename from AVX256MODEF2P.
	(VI4F_128): Rename from SSEMODE4S.
	(VI8F_128): Rename from SSEMODE2D.
	(VI4F_256): Rename from AVX256MODE8P.
	(VI8F_256): Rename from AVX256MODE4P.
	(avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
	(ssescalarmodesuffix): Remove SF and DF modes.
	(SSEMODE124): Remove.
	(SSEMODE1248): Ditto.
	(SSEMODEF2P): Ditto.
	(AVXMODEF2P): Ditto.
	(AVXMODEFDP): Ditto.
	(AVXMODEFSP): Ditto.
	(VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
	unconditional.
	(VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
	unconditional.
	(xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
	xop_pcmov_<mode>256.  Use V mode iterator.

	Adjust RTX patterns globally for renamed mode attributes.

2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* haifa-sched.c (sched_emit_insn): Emit insn before first
	non-scheduled insn.  Inform back-end about new insn.  Add
	new insn to scheduled_insns list.

2011-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48822
	* tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
	(process_scc): Indicate which iteration we start.

2011-05-02  Jan Hubicka  <jh@suse.cz>

	* lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
	(lto_section_overrun): New.
	* lto-section-out.c (append_block): Rename to ...
	(lto_append_block): ... this one; export.
	(lto_output_1_stream): Move lto lto-streamer.h
	(lto_output_data_stream): Update.
	* lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
	(lto_output_1_stream, lto_input_1_unsigned): Turn into inline
	functions.

2011-05-02  Richard Guenther  <rguenther@suse.de>

	* tree.c (tree_code_counts): New global array.
	(record_node_allocation_statistics): Count individual tree codes.
	(dump_tree_statistics): Dump individual code stats.

2011-05-01  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (caller_growth_limits): Fix thinko when
	looking for largest stack frame.
	* ipa-inline.h (dump_inline_summary): Declare.
	* ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
	on stack usage.
	(dump_inline_summary): Export.
	(debug_inline_summary): Declare as DEBUG_FUNCTION.

2011-05-01  Anatoly Sokolov  <aesok@post.ru>

	* reginfo.c (memory_move_cost): Change rclass argument type form
	'enum reg_class' to reg_class_t.
	* reload.h (memory_move_cost): Update prototype.
	* postreload.c reload_cse_simplify_set): Change type dclass var to
	reg_class_t.
	* ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
	Update prototype.
	(ira_allocate_and_set_costs): Change aclass argument type form
	'enum reg_class' to reg_class_t.
	* ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
	Change aclass argument type to reg_class_t.
	(update_conflict_hard_reg_costs): Change type aclass and pref vars
	to reg_class_t.
	* gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
	memory_move_cost call.

	* config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
	'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
	Change type tmp var to reg_class_t.

2011-04-30  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (can_inline_edge_p): Disregard limits when
	inlining into function with flatten attribute.
	(want_inline_small_function_p): Be more realistic about inlining
	cold calls where callee size grows.

2011-04-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
	flags.

2011-04-30  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
	PRINT_OPERAND_PUNCT_VALID_P): Remove.
	* config/sparc/sparc-protos.h (print_operand): Remove declaration.
	* config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
	TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
	(print_operand): Rename to...
	(sparc_print_operand): ...this. Make static. Adjust
	sparc_print_operand function call.
	(sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
	functions.

2011-04-30  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48752
	* ipa-inline.c (early_inliner): Disable when doing late
	addition of function.

2011-04-30  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (get_address_mode): New inline.
	(mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
	if not dwarf_strict emit
	DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
	desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
	UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
	FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
	(dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
	dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
	mem_loc_descriptor callers.
	(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
	output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
	Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
	DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
	(base_types): New variable.
	(get_base_type_offset, calc_base_type_die_sizes,
	base_type_for_mode, mark_base_types, base_type_cmp,
	move_marked_base_types): New functions.
	(calc_die_sizes): Assert that die_offset is 0 or equal to
	next_die_offset.
	(loc_descriptor): Only handle here lowpart SUBREGs of REG, for
	others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
	callers.  If not dwarf_strict, call mem_loc_descriptor even for
	non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
	(gen_subprogram_die): Don't give up on call site parameters
	with non-integral or large integral modes.  Adjust
	mem_loc_descriptor callers.
	(prune_unused_types): Call prune_unused_types_mark on base_types
	vector entries.
	(resolve_addr): Call mark_base_types.
	(dwarf2out_finish): Call move_marked_base_types.

	PR tree-optimization/48809
	* tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
	type.
	(gen_inbound_check): Don't compute index_expr - range_min in utype
	again, instead reuse SSA_NAME initialized in build_arrays.
	Remove two useless gsi_for_stmt calls.

2011-04-29  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (thread_across_edge): Add missing return.

2011-04-29  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_postorder): Remove declaration.
	* ipa-utils.h (ipa_free_postorder_info): Declare.
	(ipa_reverse_postorder): Likewise.
	* cgraphunit.c: Include ipa-utils.h.
	(cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
	* ipa-inline.c: Include ipa-utils.h.
	(ipa_inline): Update call to ipa_reverse_postorder.
	* ipa-pure-const.c (propagate_pure_const): Update call to
	ipa_reduced_postorder and ipa_print_order.  Call
	ipa_free_postorder_info to clean up.
	(propagate_nothrow): Likewise.
	* ipa-reference.c (propagate): Removed a useless call to
	ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
	and ipa_print_order.  Call ipa_free_postorder_info to clean up.
	* ipa.c: Include ipa-utils.h.
	(ipa_profile): Update call to ipa_reverse_postorder.
	(cgraph_postorder): Moved to...
	* ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
	(ipa_utils_print_order): Renamed to ipa_print_order.
	(ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
	comments.
	(ipa_free_postorder_info): New function.
	* passes.c: Include ipa-utils.h.
	(do_per_function_toporder): Update call to ipa_reverse_postorder.
	(ipa_write_summaries): Likewise.
	* Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
	(cgraphunit.o): Likewise.
	(ipa.o): Likewise.
	(ipa-inline.o): Likewise.

2011-04-29  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.h (clause_t): Turn into unsigned int.
	* ipa-inline-analysis.c (add_clause): Do more simplification.
	(and_predicates): Shortcut more cases.
	(predicates_equal_p): Move forward; check that clauses are properly
	ordered.
	(or_predicates): Shortcut more cases.
	(edge_execution_predicate): Rewrite as...
	(set_cond_stmt_execution_predicate): ... this function; handle
	__builtin_constant_p.
	(set_switch_stmt_execution_predicate): New .
	(compute_bb_predicates): New.
	(will_be_nonconstant_predicate): Update TODO.
	(estimate_function_body_sizes): Use compute_bb_predicates
	and free them later, always try to estimate if stmt is constant.
	(estimate_time_after_inlining, estimate_size_after_inlining):
	Gracefully handle optimized out edges.
	(read_predicate): Fix off by one error.

2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Makefile.in (ENABLE_MAINTAINER_RULES): New.

2011-04-27  Xinliang David Li  <davidxl@google.com>

	* tree-profile.c (init_ic_make_global_vars): Set
	tls attribute on ic vars.
	* coverage.c (coverage_end_function): Initialize
	function_list with zero.

2011-04-29  Richard Guenther  <rguenther@suse.de>

	* builtins.c (fold_builtin_classify_type): Use integer_type_node
	for the type of the result.
	(fold_builtin_isascii): Likewise.
	(fold_builtin_toascii): Use integer_type_node where appropriate.
	(fold_builtin_logb): Likewise.
	(fold_builtin_frexp): Likewise.
	(fold_builtin_strstr): Likewise.
	(fold_builtin_strpbrk): Likewise.
	(fold_builtin_fputs): Likewise.
	(fold_builtin_sprintf): Likewise.
	(fold_builtin_snprintf): Likewise.
	(fold_builtin_printf): Likewise.
	(do_mpfr_remquo): Use a proper type for the assigned constant.
	(do_mpfr_lgamma_r): Likewise.
	* dwarf2out.c (resolve_one_addr): Use size_int.
	* except.c (init_eh): Likewise.
	(assign_filter_values): Use integer_type_node for filter values.
	(sjlj_emit_dispatch_table): Use integer_type_node for dispatch
	indices.
	* tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
	for EH region numbers.
	* tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
	for the shift amount.

2011-04-29  Richard Guenther  <rguenther@suse.de>

	* expr.h (expand_shift): Rename to ...
	(expand_variable_shift): ... this.
	(expand_shift): Take a constant shift amount.
	* expmed.c (expand_shift): Rename to ...
	(expand_variable_shift): ... this.
	(expand_shift): New wrapper around expand_variable_shift.
	* expr.c (convert_move, emit_group_load_1, emit_group_store,
	optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
	expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
	* expmed.c (store_fixed_bit_field, extract_bit_field_1,
	extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
	expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
	extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
	emit_store_flag_1, emit_store_flag): Likewise.
	* builtins.c (expand_builtin_signbit): Likewise.
	* calls.c (load_register_parameters): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* lower-subreg.c (resolve_shift_zext): Likewise.
	* optabs.c (widen_bswap, expand_abs_nojump,
	expand_one_cmpl_abs_nojump, expand_float): Likewise.
	* spu/spu.c (spu_expand_extv): Likewise.
	* sparc/sparc.c (sparc32_initialize_trampoline): Likewise.

2011-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
	for the remapped region number.
	* predict.c (build_predict_expr): Use integer_type_node for the
	predict kind.
	* fold-const.c (fold_binary_loc): Use integer_type_node for
	the shift amount.  Use a proper type for the PLUS_EXPR operand.

2011-04-29  Michael Matz  <matz@suse.de>

	* lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
	other trees that just builtins.
	(lto_record_common_node): Don't leave NULL TYPE_CANONICAL.

2011-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-nested.c (get_trampoline_type): Use size_int.
	(get_nl_goto_field): Likewise.
	* tree-eh.c (lower_try_finally_switch): Use integer_type_node
	for all indexes.
	(lower_eh_constructs_2): Likewise.
	(lower_resx): Likewise.
	(lower_eh_dispatch): Likewise.
	* tree-mudflap.c (mf_build_string): Use size_int.
	(mudflap_register_call): Use integer_type_node for the flag.
	(mudflap_enqueue_constant): Use size_int.
	* tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
	instead of rebuilding it.

2011-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_fi_for_callee): Restructure.
	Handle OBJ_TYPE_REF.
	(find_func_aliases_for_call): Use it more consistently.

2011-04-29  Alexandre Oliva  <aoliva@redhat.com>

	* haifa-sched.c (last_nondebug_scheduled_insn): New.
	(rank_for_schedule): Use it.
	(schedule_block): Set it.

2011-04-28  David Li  <davidxl@google.com>

	* tree.c (crc32_string): Use crc32_byte.
	(crc32_byte): New function.
	* tree.h (crc32_byte): New function.
	* gcov.c (read_graph_file): Handle new cfg_cksum.
	(read_count_file): Ditto.
	* profile.c (instrument_values): Ditto.
	(get_exec_counts): Ditto.
	(read_profile_edge_counts): Ditto.
	(compute_branch_probabilities): Ditto.
	(compute_value_histograms): Ditto.
	(branch_prob): Ditto.
	(end_branch_prob): Ditto.
	* coverage.c (read_counts_file): Ditto.
	(get_coverage_counts): Ditto.
	(tree_coverage_counter_addr): Ditto.
	(coverage_checksum_string): Ditto.
	(coverage_begin_output): Ditto.
	(coverage_end_function): Ditto.
	(build_fn_info_type): Ditto.
	(build_fn_info_value): Ditto.
	* libgcov.c (gcov_exit): Ditto.
	* gcov-dump.c (tag_function): Ditto.
	(compute_checksum): Remove.

2011-04-29  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
	unspec plus offset.  Tidy macho code.

2011-04-29  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
	node instead of a decl.  Update all callers.
	* cgraph.h: Update declaration.

2011-04-28  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/48765
	* tree-vectorizer.h (vect_make_slp_decision): Return bool.
	* tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
	to indicate if loop aware SLP is being used.  Scan the statements
	and update the vectorization factor according to the type of
	vectorization before statement analysis.
	(vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
	pass it to vect_analyze_loop_operations.
	(vectorizable_reduction): Set number of copies to 1 in case of pure
	SLP statement.
	* tree-vect-stmts.c (vectorizable_conversion,
	vectorizable_assignment, vectorizable_shift,
	vectorizable_operation, vectorizable_type_demotion,
	vectorizable_type_promotion, vectorizable_store, vectorizable_load):
	Likewise.
	(vectorizable_condition): Move the check that it is not SLP
	vectorization before the number of copies check.
	* tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
	to vectorize the loop using SLP.

2011-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48597
	* final.c (final_scan_insn): Call dwarf2out_frame_debug even for
	inline asm.

2011-04-28  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
	*-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
	(i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
	i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
	x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
	linux*.h headers.
	* config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
	* config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
	* config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
	* config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
	* config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
	* config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
	REG_NAME.
	* config/i386/linux.h (REG_NAME): Don't define.
	* config/i386/linux64.h (REG_NAME): Don't define.
	* config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
	Undefine before defining.

2011-04-28  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
	nonconstant_names array.
	(estimate_function_body_sizes): Build nonconstant_names array; handle
	BUILT_IN_CONSTANT_P.

2011-04-28  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/48804
	Revert
	2011-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (solve_constraints): Build succ graph
	as late as possible.

2011-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (dump_constraint): Don't end the line.
	(debug_constraint): Do it here.
	(dump_constraints): And here.
	(rewrite_constraints): And here.
	(dump_constraint_edge): Remove.
	(dump_constraint_graph): Rewrite to produce DOT output.
	(solve_constraints): Build succ graph as late as possible.
	Dump constraint graphs before and after solving.

2011-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	New function split out from ...
	(find_func_aliases): ... here.  Call it.
	(find_func_aliases_for_call): Likewise.

2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* internal-fn.h (internal_fn_name_array): Declare.
	(internal_fn_flags_array): Likewise.

2011-04-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
	ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
	Move from sse.md.
	(ssemodefsuffix): Remove.
	(ssevecmodesuffix): New mode attribute.
	(fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
	*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
	*sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
	*ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
	ssemodesuffix mode attribute.
	(float splitters): Use ssevecmodesuffix mode attribute.
	* config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
	(sseinsmode): Rename from avxvecmode.
	(avxsizesuffix): Rename from avxmodesuffix.
	(sseintvecmode): Rename from avxpermvecmode.
	(ssedoublevecmode): Rename from ssedoublesizemode.
	(ssehalfvecmode): Rename from avxhalfvecmode.
	(ssescalarmode): Rename from avxscalarmode.
	(<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
	templates for ssemodesuffix mode attribute.
	(*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
	mode attribute.

	Adjust RTX patterns globally for renamed mode attributes.

2011-04-27  Jan Hubcika  <jh@suse.cz>

	* ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
	* ipa-inline-analysis.c: Include alloc-pool.h.
	(edge_predicate_pool): New.
	(trye_predicate_p): New function
	(false_predicate_p): New function.
	(add_clause): Sanity check that false clauses are "optimized";
	never add clauses to predicate that is already known to be false.
	(and_predicate): Use flase_predicate_p.
	(evaulate_predicate): Rename to ...
	(evaluate_predicate): ... this one; update all callers; assert
	that false is not listed among possible truths.
	(dump_predicate): Use true_predicate_p.
	(account_size_time): Use false_predicate_p.
	(evaulate_conditions_for_edge): Rename to ...
	(evaluate_conditions_for_edge) ... this one.
	(edge_set_predicate): New function.
	(inline_edge_duplication_hook): Duplicate edge predicates.
	(inline_edge_removal_hook): Free edge predicates.
	(dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
	(dump_inline_summary): Update.
	(estimate_function_body_sizes): Set edge predicates.
	(estimate_calls_size_and_time): Handle predicates.
	(estimate_callee_size_and_time): Update.
	(remap_predicate): Add toplev_predicate; update comment.
	(remap_edge_predicates): New function.
	(inline_merge_summary): Compute toplev predicate; update.
	(read_predicate): New function.
	(read_inline_edge_summary): Use it.
	(inline_read_section): Likewise.
	(write_predicate): New function.
	(write_inline_edge_summary): Use it.
	(inline_write_summary): Likewise.
	(inline_free_summary): Free alloc pool and edge summary vec.

2011-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (changed_count): Remove.
	(changed): Use a bitmap.
	(unify_nodes): Adjust.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.
	(do_complex_constraint): Likewise.
	(solve_graph): Likewise.

2011-04-27  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.

2011-04-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
	(avx_vperm2f128_*_operand): Ditto.
	* config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
	Use avx_vpermilp_parallel in insn condition.
	(*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
	Use avx_vperm2f128_parallel in insn condition.

2011-04-27  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-ssa-structalias.o): Remove
	gt-tree-ssa-structalias.h dependency.
	(GTFILES): Remove tree-ssa-structalias.c.
	* tree.c (allocate_decl_uid): New function.
	(make_node_stat): Use it.
	(copy_node_stat): Likewise.
	* tree.h (allocate_decl_uid): Declare.
	* tree-ssa-alias.h (delete_alias_heapvars): Remove.
	* tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
	* tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
	* tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
	* tree-ssa-structalias.c (heapvar_for_stmt): Remove.
	(struct heapvar_map): Likewise.
	(heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
	heapvar_insert): Likewise.
	(make_heapvar_for): Rename to ...
	(make_heapvar): ... this.  Simplify.
	(fake_var_decl_obstack): New global var.
	(build_fake_var_decl): New function.
	(make_constraint_from_heapvar): Adjust.
	(handle_lhs_call): Likewise.
	(create_function_info_for): Likewise.
	(intra_create_variable_infos): Likewise.
	(init_alias_vars): Allocate fake_var_decl_obstack.
	(init_alias_heapvars, delete_alias_heapvars): Remove.
	(compute_points_to_sets): Do not call init_alias_heapvars.
	(ipa_pta_execute): Likewise.
	(delete_points_to_sets): Free fake_var_decl_obstack.

2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/divmovti4.c (union qword_UTItype): New data type.
	(si_from_UTItype, si_to_UTItype): New functions.
	(__udivmodti4): Use them to implement type-punning.
	* config/spu/multi3.c (union qword_TItype): New data type.
	(si_from_TItype, si_to_TItype): New functions.
	(__multi3): Use them to implement type-punning.

2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.

2011-04-27  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (function_insertion_hook_holder): New holder.
	(ipa_add_new_function): New function.
	(ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
	Register/deregister holder.

2011-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48772
	* tree-ssa-pre.c (eliminate): Update call stmts after elimination only.

2011-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
	TARGET_MEM_REF handling.

2011-04-27  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
	ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
	(ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
	(FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
	(FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
	(EVEN_REGS): New macro.  Alias for QUAD_REGS.
	* config/frv/frv.c (frv_secondary_reload_class): Remove use of
	duplicate register classes.
	(frv_class_likely_spilled_p): Likewise.
	(frv_register_move_cost): Likewise.

	* config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
	end of the regno_reg_class array.

2011-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/48742
	* c-typeck.c (build_binary_op): Don't wrap arguments if
	int_operands is true.

2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/48767
	* config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
	targetm.calls.must_pass_in_stack for void type.

2011-04-26  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (build_cgraph_edges): Update call
	of cgraph_create_edge and cgraph_create_indirect_edge.
	* cgraph.c (cgraph_create_edge_including_clones,
	cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
	cgraph_update_edges_for_call_stmt_node): Do not take nest
	argument; do not initialize call_stmt_size/time.
	(dump_cgraph_node): Do not dump nest.
	(cgraph_clone_edge): Do not take loop_nest argument;
	do not propagate it; do not clone call_stmt_size/time.
	(cgraph_clone_node): Likewise.
	(cgraph_create_virtual_clone): Update.
	* cgraph.h (struct cgraph_edge): Remove
	call_stmt_size/call_stmt_time/loop_nest.
	(cgraph_create_edge, cgraph_create_indirect_edge,
	cgraph_create_edge_including_clones, cgraph_clone_node): Update
	prototype.
	* tree-emutls.c (gen_emutls_addr): Update.
	* ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
	loop_nest; handle indirect calls, too.
	(clone_inlined_nodes): Do not care about updating inline summaries.
	* cgraphunit.c (cgraph_copy_node_for_versioning): Update.
	* lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
	stream call_stmt_size/call_stmt_time/loop_nest.
	* ipa-inline.c (edge_badness): Update.
	(ipa_inline): dump summaries after inlining.
	* ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
	New.
	(inline_edge_summary): New function.
	* ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
	(inline_edge_removal_hook): Handle edge summaries.
	(inline_edge_duplication_hook): New hook.
	(inline_summary_alloc): Alloc hooks.
	(initialize_growth_caches): Do not register removal hooks.
	(free_growth_caches); Do not free removal hook.
	(dump_inline_edge_summary): New function.
	(dump_inline_summary): Use it.
	(estimate_function_body_sizes, estimate_edge_size_and_time): Update.
	(inline_update_callee_summaries): New function.
	(inline_merge_summary): Use it.
	(do_estimate_edge_time, do_estimate_edge_growth): Update.
	(read_inline_edge_summary): New function.
	(inline_read_section): Use it.
	(write_inline_edge_summary): New function.
	(inline_write_summary): Use it.
	(inline_free_summary): Free edge new holders.
	* tree-inline.c (copy_bb): Update.

2011-04-26  Jason Merrill  <jason@redhat.com>

	* tree-eh.c (lower_try_finally_switch): Create the label along with
	the CASE_LABEL_EXPR.

2011-04-26  David S. Miller  <davem@davemloft.net>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
	* configure: Regenerate.

2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48258
	* config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
	reduction.
	(VEC_reduc): New code iterator and splitters for vector reduction.
	(VEC_reduc_name): Ditto.
	(VEC_reduc_rtx): Ditto.
	(reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
	(reduc_<VEC_reduc_name>_v4sf): Ditto.

	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
	support for extracting SF on VSX.

	* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
	generating xscvspdp.
	(vsx_extract_v4sf): New insn to extract SF from V4SF vector.
	(vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
	double add, minimum, maximum vector reduction.
	(vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
	(vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
	optimize double vector reduction.
	(vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.

2011-04-26  Joseph Myers  <joseph@codesourcery.com>

	* config/fr30/fr30.h (inhibit_libc): Don't define.
	* config/m32r/m32r-protos.h: Correct comment.
	* config/v850/v850.h (GHS_default_section_names,
	GHS_current_section_names): Use tree, not union tree_node *.

2011-04-26  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
	* c-family/c-opts.c (c_common_handle_option): Set
	warn_maybe_uninitialized.
	* opts.c (common_handle_option): Ditto.
	* common.opt:  New option.
	* tree-ssa.c (warn_uninit): Add one more parameter.
	(warn_uninitialized_var): Pass warning code.
	* tree-flow.h: Interface change.

2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
	(WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
	(TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.

2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
	* config/mips/mips.opt (mmips-tfile): Remove.

	* doc/install.texi (Specific, mips-*-*): Move mips-tfile,
	mips-tdump reference to ...
	(Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
	* doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
	reference by Tru64 UNIX.

2011-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48768
	* tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
	is error_mark_node, set value to NULL.

	PR tree-optimization/48734
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
	if return value from maybe_fold_*_comparsions isn't something
	the code is prepared to handle.

2011-04-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (ext_QIreg_operand): Remove extra
	mode check.
	(ext_QIreg_nomode_operands): Remove.
	* config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
	(*andsi_1): Ditto.
	(*andhi_1): Ditto.

2011-04-26  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.

2011-04-26  Richard Guenther  <rguenther@suse.de>

	* c-typeck.c (build_unary_op): Do not expand array-refs via
	pointer arithmetic.  Only adjust qualifiers for function types.

2011-04-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48694
	* tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
	* fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
	compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
	with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.

2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/extend.texi: Document __underlying_type.

2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/titan.md (automata_option "progress"): Remove.

2011-04-25  Jeff Law  <law@redhat.com>

	* tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.

2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* system.h (ENUM_BITFIELD): Remove.

2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
	for STORE_FLAG_VALUE==-1 case.

2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/43804
	* config/m68k/constraints.md (T): Allow PIC operands that satisfy
	LEGITIMATE_PIC_OPERAND_P.

2011-04-24  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
	WPA hack.
	* ipa-prop.h (ipa_get_param, ipa_is_param_used,
	ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
	ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
	* ipa-inline-analysis.c (add_clause): Fix clause ordering.
	(and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
	Sanity check predicate length.
	(remap_predicate): Likewise; sanity check jump functions.
	(inline_read_section, inline_write_summary): Sanity check
	predicate length.

2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR other/48748
	* doc/extend.texi (Type Traits): Document __is_standard_layout,
	__is_literal_type, and __is_trivial; update throughout about
	possibly cv-qualified void types.

2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
	testsuite and make it version agnostic.

2011-04-22  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (inline_write_summary): Fix thinko.

2011-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR c/48685
	* fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
	to VOID_TYPE even around MODIFY_EXPR.

2011-04-22  Mike Stump  <mikestump@comcast.net>

	* gensupport.c (read_md_rtx): Fix typo in comment.
	* config/cris/cris.opt (moverride-best-lib-options): Fix typo in
	comment.

2011-04-22  Jan Hubicka  <jh@suse.cz>

	* gengtype.c (open_base_files): Add ipa-inline.h include.
	* ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
	ipa-prop.c; update all uses.
	* ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
	* ipa-inline-transform.c (inline_call): Use inline_merge_summary to
	merge summary of inlined function into former caller.
	* ipa-inline.c (max_benefit): Remove.
	(edge_badness): Compensate for removal of benefits.
	(update_caller_keys): Use
	reset_node_growth_cache/reset_edge_growth_cache.
	(update_callee_keys): Likewise.
	(update_all_callee_keys): Likewise.
	(inline_small_functions): Do not collect max_benefit; do not reset
	estimated_growth; call free_growth_caches and initialize_growth_caches.
	* ipa-inline.h (struct condition, type clause_t, struct predicate,
	struct size_time_entry): New structures.
	(INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
	(inline_summary): Remove size_inlining_benefit, time_inlining_benefit
	and estimated_growth.
	(edge_growth_cache_entry): New structure.
	(node_growth_cache, edge_growth_cache): New global vars.
	(estimate_growth): Turn into inline.
	(inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
	initialize_growth_caches, free_growth_caches): Declare.
	(estimate_edge_growth): Rewrite.
	(estimate_edge_time): Implement as inline cache lookup.
	(reset_node_growth_cache, reset_edge_growth_cache): New inline
	functions.
	(MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
	(NUM_CONDITIONS): New constant.
	(predicate_conditions): New enum.
	(IS_NOT_CONSTANT): New constant.
	(edge_removal_hook_holder): New var.
	(node_growth_cache, edge_growth_cache): New global vars.
	(true_predicate, single_cond_predicate, false_predicate,
	not_inlined_predicate, add_condition, add_clause, and_predicates,
	or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
	dump_clause, dump_predicate, account_size_time,
	evaulate_conditions_for_edge): New functions.
	(inline_summary_alloc): Move to heap.
	(inline_node_removal_hook): Clear condition and entry vectors.
	(inline_edge_removal_hook): New function.
	(initialize_growth_caches, free_growth_caches): New function.
	(dump_inline_summary): Update.
	(edge_execution_predicate): New function.
	(will_be_nonconstant_predicate): New function.
	(estimate_function_body_sizes): Compute BB and constantness predicates.
	(compute_inline_parameters): Do not clear estimated_growth.
	(estimate_edge_size_and_time): New function.
	(estimate_calls_size_and_time): New function.
	(estimate_callee_size_and_time): New function.
	(remap_predicate): New function.
	(inline_merge_summary): New function.
	(do_estimate_edge_time): New function based on...
	(estimate_edge_time): ... this one.
	(do_estimate_edge_growth): New function.
	(do_estimate_growth): New function based on....
	(estimate_growth): ... this one.
	(inline_analyze_function): Analyze after deciding on jump functions.
	(inline_read_section): New function.
	(inline_read_summary): Use it.
	(inline_write_summary): Write all the new data.
	* ipa-prop.c (ipa_get_param_decl_index): Export.
	(ipa_lattice_from_jfunc): Move here from ipa-cp.c
	* ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
	Declare.
	(ipa_get_lattice): Move here from ipa-cp.c
	* Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
	* params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
	* cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
	cgraph_edge_inlinable_p): Remove.
	* cgraphunit.c: Include ipainline.h
	(cgraph_process_new_functions): Update call of
	compute_inline_parameters.

2011-04-22  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_int_cst): Properly create canonicalized integer
	constants.
	(build_int_cst_type): Remove scary comments.

2011-04-22  Xinliang David Li  <davidxl@google.com>

	* toplev.c (process_options): Enable -Werror=coverage-mismatch
	by default when -Wno-error is not specified.
	* opts-global.c (decode_options): Remove call to
	control_warning_options.

2011-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48717
	* tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
	~A + A optimizations use build_int_cst_type instead of build_int_cst.

2011-04-22  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
	definition where used.

2011-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/48716
	* gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
	TREE_STATIC variables declared inside of some OpenMP construct.

2011-04-22  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/48585
	* tree-inline.c (copy_bb): Create new edges only for analyzed nodes.

2011-04-22  Alexander Monakov  <amonakov@ispras.ru>

	PR c/36750
	* c-typeck.c (pop_init_level): Do not warn about initializing
	with ` = {0}'.

2011-04-22  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
	when returning call_cookie.
	(rs6000_function_ok_for_sibcall): Allow sibcalls via function
	pointers, to functions with no more vector args than the current
	function, and some non-local calls for ABI_V4.
	* config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
	sibcall_nonlocal_aix64): Combine to ..
	(sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
	(sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
	(sibcall_value_nonlocal_aix<mode>): ..likewise.
	(*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
	(sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
	operand.
	* config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
	sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
	sibcall_value_symbolic_64): Delete.

2011-04-21  Xinliang David Li  <davidxl@google.com>

	* cgraph.h: Remove pid.
	* cgraph.c: Remove pid.
	* value-prof.c (init_node_map): New function.
	(del_node_map): New function.
	(find_func_by_funcdef_no): New function.
	(gimple_ic_transform): Call new function.
	* cgraphunit.c (cgraph_finalize_function): Remove pid.
	* function.c (get_last_funcdef_no): New function.
	* function.h (get_last_funcdef_no): New function.
	* tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
	to libgcov function.
	(tree-profiling): Call node map init and delete function.

2011-04-21  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_format_type): Use exported Go name for anonymous
	field name.

2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
	Call builtin_function_type_list instead of builtin_function_type.
	(UNARY, BINARY, TRINARY, QUAD): Likewise.

2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm.c (arm_init_iwmmxt_builtins): Call
	build_function_type_list instead of build_function_type.
	Delete variable `endlink'.

2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/s390/s390.c (s390_init_builtins): Call
	build_function_type_list instead of build_function_type.

2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/ia64/ia64.c (ia64_init_builtins): Call
	build_function_type_list instead of builtin_function_type.

2011-04-21  Easwaran Raman  <eraman@google.com>

	* cfgexpand.c (stack_var): Remove OFFSET...
	(add_stack_var): ...and its reference here...
	(expand_stack_vars): ...and here.
	(stack_var_cmp): Sort by descending order of size.
	(partition_stack_vars): Change heuristic.
	(union_stack_vars): Fix to reflect changes in partition_stack_vars.
	(dump_stack_var_partition): Add newline after each partition.

2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
	    Jeff Law  <law@redhat.com>

	* gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
	* gengtype.c (matching_file_name_substitute): Likewise.

2011-04-21  Richard Guenther  <rguenther@suse.de>

	PR lto/48703
	* tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.

2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.

2011-04-21  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
	file name.

2011-04-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
	MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
	Use DECL_P, not SSA_VAR_P.
	(ptr_derefs_may_alias_p): Likewise.
	(ptr_deref_may_alias_ref_p_1): Likewise.
	(decl_refs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Likewise.
	(ref_maybe_used_by_call_p_1): Likewise.
	(call_may_clobber_ref_p_1): Likewise.
	(indirect_ref_may_alias_decl_p): Assume indirect refrences
	are either MEM_REF or TARGET_MEM_REF.
	(indirect_refs_may_alias_p): Likewise.
	* calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
	for MEM_EXPR of indirect calls.

2011-04-21  Tristan Gingold  <gingold@adacore.com>

	* vmsdbgout.c (write_srccorr): Compute file length from the string.
	(dst_file_info_struct): Remove flen field.
	(lookup_filename): Remove code that set flen field.

2011-04-21  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/ia64.c (ia64_start_function): Add a guard.

2011-04-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/48708
	* config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
	vec_extract and vec_concat for non-SSE4_1 targets.

2011-04-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
	return statements.

2011-04-21  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/cygming.h (union tree_node, TREE): Don't define or
	undefine.
	(FILE): Don't undefine.

2011-04-21  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/alpha.c (struct machine_function): Use rtx, not
	struct rtx_def *.
	* config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
	struct rtx_def *.
	* config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
	* config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
	* config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
	rtx_def *.
	* config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
	definitions where used.
	* config/microblaze/microblaze.h (struct microblaze_args): Use
	rtx, not struct rtx_def *.
	* config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
	rtx_def *.
	* config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
	* config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
	* config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
	not struct rtx_def *.
	* config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
	struct rtx_def *.
	* config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
	rtx_def *.
	* config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.

2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
	operand_equal_p to compare DR_BASE_ADDRESSes.
	(vect_check_interleaving): Likewise.

2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/46329
	* config/arm/arm.c (arm_legitimate_constant_p_1): Return false
	for all Neon struct constants.

2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>

	* target.def (legitimate_constant_p): New hook.
	* doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
	(TARGET_LEGITIMATE_CONSTANT_P): ...this.
	* doc/tm.texi: Regenerate.
	* hooks.h (hook_bool_mode_rtx_true): Declare.
	* hooks.c (hook_bool_mode_rtx_true): Define.
	* system.h (LEGITIMATE_CONSTANT_P): Poison.
	* calls.c (precompute_register_parameters): Replace uses of
	LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
	(emit_library_call_value_1): Likewise.
	* expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
	(compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
	* ira-costs.c (scan_one_insn): Likewise.
	* recog.c (general_operand, immediate_operand): Likewise.
	* reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
	* reload1.c (init_eliminable_invariants): Likewise.

	* config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
	mode argument.
	* config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
	argument.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.
	* config/alpha/predicates.md (input_operand): Update call to
	alpha_legitimate_constant_p.

	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
	* config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
	(THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
	* config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
	(arm_legitimate_constant_p): New functions.
	(arm_cannot_force_const_mem): Make static.

	* config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
	* config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
	instead of bfin_legitimate_constant_p.
	(bfin_legitimate_constant_p): Make static.  Add a mode argument.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
	* config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(frv_legitimate_constant_p): Make static.  Add a mode argument.

	* config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
	* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.

	* config/i386/i386-protos.h (legitimate_constant_p): Delete.
	* config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/i386/i386.c (legitimate_constant_p): Rename to...
	(ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
	argument.
	(ix86_cannot_force_const_mem): Update accordingly.
	(ix86_legitimate_address_p): Likewise.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.
	* config/i386/i386.md: Update commentary.

	* config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
	* config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(ia64_legitimate_constant_p): Make static.  Add a mode argument.

	* config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(lm32_legitimate_constant_p): Make static.  Add a mode argument.

	* config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
	* config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.

	* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(m32r_legitimate_constant_p): New function.

	* config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
	* config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
	LEGITIMATE_CONSTANT_P.
	(LEGITIMATE_CONSTANT_P): Delete.
	* config/m68k/m68k.c (m68k_expand_prologue): Call
	m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
	(m68k_legitimate_constant_p): New function.
	* config/m68k/m68k.md: Update comments.

	* config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(mcore_legitimate_constant_p): New function.

	* config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
	* config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/mep/mep.c (mep_legitimate_constant_p): Make static.
	Add a mode argument.
	(mep_legitimate_address): Update accordingly.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
	Delete.
	* config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/microblaze/microblaze.c (microblaze_const_double_ok): Make
	static.  Check OP's mode for VOIDmode.
	(microblaze_legitimate_constant_p): New function.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/mips/mips.c (mips_legitimate_constant_p): New function.
	(mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.
	* config/mips/predicates.md: Update comments.

	* config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
	* config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(mmix_legitimate_constant_p): Make static, return a bool, and take
	a mode argument.
	(mmix_print_operand_address): Update accordingly.

	* config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
	Delete.
	* config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
	static.  Add a mode argument.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(pa_legitimate_constant_p): New function.

	* config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(pdp11_legitimate_constant_p): New function.

	* config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(rs6000_legitimate_constant_p): New function.

	* config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
	(rx_legitimate_constant_p): ...this.
	* config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/rx/rx.c (rx_is_legitimate_constant): Replace with...
	(rx_legitimate_constant_p): ...this.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.
	* config/rx/rx.md (mov<register_modes:mode>): Update accordingly.

	* config/s390/s390-protos.h (legitimate_constant_p): Delete.
	* config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/s390/s390.c (legitimate_constant_p): Rename to...
	(s390_legitimate_constant_p): ...this.  Make static, return a bool,
	and add a mode argument.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(sh_legitimate_constant_p): New function.

	* config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
	* config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(legitimate_constant_p): Rename to...
	(sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
	argument.
	(constant_address_p): Update accordingly.

	* config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
	argument and return a bool.
	* config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(spu_legitimate_constant_p): Add a mode argument and return a bool.
	(spu_rtx_costs): Update accordingly.
	* config/spu/predicates.md (vec_imm_operand): Likewise.

	* config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.

	* config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/v850/v850.c (v850_legitimate_constant_p): New function.
	(TARGET_LEGITIMATE_CONSTANT_P): Define.

	* config/vax/vax-protos.h (legitimate_constant_p): Delete.
	* config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
	* config/vax/vax.c (legitimate_constant_p): Likewise.

	* config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
	* config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
	(xtensa_legitimate_constant_p): New function.

2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>

	* target.def (cannot_force_const_mem): Add a mode argument.
	* doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
	* doc/tm.texi: Regenerate.
	* hooks.h (hook_bool_mode_rtx_false): Declare.
	* hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
	(hook_bool_mode_const_rtx_true): Likewise.
	(hook_bool_mode_rtx_false): New function.
	* reload.c (CONST_POOL_OK_P): Take a mode argument and require it
	to be non-VOID.  Update call to cannot_force_const_mem.
	(find_reloads): Update accordingly.
	* varasm.c (force_const_mem): Update call to cannot_force_const_mem.
	* config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
	argument.
	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
	* config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
	* config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
	* config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
	* config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
	* config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
	* config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
	* config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
	(m68k_cannot_force_const_mem): ...this new function.
	* config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
	argument.
	(mips_const_insns, mips_legitimize_const_move): Update calls.
	(mips_secondary_reload_class): Likewise.
	* config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
	(pa_cannot_force_const_mem): ...this new function.
	* config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
	(rs6000_cannot_force_const_mem): ...this new function.
	* config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
	argument.
	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
	* config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
	to...
	(xtensa_cannot_force_const_mem): ...this new function.

2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mips/mips.c (mips16_build_function_stub): Call
	build_function_type_list instead of build_function_type.
	(mips16_build_call_stub): Likewise.

2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mep/mep.c (mep_init_builtins): Call build_function_type_list
	instead of build_function_type.

2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>

	* config/pa/pa.c (pa_init_builtins): Call build_function_type_list
	instead of build_function_type.

2011-04-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/48678
	* config/i386/i386.md (insv): Change operand 0 constraint to
	"register_operand".  Change operand 1 and 2 constraint to
	"const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
	* config/i386/sse.md (sse4_1_pinsrb): Export.
	(sse2_pinsrw): Ditto.
	(sse4_1_pinsrd): Ditto.
	(sse4_1_pinsrq): Ditto.
	* config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
	* config/i386/i386.c (ix86_expand_pinsr): New.

2011-04-20  Easwaran Raman  <eraman@google.com>

	* cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
	containing union type only with -fstrict-aliasing.

2011-04-20  Jim Meyering  <meyering@redhat.com>

	Remove useless if-before-free tests.
	* calls.c (expand_call, save_area): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* collect2.c (collect_execute): Likewise.
	* config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
	* config/mcore/mcore.c (mcore_expand_prolog): Likewise.
	* coverage.c (coverage_checksum_string): Likewise.
	* cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
	* cselib.c (cselib_init): Likewise.
	* df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
	(df_set_clean_cfg): Likewise.
	* function.c (free_after_compilation): Likewise.
	* gcc.c (do_spec_1, main): Likewise.
	* gcov.c (create_file_names): Likewise.
	* gensupport.c (identify_predicable_attribute): Likewise.
	* graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
	* graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
	* haifa-sched.c (haifa_finish_h_i_d): Likewise.
	* ipa-prop.c (ipa_free_node_params_substructures): Likewise.
	* ipa-pure-const.c (local_pure_const): Likewise.
	* ipa-reference.c (propagate): Likewise.
	* ira-costs.c (free_ira_costs): Likewise.
	* ira.c (free_register_move_costs, build_insn_chain): Likewise.
	* matrix-reorg.c (mat_free): Likewise.
	* prefix.c (get_key_value): Likewise.
	* profile.c (compute_value_histograms): Likewise.
	* reload1.c (free_reg_equiv): Likewise.
	* sched-deps.c (free_deps): Likewise.
	* sel-sched-ir.c (fence_clear): Likewise.
	* sese.c (set_rename, if_region_set_false_region): Likewise.
	* tree-data-ref.c (free_rdg): Likewise.
	* tree-eh.c (lower_try_finally): Likewise.
	* tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
	* tree-ssa-live.c (delete_var_map): Likewise.
	* tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
	* tree-ssa-pre.c (phi_trans_add): Likewise.

2011-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48611
	* tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
	beyond ERT_MUST_NOT_THROW region.

2011-04-20  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.opt (mfix-24k): New.
	* config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
	* config/mips/mips.md (length): Increase by 4 for stores if
	fixing 24K errata.
	* config/mips/mips.c (mips_reorg_process_insns): Do not allow
	all noreorder if fixing 24K errata.
	* doc/invoke.texi: Document mfix-24k.

2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_legitimize_reload_address): For NEON
	quad-word modes, reduce to 9-bit index range when above 1016 limit.

2011-04-20  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (arm_gen_constant): Move movw support ....
	(const_ok_for_op): ... to here.

2011-04-20  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
	and (X && !Y) | (!X && Y) optimization to (X ^ Y).

2011-04-20  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.

2011-04-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47892
	* tree-if-conv.c (if_convertible_stmt_p): Const builtins
	are if-convertible.

2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.

2011-04-20  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.

2011-04-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/18145

	* config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
	(TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.

	* config/avr/avr-protos.h (avr_asm_output_aligned_common):
	New prototype.

	* config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
	(avr_asm_named_section,	avr_asm_output_aligned_common,
	avr_output_data_section_asm_op,	avr_output_bss_section_asm_op):
	New functions to update...
	(avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
	(avr_asm_init_sections): Overwrite section callbacks for
	data_section, bss_section.
	(avr_file_start): Move output of __do_copy_data, __do_clear_bss
	from here to...
	(avr_file_end): ...here.

2011-04-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48695
	* tree-ssa-alias.c (aliasing_component_refs_p): Compute base
	objects and types here.  Adjust for their offset before comparing.

2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-stmts.c (vectorizable_store): Only chain one related
	statement per copy.

2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>

	* Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
	(GIMPLE_H): Include $(INTERNAL_FN_H).
	(OBJS-common): Add internal-fn.o.
	(internal-fn.o): New rule.
	* internal-fn.def: New file.
	* internal-fn.h: Likewise.
	* internal-fn.c: Likewise.
	* gimple.h: Include internal-fn.h.
	(GF_CALL_INTERNAL): New gf_mask.
	(gimple_statement_call): Put fntype into a union with a new
	internal_fn field.
	(gimple_build_call_internal): Declare.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_call_same_target_p): Likewise.
	(gimple_call_internal_p): New function.
	(gimple_call_internal_fn): Likewise.
	(gimple_call_fntype): Return null for internal calls.
	(gimple_call_set_fntype): Assert that the function is not internal.
	(gimple_call_set_fn): Likewise.
	(gimple_call_set_fndecl): Likewise.
	(gimple_call_set_internal_fn): New function.
	(gimple_call_addr_fndecl): Handle null functions.
	(gimple_call_return_type): Likewise null types.
	* gimple.c (gimple_build_call_internal_1): New function.
	(gimple_build_call_internal): Likewise.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_call_same_target_p): Likewise.
	(gimple_call_flags): Handle calls to internal functions.
	(gimple_call_fnspec): New function.
	(gimple_call_arg_flags, gimple_call_return_flags): Use it.
	(gimple_has_side_effects): Handle null functions.
	(gimple_rhs_has_side_effects): Likewise.
	(gimple_call_copy_skip_args): Handle calls to internal functions.
	* cfgexpand.c (expand_call_stmt): Likewise.
	* expr.c (expand_expr_real_1): Assert that the call isn't internal.
	* gimple-fold.c (gimple_fold_call): Handle null functions.
	(gimple_fold_stmt_to_constant_1): Don't fold
	calls to internal functions.
	* gimple-low.c (gimple_check_call_args): Handle calls to internal
	functions.
	* gimple-pretty-print.c (dump_gimple_call): Likewise.
	* ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
	* tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
	(do_warn_unused_result): Likewise.
	* tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
	* tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
	* tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
	the target of a call.
	(initialize_hash_element): Update accordingly.
	(hashable_expr_equal_p): Use gimple_call_same_target_p.
	(iterative_hash_hashable_expr): Handle calls to internal functions.
	(print_expr_hash_elt): Likewise.
	* tree-ssa-pre.c (can_value_number_call): Likewise.
	(eliminate): Handle null functions.
	* tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
	* tree-ssa-structalias.c (get_fi_for_callee): Likewise.
	(find_func_aliases): Likewise.
	* value-prof.c (gimple_ic_transform): Likewise.
	(gimple_indirect_call_to_profile): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.
	* lto-streamer-out.c (output_gimple_stmt): Likewise.

2011-04-19  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (save_inline_function_body): Add comments.
	* ipa-inline.c (inline_small_functions): Compute summaries first,
	populate heap later.

2011-04-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (save_inline_function_body): Remove.
	* ipa-inline-transform.c: New file, broke out of...
	* ipa-inline.c: ... this one; Update toplevel comment.
	(ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
	make global.
	(update_noncloned_frequencies): Move to ipa-inline-transform.c
	(cgraph_mark_inline_edge): Rename to inline_call; move to
	ipa-inline-transform.c.
	(cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
	move to ipa-inline-transform.c
	(recursive_inlining, inline_small_functions, flatten_function,
	ipa_inline, inline_always_inline_functions,
	early_inline_small_functions): Update.
	(inline_transform): Move to ipa-inline-transform.c.
	* ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
	Declare.
	* Makefile.in (ipa-inline-transform.o): New file.
	* cgraphunit.c (save_inline_function_body): Move to
	ipa-inline-transform.c

2011-04-19  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
	registers if we already know there aren't any.
	(m32c_emit_epilogue): Don't emit a barrier here.
	(m32c_emit_eh_epilogue): Likewise.
	* config/m32c/blkmov.md (movstr): Don't fail on wrong-type
	operands at expand time.
	* config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
	int" wchar type.
	(REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
	duplicates.  Provide aliases instead.
	* config/m32c/prologue.md (eh_return): Emit a barrier here.
	(eh_epilogue): Add a "(return)" here as a hint to other parts of
	the compiler.

2011-04-19  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
	* config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
	(general_or_i64_p, sparc_register_move_cost): New function.

2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Configuration, --enable-threads): Remove mach.
	Add lynx, mipssde.  Sort table.

2011-04-19  Xinliang David Li  <davidxl@google.com>

	* ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
	not negative.

2011-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/48678
	* config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
	is a SUBREG with non-MODE_INT mode inside of it.

2011-04-19  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
	also according to actual contants.
	* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
	(gimple_fold_call): Use it.
	* gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.

2011-04-19  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
	non-pointer assignments.

2011-04-19  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
	account anc_offset and otr_type from the indirect edge info.
	* ipa-prop.c (get_ancestor_addr_info): New function.
	(compute_complex_ancestor_jump_func): Assignment analysis moved to
	get_ancestor_addr_info, call it.
	(ipa_note_param_call): Do not initialize information about polymorphic
	calls, return the indirect call graph edge.  Remove the last
	parameter, adjust all callers.
	(ipa_analyze_virtual_call_uses): Process also calls to ancestors of
	parameters.  Initialize polymorphic information in the indirect edge.

2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/48148
	* gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
	the types if they have different enumeration identifiers.

2011-04-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_optimize_for_size_p): Declare.
	* ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
	* predict.c (cgraph_optimize_for_size_p): Break out from ...
	(optimize_function_for_size_p) ... here.

2011-04-19  Richard Guenther  <rguenther@suse.de>

	PR lto/48207
	* tree.c (free_lang_data): Do not reset the decl-assembler-name
	langhook.

2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.c (expand_call_inline): Do not issue a -Winline warning
	if DECL_NO_INLINE_WARNING_P is set on the function.

2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>

	PR fortran/47976
	* reload1.c (inc_for_reload): Return void. All callers changed.
	(emit_input_reload_insns): Don't try to delete previous output
	reloads to a register, or record spill_reg_store for autoincs.

2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.h: Updated copyright year.
	(struct input_file_st): Add inpisplugin field.
	(type_fileloc): New function.
	* gengtype.c
	(write_typed_struct_alloc_def): Add gcc_assert.
	(write_typed_alloc_defns): Ditto. Don't output for plugin files.
	(write_typed_alloc_defns): Don't output for plugin files.
	(input_file_by_name): Clear inpisplugin field.
	(main): Set inpisplugin field for plugin files.

2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* gengtype-state.c (string_eq): New.
	(read_state): Use string_eq instead of strcmp when creating the
	state_ident_tab.

2011-04-19  Wei Guozhi  <carrot@google.com>

	PR target/47855
	* config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
	* config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
	linkage.
	* config/arm/constraints.md (Uu): New constraint.
	* config/arm/arm.md (*arm_movqi_insn): Compute attr "length".

2011-04-19  Tristan Gingold  <gingold@adacore.com>

	* config.gcc (-*-*-*vms): Added.
	(alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
	definitions moved.
	* config/vms/vms-ld.c: New file.
	* config/vms/vms-ar.c: New file.
	* config/vms/t-vmsnative: New file.

2011-04-18  Xinliang David Li  <davidxl@google.com>

	* final.c (dump_basic_block_info): Use ASM_COMMENT_START.

2011-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48661
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
	if TREE_TYPE (v) is non-NULL.

	* gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
	gimple_get_virt_mehtod_for_binfo.
	* gimple.h (gimple_get_virt_method_for_binfo): Likewise.
	* ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
	callers.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.

2011-04-18  Michael Matz  <matz@suse.de>
	    Steve Ellcey  <sje@cup.hp.com>

	* expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
	use its mode as source mode if it isn't VOIDmode.

2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>

	* doc/passes.texi: Fill crossref nodes.

2011-04-18  Jim Meyering  <meyering@redhat.com>

	Fix doubled-word typos in comments and strings
	* config/alpha/vms-unwind.h: s/for for/for/
	* config/arm/unwind-arm.h: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/sh/constraints.md: s/in in/in/
	* tree-cfg.c (verify_types_in_gimple_reference): Likewise.

2011-04-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
	(AVX_FLOAT_MODE_P): Ditto.
	(AVX128_VEC_FLOAT_MODE_P): Ditto.
	(AVX256_VEC_FLOAT_MODE_P): Ditto.
	(AVX_VEC_FLOAT_MODE_P): Ditto.
	* config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
	(UNSPEC_MASKSTORE): Ditto.
	* config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
	Merge from <sse>_movmsk<ssemodesuffix> and
	avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
	(*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
	iterator.
	(avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
	(avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
	(*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.

2011-04-18  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (inline_small_functions): Fix pasto in previous patch.

	* ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
	(want_inline_function_called_once_p): Break out the logic from
	ipa_inline.
	(edge_badness): Ensure that profile is not misupdated.
	(lookup_recursive_calls): Prioritize by call frequencies.
	(inline_small_functions): Move program size estimates here;
	actually process whole queue even when unit growth has been
	met. (to properly compute inline_failed reasons and for the
	case unit size decrease.) Revisit comments on recursive inlining.
	(ipa_inline): Remove unit summary code; first inline hot calls
	of functions called once, cold calls next.
	(order, nnodes): Remove unused variables.
	* Makefile.in (ipa-inline.o): No longer depent on ggc files.
	(GTFILES): Remove ipa-inline.c
	* sel-sched.c (fill_insns): Silence uninitialized var warning.

2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.

2011-04-18  Jie Zhang  <jie@codesourcery.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (neon_builtin_type_bits): Remove.
	(typedef enum neon_builtin_mode): New.
	(T_MAX): Don't define.
	(typedef enum neon_builtin_datum): Remove bits, codes[],
	num_vars and base_fcode.  Add mode, code and fcode.
	(VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
	VAR10): Change accordingly.
	(neon_builtin_data[]): Change accordingly
	(arm_init_neon_builtins): Change accordingly.
	(neon_builtin_compare): Remove.
	(locate_neon_builtin_icode): Remove.
	(arm_expand_neon_builtin): Change accordingly.

	* arm.h (enum arm_builtins): Move to ...
	* arm.c (enum arm_builtins): ... here; and rearrange builtin code.

	* arm.c (arm_builtin_decl): Declare.
	(TARGET_BUILTIN_DECL): Define.
	(enum arm_builtins): Correct ARM_BUILTIN_MAX.
	(arm_builtin_decls[]): New.
	(arm_init_neon_builtins): Store builtin declarations in
	arm_builtin_decls[].
	(arm_init_tls_builtins): Likewise.
	(arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
	(arm_builtin_decl): New.

2011-04-18  Richard Guenther  <rguenther@suse.de>

	* tree.c (upper_bound_in_type): Build properly canonicalized
	INTEGER_CSTs.
	(lower_bound_in_type): Likewise.

2011-04-18  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_call_addr_fndecl): New function.
	(gimple_call_fndecl): Use it.
	* gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
	for direct calls.
	* tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
	* tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.

2011-04-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48650
	* tree.c (build_string): STRING_CST is now derived from tree_typed.

2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/48492
	* cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
	DECL_IN_CONSTANT_POOL without RTL.

2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
	    Ira Rosen  <ira.rosen@linaro.org>

	PR target/48252
	* config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
	to match neon_vzip/vuzp/vtrn_internal.
	* config/arm/neon.md (neon_vtrn<mode>_internal): Make both
	outputs explicitly dependent on both inputs.
	(neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.

2011-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48616
	* tree-vect-stmts.c (vectorizable_shift): If SLP, determine
	whether the shift is by scalar or vector based on whether all SLP
	scalar stmts have the same rhs.

2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
	memory operands.

2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/43700
	* config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
	registers.

2011-04-17  Jan Hubicka  <jh@suse.cz>

	* cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
	* cgrpahunit.c (cgraph_finalize_function): Do not set
	finalized_by_frontend.
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
	finalized_by_frontend.

2011-04-17  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_clone_node): Do not handle vtable_method
	* cgraph.h (struct cgraph_local_info): Drop vtable_method.
	* cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
	method.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
	gimple-fold.c
	* varasm.c (mark_decl_referenced): Drop vtable_method handling code.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/48538
	* lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
	is non-null before accessing it.
	(input_cgraph): Remove trailing spaces.

2011-04-17  Revital Eres  <revital.eres@linaro.org>

	* params.def (sms-min-sc): New param flag.
	* modulo-sched.c (sms_schedule): Use it.
	* doc/invoke.texi (sms-min-sc): Document it.

2011-04-17  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): When call statement is
	present, also set gimple_call_set_cannot_inline.
	* ipa-inline.c: Update toplevel comment.
	(MAX_TIME): Remove.
	(cgraph_clone_inlined_nodes): Fix linebreaks.
	(cgraph_check_inline_limits): Restructure to ...
	(caller_growth_limits): ... this one; be more tolerant
	on growth in nested inline chains; add explanatory comment;
	fix stack accounting thinko introduced by previous patch.
	(cgraph_default_inline_p): Remove.
	(report_inline_failed_reason): New function.
	(can_inline_edge_p): New function.
	(can_early_inline_edge_p): New function.
	(leaf_node_p): Move upwards in file.
	(want_early_inline_function_p): New function.
	(want_inline_small_function_p): New function.
	(want_inline_self_recursive_call_p): New function.
	(cgraph_edge_badness): Rename to ...
	(edge_badness) ... this one; fix linebreaks.
	(update_edge_key): Update call of edge_baddness; add
	detailed dump about queue updates.
	(update_caller_keys): Use can_inline_edge_p and
	want_inline_small_function_p.
	(cgraph_decide_recursive_inlining): Rename to...
	(recursive_inlining): Use can_inline_edge_p and
	want_inline_self_recursive_call_p; simplify and remove no longer
	valid FIXME.
	(cgraph_set_inline_failed): Remove.
	(add_new_edges_to_heap): Use can_inline_edge_p and
	want_inline_small_function_p.
	(cgraph_decide_inlining_of_small_functions): Rename to ...
	(inline_small_functions): ... this one; cleanup; use
	can/want predicates; cleanup debug ouput; work edges till fibheap
	is exhausted and do not stop once unit growth is reached; remove
	later loop processing remaining edges.
	(cgraph_flatten): Rename to ...
	(flatten_function): ... this one; use can_inline_edge_p
	and can_early_inline_edge_p predicates.
	(cgraph_decide_inlining): Rename to ...
	(ipa_inline): ... this one; remove unreachable nodes before
	inlining functions called once; simplify the pass.
	(cgraph_perform_always_inlining): Rename to ...
	(inline_always_inline_functions): ... this one; use
	DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
	(cgraph_decide_inlining_incrementally): Rename to ...
	(early_inline_small_functions): ... this one; simplify
	using new predicates; cleanup; make dumps prettier.
	(cgraph_early_inlining): Rename to ...
	(early_inliner): newer inline regular functions into always-inlines;
	fix updating of call stmt summaries.
	(pass_early_inline): Update for new names.
	(inline_transform): Fix formating.
	(gate_cgraph_decide_inlining): Rename to ...
	(pass_ipa_inline): ... this one.
	* ipa-inline.h (inline_summary): Remove disregard_inline_limits.
	* ipa-inline-analysis.c (dump_inline_summary): Update.
	(compute_inline_parameters): Do not compute disregard_inline_limits;
	look for mismatching arguments.
	(estimate_growth): Fix handlig of non-trivial self recursion.
	(inline_read_summary): Do not read info->disregard_inline_limits.
	(inline_write_summary): Do not write info->disregard_inline_limits.
	* tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
	and move all checks into can_inline_edge_p predicate; re-enable code
	comparing optimization levels.
	(expand_call_inline): Do not test inline_forbidden_into_p.
	* Makefile.in (ipa-inline.o): Update arguments.

2011-04-17  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.

2011-04-17  Revital Eres  <revital.eres@linaro.org>

	* modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.

2011-04-17  Michael Matz  <matz@suse.de>

	PR tree-optimization/48622
	PR lto/48645
	* ipa-inline-analysis.c (inline_read_summary): Read size/time
	in same order as they're written.

2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/predicates.md: Reorganize and simplify predicates.
	Eliminate duplicate code checks.
	(arith_operand): Rename to arith14_operand
	(reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
	* config/pa/pa.md: Use renamed operands.
	* config/pa/pa-protos.h (symbolic_operand): Delete declaration.
	(tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
	arith11_operand, adddi3_operand, indexed_memory_operand,
	symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
	arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
	borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
	move_dest_operand, move_src_operand, prefetch_cc_operand,
	prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
	uint32_operand, reg_before_reload_operand, reg_or_0_operand,
	reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
	div_operand, int5_operand, movb_comparison_operator,
	ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
	arith_double_operand, ireg_operand, lhs_lshift_operand,
	pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
	integer_store_memory_operand): Likewise.
	* config/pa/pa.c (adddi3_operand): Move to predicates.md.
	(integer_store_memory_operand, read_only_operand,
	function_label_operand, borx_reg_operand,
	non_hard_reg_operand): Likewise.
	(eq_neq_comparison_operator): Delete unused operator.
	(legitimize_pic_address): Use VOIDmode for mode argument in calls to
	function_label_operand.
	(emit_move_sequence): Likewise.

2011-04-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sseunpackmode): New mode attribute.
	(ssepackmode): Ditto.
	(vec_pack_trunc_<mode>): Macroize expander from
	vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
	(vec_unpacks_lo_<mode>): Macroize expander from
	vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
	(vec_unpacks_hi_<mode>): Macroize expander from
	vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
	(vec_unpacku_lo_<mode>): Macroize expander from
	vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
	(vec_unpacku_hi_<mode>): Macroize expander from
	vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
	* config/i386/i386.c (ix86_expand_sse_unpack): Merge with
	ix86_expand_sse4_unpack.
	* config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.

2011-04-16  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c: Include ipa-inline.h.
	(reset_inline_failed): Use initialize_inline_failed.
	* cgraph.c: Include ipa-inline.h.
	(cgraph_create_node_1): Do not initialize estimated_growth.
	(initialize_inline_failed): More to ipa-inline-analysis.c
	(dump_cgraph_node): Do not dump inline flags.
	* cgraph.h (cgraph_local_info): Remove inlineable, versionable
	and disregard_inline_limits flags.
	(cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
	time, size, estimated_growth.
	* ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
	Update.
	* cgraphunit.c (cgraph_decide_is_function_needed): Use
	DECL_DISREGARD_INLINE_LIMITS.
	(cgraph_analyze_function): Do not initialize
	node->local.disregard_inline_limits.
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
	inlinable, versionable and disregard_inline_limits.
	* ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
	cgraph_check_inline_limits, cgraph_default_inline_p,
	cgraph_edge_badness, update_caller_keys, update_callee_keys,
	add_new_edges_to_heap): Update.
	(cgraph_decide_inlining_of_small_function): Update; set
	CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
	(cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
	cgraph_decide_inlining_incrementally): Update.
	* ipa-inline.h (inline_summary): Add inlinable, versionable,
	disregard_inline_limits, estimated_stack_size, stack_frame_offset,
	time, size and estimated_growth parameters.
	(estimate_edge_growth): Update.
	(initialize_inline_failed): Declare.
	* ipa-split.c: Include ipa-inline.h
	(execute_split_functions): Update.
	* ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
	(cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
	(record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
	* ipa-inline-analysis.c (inline_node_removal_hook): Update; set
	estimated_growth to INT_MIN.
	(inline_node_duplication_hook): Likewise.
	(dump_inline_summary): Dump new fields.
	(compute_inline_parameters): Update.
	(estimate_edge_time, estimate_time_after_inlining,
	estimate_size_after_inlining, estimate_growth, inline_read_summary,
	inline_write_summary):
	(initialize_inline_failed): Move here from cgraph.c.
	* tree-sra.c: Include ipa-inline.h.
	(ipa_sra_preliminary_function_checks): Update.
	* Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
	ipa-inline.h.

2011-04-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (V16): New mode iterator.
	(VI1, VI8): Ditto.
	(AVXMODEQI, AVXMODEDI): Remove.
	(sse2, sse3): New mode attribute.
	(mov<mode>): Use V16 mode iterator.
	(*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
	(push<mode>1): Use V16 mode iterator.
	(movmisalign<mode>): Ditto.
	(<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
	<sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
	(*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
	*<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
	(<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
	avx_movdqu<avxmodesuffix>.
	(*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
	*avx_movdqu<avxmodesuffix>.
	(<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
	avx_lddqu<avxmodesuffix>.
	(<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
	(<sse2>_movnt<mode>): Merge from sse2_movntv2di and
	avx_movnt<AVXMODEDI:mode>.
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
	renamed sse_movups, sse2_movupd and sse2_movdqu patterns.

2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/48629
	* haifa-sched.c (prune_ready_list, schedule_block): Use
	sched_pressure_p rather than flag_sched_pressure.

2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (call_ABI_of_interest): Call
	cgraph_get_node instead of cgraph_get_create_node.

2011-04-15  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (expand_debug_expr): Use
	simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.

2011-04-15  Michael Matz  <matz@suse.de>

	* tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
	* builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
	* function.c (gimplify_parameters): Ditto.
	* gimplify.c (gimplify_vla_decl): Ditto.

	* gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
	(gimple_call_set_alloca_for_var): New inline function.
	(gimple_call_alloca_for_var_p): Ditto.
	* gimple.c (gimple_build_call_from_tree): Remember
	CALL_ALLOCA_FOR_VAR_P state.
	* cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.

	* tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
	calls if they were for VLA objects.

2011-04-15  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
	of ADR_EXPRs.

2011-04-15  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/48601
	* tree-emutls.c (lower_emutls_function_body): Call
	cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
	result is non-NULL.

2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-decl.c (detect_field_duplicates): Call
	objc_detect_field_duplicates instead of objc_get_interface_ivars.

2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>

	* gimple.h (gimple_asm_clobbers_memory_p): Declare.
	* gimple.c (gimple_asm_clobbers_memory_p): Define.
	* ipa-pure-const.c (check_stmt): Call it.
	* tree-ssa-operands.c (get_asm_expr_operands): Likewise.

2011-04-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48290
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
	Properly decide inhibiting propagation based on the valueized
	operand.  Do loop-closed SSA form preserving here ...
	(init_copy_prop): ... not here.

2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/48612
	* config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
	(*ieee_smax<mode>3): Likewise.

2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
	Replace match_operand with match_dup for the third operand in
	these expanders.

2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* combine.c (subst, combine_simlify_rtx): Add new argument, use it
	to track processing of conditionals.  Update all callers.
	(try_combine, simplify_if_then_else): Update.

2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (m68k_sched_variable_issue): Handle
	-fsched-pressure.

2011-04-15  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
	instead of match_operand for operand 3.

2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>

	* recog.h (insn_operand_data): Add an "allows_mem" field.
	* genoutput.c (output_operand_data): Initialize it.
	* optabs.c (maybe_legitimize_operand_same_code): New function.
	(maybe_legitimize_operand): Use it when matching the original
	op->value.

2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c: Fix issues in comments throughout.
	(voidify_wrapper_expr): Fix long line.
	(build_stack_save_restore): Likewise.
	(gimplify_loop_expr): Likewise.
	(gimplify_compound_lval): Likewise.
	(gimplify_init_ctor_eval): Likewise.
	(gimplify_modify_expr_rhs): Likewise.
	(omp_notice_threadprivate_variable): Likewise.

2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (expand_call_stmt): Convert the function type to the
	original one if this is not a builtin function.

2011-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/48605
	* config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
	offset it as needed based on top 2 bits in operands[3], change
	MEM mode to SFmode and mask those 2 bits away from operands[3].

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_protocol_definition): Updated for
	change from objc_declare_protocols() to objc_declare_protocol().

2011-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse4_1): New mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
	avx_blend<ssemodesuffix><avxmodesuffix> and
	sse4_1_blend<ssemodesuffix> using VF mode iterator.
	(<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
	avx_blendv<ssemodesuffix><avxmodesuffix> and
	sse4_1_blendv<ssemodesuffix> using VF mode iterator.
	(<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
	avx_dp<ssemodesuffix><avxmodesuffix> and
	sse4_1_dp<ssemodesuffix> using VF mode iterator.
	(sse4_1_mpsadbw): Merge with *avx_mpsadbw.
	(sse4_1_packusdw): Merge with *avx_packusdw.
	(sse4_1_pblendvb): Merge with *avx_pblendvb.
	(sse4_1_pblendw): Merge with *avx_pblendw.
	(avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
	(<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
	avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
	VF mode iterator.
	(sse4_1_round<ssescalarmodesuffix>): Merge with
	*avx_round<ssescalarmodesuffix>.
	(aesenc): Merge with *avx_aesenc.
	(aesenclast): Merge with *avx_aesenclast.
	(aesdec): Merge with *avx_aesdec.
	(aesdeclast): Merge with *avx_aesdeclast.
	(pclmulqdq): Merge with *pclmulqdq.
	* config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
	New predicate.
	(nonimm_not_xmm0_operand_maybe_avx): Ditto.

2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/48608
	* cfgexpand.c (get_decl_align_unit): Renamed to ...
	(align_local_variable): This.  Update DECL_ALIGN.
	(add_stack_var): Updated.
	(expand_one_stack_var): Likewise.

2011-04-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
	Remove.
	(dse_initialize_block_local_data, dse_leave_block,
	record_voperand_set, get_stmt_uid): Likewise.
	(dse_possible_dead_store_p): Allow any kind of killing stmt.
	(dse_optimize_stmt): Remove voperand set handling code.
	Simplify and improve to handle any kind of killing stmt.
	(dse_record_phi): Remove.
	(dse_enter_block): Simplify.
	(tree_ssa_dse): Likewise.
	* tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.

2011-04-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Do not dump inline summaries.
	* cgraph.h (struct inline_summary): Move to ipa-inline.h
	(cgraph_local_info): Remove inline_summary.
	* ipa-cp.c: Include ipa-inline.h.
	(ipcp_cloning_candidate_p, ipcp_estimate_growth,
	ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
	accesor.
	* lto-cgraph.c (lto_output_node): Do not stream inline summary.
	(input_overwrite_node): Do not set inline summary.
	(input_node): Do not stream inline summary.
	* ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
	(cgraph_decide_inlining_incrementally): Do not try to estimate overall
	growth; we do not have inline parameters computed for that anyway.
	(cgraph_early_inlining): After inlining compute call_stmt_sizes.
	* ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
	(inline_summary_t): New type and VECtor.
	(debug_inline_summary, dump_inline_summaries): Declare.
	(inline_summary): Use VOCtor.
	(estimate_edge_growth): Kill hack computing call stmt size directly.
	* lto-section-in.c (lto_section_name): Add inline section.
	* ipa-inline-analysis.c: Include lto-streamer.h
	(node_removal_hook_holder, node_duplication_hook_holder): New holders
	(inline_node_removal_hook, inline_node_duplication_hook): New functions.
	(inline_summary_vec): Define.
	(inline_summary_alloc, dump_inline_summary, debug_inline_summary,
	dump_inline_summaries): New functions.
	(estimate_function_body_sizes): Properly compute size/time of outgoing
	calls.
	(compute_inline_parameters): Alloc inline_summary; do not compute
	size/time of incomming calls.
	(estimate_edge_time): Avoid missing time summary hack.
	(inline_read_summary): Read inline summary info.
	(inline_write_summary): Write inline summary info.
	(inline_free_summary): Free all hooks and inline summary vector.
	* lto-streamer.h: Add LTO_section_inline_summary section.
	* Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
	* ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.

2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vectorizer.h (vect_strided_store_supported): Add a
	HOST_WIDE_INT argument.
	(vect_strided_load_supported): Likewise.
	(vect_permute_store_chain): Return void.
	(vect_transform_strided_load): Likewise.
	(vect_permute_load_chain): Delete.
	* tree-vect-data-refs.c (vect_strided_store_supported): Take a
	count argument.  Check that the count is a power of two.
	(vect_strided_load_supported): Likewise.
	(vect_permute_store_chain): Return void.  Update after above changes.
	Assert that the access is supported.
	(vect_permute_load_chain): Likewise.
	(vect_transform_strided_load): Return void.
	* tree-vect-stmts.c (vectorizable_store): Update calls after
	above interface changes.
	(vectorizable_load): Likewise.
	(vect_analyze_stmt): Don't check for strided powers of two here.

2011-04-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48590
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
	(call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
	BUILT_IN_STACK_SAVE.
	* tree-ssa-dce.c (propagate_necessity): Handle
	BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_class_declaration): Updated call to
	objc_declare_class.

2011-04-14  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_object_alignment_1): Declare.
	* builtins.c (get_object_alignment_1): Split out worker from ...
	(get_object_alignment): ... here.
	* fold-const.c (get_pointer_modulus_and_residue): Use
	get_object_alignment_1.

2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
	type parameter.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
	parameter.  Generalise code to handle arrays as well as vectors.
	(vect_setup_realignment): Update accordingly.
	* tree-vect-stmts.c (vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
	within the per-copy loop.

2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* tree-vect-stmts.c (vectorizable_load): Print the number of copies
	in the dump file.

2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>

	* doc/options.texi (Negative): Explicitly mention that the
	Negative chain must be circular.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* function.h (block_chainon): Declare.
	* function.c (block_chainon): Define.

2011-04-14  Anatoly Sokolov  <aesok@post.ru>
	    Eric Weddington  <eric.weddington@atmel.com>
	    Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
	New Includes
	(avr_init_builtins, avr_expand_builtin,
	avr_expand_delay_cycles, avr_expand_unop_builtin,
	avr_expand_binop_builtin ): New functions.
	(avr_builtin_id): New enum
	(struct avr_builtin_description): New struct
	(bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.

	* config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
	UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
	UNSPECV_DELAY_CYCLES): new enumeration values
	(UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
	("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
	("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
	("*rotlqi3_4"): rename insn to "rotlqi3_4"
	("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
	"delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
	"fmulsu"): New insns

	* config/avr/avr-c.c: fix line endings
	(avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
	__BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
	__BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
	__BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
	__BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.

	* doc/extend.texi (AVR Built-in Functions): New node
	(Target Builtins): Add documentation of AVR
	built-in functions.

2011-04-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/44643
	* config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
	alone. Error if non-const data has attribute progmem.

2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_constructor): Include tree_typed instead of
	tree_common.
	* tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
	TS_TYPED instead of TS_COMMON.

2011-04-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
	(*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
	(sse2_psadbw): Merge with *avx_psadbw.
	(ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
	(ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
	(ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
	(ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
	(ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
	(ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
	(ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
	(*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
	(ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
	(ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
	(ssse3_palignrti): Merge with *avx_palignrti.

2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
	* tree-ssanames.c (fini_ssanames): VEC_free it.
	(make_ssa_name_fn): Update for VECness of free_ssanames.
	(release_ssa_name, release_dead_ssa_names): Likewise.
	* tree.h (struct tree_ssa_name): Include tree_typed instead of
	tree_common.
	* tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
	TS_TYPED instead of TS_COMMON.

2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>

	* postreload-gcse.c (gcse_after_reload_main): Add calls to
	statistics_counter_event.
	* tree-ssa-copyrename.c (stats): Define.
	(rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
	statistics_counter_event.
	* tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
	(bswap_stats, widen_mul_stats): Define.
	(insert_reciprocals): Increment rdivs_inserted.
	(execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
	rfuncs_inserted.  Add calls to statistics_counter_event.
	(execute_cse_sincos_1): Increment inserted.
	(execute_cse_sincos): Zeroize sincos_stats.  Add call to
	statistics_counter_event.
	(execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
	of bswap_stats.  Add calls to statistics_counter_event.
	(convert_mult_to_widen): Increment widen_mults_inserted.
	(convert_plusminus_to_widen): Increment maccs_inserted.
	(convert_mult_to_fma): Increment fmas_inserted.
	(execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
	calls to statistics_counter_event.

2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48455
	* ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
	`temp_costs->mem_cost'.

2011-04-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.h: New file.
	* ipa-inline-analysis.c: New file. Broken out of ...
	* ipa-inline.c: ... this file; update toplevel comment;
	include ipa-inline.h
	(inline_summary): Move to ipa-inline.h
	(cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
	ipa-inline-analysis.c.
	(cgraph_estimate_time_after_inlining): Rename to
	estiamte_time_after_inlining; move to ipa-inline-analysis.c
	(cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
	to estimate_edge_growth.
	(cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
	rename to estimate_size_after_inlining.
	(cgraph_mark_inline_edge): Update for new naming convention.
	(cgraph_check_inline_limits): Likewise.
	(cgraph_edge_badness): Likewise.
	(cgraph_decide_recursive_inlining): Likewise.
	(cgraph_decide_inlining_of_small_functions): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_estimate_growth): Rename to estimate_growth; move to
	ipa-inline-analysis.c.
	(eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
	(estimate_function_body_sizes): Move to ipa-inline-analysis.c.
	(compute_inline_parameters): Likewise.
	(compute_inline_parameters_for_current): Likewise.
	(pass_inline_parameters): Likewise.
	(inline_indirect_intraprocedural_analysis): Likewise.
	(analyze_function): Rename to inline_analyze_function; likewise.
	(add_new_function): Move to ipa-inline-analysis.c.
	(inline_generate_summary): Likewise.
	(inline_read_summary): Likewise.
	(inline_write_summary): Likewise.
	* Makefile.in (ipa-inline-analysis.c): New file.

2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
	* configure: Regenerate.

2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_int_cst, struct real_value): Include tree_typed
	instead of tree_common.
	(struct tree_fixed_cst, struct tree_string, struct tree_complex):
	Likewise.
	* tree.c (initialize_tree_contains_struct): Mark such nodes as being
	TS_TYPED rather than TS_COMMON.
	* print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.

2011-04-01  Georg-Johann Lay  <avr@gjlay.de>

	PR target/45263
	* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
	r20 around calls of __tablejump_elpm__

2011-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48591
	* omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
	NULL.
	(expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.

2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>

	* dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
	(dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
	(cfi_vec): New typedef.
	(struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
	dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
	(cie_cfi_vec): New static variable.
	(cie_cfi_head): Delete.
	(add_cfi): Accept a cfi_vec * as first argument. All callers and
	declaration changed. Use vector rather than list operations.
	(new_cfi): Don't initialize the dw_cfi_next field.
	(add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
	rather than list operations.
	(lookup_cfa): Use vector rather than list operations.
	(output_cfis): New argument upto. Accept a cfi_vec rather than
	a dw_cfi_ref list head as argument. All callers changed.
	Iterate over the vector using upto as a maximum index.
	(output_all_cfis): New static function.
	(output_fde): Use vector rather than list operations. Use the
	new upto argument for output_cfis rather than manipulating a
	list.
	(dwarf2out_begin_prologue): Change initializations to match
	new struct members.
	(dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
	from the vector length rather than searching for the end of a list.
	Use output_all_cfis.
	(convert_cfa_to_fb_loc_list): Use vector rather than list operations.

2011-04-13  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (movmemsi): Do not use this pattern when
	volatile pointers are involved.

2011-04-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (pinsrbits): Remove.
	(sse2_packsswb): Merge with *avx_packsswb.
	(sse2_packssdw): Merge with *avx_packssdw.
	(sse2_packuswb): Merge with *avx_packuswb.
	(vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
	(vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
	(vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
	(vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
	(vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
	(vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
	(*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
	(*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
	(*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
	(*sse4_1_pinsrq): Merge with *avx_pinsrq.
	(sse2_loadld): Merge with *avx_loadld.
	(*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
	(*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
	(*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
	(*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
	(vec_concatv2di): Merge with *vec_concatv2di_avx.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* c-decl.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.
	* print-tree.c (print_node): Likewise.
	* tree-inline.c (copy_tree_r): Likewise.
	* c-lang.c (LANG_HOOKS_INIT_TS): Define.
	* lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
	instead of TS_COMMON.
	* lto-streamer-out.c (lto_output_tree_pointers): Likewise.
	* tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
	(copy_node_stat): Zero TREE_CHAIN only if necessary.
	(MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
	(MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
	...and these...
	(MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
	* tree.h: ...here.
	(TREE_CHAIN): Check for a TS_COMMON structure.
	(TREE_TYPE): Check for a TS_TYPED structure.

2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (call_ABI_of_interest): Call
	cgraph_get_create_node instead of cgraph_node.

2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_initelt): Updated call to
	objc_build_message_expr.
	(c_parser_postfix_expression): Likewise.

2011-04-12  Kai Tietz  <ktietz@redhat.com>

	* config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
	MASK_MS_BITFIELD_LAYOUT bit.

2011-04-12  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (update_cfg_for_uncondjump): Instead of testing at_end
	assert it is always true.
	(try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
	moves.

2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): Rewritten conditional used when
	compiling Objective-C to be more efficient.

2011-04-12  Axel Freyn  <axel-freyn@gmx.de>

	* opts-common.c (decode_cmdline_options_to_array): Remove variable
	argv_copied.

2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>

	* recog.h, genoutput.c, optabs.c: Revert last patch.

2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/48090
	* config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.

2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>

	* recog.h (insn_operand_data): Add an "allows_mem" field.
	* genoutput.c (output_operand_data): Initialize it.
	* optabs.c (maybe_legitimize_operand_same_code): New function.
	(maybe_legitimize_operand): Use it when matching the original
	op->value.

2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>

	* genpreds.c (process_define_predicate): Move most processing
	to gensupport.c.  Continue to validate the expression.
	* genrecog.c (did_you_mean_codes, compute_predicate_codes)
	(process_define_predicate): Move processing to gensupport.c.
	(main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
	* gensupport.c (did_you_mean_codes): Moved from genrecog.c.
	(compute_predicate_codes): Moved from genrecog.c.  Add lineno
	argument.
	(valid_predicate_name_p): New function, split out from old
	genpreds.c:process_define_predicate.
	(process_define_predicate): New function, combining code from
	old genpreds.c and genrecog.c functions.
	(process_rtx): Call it for DEFINE_PREDICATE and
	DEFINE_SPECIAL_PREDICATE.

2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
	size of a '%A' memory reference.
	(T_DREG, T_QREG): New neon_builtin_type_bits.
	(arm_init_neon_builtins): Assert that the load and store operands
	are neon_struct_operands.
	(locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
	(NEON_ARG_MEMORY): New builtin_arg.
	(neon_dereference_pointer): New function.
	(arm_expand_neon_args): Add a neon_builtin_type_bits argument.
	Handle NEON_ARG_MEMORY.
	(arm_expand_neon_builtin): Update after above interface changes.
	Use NEON_ARG_MEMORY for loads and stores.
	* config/arm/predicates.md (neon_struct_operand): New predicate.
	* config/arm/iterators.md (V_two_elem): Tweak formatting.
	(V_three_elem): Use BLKmode for accesses that have no associated mode.
	(V_four_elem): Tweak formatting.
	* config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
	(neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
	(neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
	(neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
	(neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
	(neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
	(neon_vst4<mode>): Replace pointer operand with a memory operand.
	Use %A in the output template.
	(neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
	(neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
	(neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
	the width of the memory access.  Remove post-increment.
	* config/arm/neon-testgen.ml: Allow addresses to have an alignment.

2011-04-12  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (expand_prologue): Do not use the CALLT
	instruction for interrupt handlers if the target is the basic V850
	architecture.
	(expand_epilogue): Likewise.

2011-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/48549
	* combine.c (propagate_for_debug): Also stop after BB_END of
	this_basic_block.  Process LAST and just stop processing after it.
	(combine_instructions): If last_combined_insn has been deleted,
	set last_combined_insn to its PREV_INSN.

2011-04-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46076
	* gimple.h (struct gimple_statement_call): Add fntype field.
	(gimple_call_fntype): Adjust.
	(gimple_call_set_fntype): New function.
	* gimple.c (gimple_build_call_1): Set the call function type.
	* gimplify.c (gimplify_call_expr): Preserve the function
	type the frontend used for the call.
	(gimplify_modify_expr): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Input the call stmts
	function type.
	* lto-streamer-out.c (output_gimple_stmt): Output the call stmts
	function type.
	* tree-ssa.c (useless_type_conversion_p): Function pointer
	conversions are useless.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_node): Remove function declaration.
	(cgraph_create_node): Declare.
	(cgraph_get_create_node): Likewise.
	* cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
	Updated all callers.
	(cgraph_node): Renamed to cgraph_create_node, assert that a node for
	the decl does not already exist.  Call cgraph_get_create_node instead
	of cgraph_node.
	(cgraph_get_create_node): New function.
	(cgraph_same_body_alias): Update comment.
	(cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
	assert it does not return NULL.
	(cgraph_update_edges_for_call_stmt): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_add_new_function): Call cgraph_create_node or
	cgraph_get_create_node instead of cgraph_node.
	* cgraphbuild.c (record_reference): Call cgraph_get_create_node
	instead of cgraph_node.
	(record_eh_tables): Likewise.
	(mark_address): Likewise.
	(mark_load): Likewise.
	(build_cgraph_edges): Call cgraph_get_create_node instead
	of cgraph_node.
	(rebuild_cgraph_edges): Likewise.
	* cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
	cgraph_node.
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
	cgraph_create_node instead of cgraph_node.
	* c-decl.c (finish_function): Call cgraph_get_create_node instead
	of cgraph_node.
	* lto-cgraph.c (input_node): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* varasm.c (mark_decl_referenced): Likewise.
	(assemble_alias): Likewise.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (tree_function_versioning): Call cgraph_get_node
	instead of cgraph_node and assert it does not return NULL.
	* lto-streamer-in.c (lto_read_body): Likewise.
	* omp-low.c (new_omp_context): Likewise.
	(create_task_copyfn): Likewise.
	* tree-emutls.c (lower_emutls_function_body): Likewise.
	* matrix-reorg.c (transform_allocation_sites): Likewise.

2011-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/48552
	* c-typeck.c (build_asm_expr): Error out on attempts to use
	void type outputs or inputs for constraints that allow reg or
	don't allow memory.

2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	PR target/48250
	* config/arm/arm.c (arm_legitimize_reload_address): Update cases
	to use sign-magnitude offsets. Reject unsupported unaligned
	cases. Add detailed description in comments.
	* config/arm/arm.md (reload_outdf): Disable for ARM mode; change
	condition from TARGET_32BIT to TARGET_ARM.

2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct typed_tree): New.
	(struct tree_common): Include it instead of tree_base.
	(TREE_TYPE): Update for new location of type field.
	(TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
	(DECL_USER_ALIGN, DECL_PACKED): Likewise.
	(union tree_node): Add typed field.
	* treestruct.def (TS_TYPED): New.
	* lto-streamer.c (check_handled_ts_structures): Handle it.
	* tree.c (MARK_TS_TYPED): New macro.
	(MARK_TS_COMMON): Call it instead of MARK_TS_BASE.

2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>

	* cfghooks.c (redirect_edge_and_branch_force): Localize variable.
	(force_nonfallthru): Do not alter the loop nest if no basic block
	was created.

2011-04-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (VI): New mode iterator.
	(SSEMODEI): Remove.
	(AVX256MODEI): Ditto.
	(AVXMODEF4P): Ditto.
	(avxvecpsmode): Ditto.
	(one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
	(sse2_andnot<mode>3): New expander.
	(*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
	*avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
	(<any_logic:code><mode>3): Use VI mode iterator.
	(*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
	and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
	(*andnottf3): Handle AVX three-operand constraints.
	(*<any_logic:code>tf3): Handle AVX three-operand constraints.

2011-04-11  Joseph Myers  <joseph@codesourcery.com>
	    Robert Millan  <rmh@gnu.org>

	* config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
	* config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
	GNU_USER_DYNAMIC_LINKER64): Define.
	(REG_NAME): Don't undefine.
	(MD_UNWIND_SUPPORT): Undefine.
	* config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
	(REG_NAME): Don't undefine.
	(MD_UNWIND_SUPPORT): Undefine.
	* config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.

2011-04-11  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
	(CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.

2011-04-11  Xinliang David Li  <davidxl@google.com>

	* value-profile.c (check_ic_target): New function.
	(gimple_ic_transform): Sanity check indirect call target.
	* gimple-low.c (gimple_check_call_args): Interface change.
	(gimple_check_call_matching_types): New function.
	* tree-inline.c (tree_can_inline_p): Call new function.

2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>

	* Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
	tree-pretty-print.h & realmpfr.h.

2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/48464
	* ira.c (setup_pressure_classes): Fix typo in loop condition.
	(setup_allocno_and_important_classes): Ditto.

2011-04-11  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
	GNU_USER_DYNAMIC_LINKER.
	* config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
	LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
	(TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
	LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
	(TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
	* config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
	GNU_USER_DYNAMIC_LINKER64): Remove.
	* config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
	to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
	(LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
	(LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
	* config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	(TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
	GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
	GNU_USER_DYNAMIC_LINKERN32.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
	GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
	GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
	GNU_USER_DYNAMIC_LINKER32.
	* config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
	* config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
	GNU_USER_DYNAMIC_LINKER32.
	(LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
	* config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
	GNU_USER_DYNAMIC_LINKER.
	* config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
	GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
	GNU_USER_DYNAMIC_LINKER64.
	* config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
	GNU_USER_DYNAMIC_LINKER.
	* config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
	GNU_USER_DYNAMIC_LINKER32.
	(LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
	GNU_USER_DYNAMIC_LINKER64.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
	GNU_USER_DYNAMIC_LINKER64.
	* config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	* config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
	LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
	(LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.

2011-04-11  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/gnu-user.h: Copy from linux.h.  Update comments.
	(LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
	(SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
	GNU_USER_DYNAMIC_LINKER.
	(MD_UNWIND_SUPPORT, REG_NAME): Remove.
	* config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
	(LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
	GNU_USER_DYNAMIC_LINKER64.
	(MD_UNWIND_SUPPORT, REG_NAME): Remove.
	* config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
	GNU_USER_LINK_EMULATION.
	* config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
	DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
	ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
	MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
	CPP_SPEC, CC1_SPEC): Remove.
	(LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
	(GNU_USER_DYNAMIC_LINKER): Define.
	(ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
	ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
	ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
	LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
	TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
	STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
	TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
	* config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
	CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
	TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
	LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
	LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
	(GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
	(STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
	TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
	TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
	* config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
	GNU_USER_DYNAMIC_LINKER.
	* config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
	GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
	* config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
	GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
	* config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
	GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
	* config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
	i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
	i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
	x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.

2011-04-11  Kai Tietz  <ktietz@redhat.com>

	PR target/9601
	PR target/11772
	* config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
	* config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
	comment.
	(ix86_is_msabi_thiscall): Removed.
	(ix86_is_type_thiscall): Likewise.
	(ix86_get_callcvt): New function.
	(ix86_comp_type_attributes): Simplify check.
	(ix86_function_regparm): Use ix86_get_callcvt for calling
	convention attribute checks.
	(ix86_return_pops_args): Likewise.
	(ix86_static_chain): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.
	(ix86_function_type_abi): Optimize check for types without attributes.
	* config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
	IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
	IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
	by flag-values.
	(IX86_BASE_CALLCVT): Helper macro.
	* config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
	Use ix86_get_callcvt for calling convention attribute checks and avoid
	symbol-decoration for stdcall in TARGET_RTD case.
	* config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
	Likewise.
	(gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
	for declaration.

2011-04-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (VI_128): New mode iterator.
	(VI12_128): Rename from SSEMODE12.
	(VI14_128): Rename from SSEMODE14.
	(VI124_128): New mode iterator.
	(VI24_128): Rename from SSEMODE248.
	(VI248_128): Rename from SSEMODE248.
	(SSEMODE124C8): Remove.
	(*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
	(*sse2_<plusminus_insn><mode>3): Merge with
	*avx_<plusminus_insn><mode>3.
	(*mulv8hi3): Merge with *avx_mulv8hi3.
	(*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
	(*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
	(*sse2_pmaddwd): Merge with *avx_pmaddwd.
	(*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
	(ashr<mode>3): Merge with *avx_ashr<mode>3.
	(lshr<mode>3): Merge with *avx_lshr<mode>3.
	(ashl<mode>3): Merge with *avx_ashl<mode>3.
	(sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
	(sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
	(*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
	(*<smaxmin:code>v8hi3): Ditto.
	(*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
	(*<smaxmin:code>v16qi3): Ditto.
	(*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
	(*sse2_eq<mode>3): Ditto.
	(*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
	(*sse2_gt<mode>3): Ditto.
	(vcondv2di): Split out of vcond<mode>.
	(vconduv2di): Split out of vcondu<mode>.

2011-04-11  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimple_fold_indirect_ref): Check host_integerp
	before calling tree_low_cst.

2011-04-11  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (layout_type): Compute all array index size operations
	in the original type.
	(initialize_sizetypes): Add comment.
	(set_sizetype): Do not set TREE_TYPE of a TREE_VEC.

2011-04-11  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (Tbss=, Tdata=, Ttext=): New options.

2011-04-11  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (cgraph_local_info): Call cgraph_get_node instead
	of cgraph_node,	handle NULL return value.
	(cgraph_global_info): Likewise.
	(cgraph_rtl_info): Likewise.
	* tree-inline.c (estimate_num_insns): Likewise.
	* gimplify.c (unshare_body): Likewise.
	(unvisit_body): Likewise.
	(gimplify_body): Likewise.
	* predict.c (optimize_function_for_size_p): Likewise.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
	(call_may_clobber_ref_p_1): Likewise.
	* varasm.c (function_section_1): Likewise.
	(assemble_start_function): Likewise.

2011-04-11  Martin Jambor  <mjambor@suse.cz>

	* except.c (set_nothrow_function_flags): Call cgraph_get_node instead
	of cgraph_node.
	* final.c (rest_of_clean_state): Likewise.
	* gimple-iterator.c (update_call_edge_frequencies): Likewise.
	* passes.c (pass_init_dump_file): Likewise.
	(execute_all_ipa_transforms): Likewise.
	(function_called_by_processed_nodes_p): Likewise.
	* predict.c (maybe_hot_frequency_p): Likewise.
	(probably_never_executed_bb_p): Likewise.
	(compute_function_frequency): Likewise.
	* tree-nested.c (check_for_nested_with_variably_modified): Likewise.
	(unnest_nesting_tree_1): Likewise.
	(lower_nested_functions): Likewise.
	* tree-optimize.c (execute_fixup_cfg): Likewise.
	(tree_rest_of_compilation): Likewise.
	* tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
	* tree-sra.c (ipa_early_sra): Likewise.
	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
	* config/i386/i386.c (ix86_compute_frame_layout): Likewise.
	* ipa.c (record_cdtor_fn): Likewise.
	* ipa-inline.c (cgraph_early_inlining): Likewise.
	(compute_inline_parameters_for_current): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	* ipa-pure-const.c (local_pure_const): Likewise.
	* ipa-split.c (split_function): Likewise.
	(execute_split_functions): Likewise.
	* cgraphbuild.c (build_cgraph_edges): Likewise.
	(rebuild_cgraph_edges): Likewise.
	(cgraph_rebuild_references): Likewise.
	(remove_cgraph_callee_edges): Likewise.
	* cgraphunit.c (cgraph_mark_if_needed): Likewise.
	(verify_cgraph_node): Likewise.
	(cgraph_analyze_functions): Likewise.
	(cgraph_preserve_function_body_p): Likewise.
	(save_inline_function_body): Likewise.
	(save_inline_function_body): Likewise.
	* tree-inline.c (copy_bb): Likewise.
	(optimize_inline_calls): Likewise.

2011-04-11  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/48195
	* ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
	ipa_check_create_edge_args.
	(ipcp_generate_summary): Do not call ipa_check_create_node_params and
	ipa_check_create_edge_args.
	* ipa-inline.c (inline_generate_summary): Do not call
	ipa_check_create_node_params and ipa_check_create_edge_args.
	* ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
	ipa_check_create_edge_args.

2011-04-09  Anatoly Sokolov  <aesok@post.ru>

	* expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
	instead of loop.
	* sel-sched.c (mark_unavailable_hard_regs): Likewise.
	* function.c (record_hard_reg_sets): Likewise.
	* ira.c (compute_regs_asm_clobbered): Likewise.
	* sched-deps.c (sched_analyze_1): Likewise.
	* reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.

2011-04-09  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/PR48484
	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
	has_valid_pred lazily

2011-04-09  Duncan Sands  <baldrick@free.fr>

	* tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c (combine_validate_cost): Adjust comments.  Set registered
	cost of I0 to zero at the end, if any.

2011-04-08  Xinliang David Li  <davidxl@google.com>

	* ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
	to insane profile data.

2011-04-08  Xinliang David Li  <davidxl@google.com>

	* ipa-cp.c (ipcp_update_profiling): Correct
	 negative scale factor due to insane profile data.

2011-04-08  Xinliang David Li  <davidxl@google.com>

	* final.c (dump_basic_block_info): New function.
	(final): Dump basic block.
	(final_scan_insn): Remove old dump.

2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR target/47829
	* config.gcc (i386-*-freebsd): Disable unwind table generation for
	crtbegin/crtend.

2011-04-08  Michael Matz  <matz@suse.de>

	PR middle-end/48389
	* jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
	functions.
	(rebuild_jump_labels): Call rebuild_jump_labels_1.
	* rtl.h (rebuild_jump_labels_chain): Declare.
	* cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
	insns inserted on edges.

2011-04-08  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
	* config/arm/arm-arches.def: New.
	* config/arm/arm-opts.h: New.
	* config/arm/genopt.sh: New.
	* config/arm/arm-tables.opt: New (generated).
	* config/arm/arm.c (arm_handle_option, arm_target_help,
	TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
	(all_architectures): Get most table contents from arm-arches.def.
	(arm_option_override): Set arm_selected_arch, arm_selected_cpu and
	arm_selected_tune here.
	* config/arm/arm.h (enum processor_type): Move to arm-opts.h.
	* config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
	(march=, mcpu=, mtune=): Use Enum and Var.
	* config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
	(arm.o): Update dependencies.

2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c (write_typed_alloc_def): New argument f. Use it instead
	of header_file.
	(write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
	(write_typed_alloc_defns): Likewise.
	(main): Calls write_typed_alloc_defns with output_header.

2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/48435
	* ira-color.c (setup_profitable_hard_regs): Add comments.
	Don't take prohibited hard regs into account.
	(setup_conflict_profitable_regs): Rename to
	get_conflict_profitable_regs.
	(check_hard_reg_p): Check prohibited hard regs.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
	* config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
	* config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.

2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/48366
	* config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
	move from floating point to shift amount register.
	(emit_move_sequence): Remove secondary reload support for floating
	point to shift amount amount register copies.
	(pa_secondary_reload): Return GENERAL_REGS for floating point/shift
	amount register copies.
	* config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
	register, return false if mode isn't a scalar integer mode.
	* config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.

2011-04-08  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_call_flags): Remove kludge.

2011-04-08  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (sel_region_init): Move call to
	sel_setup_region_sched_flags after setup_current_loop_nest.

2011-04-08  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/48272
	* sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
	init_insn_reg_pressure_info.  Adjust a caller.
	* sched-int.h (init_insn_reg_pressure_info): Declare.
	* haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
	when sched-pressure is enabled.

2011-04-08  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_set_modified): Do not queue calls to
	MODIFIED_NORETURN_CALLS here ...
	* tree-ssa-operands.c (update_stmt_operands): ... but here.

2011-04-08  Richard Guenther  <rguenther@suse.de>

	PR lto/48467
	* toplev.c (lang_dependent_init): Do not open asm_out_file
	in WPA mode, nor perform debug machinery initialization.
	(finalize): Do not unlink asm_out_file in WPA mode.

2011-04-08  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_call_fntype): New function.
	(gimple_call_return_type): Use it.
	* expr.c (expand_expr_real_1): Use gimple_call_fntype.
	* gimple-low.c (gimple_check_call_args): Likewise.
	* gimple.c (gimple_call_flags): Likewise.
	(gimple_call_arg_flags): Likewise.
	(gimple_call_return_flags): Likewise.
	* tree-cfg.c (verify_gimple_call): Likewise.
	(do_warn_unused_result): Likewise.
	* tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
	* value-prof.c (gimple_ic_transform): Fix fndecl check.

2011-04-08  Dmitry Melnik  <dm@ispras.ru>

	PR rtl-optimization/48235
	* sel-sched.c (code_motion_process_successors): Recompute the last
	insn in basic block if control flow changed.
	(code_motion_path_driver): Ditto.  Recompute the first insn as well.
	Update condition for ilist_remove.

2011-04-08  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/48302
	* sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
	* sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
	it to record added preheader blocks.
	* sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
	on to sel_add_loop_preheaders.
	(sel_region_init): Move call to setup_current_loop_nest after
	sel_init_bbs.

2011-04-08  Alexander Monakov  <amonakov@ispras.ru>

	PR target/48273
	* cfgloop.h (loop_has_exit_edges): New helper.
	* sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
	non-clonable.
	* sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
	that have no exit edges.

2011-04-08  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/48442
	* sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
	all callers.  Adjust assert.

2011-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48377
	* tree-vect-data-refs.c (vector_alignment_reachable_p): Set
	is_packed to true even for types with smaller TYPE_ALIGN than
	TYPE_SIZE.

2011-04-08  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/48513
	* doc/tm.texi: Re-generate.

2011-04-08  Wei Guozhi  <carrot@google.com>

	PR target/47855
	* config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
	* config/arm/arm.c (arm_attr_length_push_multi): New function.
	* config/arm/arm.md (*push_multi): Change the length computation to
	call a C function.

2011-04-08  Anatoly Sokolov  <aesok@post.ru>

	* doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
	(BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
	* doc/tm.texi: Regenerate.
	* system.h (ASM_OUTPUT_BSS): Poison.
	* varasm.c (asm_output_bss): Remove function.
	(emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.

	* config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
	* config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
	* config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
	* config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
	Likewise.
	* config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
	Likewise.
	* config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
	Likewise.
	* config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.

2011-04-07  Joseph Myers  <joseph@codesourcery.com>

	* config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
	EnumValue lines.

2011-04-07  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/m68k.c (m68k_handle_option): Don't handle
	OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
	OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
	OPT_mcpu32.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
	handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
	-m68030, -m68040, -m68060, -mcpu32 and -m68332.
	* config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
	m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
	* config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
	(MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
	(MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
	options.  Don't map other m68k options manually.  Don't handle
	old-style options as canonical.
	(MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
	* doc/install.texi (m68k-*-*): Document binutils version requirement.

2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* basic-block.h (force_nonfallthru): Move to...
	* cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
	(force_nonfallthru): ...here.
	* cfghooks.c (force_nonfallthru): New function.
	* cfgrtl.c (force_nonfallthru): Rename into...
	(rtl_force_nonfallthru): ...this.
	(commit_one_edge_insertion): Do not set AUX field.
	(commit_edge_insertions): Do not discover new basic blocks.
	(rtl_cfg_hooks): Add rtl_force_nonfallthru.
	(cfg_layout_rtl_cfg_hooks): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Remove bogus
	ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
	* tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.

2011-04-07  Anatoly Sokolov  <aesok@post.ru>

	* config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
	Remove macros.

2011-04-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md: Update copyright year.
	(avxcvtvecmode): Remove.
	(sse_movhlps): Merge with *avx_movhlps.
	(sse_movlhps): Merge with *avx_movlhps.
	(vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
	(vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
	(sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
	(sse_loadhps): Merge with *avx_loadhps.
	(sse_storelps): Merge with *avx_storelps.
	(sse_loadlps): Merge with *avx_loadlps.
	(sse_movss): Merge with *avx_movss.
	(*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
	(*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
	(*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
	(*vec_set<mode>_0_sse2): Split multi-unit alternative.
	(vec_set<mode>_0): Ditto.
	(*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
	(sse4_1_insertps): Merge with *avx_insertps.
	(*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
	(*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
	(vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
	(sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
	(sse2_storehpd): Merge with *avx_storehpd.
	(sse2_loadhpd): Merge with *avx_loadhpd.
	(sse2_loadlpd): Merge with *avx_loadlpd.
	(sse2_movsd): Merge with *avx_movsd.
	(*vec_concatv2df): Merge with *vec_concatv2df.

2011-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48343
	* combine.c (combine_instructions): Add last_combined_insn,
	update it if insn is after it, pass it to all try_combine calls.
	(try_combine): Add last_combined_insn parameter, pass it instead of
	i3 to propagate_for_debug.

2011-04-07  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.md (movqi_internal): Add alternatives
	to handle MDR <-> data register transfers.
	(movhi_internal): Likewise.

2011-04-07  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
	previous stack info.

2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
	flow_find_cross_jump.  Swap variables to implement backward replacement.
	(try_crossjump_bb): Add argument to try_crossjump_to_edge.

2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (walk_to_nondebug_insn): New function.
	(flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
	and bb2.
	(try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
	src1 or src2.  Redirect edges to the last basic block.  Update
	frequency and count on multiple basic blocks in case of fallthru.

2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
	function.
	(old_insns_match_p): Change return type.  Replace return false/true
	with return dir_none/dir_both.  Use can_replace_by.
	(flow_find_cross_jump): Add dir_p parameter.  Init replacement
	direction from dir_p.  Register replacement direction in dir, last_dir
	and afterlast_dir.  Handle new return type of old_insns_match_p using
	merge_dir.  Return replacement direction in dir_p.
	(flow_find_head_matching_sequence, outgoing_edges_match): Handle new
	return type of old_insns_match_p.
	(try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
	* ifcvt.c ( cond_exec_process_if_block): Add argument to call to
	flow_find_cross_jump.
	* basic-block.h (enum replace_direction): New type.
	(flow_find_cross_jump): Add parameter to declaration.

2011-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
	(AVXMODEDCVTPS2DQ): Ditto.
	(VEC_FLOAT_MODE): Ditto.
	(<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
	iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
	(<any_logic:code><mode>3): Use VF mode iterator.
	(*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
	Use VF mode iterator.
	(copysign<mode>3): Use VF mode iterator.
	(*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
	(*<any_logic:code><MODEF:mode>3): Merge with
	*avx_<any_logic:code><MODEF:mode>3.
	(sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
	(sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
	(avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
	(avx_cvtdq2ps<avxmodesuffix>): Remove.
	(sse2_cvtdq2ps): Use %v modifier.
	(avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
	(avx_cvtps2dq<avxmodesuffix>): Remove.
	(sse2_cvtps2dq): Use %v modifier.
	(avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
	(avx_cvttps2dq<avxmodesuffix>): Remove.
	(sse2_cvttps2dq): Use %v modifier.
	(sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
	(sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
	(sse2_cvtsd2siq): Fix insn template.
	(sse2_cvtsd2siq_2): Ditto.
	(sse2_cvttsd2siq): Ditto.
	(sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
	(sse2_cvtss2sd): Merge with *avx_cvtss2sd.

2011-04-06  Joseph Myers  <joseph@codesourcery.com>

	* gcov-io.c: Use GCC Runtime Library Exception.

2011-04-06  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48466
	* dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
	as base_reg whatever register reg has been eliminated to, instead
	of hardcoding STACK_POINTER_REGNUM.

2011-04-06  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in: Document C target hooks as separate from general
	target hooks.
	* doc/tm.texi: Regenerate.
	* genhooks.c (struct hook_desc): Add docname field.
	(HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
	docname field.
	(hook_array): Include c-target.def.
	(emit_documentation): Use docname field in output.
	(emit_init_macros): Take docname argument.  Only emit definitions
	for hooks matching docname.
	(main): Expect additional arguments in all cases.  Pass argument
	to emit_init_macros.
	* target.def: Move initial macro definitions and comments to
	target-hooks-macros.h.
	(gcc_targetcm): Move to c-family/c-target.def.
	* target.h (targetcm): Move declaration to c-family/c-target.h.
	* targhooks.c (default_handle_c_option): Move to
	c-family/c-opts.c.
	* targhooks.h (default_handle_c_option): Move declaration to
	c-family/c-common.h.
	* target-hooks-macros.h: New file.
	* config.gcc (target_has_targetcm): Define and use to add to
	c_target_objs and cxx_target_objs.
	* config/default-c.c: New file.
	* config/darwin-c.c: Include c-target.h and c-target-def.h instead
	of target.h and target-def.h.
	(TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
	(darwin_objc_construct_string, darwin_cfstring_ref_p,
	darwin_check_cfstring_format_arg): Make static.
	(TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
	TARGET_STRING_OBJECT_REF_TYPE_P,
	TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
	* config/darwin-protos.h (darwin_objc_construct_string,
	darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
	declare.
	* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
	TARGET_STRING_OBJECT_REF_TYPE_P,
	TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
	* config/t-darwin (darwin-c.o): Update dependencies.
	* system.h (TARGET_HAS_TARGETCM): Poison.
	* Makefile.in (TARGET_H): Update.
	(TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
	(c-family/c-format.o, c-family/c-opts.o): Update dependencies.
	(default-c.o): New target.
	(s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
	(c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
	(s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
	c-target.def.
	(build/genhooks.o): Update dependencies.

2011-04-06  Richard Guenther  <rguenther@suse.de>

	* ipa-inline.c (enum inlining_mode): Remove.
	(cgraph_flatten): Use some other token.
	(cgraph_edge_early_inlinable_p): New function, split out from ...
	(cgraph_perform_always_inlining): New function, split out from ...
	(cgraph_decide_inlining_incrementally): ... here.
	(cgraph_mark_inline_edge): Adjust.
	(cgraph_early_inlining): Re-structure.
	(pass_early_inline): Require SSA form.

2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* config/arm/arm.h (arm_class_likely_spilled_p): Check against
	LO_REGS only for Thumb-1.
	(MODE_BASE_REG_CLASS): Restrict base registers to those which can
	be used in short instructions when optimising for size on Thumb-2.

2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-low.c (lower_gimple_return): When not optimizing, force labels
	associated with user returns to be preserved.

2011-04-06  Tristan Gingold  <gingold@adacore.com>

	* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
	symbol_queue_size, DBXOUT_DECR_NESTING,
	(DBXOUT_DECR_NESTING_AND_RETURN): Also define
	if XCOFF_DEBUGGING_INFO.

2011-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (attribute isa): New.
	(attribute enabled): New.
	(setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
	(*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
	(*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
	(*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
	(*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
	(<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
	(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
	(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.

	* config/i386/sse.md (VF): New mode iterator.
	(VF1): Ditto.
	(VF2): Ditto.
	(VF_128): Ditto.
	(SSEMODEF4): Remove.
	(attribute sse): Handle V8SF and V4DF modes.
	(<absneg:code><mode>2): Use VF mode iterator.
	(*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
	mode iterator.
	(<plusminus_insn><mode>3): Use VF mode iterator.
	(*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
	Use VF mode iterator.
	(<sse>_vm<plusminus_insn><mode>3): Merge with
	*avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
	(mul<mode>3): Use VF mode iterator.
	(*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
	(<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
	mode iterator.
	(div<VF2:mode>3): Merge from divv2df3 and divv4df3.
	(div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
	(<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
	(<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
	mode iterator.
	(<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
	Use VF1 mode iterator.
	(sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
	(sqrt<VF2:mode>2): New expander.
	(sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
	(<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
	and sqrtv2df2.  Use VF mode iterator.
	(<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
	mode iterator.
	(rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
	(<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
	Use VF1 mode iterator.
	(sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
	(<smaxmin:code><mode>3): Use VF mode iterator.
	(*<smaxmin:code><mode>3_finite): Merge with
	*avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
	(*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
	(<sse>_vm<smaxmin:code><mode>2): Merge with
	*avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
	(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
	mode iterator.
	(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
	mode iterator.
	(sse3_addsubv2df3): Merge with *avx_addsubv2df3.
	(sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
	(sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
	(sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
	(avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
	VF mode iterator.
	(avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
	Use VF_128 mode iterator.
	(<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
	mode iterator.
	(<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
	VF_128 mode iterator.
	(vcond<mode>): Use VF mode iterator.
	* config/i386/predicates.md (sse_comparison_operator): Merge with
	avx_comparison_float_operator.  Do not declare as special_predicate.
	* config/i386/i386.c (struct builtin_description): Update for renamed
	compare patterns.
	(ix86_expand_args_builtin): Ditto.
	(ix86_expand_sse_compare_mask): Ditto.

2011-04-06  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns): For calls simply account
	for all passed arguments and a used return value.

2011-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47663
	* cgraph.h (struct cgraph_edge): Add call_stmt_size and
	call_stmt_time fields.
	(cgraph_edge_inlinable_p): Declare.
	(cgraph_edge_recursive_p): New inline function.
	* cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
	(cgraph_clone_edge): Copy it.
	* ipa-inline.c (cgraph_estimate_edge_time): New function.
	Account for call stmt time.
	(cgraph_estimate_time_after_inlining): Take edge argument.
	(cgraph_estimate_edge_growth): Account call stmt size.
	(cgraph_estimate_size_after_inlining): Take edge argument.
	(cgraph_mark_inline_edge): Adjust.
	(cgraph_check_inline_limits): Likewise.
	(cgraph_recursive_inlining_p): Remove.
	(cgraph_edge_badness): Use cgraph_edge_recursive_p.
	(cgraph_decide_recursive_inlining): Take edge argument and
	adjust.
	(cgraph_decide_inlining_of_small_functions): Do not avoid
	diags for recursive inlining here.
	(cgraph_flatten): Adjust.
	(cgraph_decide_inlining_incrementally): Likewise.
	(estimate_function_body_sizes): Remove call cost handling.
	(compute_inline_parameters): Initialize caller edge call costs.
	(cgraph_estimate_edge_growth): New function.
	(cgraph_estimate_growth): Use it.
	(cgraph_edge_badness): Likewise.
	(cgraph_check_inline_limits): Take an edge argument.
	(cgraph_decide_inlining_of_small_functions): Adjust.
	(cgraph_decide_inlining): Likewise.
	* tree-inline.c (estimate_num_insns): Only account for call
	return value if it is used.
	(expand_call_inline): Avoid diagnostics on recursive inline
	functions here.
	* lto-cgraph.c (lto_output_edge): Output edge call costs.
	(input_edge): Input edge call costs.

2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.

2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi (Spec Files): Fix typo.

2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* profile.c (branch_prob): Move declaration of local variable.  Remove
	obsolete ??? comment.  Expand the location explicitly instead of using
	the LOCATION_FILE and LOCATION_LINE macros.

2011-04-06  Wei Guozhi  <carrot@google.com>

	PR target/47855
	* config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
	(arm_cond_branch): Likewise.
	(arm_cond_branch_reversed): Likewise.
	(arm_jump): Likewise.
	(push_multi): Likewise.
	* config/arm/constraints.md (Py): New constraint.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	PR bootstrap/48471
	* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
	Move these...
	(symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
	(DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
	#ifdef DBX_DEBUGGING_INFO.

2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/48403
	* haifa-sched.c (schedule_block): Increment cycle_issued_insns only
	if old and new states differ.

2011-04-05  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
	OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
	handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
	* config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
	mcfv4e): Use Alias.
	* config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
	ColdFire options to -mcpu= options.

2011-04-05  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (determine_bb_domination_status): Always
	check if BB is a successor of LOOP->header and return
	NONDOMINATING if it is not, regardless of ENABLE_CHECKING.

2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>

	* cprop.c (struct reg_use): Remove.
	(reg_use_table): Make an array of RTX.
	(find_used_regs, constprop_register, local_cprop_pass,
	bypass_block): Simplify users of reg_use_table.
	(cprop_insn): Likewise.  Iterate if copy propagation succeeded
	on one of the uses found by find_used_regs.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	PR bootstrap/48469
	* combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
	declaration.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
	as an rtx.
	(try_combine) [AUTO_INC_DEC]: Declare a local link rtx.

2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/48441
	* cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* combine.c: Include obstack.h.
	(struct insn_link): Define.
	(uid_log_links): Adjust type.
	(FOR_EACH_LOG_LINK): New macro.
	(insn_link_obstack): Declare.
	(alloc_insn_link): Define.
	(create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
	type of link variables.
	(find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
	(try_combine, record_promoted_values, distribute_notes): Likewise.
	(distribute_links): Likewise.  Tweak prototype.
	(clear_log_links): Delete.
	(adjust_for_new_dest): Call alloc_insn_link.
	* Makefile.in (combine.o): Depend on $(OBSTACK_H).

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcse.c (modify_mem_list): Convert to an array of VECs.
	(canon_modify_mem_list, compute_transp): Tweak formatting.
	(alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
	(load_killed_in_block_p): Likewise.
	(record_last_mem_set_info): Likewise.
	(clear_modify_mem_tables): Likewise.

2011-04-05  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/48461
	* function.c (emit_use_return_register_into_block): Only define if
	HAVE_return.

2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (self_referential_size): Fix 2010-07-13 commit.

2011-04-05  Joseph Myers  <joseph@codesourcery.com>

	* config/rx/rx-opts.h: New.
	* config/rx/rx.c (rx_cpu_type): Remove.
	(rx_handle_option): Don't assert that global structures are in
	use.  Access variables via opts pointer.  Defer most handling of
	OPT_mint_register_.  Use error_at.
	(rx_option_override): Handle deferred OPT_mint_register_ here.
	* config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
	* config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
	(mcpu=): Use Enum and specifiy rx_cpu_type with Var.
	(rx_cpu_types): New Enum and EnumValue entries.
	(mint-register=): Use Defer and use Var accordingly.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
	(debug_free_queue, debug_nesting, symbol_queue_index): Delete.
	* final.c (debug_flush_symbol_queue, debug_queue_symbol):
	Move these...
	(debug_free_queue, debug_nesting, symbol_queue_index):
	...and these...
	* dbxout.c: ...to here.  Make static.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcse.c (modify_pair): Define.  Define a VEC of it.
	(canon_modify_mem_list): Convert to an array of VECs.
	(free_insn_expr_list_list): Delete.
	(clear_modify_mem_tables): Call VEC_free instead.
	(record_last_mem_set_info): Don't modify canon_modify_mem_list.
	(alloc_gcse_mem): Adjust for canon_modify_mem_list change.
	(canon_list_insert, compute_transp): Likewise.

2011-04-05  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
	for size.

2011-04-05  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* function.c (emit_use_return_register_into_block): New function.
	(thread_prologue_and_epilogue_insns): Use
	emit_use_return_register_into_block.

2011-04-05  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
	insn.

2011-04-05  Tom de Vries  <tom@codesourcery.com>

	* cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.

2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/arm/arm.md (define_constants for unspec): Replace with
	define_c_enum.
	(define_constants for unspecv): Replace with define_c_enum.
	* config/arm/neon.md (define_constants for unspec): Replace with
	define_c_enum.

2011-04-04  Richard Henderson  <rth@redhat.com>

	PR bootstrap/48400
	* dwarf2out.c (output_line_info): Always emit line info from
	at least one section.
	(dwarf2out_init): Create text_section_line_info here ...
	(set_cur_line_info_table): ... not here.

2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/48380
	* ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
	not called.

	* ira-emit.c (emit_move_list): Update reg_equiv_init insn list.

2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>

	* cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
	(expr_equiv_p): Remove.
	(insert_set_in_table): Look at <dest, src> pair instead of expr.
	(hash_scan_set): Update call to insert_set_in_table.
	(dump_hash_table): Dump <dest, src> pair.
	(lookup_set): Simplify.  Lookup <dest, src> pair.
	(compute_transp): Remove, fold heavily simplified code into...
	(compute_local_properties): ...here.  Expect COMP and TRANSP
	unconditionally.
	(find_avail_set): Take set directly from struct expr.
	(find_bypass-set): Likewise.
	(bypass_block): Likewise.
	(cprop_insn): Likewise.  Remove redundant INSN_P test.

	* cprop.c (implicit_set_cond_p): Assume nothing about COND, move
	checks on form of COND from find_implicit_sets to here.
	(find_implicit_sets): Cleanup control flow. Split critical edges
	if it exposes implicit sets.  Allocate/resize implicit_sets as
	necessary.
	(one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
	changed something.  Run df_analyze after find_implicit_sets if any
	edges were split.  Do not allocate implicit_sets here.

	* cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
	(gcse_obstack): Renamed to cprop_obstack.
	(GNEW, GNEWVEC, GNEWVAR): Remove.
	(gmalloc): Remove.
	(alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
	(GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
	(gcse_alloc): Likewise, and rename to cprop_alloc.
	(alloc_gcse_men, free_gcse_mem): Remove.
	(gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
	(compute_hash_table_work): Allocate and free reg_set_bitmap here.
	(one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.

	* cprop.c (oprs_not_set_p): Remove.
	(mark_set, mark_clobber): Remove.
	(mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
	(reg_not_set_p): New function.
	(find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
	(cprop_insn): Likewise.
	(cprop_jump): Use FOR_EACH_EDGE.

2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/48403
	* haifa-sched.c (nonscheduled_insns_begin): New static variable.
	(rank_for_schedule): Use scheduled_insns vector instead of
	last_scheduled_insn.
	(ok_for_early_queue_removal): Likewise.
	(queue_to_ready): Search forward in nonscheduled_insns_begin if
	we have a dbg_cnt.
	(choose_ready): Likewise.
	(commit_schedule): Use VEC_iterate.
	(schedule_block): Initialize nonscheduled_insns_begin.  If we have
	a dbg_cnt, use it and ensure the first insn is in the ready list.
	(haifa_sched_init): Allocate scheduled_insns.
	(sched_extend_ready_list): Don't allocate it; reserve space.
	(haifa_sched_finish): Free it.

2011-04-04  Joseph Myers  <joseph@codesourcery.com>

	* optc-gen.awk: Always remove type from Variable entry before
	recording in var_seen.

2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	* cfghooks.c (tidy_fallthru_edges): Add ??? comment.
	* tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
	call to tidy_fallthru_edges.

2011-04-04  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (ToLower): Document.
	* opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
	* opts-common.c (decode_cmdline_option): Handle cl_tolower.
	* opts.h (cl_option): Add cl_tolower field.
	* config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
	arguments with lowercase strings.
	* config/rx/rx.opt (mcpu=): Add ToLower.
	* config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
	argument.

2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.

2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/vax/vax.c: Include reload.h.

2011-04-04  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
	(sparc_preferred_reload_class): New function.

2011-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48401
	* cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
	Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.

2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (struct tree_const_decl): Inherit from tree_decl_common.
	* tree.c (initialize_tree_contains_struct): Adjust accordingly.

2011-04-03  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
	(ASM_OUTPUT_ALIGNED_BSS): Define.

2011-04-03  Michael Matz  <matz@suse.de>

	* lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
	and next_slot members.
	(lto_streamer_cache_insert, lto_streamer_cache_insert_at,
	lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
	(lto_streamer_cache_append): Declare.
	* lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
	unsigned index, remove offset parameter, ensure that we append
	or update existing entries.
	(lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
	parameter, update next_slot for append.
	(lto_streamer_cache_insert): Use unsigned index, remove offset_p
	parameter.
	(lto_streamer_cache_insert_at): Likewise.
	(lto_streamer_cache_append): New function.
	(lto_streamer_cache_lookup): Use unsigned index.
	(lto_streamer_cache_get): Likewise.
	(lto_record_common_node): Don't test tree_node_can_be_shared.
	(preload_common_node): Adjust call to lto_streamer_cache_insert.
	(lto_streamer_cache_delete): Don't free offsets member.
	* lto-streamer-out.c (eq_string_slot_node): Use memcmp.
	(lto_output_string_with_length): Use lto_output_data_stream.
	(lto_output_tree_header): Remove ix parameter, don't write it.
	(lto_output_builtin_tree): Likewise.
	(lto_write_tree): Adjust callers to above, don't track and write
	offset, write unsigned index.
	(output_unreferenced_globals): Don't emit all global vars.
	(write_global_references): Use unsigned indices.
	(lto_output_decl_state_refs): Likewise.
	(write_symbol): Likewise.
	* lto-streamer-in.c (lto_input_chain): Move earlier.
	(input_function): Use unsigned index.
	(input_alias_pairs): Don't read and then ignore all global vars.
	(lto_materialize_tree): Remove ix_p parameter, don't read index,
	don't pass it back, use lto_streamer_cache_append.
	(lto_register_var_decl_in_symtab): Use unsigned index.
	(lto_register_function_decl_in_symtab): Likewise.
	(lto_get_pickled_tree): Don't read in or handle offset, read unsigned
	index.
	(lto_get_builtin_tree): Don't read index, use
	lto_streamer_cache_append.
	(lto_read_tree): Adjust call to lto_materialize_tree.

	* ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
	don't use function calls in arguments to MIN.

	* varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
	twice.

	* gimple.c (gimple_type_leader_entry): Mark deletable.

2011-04-03  Alan Modra  <amodra@gmail.com>

	* dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.

2011-04-03  Michael Matz  <matz@suse.de>

	* tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
	an integer.
	* tree.h (tree_decl_non_common.vindex): Adjust comment.

2011-04-03  Michael Matz  <matz@suse.de>

	* cgraphbuild.c (record_reference): Canonicalize constructor values.
	* gimple-fold.c (canonicalize_constructor_val): Accept being called
	without function context.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Clear
	current_function_decl and cfun.

2011-04-03  Michael Matz  <matz@suse.de>

	* tree.c (decl_init_priority_insert): Don't create entry for
	default priority.
	(decl_fini_priority_insert): Ditto.
	(fields_compatible_p, find_compatible_field): Remove.
	* tree.h (fields_compatible_p, find_compatible_field): Remove.
	* gimple.c (gimple_compare_field_offset): Adjust block comment.

2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c (try_combine): Remove useless local variable.

2011-04-03  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <ira.rosen@linaro.org>

	* tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
	non-variable offsets and compare the remaining bases of the two
	accesses instead of looking for exact same data-ref.

2011-04-02  Kai Tietz  <ktietz@redhat.com>

	PR target/48416
	* i386.c (ix86_function_arg_boundary): Fix printf formatter.

	* i386.c (ix86_is_msabi_thiscall): New helper function.
	(ix86_is_type_thiscall): New helper function.
	(ix86_comp_type_attributes): Handle thiscall for method-functions
	special.
	(init_cumulative_args): Likewise.
	(find_drap_reg): Likewise.
	(ix86_static_chain): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.

2011-04-01  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
	(add_gnat_descriptive_type_attribute): New function.
	(gen_array_type_die): Call it.
	(gen_enumeration_type_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.
	(modified_type_die): Likewise.
	* langhooks.h (lang_hooks_for_types): New descriptive_type hook.
	* langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.

2011-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/48148
	* dwarf2out.c (resolve_addr): Don't call force_decl_die
	if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.

	Revert:
	2011-03-17  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/48148
	* lto-cgraph.c (input_overwrite_node): Clear the abstract
	origin for decls in other ltrans units.
	(input_varpool_node): Likewise.

2011-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48335
	* expr.c (expand_assignment): Handle all possibilities
	if TO_RTX is CONCAT.
	* expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
	(store_split_bit_field): If SUBREG_REG (op0) or
	op0 itself has smaller mode than word, return it
	for offset 0 and const0_rtx for out-of-bounds stores.
	If word is const0_rtx, skip it.

2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>

	* config/h8300/h8300.c (print_operand_address): Rename to...
	(h8300_print_operand_address): ...this. Make static. Adjust comments.
	Call h8300_print_operand and h8300_print_operand_address instead of
	print_operand and print_operand_address. Declare.
	(print_operand): Renake to...
	(h8300_print_operand): ...this. Make static. Adjust comments.
	Call h8300_print_operand instead of print_operand. Declare.
	(h8300_print_operand_punct_valid_p): Moved from h8300.h file.
	(h8300_register_move_cost): Likewise.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
	TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
	* config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
	PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
	* config/h8300/h8300-protos.h (print_operand): Delete.
	(print_operand_address): Delete.

2011-04-01  Richard Henderson  <rth@redhat.com>

	PR 48400
	* dwarf2out.c (dwarf2out_source_line): Disable discriminators
	in strict mode before dwarf4.  Re-order tests to early out
	before switching sections.

2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>

	* config/h8300/constraints.md: New file.
	* config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
	satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
	(*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
	* config/h8300/predicates.md (bit_operand): Likewise.
	(incdec_operand): Use satisfies_constraint_M and
	satisfies_constraint_O.  Don't use C code block.
	* config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
	* config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
	(compute_mov_length): Use satisfies_constraint_G.
	(fix_bit_operand): Use satisfies_constraint_U.
	* config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
	(CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
	(CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
	(CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
	(CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
	(OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
	(OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
	(EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
	(EXTRA_MEMORY_CONSTRAINT): Delete.

2011-04-01  Andrew Pinski  <pinskia@gmail.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48262
	* config/rs6000/vector.md (movmisalign<mode>): Allow for memory
	operands, as per the specifications.

	* config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
	(vec_extract_evenv4sf): Ditto.
	(vec_extract_evenv8hi): Ditto.
	(vec_extract_evenv16qi): Ditto.
	(vec_extract_oddv4si): Ditto.

2011-03-31  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
	high_pc attribute if the CU has no associated code. Only output
	DW_AT_entry_pc for CU if not generating strict dwarf and
	dwarf_version < 4.

2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>

	* dwarf2out.h (dwarf2out_frame_debug_init): Declare.
	* dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
	out of ...
	(dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
	* final.c (final_start_function): Call the new function rather
	than using a NULL argument for dwarf2out_frame_debug.

	* ifcvt.c (cond_exec_process_insns): Disallow converting a block
	that contains the prologue.

	* haifa-sched.c (queue_insn): New arg REASON.  All callers
	changed.  Print it in debugging output.

	* sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.

	* sched-ebb.c (begin_schedule_ready): Remove second argument.
	Split most of the code into...
	(begin_move_insn): ... here.  New function.
	(ebb_sched_info): Add a pointer to it.
	* haifa-sched.c (scheduled_insns): New static variable.
	(sched_extend_ready_list): Allocate it.
	(schedule_block): Use it to record the order of scheduled insns.
	Perform RTL changes to move insns only after all scheduling
	decisions have been made.
	* modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
	begin_move_insn field.
	* sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
	* sched-int.h (struct haifa_sched_info): Remove second argument
	from begin_schedule_ready hook.  Add new member begin_move_insn.
	* sched-rgn.c (begin_schedule_ready): Remove second argument.
	(rgn_const_sched_info): Add NULL entry for the begin_move_insn field.

	* haifa-sched.c (prune_ready_list): New function, broken out of
	schedule_block.
	(schedule_block): Use it.

2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.

2011-04-01  Kai Tietz  <ktietz@redhat.com>

	* config.gcc (*-*-mingw*): Allow as option the
	posix threading model.
	* config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
	New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
	definition.
	(CPP_SPEC): Add pthread/no-pthread handling.
	(LIB_SPEC): Likewise.
	* config/i386/mingw-w64.h (CPP_SPEC):Likewise.
	(LIB_SPEC): Likewise.
	* config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
	flag to pass -pthread option for shared libgcc build.
	(SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
	for shared libgcc build.
	* config/i386/t-mingw-pthread: New file.
	* config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
	New define to enable use of library pthread by default.
	* config/i386/mingw.opt (pthread): New driver option.
	(no-pthread): New driver option.
	* config/i386/cygming.opt: Make sure trailing empty line is retained.
	* config/i386/mingw-w64.opt: Likewise.

2011-04-01  Gary Funck  <gary@intrepid.com>

	* c-decl.c (grokdeclarator): Fix formatting.

2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>

	* expr.c (emit_block_move_via_movmem): Use n_generator_args
	instead of n_operands.
	(set_storage_via_setmem): Likewise.
	* optabs.c (maybe_gen_insn): Likewise.
	* config/arm/arm.c (arm_init_neon_builtins): Likewise.
	* config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
	(mips_expand_builtin_direct): Likewise.
	* config/spu/spu.c (expand_builtin_args): Likewise.

2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>

	* recog.h (insn_data_d): Add n_generator_args.
	* genoutput.c (data): Likewise.
	(output_insn_data): Print it.
	(max_opno, num_dups): Delete.
	(scan_operands): Just fill in "d->operand[...]".
	(gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.

2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>

	* gensupport.h (pattern_stats): New structure.
	* gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
	* genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
	(max_operand_1, max_operand_vec): Delete.
	(gen_insn, gen_expand, gen_split): Use get_pattern_stats.

2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>

	* emit-rtl.c (emit_pattern_after_setloc): New function.
	(emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
	(emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
	(emit_pattern_after): New function.
	(emit_insn_after, emit_jump_insn_after): Call it.
	(emit_call_insn_after, emit_debug_insn_after): Likewise.
	(emit_pattern_before_setloc): New function.
	(emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
	(emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
	Likewise.
	(emit_pattern_before): New function.
	(emit_insn_before, emit_jump_insn_before): Call it.
	(emit_call_insn_before, emit_debug_insn_before): Likewise.

2011-03-31  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (dw_separate_line_info_ref): Remove.
	(dw_separate_line_info_entry): Remove.
	(enum dw_line_info_opcode): New.
	(dw_line_info_entry): Use it.
	(dw_line_info_table, dw_line_info_table_p): New.
	(DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
	(line_info_table, line_info_label_num): Remove.
	(line_info_table_in_use): Remove.
	(separate_line_info_table): Remove.
	(separate_line_info_table_allocated): Remove.
	(separate_line_info_table_in_use): Remove.
	(LINE_INFO_TABLE_INCREMENT): Remove.
	(line_info_label_num): New.
	(cur_line_info_table): New.
	(text_section_line_info, cold_text_section_line_info): New.
	(separate_line_info): New.
	(SEPARATE_LINE_CODE_LABEL): Remove.
	(print_dwarf_line_table): Remove.
	(debug_dwarf): Don't dump it.
	(output_one_line_info_table): New.
	(output_line_info): Use it.
	(new_line_info_table): New.
	(set_cur_line_info_table): New.
	(dwarf2out_switch_text_section): Use it.
	(dwarf2out_begin_function): Likewise.
	(push_dw_line_info_entry): New.
	(dwarf2out_source_line): Rewrite for new line info tables.
	(dwarf2out_init): Remove dead initailizations.

2011-03-31  Joseph Myers  <joseph@codesourcery.com>

	* opts.h (cl_option): Add comments to fields.  Add bit-fields for
	various flags.
	(CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
	CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
	CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
	CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
	(CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
	* opt-functions.awk (flag_init, switch_bit_fields): New.
	(switch_flags): Don't handle flags moved to bit-fields.  Don't
	generate CL_MISSING_OK or CL_SAVE.
	* optc-gen.awk: Update to generate bit-field output as well as
	flags field.
	* gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
	bit-field instead of CL_REJECT_DRIVER flag.
	* opts-common.c (generate_canonical_option,
	decode_cmdline_option): Use bit-fields instead of CL_* flags.
	* opts.c (maybe_default_option): Use cl_reject_negative bit-field
	instead of CL_REJECT_NEGATIVE flag.
	* toplev.c (print_switch_values): Use cl_report bit-field instead
	of CL_REPORT flag.

2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
	a zero minimum index only if it is redundant.

2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48381
	* ira-color.c (assign_hard_reg): Use hard reg set intersection
	instead of ira_class_hard_reg_index for calculating conflicting
	hard registers.

2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>

	* cprop.c: Clean up hash table building.
	(reg_avail_info): Remove.
	(oprs_available_p): Remove.
	(record_last_reg_set_info): Remove.
	(record_last_set_info): Remove.
	(reg_available_p): New function.
	(gcse_constant_p): Do not treat unfolded conditions as constants.
	(make_set_regs_unavailable): New function.
	(hash_scan_set): Simplify with new reg_available_p.
	(compute_hash_table_work): Traverse insns stream only once.
	Do not compute reg_avail_info. Traverse insns in reverse order.
	Record implicit sets after recording explicit sets from the block.

2011-03-31  Michael Matz  <matz@suse.de>

	* builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.

2011-03-31  Anatoly Sokolov  <aesok@post.ru>

	* config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
	* config/h8300/h8300-protos.h (h8300_get_index): Remove.
	* config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	(h8300_mode_dependent_address_p): New function.
	(h8300_get_index): Make static.

2011-03-31  Jeff Law  <law@redhat.com>

	* reload1.c (elimination_effects): Fix typo in recent change.

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
	typo potentially leading to null pointer dereference.

	* caller-save.c (new_saved_hard_reg): Eliminate return value.
	(setup_save_areas): Corresponding changes to avoid useless
	assignments.

	* jump.c (reversed_comparison_code_parts): Avoid successive return
	statements when REVERSE_CONDITION is defined.

	* expr.c (expand_assignment): Avoid useless assignments.
	(expand_expr_real_1): Likewise.
	(expand_expr_real_2): Avoid useless statements.

	* tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.

	* cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.

	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
	statements.

	* stmt.c (expand_expr_stmt): Avoid useless assignment.

2011-03-31  Joseph Myers  <joseph@codesourcery.com>

	PR target/47109
	* doc/tm.texi.in (TARGET_VERSION): Remove.
	* doc/tm.texi: Regenerate.
	* system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
	* collect2.c (main): Don't use TARGET_VERSION.
	* mips-tdump.c (main): Don't use TARGET_VERSION.
	* mips-tfile.c (main): Don't use TARGET_VERSION.
	* config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
	* config/rs6000/vxworksae.h: Remove.
	* config/alpha/alpha.h (TARGET_VERSION): Remove.
	* config/alpha/freebsd.h (TARGET_VERSION): Remove.
	* config/alpha/linux-elf.h (TARGET_VERSION): Remove.
	* config/alpha/netbsd.h (TARGET_VERSION): Remove.
	* config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
	* config/arm/arm.h (TARGET_VERSION): Remove.
	* config/arm/coff.h (TARGET_VERSION): Remove.
	* config/arm/ecos-elf.h (TARGET_VERSION): Remove.
	* config/arm/elf.h (TARGET_VERSION): Remove.
	* config/arm/freebsd.h (TARGET_VERSION): Remove.
	* config/arm/linux-elf.h (TARGET_VERSION): Remove.
	* config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
	* config/arm/pe.h (TARGET_VERSION): Remove.
	* config/arm/rtems-elf.h (TARGET_VERSION): Remove.
	* config/arm/semi.h (TARGET_VERSION): Remove.
	* config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
	* config/arm/unknown-elf.h (TARGET_VERSION): Remove.
	* config/arm/vxworks.h (TARGET_VERSION): Remove.
	* config/avr/avr.h (TARGET_VERSION): Remove.
	* config/bfin/bfin.h (TARGET_VERSION): Remove.
	* config/fr30/fr30.h (TARGET_VERSION): Remove.
	* config/frv/frv.h (TARGET_VERSION): Remove.
	* config/h8300/h8300.h (TARGET_VERSION): Remove.
	* config/i386/cygwin.h (TARGET_VERSION): Remove.
	* config/i386/darwin.h (TARGET_VERSION): Remove.
	* config/i386/darwin64.h (TARGET_VERSION): Remove.
	* config/i386/djgpp.h (TARGET_VERSION): Remove.
	* config/i386/freebsd.h (TARGET_VERSION): Remove.
	* config/i386/freebsd64.h (TARGET_VERSION): Remove.
	* config/i386/gnu.h (TARGET_VERSION): Remove.
	* config/i386/i386-interix.h (TARGET_VERSION): Remove.
	* config/i386/i386elf.h (TARGET_VERSION): Remove.
	* config/i386/linux.h (TARGET_VERSION): Remove.
	* config/i386/linux64.h (TARGET_VERSION): Remove.
	* config/i386/lynx.h (TARGET_VERSION): Remove.
	* config/i386/mingw32.h (TARGET_VERSION): Remove.
	* config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
	* config/i386/netbsd64.h (TARGET_VERSION): Remove.
	* config/i386/netware.h (TARGET_VERSION): Remove.
	* config/i386/nto.h (TARGET_VERSION): Remove.
	* config/i386/openbsd.h (TARGET_VERSION): Remove.
	* config/i386/vxworks.h (TARGET_VERSION): Remove.
	* config/ia64/elf.h (TARGET_VERSION): Remove.
	* config/ia64/freebsd.h (TARGET_VERSION): Remove.
	* config/ia64/hpux.h (TARGET_VERSION): Remove.
	* config/ia64/linux.h (TARGET_VERSION): Remove.
	* config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
	* config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
	TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
	* config/lm32/lm32.h (TARGET_VERSION): Remove.
	* config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
	* config/m32c/m32c.h (TARGET_VERSION): Remove.
	* config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
	* config/m32r/m32r.h (TARGET_VERSION): Remove.
	* config/m68k/linux.h (TARGET_VERSION): Remove.
	* config/m68k/m68k.h (TARGET_VERSION): Remove.
	* config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
	* config/m68k/uclinux.h (TARGET_VERSION): Remove.
	* config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
	* config/mep/mep.h (TARGET_VERSION): Remove.
	* config/microblaze/microblaze.h (MICROBLAZE_VERSION,
	MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
	* config/mips/iris6.h (MACHINE_TYPE): Remove.
	* config/mips/linux.h (TARGET_VERSION): Remove.
	* config/mips/netbsd.h (MACHINE_TYPE): Remove.
	* config/mips/vxworks.h (TARGET_VERSION): Remove.
	* config/mmix/mmix.h (TARGET_VERSION): Remove.
	* config/mn10300/linux.h (TARGET_VERSION): Remove.
	* config/mn10300/mn10300.h (TARGET_VERSION): Remove.
	* config/pa/pa.h (TARGET_VERSION): Remove.
	* config/pdp11/pdp11.h (TARGET_VERSION): Remove.
	* config/picochip/picochip.h (TARGET_VERSION): Remove.
	* config/rs6000/aix.h (TARGET_VERSION): Remove.
	* config/rs6000/darwin.h (TARGET_VERSION): Remove.
	* config/rs6000/darwin64.h (TARGET_VERSION): Remove.
	* config/rs6000/eabi.h (TARGET_VERSION): Remove.
	* config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
	* config/rs6000/eabisim.h (TARGET_VERSION): Remove.
	* config/rs6000/eabispe.h (TARGET_VERSION): Remove.
	* config/rs6000/freebsd.h (TARGET_VERSION): Remove.
	* config/rs6000/linux.h (TARGET_VERSION): Remove.
	* config/rs6000/linux64.h (TARGET_VERSION): Remove.
	* config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
	* config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
	* config/rs6000/lynx.h (TARGET_VERSION): Remove.
	* config/rs6000/netbsd.h (TARGET_VERSION): Remove.
	* config/rs6000/sysv4.h (TARGET_VERSION): Remove.
	* config/rs6000/vxworks.h (TARGET_VERSION): Remove.
	* config/s390/linux.h (TARGET_VERSION): Remove.
	* config/s390/s390.h (TARGET_VERSION): Remove.
	* config/s390/tpf.h (TARGET_VERSION): Remove.
	* config/score/score.h (TARGET_VERSION): Remove.
	* config/sh/linux.h (TARGET_VERSION): Remove.
	* config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
	TARGET_VERSION_CPU, TARGET_VERSION): Remove.
	* config/sh/sh.h (TARGET_VERSION): Remove.
	* config/sh/sh64.h (TARGET_VERSION): Remove.
	* config/sh/superh.h (TARGET_VERSION): Remove.
	* config/sh/vxworks.h (TARGET_VERSION): Remove.
	* config/sparc/freebsd.h (TARGET_VERSION): Remove.
	* config/sparc/linux.h (TARGET_VERSION): Remove.
	* config/sparc/linux64.h (TARGET_VERSION): Remove.
	* config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
	TARGET_NAME32, TARGET_NAME): Remove.
	* config/sparc/openbsd64.h (TARGET_VERSION): Remove.
	* config/sparc/sp-elf.h (TARGET_VERSION): Remove.
	* config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
	* config/sparc/sysv4.h (TARGET_VERSION): Remove.
	* config/sparc/vxworks.h (TARGET_VERSION): Remove.
	* config/spu/spu.h (TARGET_VERSION): Remove.
	* config/stormy16/stormy16.h (TARGET_VERSION): Remove.
	* config/v850/v850.h (TARGET_VERSION): Remove.
	* config/vax/linux.h (TARGET_VERSION): Remove.
	* config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
	* config/xtensa/elf.h (TARGET_VERSION): Remove.
	* config/xtensa/linux.h (TARGET_VERSION): Remove.

2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/48142
	* config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
	frame-related from frame-unrelated adjustments to the stack pointer.

2011-03-31  Jakub Jelinek  <jakub@redhat.com>

	* common.opt (fdebug-types-section): Move earlier.
	* doc/invoke.texi: Fix up -fno-debug-types-section documentation.

2011-03-31  Andreas Tobler  <andreast@fgznet.ch>

	* config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
	var.

2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (CASE_CHAIN): Define.
	* tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
	(gimple_redirect_edge_and_branch): Likewise.

2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/48367
	* ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
	calculation.

2011-03-30  Jeff Law  <law@redhat.com>

	* PR bootstrap/48371
	* reload1.c (reload): Fix botch in last change.

	* reload.h (struct reload): Fix typo introduced in last change.

2011-03-30  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.opt (mhard-float, msoft-float): Mark
	Undocumented.  Remove help text.
	* doc/invoke.texi (ARM Options): Don't document -msoft-float and
	-mhard-float.

2011-03-30  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (NegativeAlias): Document.
	(Alias): Mention NegativeAlias.
	* opt-functions.awk: Handle NegativeAlias.
	* optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
	* opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
	* opts.h (CL_NEGATIVE_ALIAS): Define.
	* config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
	(rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
	OPT_mspe_.
	* config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
	Alias entries.
	* config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
	mno-spe and mno-isel instead of mspe=no and -misel=no.

2011-03-29  Mark Wielaard  <mjw@redhat.com>

	* common.opt (fdebug-types-section): New flag.
	* doc/invoke.texi: Document new -fno-debug-types-section flag.
	* dwarf2out.c (use_debug_types): New define.
	(struct die_struct): Mark die_id with GTY desc use_debug_types.
	(print_die): Guard output of type unit signatures using
	use_debug_types.
	(build_abbrev_table): Replace assert of dwarf_version >= 4
	with assert on use_debug_types.
	(size_of_die): Likewise.
	(unmark_dies): Likewise.
	(value_format): Decide AT_ref_external form on use_debug_types.
	(output_die): Replace dwarf_version version check guard with
	use_debug_types where appropriate.
	(modified_type_die): Likewise.
	(gen_reference_type_die): Likewise.
	(dwarf2out_start_source_file): Likewise.
	(dwarf2out_end_source_file): Likewise.
	(prune_unused_types_walk_attribs): Likewise.
	(dwarf2out_finish): Likewise.

2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.

2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>

	PR rtl-optimization/48332
	* optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
	mode of input operand N and modeN to its actual mode.

2011-03-30  Jeff Law  <law@redhat.com>

	* reload.h (reg_equiv_constant): Move into new structure reg_equivs,
	define accessor macro.
	(reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
	(reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
	(reg_equiv_init): Likewise.
	(reg_equivs_size): New variable.
	(reg_equiv_init_size): Remove.
	(allocate_initial_values): Move prototype to here from....
	* integrate.h (allocate_initial_values): Remove prototype.
	* integrate.c: Include reload.h.
	(allocate_initial_values): Corresponding changes.
	* ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
	(fix_reg_equiv_init, no_equiv): Corresponding changes.
	(update_equiv_regs): Corresponding changes.
	(ira): Corresponding changes.
	* reload.c (push_reg_equiv_alt_mem): Corresponding changes.
	(push_secondary_reload): Corresponding changes.
	(push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
	(make_memloc, find_reloads_address): Corresponding changes.
	(subst_reg_equivs, subst_indexed_address): Corresponding changes.
	(find_reloads_address_1): Corresponding changes.
	(find_reloads_subreg_address, subst_reloads): Corresponding changes.
	(refers_to_regno_for_reload_p): Corresponding changes.
	(reg_overlap_mentioned_for_reload_p): Corresponding changes.
	(refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
	* reload1.c: Include ggc.h.
	(grow_reg_equivs): New function.
	(replace_pseudos_in, reload): Corresponding changes.
	(calculate_needs_all_insns, alter_regs): Corresponding changes.
	(eliminate_regs_1, elimination_effects): Corresponding changes.
	(emit_input_reload_insns, emit_output_reload_insns): Likewise.
	(delete_output_reload): Likewise.
	* caller-save.c (mark_referenced_regs): Corresponding changes.
	* alpha/alpha.c (resolve_reload_operand): Corresponding changes.
	* frv/predicates.md (frv_load_operand): Corresponding changes.
	* microblaze/microblaze.c (double_memory_operand): Corresponding
	changes.
	* avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
	* xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
	* mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
	* m68k/m68k.c (emit_move_sequence): Corresponding changes.
	* arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
	changes.
	* pa/pa.c (emit_move_sequence): Corresponding changes.
	* vax/vax.c (nonindexed_address_p): Corresponding changes.

2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/47551
	* config/arm/arm.c (coproc_secondary_reload_class): Handle
	structure modes.  Don't check neon_vector_mem_operand for
	vector or structure modes.

2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/43590
	* config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
	operand 1 and reshuffle the operands to match.
	(neon_vld3<mode>, neon_vld4<mode>): Update accordingly.

2011-03-30  Christian Schüler  <cschueler@gmx.de>

	PR driver/48208
	* config/c.opt (F): Added 'Driver' to -F option.

	PR driver/48260
	* config/darwin-driver.c (darwin_driver_init): Add '-arch' to
	  handler function.
	* config/darwin.opt: Added '-arch' option.

2011-03-30  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md: Add peepholes and patterns to combine
	extending loads and simple arithmetic instructions.
	* config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
	* config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
	* config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
	modes to use pre-decrement and post-increment addressing.
	(rx_is_restricted_memory_address): Add range checking of REG+INT
	addresses.
	(rx_print_operand): Add support for %Q.  Fix handling of %Q.
	(rx_memory_move_cost): Adjust cost of stores.
	(rx_adjust_insn_length): New function.

2011-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR c/48305
	* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
	arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
	matching arg00/arg01 types.

2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>

	* cfglayout.c (insn_locators_alloc): Initialize curr_location and
	last_location to UNKNOWN_LOCATION.

2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/48349
	* config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
	FLOAT_SSE_REGS.

2011-03-30  Joseph Myers  <joseph@codesourcery.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48337
	* config/sparc/sparc.opt (sparc_cpu_and_features): Add
	Init(PROCESSOR_V7).
	(sparc_cpu): Likewise.
	* config/sparc/sparc.c (sparc_option_override): Replace 0 by
	PROCESSOR_V7.

2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/48336
	PR middle-end/48342
	PR rtl-optimization/48345
	* ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
	hard regs for given mode from profitable regs when doing secondary
	allocation.

2011-03-29  Jeff Law  <law@redhat.com>

	PR bootstrap/48327
	* tree-ssa-threadupdate.c (struct redirection_data): Remove
	do_not_duplicate field.
	(lookup_redirection_data): Corresponding changes.
	(create_duplicates): Always create a template block.
	(redirect_edges): Remove code which reused the original block
	when it was going to become unreachable code.
	(thread_block): Don't set do_not_duplicate field.

2011-03-29  Joseph Myers  <joseph@codesourcery.com>

	* lto-opts.c (register_user_option_p, lto_register_user_option):
	Make type argument unsigned.
	* lto-streamer.h (lto_register_user_option): Make type argument
	unsigned.
	* opth-gen.awk: Make CL_* macros unsigned.
	* opts-common.c (find_opt): Make lang_mask argument unsigned.
	* opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
	CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
	CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
	CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
	CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
	(find_opt): Make lang_mask argument unsigned.

2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48331
	PR rtl-optimization/48334
	* ira-color.c (color_allocnos): Call setup_profitable_hard_regs
	for any used algorithm.

2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-conflicts.c (build_object_conflicts): Add unused attribute
	to parent_max.

2011-03-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
	(alpha_option_override): Don't set alpha_sr_alias_set.
	(emit_frame_store_1): Use gen_frame_mem rather than calling
	set_mem_alias_set.
	(alpha_expand_epilogue): Ditto.

2011-03-29  Ira Rosen  <ira.rosen@linaro.org>

	PR tree-optimization/48290
	* tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
	vectorization, check that relevant phis in the basic block after
	the inner loop are really inner loop's exit phis.

2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>

	PR debug/48190
	* dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
	(cached_dw_loc_list_def): New structure.
	(cached_dw_loc_list): New typedef.
	(cached_dw_loc_list_table): New variable.
	(cached_dw_loc_list_table_hash): New function.
	(cached_dw_loc_list_table_eq): Likewise.
	(add_location_or_const_value_attribute): Take a bool cache_p.
	Cache the list when the parameter is true.
	(gen_formal_parameter_die): Update caller.
	(gen_variable_die): Likewise.
	(dwarf2out_finish): Likewise.
	(dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
	while generating debug info for the decl.
	(dwarf2out_function_decl): Clear cached_dw_loc_list_table.
	(dwarf2out_init): Initialize cached_dw_loc_list_table.
	(resolve_addr): Cache the result of resolving a chain of
	location lists.

2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (update_left_conflict_sizes_p): Don't assume that
	conflict object hard regset nodes have intersecting hard reg sets.

	* regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
	after regstat_init_n_sets_and_refs.

	* ira.c: Add more comments at the top.
	(setup_stack_reg_pressure_class, setup_pressure_classes):
	Add comments how we compute the register pressure classes.
	(setup_allocno_and_important_classes): Add more comments.
	(setup_class_translate_array, reorder_important_classes)
	(setup_reg_class_relations): Add comments.

	* ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
	start of the file.

	* ira-color.c: Add 2011 to the Copyright line.
	(assign_hard_reg):  Add more comments.
	(improve_allocation): Ditto.

	* ira-costs.c: Add 2011 to the Copyright line.
	(setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
	comments.
	(setup_regno_cost_classes_by_mode): Ditto.

	Initial patches from ira-improv branch:

	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-build.c (ira_create_object): Remove initialization of
	OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
	(ira_create_allocno): Remove initialization of
	ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
	ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
	ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
	ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
	Initialize ALLOCNO_ADD_DATA.
	(copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
	and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
	ALLOCNO_REG.
	(ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
	ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.

	* ira.c (ira_reallocate): Remove.
	(setup_pressure_classes): Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost instead of ira_get_register_move_cost.
	(setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
	(ira): Call ira_initiate_emit_data and ira_finish_emit_data.

	* ira-color.c: Use ALLOCNO_COLOR_DATA instead of
	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
	ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
	ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
	instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
	OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
	Fix formatting.
	(object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
	(struct allocno_color_data): New.
	(allocno_color_data_t): New typedef.
	(allocno_color_data): New definition.
	(ALLOCNO_COLOR_DATA): New macro.
	(struct object_color_data): New.
	(object_color_data_t): New typedef.
	(object_color_data): New definition.
	(OBJECT_COLOR_DATA): New macro.
	(update_copy_costs, calculate_allocno_spill_cost): Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost instead of ira_get_register_move_cost.
	(move_spill_restore, update_curr_costs): Ditto.
	(allocno_spill_priority): Make it inline.
	(color_pass): Allocate and free allocno_color_dat and object_color_data.
	(struct coalesce_data, coalesce_data_t): New.
	(allocno_coalesce_data): New definition.
	(ALLOCNO_COALESCE_DATA): New macro.
	(merge_allocnos, coalesced_allocno_conflict_p): Use
	ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
	ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
	(coalesce_allocnos): Ditto.
	(setup_coalesced_allocno_costs_and_nums): Ditto.
	(collect_spilled_coalesced_allocnos): Ditto.
	(slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
	(setup_slot_coalesced_allocno_live_ranges): Ditto.
	(coalesce_spill_slots): Ditto.
	(ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
	free allocno_coalesce_data.

	* ira-conflicts.c: Fix formatting.
	(process_regs_for_copy): Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost instead of ira_get_register_move_cost.
	(build_object_conflicts): Optimize.

	* ira-costs.c (record_reg_classes): Optimize.  Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost, ira_may_move_in_cost, and
	ira_may_move_out_cost instead of ira_get_register_move_cost and
	ira_get_may_move_cost.
	(record_address_regs): Ditto.
	(scan_one_insn): Optimize.
	(find_costs_and_classes): Optimize.
	(process_bb_node_for_hard_reg_moves): Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost instead of ira_get_register_move_cost.

	* ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
	ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
	ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
	(ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
	definitions.
	(ira_initiate_emit_data, ira_finish_emit_data)
	(create_new_allocno): New functions.
	(modify_move_list): Call create_new_alloc instead of ira_create_allocno.
	(emit_move_list): Call ira_init_register_move_cost_if_necessary.
	Use ira_register_move_cost instead of ira_get_register_move_cost.

	* ira-int.h: Fix some comments.
	(object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
	(struct ira_object): Remove profitable_hard_regs, hard_regs_node,
	hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
	add_data.
	(struct ira_allocno): Make mode and aclass a bitfield.  Move other
	bitfield after mode.  Make hard_regno a short int.  Make
	hard_regno short.  Remove first_coalesced_allocno and
	next_coalesced_allocno.  Move mem_optimized_dest_p,
	somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
	into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
	available_regs_num, next_bucket_allocno, prev_bucket_allocno,
	temp, colorable_p.  Add new member add_data.
	(ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
	(ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
	(ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
	(ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
	(ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
	(ALLOCNO_ADD_DATA): New macro.
	(ira_emit_data_t): New typedef.
	(struct ira_emit_data): New.  Move mem_optimized_dest_p,
	somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
	from struct ira_allocno.
	(ALLOCNO_EMIT_DATA): New macro.
	(ira_allocno_emit_data, allocno_emit_reg): New.
	(ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
	(OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
	(OBJECT_ADD_DATA): New macro.
	(ira_reallocate): Remove.
	(ira_initiate_emit_data, ira_finish_emit_data): New.
	(ira_get_register_move_cost, ira_get_may_move_cost): Remove.
	(ira_init_register_move_cost_if_necessary): New.
	(ira_object_conflict_iter_next): Merge into
	ira_object_conflict_iter_cond.
	(FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.

	* ira-live.c (process_single_reg_class_operands): Call
	ira_init_register_move_cost_if_necessary.  Use
	ira_register_move_cost instead of ira_get_register_move_cost.

	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (struct target_ira_int): Remove x_cost_classes.

	* ira-costs.c: Fix formatting.
	(cost_classes, cost_classes_num): Remove.
	(struct cost_classes, cost_classes_t, const_cost_classes_t): New.
	(regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
	(cost_classes_del, cost_classes_htab): New.
	(cost_classes_aclass_cache, cost_classes_mode_cache): New.
	(initiate_regno_cost_classes, setup_cost_classes): New.
	(setup_regno_cost_classes_by_aclass): New.
	(setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
	(record_reg_classes): Use regno_cost_classes instead of
	cost_classes.  Move checking opposite operand up.
	(record_address_regs): Use regno_cost_classes
	instead of cost_classes.
	(scan_one_insn): Ditto.  Use always general register.
	(print_allocno_costs): Use regno_cost_classes instead of
	cost_classes.
	(print_pseudo_costs): Ditto.  Use Reg_N_REFS.
	(find_costs_and_classes): Set up cost classes for each registers.
	Use also their mode for this.  Use regno_cost_classes instead of
	cost_classes.
	(setup_allocno_class_and_costs): Use regno_cost_classes instead of
	cost_classes.
	(free_ira_costs, ira_init_costs): Don't use cost_classes.
	(ira_costs, ira_set_pseudo_classes): Call
	initiate_regno_cost_classes and finish_regno_cost_classes.

	2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>

	* target-def.h (TARGET_IRA_COVER_CLASSES): Remove.

	* target.def (ira_cover_classes): Remove.

	* doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.

	* doc/tm.texi.in: Ditto.

	* ira-conflicts.c: Remove mentioning cover classes from the file.
	Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
	ALLOCNO_CLASS_COST instead of ALLOCNO_COVER_CLASS_COST.  Fix formatting.

	* targhooks.c (default_ira_cover_classes): Remove.

	* targhooks.h (default_ira_cover_classes): Ditto.

	* haifa-sched.c: Remove mentioning cover classes from the file.
	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
	ira_pressure_classes and ira_pressure_classes_num instead of
	ira_reg_class_cover_size and ira_reg_class_cover.  Use
	sched_regno_pressure_class instead of sched_regno_cover_class.
	(mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
	ira_reg_class_max_nregs instead of ira_reg_class_nregs.

	* ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
	classes from the file.
	(object_hard_regs_t, object_hard_regs_node_t): New typedefs.
	(struct object_hard_regs, struct object_hard_regs_node): New.
	(struct ira_object): New members profitable_hard_regs,
	hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
	(struct ira_allocno): Rename cover_class to aclass.  Rename
	cover_class_cost and updated_cover_class_cost to class_cost and
	updated_class_cost.  Remove splay_removed_p and
	left_conflict_size.  Add new members colorable_p.
	(ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
	(ALLOCNO_COLORABLE_P): New macro.
	(ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
	(ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
	Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
	(OBJECT_...): Rename parameter C to O.
	(OBJECT_PROFITABLE_HARD_REGS): New macro.
	(OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
	(OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
	(struct target_ira_int): New members x_ira_max_memory_move_cost,
	x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
	x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
	x_ira_reg_pressure_class_p, x_ira_important_class_nums,
	x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
	x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
	x_ira_reg_class_subunion.
	(ira_max_memory_move_cost, ira_max_register_move_cost)
	(ira_max_may_move_in_cost, ira_max_may_move_out_cost)
	(ira_reg_allocno_class_p, ira_reg_pressure_class_p)
	(ira_important_class_nums, ira_reg_class_superunion): New macros.
	(prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
	(ira_reg_class_union): Rename to ira_reg_class_subunion.
	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
	(ira_tune_allocno_costs_and_cover_classes): Rename to
	ira_tune_allocno_costs.
	(ira_debug_hard_regs_forest): New.
	(ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
	(ira_object_conflict_iter_next): Fix comments.
	(ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
	(ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
	cover_class to aclass.
	(ira_allocate_and_accumulate_costs): Ditto.
	(ira_allocate_and_set_or_copy_costs): Ditto.

	* opts.c (decode_options): Remove ira_cover_class check.

	* ira-color.c: Remove mentioning cover classes from the file.  Use
	ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
	instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
	(splay-tree.h): Remove include.
	(allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
	before copy_freq_compare_func.
	(allocnos_for_spilling, removed_splay_allocno_vec): Remove.
	(object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
	New definitions.
	(hard_regs_roots, hard_regs_node_vec): Ditto.
	(object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
	(insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
	(finish_object_hard_regs, object_hard_regs_compare): Ditto.
	(create_new_object_hard_regs_node): Ditto.
	(add_new_object_hard_regs_node_to_forest): Ditto.
	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
	(setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
	Ditto.
	(print_hard_reg_set, print_hard_regs_subforest): Ditto.
	(print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
	(remove_unused_object_hard_regs_nodes): Ditto.
	(enumerate_object_hard_regs_nodes): Ditto.
	(object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
	(object_hard_regs_subnode_t): Ditto.
	(struct object_hard_regs_subnode): Ditto.
	(object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
	(setup_object_hard_regs_subnode_index): Ditto.
	(get_object_hard_regs_subnodes_num): Ditto.
	(form_object_hard_regs_nodes_forest): Ditto.
	(finish_object_hard_regs_nodes_tree): Ditto.
	(finish_object_hard_regs_nodes_forest): Ditto.
	(allocnos_have_intersected_live_ranges_p): Rename to
	allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
	(pseudos_have_intersected_live_ranges_p): Rename to
	conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
	(setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
	(empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
	(update_copy_costs): Remove assert.  Skip cost update if the hard
	reg does not belong the class.
	(assign_hard_reg): Process only profitable hard regs.
	(uncolorable_allocnos_num): Make it scalar.
	(allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
	and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
	and ira_reg_class_max_nregs.
	(bucket_allocno_compare_func): Check frequency first.
	(sort_bucket): Add compare function as a parameter.
	(add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
	(uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
	(push_allocno_to_stack): Rewrite for checking new allocno
	colorability.
	(remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
	(push_only_colorable): Pass new parameter to sort_bucket.
	(push_allocno_to_spill): Remove.
	(allocno_spill_priority_compare): Make it inline and rewrite.
	(splay_tree_allocate, splay_tree_free): Remove.
	(allocno_spill_sort_compare): New function.
	(push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
	build and use splay tree.  Choose first allocno in uncolorable
	allocno bucket to spill.  Remove setting spill cost.
	(all_conflicting_hard_regs): Remove.
	(setup_allocno_available_regs_num): Check only profitable hard
	regs.  Print info about hard regs nodes.
	(setup_allocno_left_conflicts_size): Remove.
	(put_allocno_into_bucket): Don't call
	setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
	(improve_allocation): New.
	(color_allocnos): Call setup_profitable_hard_regs,
	form_object_hard_regs_nodes_forest, improve_allocation,
	finish_object_hard_regs_nodes_forest.  Setup spill cost.
	(print_loop_title): Use pressure classes.
	(color_allocnso): Ditto.
	(do_coloring): Remove allocation and freeing splay_tree_node_pool
	and allocnos_for_spilling.
	(ira_sort_regnos_for_alter_reg): Don't setup members
	{first,next}_coalesced_allocno.
	(color): Remove allocating and freeing removed_splay_allocno_vec.
	(fast_allocation): Use ira_prohibited_class_mode_regs instead of
	prohibited_class_mode_regs.

	* ira-lives.c: Remove mentioning cover classes from the file.  Fix
	formatting.
	(update_allocno_pressure_excess_length): Use pressure classes.
	(inc_register_pressure, dec_register_pressure): Check for pressure
	class.
	(mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
	pressure class.  Use ira_reg_class_nregs instead of
	ira_reg_class_max_nregs.
	(mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
	(mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
	(single_reg_class): Use ira_reg_class_nregs instead of
	ira_reg_class_max_nregs.
	(process_bb_node_lives): Use pressure classes.

	* ira-emit.c: Remove mentioning cover classes from the file.  Use
	ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
	(change_loop): Use pressure classes.
	(modify_move_list): Call ira_set_allocno_class instead of
	ira_set_allocno_cover_class.

	* ira-build.c: Remove mentioning cover classes from the file.  Use
	ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
	ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
	ALLOCNO_UPDATED_CLASS_COST instead of
	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
	(ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
	(ira_create_allocno): Remove initialization of
	ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
	ALLOCNO_COLORABLE_P.
	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
	Update conflict regs for the objects.
	(create_cap_allocno): Remove assert.  Don't propagate
	ALLOCNO_AVAILABLE_REGS_NUM.
	(ira_free_allocno_costs): New function.
	(finish_allocno): Change a part of code into call of
	ira_free_allocno_costs.
	(low_pressure_loop_node_p): Use pressure classes.
	(object_range_compare_func): Don't compare classes.
	(setup_min_max_conflict_allocno_ids): Ditto.

	* loop-invariant.c: Remove mentioning cover classes from the file.
	Use ira_pressure_classes and ira_pressure_classes_num instead of
	ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
	(get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
	Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
	Use reg_allocno_class instead of reg_cover_class.
	(get_inv_cost): Use instead ira_stack_reg_pressure_class of
	STACK_REG_COVER_CLASS.
	(get_regno_cover_class): Rename to get_regno_pressure_class.
	(move_loop_invariants): Initialize and finalize regstat.

	* ira.c: Remove mentioning cover classes from the file.  Add
	comments about coloring without cover classes.  Use ALLOCNO_CLASS
	instead of ALLOCNO_COVER_CLASS.  Fix formatting.
	(alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
	setup_class_subset_and_memory_move_costs.
	(setup_stack_reg_pressure_class, setup_pressure_classes): New.
	(setup_cover_and_important_classes): Rename to
	setup_allocno_and_important_classes.
	(setup_class_translate_array): New.
	(setup_class_translate): Call it for allocno and pressure classes.
	(cover_class_order): Rename to allocno_class_order.
	(comp_reg_classes_func): Use ira_allocno_class_translate instead
	of ira_class_translate.
	(reorder_important_classes): Set up ira_important_class_nums.
	(setup_reg_class_relations): Set up ira_reg_class_superunion.
	(print_class_cover): Rename to print_classes.  Add parameter.
	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
	Print pressure classes too.
	(find_reg_class_closure): Rename to find_reg_classes.  Don't call
	setup_reg_subclasses.
	(ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
	(setup_prohibited_class_mode_regs): Use
	ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
	(clarify_prohibited_class_mode_regs): New function.
	(ira_init_register_move_cost): Set up ira_max_register_move_cost,
	ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
	(ira_init_once): Initialize them.
	(free_register_move_costs): Process them.
	(ira_init): Move calls of find_reg_classes and
	setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
	Call clarify_prohibited_class_mode_regs.
	(ira_no_alloc_reg): Remove.
	(too_high_register_pressure_p): Use pressure classes.

	* sched-deps.c: Remove mentioning cover classes from the file.
	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
	ira_pressure_classes and ira_pressure_classes_num instead of
	ira_reg_class_cover_size and ira_reg_class_cover.
	(mark_insn_hard_regno_birth, mark_hard_regno_death): Use
	sched_regno_pressure_class instead of sched_regno_cover_class.
	(mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
	ira_reg_class_max_nregs instead of ira_reg_class_nregs.

	* ira.h: Add 2010 to Copyright.
	(ira_no_alloc_reg): Remove external.
	(struct target_ira): Rename x_ira_hard_regno_cover_class,
	x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
	x_ira_class_translate to x_ira_hard_regno_allocno_class,
	x_ira_allocno_classes_num, x_ira_allocno_classes, and
	x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
	x_ira_pressure_classes, x_ira_pressure_class_translate, and
	x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
	x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
	x_ira_no_alloc_regs.
	(ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
	(ira_reg_class_cover_size, ira_reg_class_cover): Rename to
	ira_allocno_classes_num and ira_allocno_classes.
	(ira_class_translate): Rename to ira_allocno_class_translate.
	(ira_pressure_classes_num, ira_pressure_classes): New definitions.
	(ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
	(ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
	(ira_no_alloc_regs): New.

	* ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
	classes from the file.  Use ALLOCNO_CLASS instead of
	ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
	ALLOCNO_COVER_CLASS_COST.
	(regno_cover_class): Rename to regno_aclass.
	(record_reg_classes): Use ira_reg_class_subunion instead of
	ira_reg_class_union.
	(record_address_regs): Check overflow.
	(scan_one_insn): Ditto.
	(print_allocno_costs): Print total mem cost fore regional allocation.
	(print_pseudo_costs): Use REG_N_REFS.
	(find_costs_and_classes): Use classes intersected with them on the
	1st pass. Check overflow.  Use ira_reg_class_subunion instead of
	ira_reg_class_union.  Use ira_allocno_class_translate and
	regno_aclass instead of ira_class_translate and regno_cover_class.
	Modify code for finding regno_aclass.  Setup preferred classes for
	the next pass.
	(setup_allocno_cover_class_and_costs): Rename to
	setup_allocno_class_and_costs.  Use regno_aclass instead of
	regno_cover_class.  Use ira_set_allocno_class instead of
	ira_set_allocno_cover_class.
	(init_costs, finish_costs): Use regno_aclass instead of
	regno_cover_class.
	(ira_costs): Use setup_allocno_class_and_costs instead of
	setup_allocno_cover_class_and_costs.
	(ira_tune_allocno_costs_and_cover_classes): Rename to
	ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
	by processing objects.  Use ira_reg_class_max_nregs instead of
	ira_reg_class_nregs.

	* rtl.h (reg_cover_class): Rename to reg_allocno_class.

	* sched-int.h: Remove mentioning cover classes from the file.
	(sched_regno_cover_class): Rename to sched_regno_pressure_class.

	* reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
	classes from the file.
	(struct reg_pref): Rename coverclass into allocnoclass.
	(reg_cover_class): Rename to reg_allocno_class.

	* Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.

	* config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.

	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.

	* config/avr/avr.h (IRA_COVER_CLASSES): Ditto.

	* config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.

	* config/cris/cris.h (IRA_COVER_CLASSES): Ditto.

	* config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.

	* config/frv/frv.h (IRA_COVER_CLASSES): Ditto.

	* config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.

	* config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.

	* config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
	(i386_ira_cover_classes): Ditto.

	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.

	* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.

	* config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.

	* config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.

	* config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.

	* config/mep/mep.h (IRA_COVER_CLASSES): Ditto.

	* config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
	(mips_ira_cover_classes): Ditto.

	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.

	* config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.

	* config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.

	* config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.

	* config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.

	* config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
	(IRA_COVER_CLASSES_VSX): Ditto.

	* config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
	(rs6000_ira_cover_classes): Ditto.

	* config/rx/rx.h (IRA_COVER_CLASSES): Ditto.

	* config/s390/s390.h (IRA_COVER_CLASSES): Ditto.

	* config/score/score.h (IRA_COVER_CLASSES): Ditto.

	* config/sh/sh.h (IRA_COVER_CLASSES): Ditto.

	* config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.

	* config/spu/spu.h (IRA_COVER_CLASSES): Ditto.

	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.

	* config/v850/v850.h (IRA_COVER_CLASSES): Ditto.

	* config/vax/vax.h (IRA_COVER_CLASSES): Ditto.

	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.

2011-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48253
	* dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
	dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
	dw_fde_unlikely_section_end_label, cold_in_std_section,
	dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
	Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
	fields.
	(output_fde): Use dw_fde_second_{begin,end} if second is
	true, otherwise dw_fde_{begin,end}.
	(output_call_frame_info): Test dw_fde_second_begin != NULL
	instead of dw_fde_switched_sections.
	(dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
	fields, initialize new fields.  Initialize in_std_section
	unconditionally from the first partition.
	(dwarf2out_end_epilogue): Don't override dw_fde_end when
	dw_fde_second_begin is non-NULL.
	(dwarf2out_switch_text_section): Stop initializing removed
	dw_fde_struct fields, initialize new fields, initialize
	also dw_fde_end here.  Set dw_fde_switch_cfi even when
	dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
	(struct var_loc_list_def): Add last_before_switch field.
	(arange_table, arange_table_allocated, arange_table_in_use,
	ARANGE_TABLE_INCREMENT, add_arange): Removed.
	(size_of_aranges): Count !in_std_section and !second_in_std_section
	hunks in fdes, instead of looking at arange_table_in_use.
	(output_aranges): Add aranges_length argument, don't call
	size_of_aranges here.  Instead of using aranges_table*
	emit ranges for fdes when !in_std_section resp.
	!second_in_std_section.
	(dw_loc_list): Break ranges crossing section switch.
	(convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
	use dw_fde_second_end instead of dw_fde_end as end of last range.
	(gen_subprogram_die): Don't call add_arange.  Use
	dw_fde_{begin,end} for first partition and if switched
	section dw_fde_second_{begin,end} for the second.
	(var_location_switch_text_section_1,
	var_location_switch_text_section): New functions.
	(dwarf2out_begin_function): Initialize cold_text_section even
	when function_section () isn't text_section.
	(prune_unused_types): Don't walk arange_table.
	(dwarf2out_finish): Don't needlessly test
	flag_reorder_blocks_and_partition when testing cold_text_section_used.
	If info_section_emitted, call size_of_aranges and if it indicates
	non-empty .debug_aranges, call output_aranges with the computed
	size.  Stop using removed dw_fde_struct fields, use
	dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
	for second.

	PR debug/48203
	* cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
	create ENTRY_VALUE if incoming or address of incoming's MEM
	is a hard REG.
	* dwarf2out.c (mem_loc_descriptor): Don't emit
	DW_OP_GNU_entry_value of DW_OP_fbreg.
	* var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
	on ENTRY_VALUE is able to find the canonical parameter VALUE.
	* cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
	rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
	ENTRY_VALUE_EXPs.
	(cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
	is a REG_P or MEM_P with REG_P address, compute hash directly
	instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
	(preserve_only_constants): Don't clear VALUES forwaring
	ENTRY_VALUE to some other VALUE.

2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>

	* builtins.c (expand_builtin_memset_args): Use gen_int_mode
	instead of GEN_INT.

2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (expand_gimple_cond): Always set the source location and
	block before expanding the statement.
	(expand_gimple_stmt_1): Likewise.  Set them here...
	(expand_gimple_stmt): ...and not here.  Tidy.
	* cfglayout.c (curr_insn_locator): Return 0 if the current location is
	unknown.

2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in: New rule for cprop.o.
	* gcse.c: Move constant/copy propagation to cprop.c.
	(compute_local_properties): Only handle expression tables.
	(hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
	(one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
	(hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
	next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
	mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
	compute_cprop_data, find_used_regs, try_replace_reg,
	find_avail_set, cprop_jump, constprop_register, cprop_insn,
	local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
	fis_get_condition, implicit_set_cond_p, find_implicit_sets,
	find_bypass_set, reg_killed_on_edge, bypass_block,
	bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
	execute_rtl_cprop, pass_rtl_cprop): Move to...
	* cprop.c: ...here.  New file, constant/copy propagation for RTL
	moved from gcse.c to here with minor cleanups in duplicated code.

2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (flag_opts): Fix a typo in
	-mavx256-split-unaligned-store.

2011-03-28  Anatoly Sokolov  <aesok@post.ru>

	* config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
	LIBCALL_VALUE): Remove macros.
	* config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(h8300_function_value, h8300_libcall_value,
	h8300_function_value_regno_p): New functions.

2011-03-28  Anatoly Sokolov  <aesok@post.ru>

	* config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.

2011-03-28  Jeff Law  <law@redhat.com>

	* tree-ssa-threadupdate.c (redirect_edges): Call
	create_edge_and_update_destination_phis as needed.
	(create_edge_and_update_destination_phis): Accept new BB argument.
	All callers updated.
	(thread_block): Do not update the profile when threading around
	intermediate blocks.
	(thread_single_edge): Likewise.
	(determine_bb_domination_status): If BB is not a successor of the
	loop header, return NONDOMINATING.
	(register_jump_thread): Note when we register a jump thread around
	an intermediate block.
	* tree-ssa-threadedge.c (thread_around_empty_block): New function.
	(thread_across_edge): Use it.

2011-03-28  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
	when for_return is 2.

2011-03-28  Jeff Law  <law@redhat.com>

	* var-tracking.c (canonicalize_values_mark): Delete unused
	lhs assignment.
	(canonicalize_values_star, set_variable_part): Likewise.
	(clobber_variable_part, delete_variable_part): Likewise.

2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (free_gcse_mem): Free reg_set_bitmap.

2011-03-28  Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (expand_call_inline): Do not check that destination
	node is analyzed.
	(optimize_inline_calls): Assert that destination node is analyzed.
	* cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
	not call tree_lowering_passes.
	* cgraph.h (cgraph_analyze_function): Declare.
	* cgraphunit.c (cgraph_analyze_function): Make public.

2011-03-28  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sparc-opts.h: New.
	* config/sparc/sparc.c (sparc_handle_option, sparc_select,
	sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
	(sparc_option_override): Store processor_type enumeration rather
	than string in cpu_default.  Remove name and enumeration from
	cpu_table.  Directly default -mcpu then default -mtune from -mcpu
	without using sparc_select.  Use target_flags_explicit instead of
	fpu_option_set.
	* config/sparc/sparc.h (enum processor_type): Move to
	sparc-opts.h.
	(sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
	* config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
	HeaderInclude entry.
	(mcpu=, mtune=): Use Var and Enum.
	(sparc_processor_type): New Enum and EnumValue entries.

2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR target/48245
	* config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.

2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
	Insert new statements at it in lieu of STMT.
	(vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
	* tree-vect-stmts.c (vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

2011-03-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
	(divtf3): Ditto.
	(multf3): Ditto.
	(subtf3): Ditto.

2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
	unaligned 256bit load/store.
	(*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
	(*avx_movdqu<avxmodesuffix>): Likewise.

2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/48288
	* config/pa/predicates.md (reg_or_ior_operand): New predicate.
	* config/pa/pa.md (iordi3): Use new predicate in expander.
	(iorsi3): Likewise.

2011-03-27  Anatoly Sokolov  <aesok@post.ru>

	* config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/mips/mips-protos.h (mips_function_value): Remove.
	* config/mips/mips.c (mips_function_value): Rename to...
	(mips_function_value_1): ... this. Make static.  Handle receiving
	the function type in 'fn_decl_or_type' argument.
	(mips_function_value, mips_libcall_value,
	mips_function_value_regno_p): New function.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.

2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
	and -mavx256-split-unaligned-store.
	(ix86_option_override_internal): Split 32-byte AVX unaligned
	load/store by default.
	(ix86_avx256_split_vector_move_misalign): New.
	(ix86_expand_vector_move_misalign): Use it.

	* config/i386/i386.opt: Add -mavx256-split-unaligned-load and
	-mavx256-split-unaligned-store.

	* config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
	256bit load/store.  Generate unaligned store on misaligned memory
	operand.
	(*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
	256bit load/store.
	(*avx_movdqu<avxmodesuffix>): Likewise.

	* doc/invoke.texi: Document -mavx256-split-unaligned-load and
	-mavx256-split-unaligned-store.

2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/38598
	* config/mips/mips.md (extendsidi2): Add an "l" alternative.
	Update commentary.

2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
	opno arguments with an expand_operand.  Use create_input_operand.
	(mips_prepare_builtin_target): Delete.
	(mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
	functions.
	(mips_expand_builtin_direct): Use create_output_operand and
	mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
	(mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
	(mips_expand_builtin_compare): Use mips_expand_fp_comparison.

2011-03-27  Ira Rosen  <ira.rosen@linaro.org>

	* config/arm/arm.c (arm_autovectorize_vector_sizes): New
	function.
	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* basic-block.h (fixup_abnormal_edges): Adjust prototype.
	* reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
	basic blocks and call commit_edge_insertions directly.
	(fixup_abnormal_edges): Move from here to...
	* cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
	on the edges and return whether some have actually been inserted.
	* reg-stack.c (convert_regs): Fix up abnormal edges before inserting
	compensation code.

2011-03-26  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/48144
	* sel-sched-ir.c (merge_history_vect): Factor out from ...
	(merge_expr_data): ... here.
	(av_set_intersect): Rename to av_set_code_motion_filter.
	Update all callers.  Call merge_history_vect when an expression
	is found in both sets.
	* sel-sched-ir.h (av_set_code_motion_filter): Add prototype.

2011-03-26  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (word_offset_memref_op): Handle
	cmodel medium addresses.
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
	64-bit gpr loads and stores.
	(rs6000_secondary_reload_ppc64): New function.
	* config/rs6000/rs6000-protos.h: Declare it.
	* config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.

2011-03-26  Alan Modra  <amodra@gmail.com>

	PR target/47487
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
	GNU Go in traceback table.

2011-03-25  Richard Henderson  <rth@redhat.com>

	* expr.c (emit_block_move_via_movmem): Only use 6 operand variant
	if there are exactly 6 operands.
	(set_storage_via_setmem): Similarly.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* collect2.c (write_c_file_stat): Handle backslash
	as right-hand directory separator.
	(resolve_lib_name): Use IS_DIR_SEPARATOR instead of
	checking just for slash.
	* coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
	instead of checking for trailing slash.
	* gcc.c (record_temp_file): Use filename_cmp instead
	of strcmp.
	(do_spec_1): Likewise.
	(replace_outfile_spec_function): Likewise.
	(is_directory): Use filename_ncmp instead of strncmp.
	(print_multilib_info): Likewise.
	* gcov.c (find_source): Use filename_cmp instead
	instead of strcmp.
	(make_gcov_file_name): Fix order of slash/backslash
	checks.
	* incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
	(add_standard_paths): Likewise.
	* mips-tfile.c (saber_stop): Handle backslash.
	* prefix.c (update_path): Use filename_ncmp instead of
	strncmp.
	* profile.c (output_location): Use filename_cmp instead
	of strcmp.
	* read-md.c (handle_toplevel_file): Handle backslash.
	* tlink.c (frob_extension):  Likewise.
	* tree-cfg.c (same_line_p): Use filename_cmp instead of
	strcmp.
	* tree-dump.c (dequeue_and_dump): Handle backslash.
	* tree.c (get_file_function_name): Likewise.
	* gengtype.c (read_input_list): Likewise.
	(get_file_realbasename): Likewise.
	(get_output_file_with_visibility): Use filename_cmp
	instead of strcmp.

2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
	case to VFPv1.

2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>

	* fold-const.c (expr_location_or): New function.
	(fold_truth_not_expr): Call it.

2011-03-25  Jeff Law  <law@redhat.com>

	* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
	va_end.
	* c-family/c-common.c (def_fn_type): Likewise.
	* emit-rtl.c (gen_rtvec): Likewise.
	* lto/lto-lang.c (def_fn_type): Likewise.

2011-03-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
	also generate copies.
	(fini_copy_prop): Handle constant values properly.

2011-03-25  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
	mode size instead of bitsize with DWARF2_ADDR_SIZE.
	(hash_loc_operands, compare_loc_operands): Handle
	DW_OP_GNU_entry_value.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
	(STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
	* config/i386/i386.c (ix86_conditional_register_usage): Adjust
	comment and use macro TARGET_64BIT_MS_ABI instead.
	(ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
	and change default behavior for 32-bit MS_ABI.
	(ix86_reg_parm_stack_space): Check additionally for bit-ness.
	(ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
	32-bit, too.
	(ix86_cfun_abi): Likewise.
	(ix86_maybe_switch_abi): Adjust comment.
	(init_cumulative_args): Check for bit-ness in MS_ABI case.
	(ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
	instead of checking for SYSV_ABI.
	(ix86_nsaved_sseregs): Likewise.
	(ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
	to 16 bytes.
	(ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
	* config/i386.h (TARGET_32BIT_MS_ABI): New macro.
	(ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
	(OUTGOING_REG_PARM_STACK_SPACE): Likewise.
	* config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.

2011-03-25  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
	(verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
	(verify_gimple): Remove.
	* tree-cfg.c (verify_gimple_call): Merge verification
	from verify_stmts.
	(verify_gimple_phi): Merge verification from verify_stmts.
	(verify_gimple_label): New function.
	(verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
	(verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
	(verify_stmt): Merge into verify_gimple_in_cfg and callees.
	(verify_stmts): Rename to verify_gimple_in_cfg.
	(verify_gimple_in_cfg): New function.
	* passes.c (execute_function_todo): Call verify_gimple_in_cfg.
	* tree-ssa.c (verify_ssa): Likewise.
	* gimplify.c (gimplify_body): Call verify_gimple_in_seq.

2011-03-25  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Add FRE pass after
	early SRA.

2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
	for Cortex-A8.
	(arm_movdi_vfp_cortexa8): New pattern.
	* config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
	iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
	instructions when tuning for Cortex-A8.  Set attribute "arch".
	* config/arm/arm.md: Move include arm-tune.md up a bit.
	(define_attr "arch"): Add "onlya8" and "nota8" values.
	(define_attr "arch_enabled"): Handle "onlya8" and "nota8".

2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>

	PR bootstrap/48282
	Revert:
	2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>

	* function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
	FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
	(pass_instantiate_virtual_regs): Require PROP_cfglayout.
	* passes.c (init_optimization_passes): Move
	pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* c-typeck.c (comptypes_internal): Replace target
	hook call of comp_type_attributes by version in tree.c file.
	* gimple.c (gimple_types_compatible_p_1): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Likewise.
	* tree.c (build_type_attribute_qual_variant): Likewise.
	(attribute_value_equal): New static helper function.
	(comp_type_attributes): New function.
	(merge_attributes): Use attribute_value_equal for comparison.
	(attribute_list_contained): Likewise.
	* tree.h (comp_type_attributes): New prototype.

2011-03-25  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Drop special casing
	of complex types at -O0.
	(verify_gimple_assign_binary): Likewise.
	(verify_gimple_assign_ternary): Likewise.

2011-03-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
	(value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.

2011-03-24  Mark Wielaard  <mjw@redhat.com>

	PR debug/48041
	* dwarf2out.c (output_abbrev_section): Only write table when
	abbrev_die_table_in_use > 1.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
	(alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
	(alpha_expand_unaligned_load_words): Use extql.
	(alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
	(emit_insxl): Handle all modes for consistency.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
	(alpha_expand_unaligned_load): Likewise.
	(alpha_expand_unaligned_store): Likewise.
	(alpha_expand_unaligned_load_words): Likewise.
	(alpha_expand_unaligned_store_words): Likewise.
	(emit_insxl, alpha_split_compare_and_swap_12): Likewise.
	(alpha_split_lock_test_and_set_12): Likewise.
	(print_operand, alpha_fold_builtin_extxx): Likewise.
	(alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
	* config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
	(builtin_extwh, builtin_extlh, builtin_extql): Likewise.
	(unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
	(*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
	(insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
	(unaligned_loadqi_be, unaligned_loadhi_be): Remove.
	(unaligned_storeqi_be, unaligned_storehi_be): Remove.
	(extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
	(extwl, extll, extql): Similarly.
	(inswh, inslh, insqh): Similarly.
	(mskbl, mskwl, mskll, mskql): Similarly.
	(mskwh, msklh, mskqh): Similarly.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (attribute isa): Add er, ner.
	(attribute enabled): Handle them.
	(*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (attribute isa): Add vms.
	(attribute enabled): Handle it.
	(*movsf): Merge *movsf_{nofix,fix,nofp}.
	(*movdf): Merge *movdf_{nofix,fix,nofp}.
	(*movtf): Rename from *movtf_internal for consistency.
	(*movsi): Merge with *movsi_nt_vms.
	(*movhi): Merge *movhi_nobwx, *movhi_bwx.
	(*movqi): Merge *movqi_nobwx, *movqi_bwx.
	(*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
	* config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (extendqihi2): Implement for BWX only.
	(extendqisi2, extendhisi2): Likewise.
	(extendqidi2): Simplify BWX/non-BWX expansions.
	(extendhidi2): Similarly.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (attribute isa): New.
	(attribute enabled): New.
	(zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
	(zero_extendqisi2, zero_extendqidi2): Similarly.
	(zero_extendhisi2, zero_extendhidi2): Similarly.
	* config/alpha/predicates.md (reg_or_bwx_memory_operand): New.

2011-02-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/predicates.md (input_operand): Revert last change;
	update comment to mention 32-bit VMS rather than Windows.

2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>

	* function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
	FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
	(pass_instantiate_virtual_regs): Require PROP_cfglayout.
	* passes.c (init_optimization_passes): Move
	pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.

2011-03-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ix86_print_operand): Output DFmode const_double
	correctly.

2011-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48204
	* simplify-rtx.c (simplify_const_unary_operation): Call
	real_convert when changing mode class with FLOAT_EXTEND.

2011-03-24  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
	(ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
	* config/rx/rx.c (rx_option_override): Set align_jumps,
	align_loops and align_labels if not set by the user.
	(rx_align_for_label): New function.
	(rx_max_skip_for_label): New function.
	(TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
	(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
	(TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
	(TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
	* config/rx/rx-protos.h (rx_align_for_label): Add prototype.

2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>

	PR rtl-optimization/48263
	* optabs.c (expand_binop_directly): Reinstate convert_modes code
	and original commutative_p handling.  Use maybe_gen_insn.

2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* reload.c (find_reloads_subreg_address): Add address_reloaded
	parameter and return true there if the full address has been
	reloaded.
	(find_reloads_toplev): Pass address_reloaded flag.
	(find_reloads_address_1): Don't use address_reloaded parameter.

2011-03-24  Jeff Law  <law@redhat.com>

	* tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
	unused variable "ann".
	(remove_unused_locals): Likewise.

	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
	statement.

	* cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
	after it is freed.

2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
	for invalid symbolic addresses.
	(s390_secondary_reload): Don't use s390_check_symref_alignment for
	larl operands.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_ternary_loc): Preserve the location (if any) of
	the argument in calls to fold_truth_not_expr.

2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (record_node_allocation_statistics): New function.
	(make_node_stat, copy_node_stat, build_string): Call it.
	(make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
	(build1_stat, build_omp_clause): Likewise.

2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>

	* builtins.c (expand_movstr): Fix endp == 1 adjustment after
	last commit.

2011-03-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48271
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
	blocks that still exist.

2011-03-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48270
	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
	not free datarefs before ddrs.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (build_ref_for_offset): Strip useless type conversions
	from the address built for a reference with variable offset.

2011-03-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/48237
	* config/i386/i386.md (*movdf_internal_rex64): Do not split
	alternatives that can be handled with movq or movabsq insn.
	(*movdf_internal): Disable for !TARGET_64BIT.
	(*movdf_internal_nointeger): Ditto.
	* config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.

2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>

	* system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
	(FUNCTION_ARG_ADVANCE): Likewise.
	* tm.texi.in: Change references to them to hook references.
	* tm.texi: Regenerate.
	* targhooks.c (default_function_arg): Eliminate check for target macro.
	(default_function_incoming_arg): Likewise.
	(default_function_arg_advance): Likewise.
	* target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
	(function_arg_advance): Likewise.
	* target-def.h: Eliminate FUNCTION_INCOMING_ARG check.

2011-03-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48269
	* tree-object-size.c (addr_object_size): Do not double-account
	for MEM_REF offsets.

2011-03-24  Diego Novillo  <dnovillo@google.com>

	* lto-opts.c (input_data_block): Move to lto-streamer-in.c.
	* lto-streamer-in.c (input_string_internal): Add clarifying comments.
	(lto_input_data_block): Move from lto-opts.c.  Make extern.
	Update all users.
	(lto_input_string): Rename from input_string.  Make extern.
	Update all users.
	* lto-streamer-out.c (lto_output_string_with_length): Rename from
	output_string_with_length.
	Output 0 to indicate a non-NULL string.  Update all callers to
	not emit 0.
	(lto_output_string): Rename from output_string.  Make extern.
	Update all users.
	(lto_output_decl_state_streams): Make extern.
	(lto_output_decl_state_refs): Make extern.
	* lto-streamer.h (lto_input_string): Declare.
	(lto_input_data_block): Declare.
	(lto_output_string): Declare.
	(lto_output_string_with_length): Declare.
	(lto_output_decl_state_streams): Declare.
	(lto_output_decl_state_refs): Declare.

2011-03-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46562
	* tree.c (build_invariant_address): New function.
	* tree.h (build_invariant_address): Declare.
	* tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
	a renamed function moved ...
	* tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
	Take valueization callback parameter.
	* tree-flow.h (gimple_fold_stmt_to_constant): Declare.
	* gimple-fold.h: New file.
	* tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
	(ccp_fold, fold_const_aggregate_ref,
	fold_ctor_reference, fold_nonarray_ctor_reference,
	fold_array_ctor_reference, fold_string_cst_ctor_reference,
	get_base_constructor): Move ...
	* gimple-fold.c: ... here.
	(gimple_fold_stmt_to_constant_1): New function
	split out from ccp_fold.  Take a valueization callback parameter.
	Valueize all operands.
	(gimple_fold_stmt_to_constant): New wrapper function.
	(fold_const_aggregate_ref_1): New function split out from
	fold_const_aggregate_ref.  Take a valueization callback parameter.
	(fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
	* tree-ssa-sccvn.c (simplify_binary_expression): Simplify
	invariant POINTER_PLUS_EXPRs to invariant form.
	(vn_valueize): New function.
	(try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
	* tree-vrp.c (vrp_valueize): New function.
	(vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
	to fold statements to constants.
	* tree-ssa-pre.c (eliminate): Properly guard propagation of
	function declarations.
	* Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
	tree-ssa-ccp.o): Add gimple-fold.h dependencies.

2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>

	* config/h8300/predicates.md (jump_address_operand): Fix register
	mode check.

2011-03-24  Ira Rosen  <ira.rosen@linaro.org>

	* doc/invoke.texi (max-stores-to-sink): Document.
	* params.h (MAX_STORES_TO_SINK): Define.
	* opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
	if either vectorization or if-conversion is disabled.
	* tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
	tree-vect-data-refs.c vect_equal_offsets.
	(dr_equal_offsets_p): New function.
	(find_data_references_in_bb): Remove static.
	* tree-data-ref.h (find_data_references_in_bb): Declare.
	(dr_equal_offsets_p): Likewise.
	* tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
	(vect_drs_dependent_in_basic_block): Update calls to
	vect_equal_offsets.
	(vect_check_interleaving): Likewise.
	* tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
	(cond_if_else_store_replacement): Rename to...
	(cond_if_else_store_replacement_1): ... this.  Change arguments and
	documentation.
	(cond_if_else_store_replacement): New function.
	* Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
	* params.def (PARAM_MAX_STORES_TO_SINK): Define.

2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>

	PR target/46934
	* config/arm/arm.md (casesi): Use the gen_int_mode() function
	to subtract lower bound instead of GEN_INT().

2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR other/48179
	PR other/48221
	PR other/48234
	* doc/extend.texi (Alignment): Move section to match order in TOC.
	* doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
	(Warning Options): Adjust -Wno-cpp summary and remove stray backslash.

2011-03-23  Jeff Law  <law@redhat.com>

	* cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
	before removing the edge.

	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
	it may have been freed by redirect_branch_edge or
	redirect_edge_succ_nodup.

2011-03-23  Richard Guenther  <rguenther@suse.de>

	* tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
	(check_va_list_escapes): Likewise.
	(check_all_va_list_escapes): Likewise.

2011-03-23  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
	(OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
	(tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
	(alias.o): Likewise.
	(ipa-type-escape.o): Remove.
	(ipa-struct-reorg.o): Likewise.
	(GTFILES): Remove ipa-struct-reorg.c.
	* alias.c: Do not include ipa-type-escape.h.
	* tree-ssa-alias.c: Likewise.
	* common.opt (fipa-struct-reorg): Preserve for backward compatibility.
	* opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
	* passes.c (init_optimization_passes): Remove ipa-struct-reorg
	and ipa-type-escape passes.
	* tree-pass.h (pass_ipa_type_escape): Remove.
	(pass_ipa_struct_reorg): Likewise.
	* ipa-struct-reorg.h: Remove.
	* ipa-struct-reorg.c: Likewise.
	* ipa-type-escape.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* doc/invoke.texi (-fipa-struct-reorg): Remove.
	(--param struct-reorg-cold-struct-ratio): Likewise.
	* params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
	* params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
	* timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.

2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/2084.md: Enable all insn reservations also for z9_ec
	cpu attribute value.
	* config/s390/s390-opts.h (enum s390_arch_option): Remove.
	(enum processor_type): Add PROCESSOR_2094_Z9_EC.
	* config/s390/s390.c (processor_flags_table): New constant array.
	(s390_handle_arch_option): Remove.
	(s390_handle_option): Remove s390_handle_arch_option invocations
	and OPT_mwarn_framesize_ handling.
	(s390_option_override): Remove s390_handle_arch_option invocation.
	(s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
	warnings.
	* config/s390/s390.md (cpu attribute): Add z9_ec value.
	* config/s390/s390.opt (s390_tune, s390_arch)
	(march=): Replace s390_arch_option enum and values with
	processor_type.  Set variable name to s390_arch.  Set
	initialization value.
	(mtune=): Replace s390_arch_option with processor_type.  Set
	variable name to s390_tune.  Set initialization value.

2011-03-23  Julian Brown  <julian@codesourcery.com>

	* expr.c (expand_expr_real_1): Only use BLKmode for volatile
	accesses which are not naturally aligned.

2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>

	PR target/47553
	* config/arm/predicates.md (neon_lane_number): Accept 0..15.

2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>

	* optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
	parameter from "int" to "enum insn_code".
	(expand_operand_type): New enum.
	(expand_operand): New structure.
	(create_expand_operand): New function.
	(create_fixed_operand, create_output_operand): Likewise
	(create_input_operand, create_convert_operand_to): Likewise.
	(create_convert_operand_from, create_address_operand): Likewise.
	(create_integer_operand): Likewise.
	(create_convert_operand_from_type, maybe_legitimize_operands): Declare.
	(maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
	(expand_insn, expand_jump_insn): Likewise.
	* builtins.c (expand_builtin_prefetch): Use the new interfaces.
	(expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
	(expand_movstr, expand_builtin___clear_cache): Likewise.
	(expand_builtin_lock_release): Likewise.
	* explow.c (allocate_dynamic_stack_space): Likewise.
	(probe_stack_range): Likewise.  Allow check_stack to FAIL,
	and use the default handling in that case.
	* expmed.c (check_predicate_volatile_ok): Delete.
	(store_bit_field_1, extract_bit_field_1): Use the new interfaces.
	(emit_cstore): Likewise.
	* expr.c (emit_block_move_via_movmem): Likewise.
	(set_storage_via_setmem, expand_assignment): Likewise.
	(emit_storent_insn, try_casesi): Likewise.
	(emit_single_push_insn): Likewise.  Allow the expansion to fail.
	* optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
	(expand_vec_shift_expr, expand_binop_directly): Likewise.
	(expand_twoval_unop, expand_twoval_binop): Likewise.
	(expand_unop_direct, emit_indirect_jump): Likewise.
	(emit_conditional_move, vector_compare_rtx): Likewise.
	(expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
	(expand_sync_operation, expand_sync_fetch_operation): Likewise.
	(expand_sync_lock_test_and_set): Likewise.
	(maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
	(emit_unop_insn): Likewise.
	(expand_copysign_absneg): Change icode to an insn_code.
	(create_convert_operand_from_type): New function.
	(maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
	(maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
	(expand_insn, expand_jump_insn): Likewise.
	* config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
	than const_int_operand for operand 2.

2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
	if possible.

2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>

	* emit-rtl.c (emit_pattern_before_noloc): New function.
	(emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
	(emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
	(emit_pattern_after_noloc): New function.
	(emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
	(emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.

2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>

	* libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
	(__ffsDI2): Likewise.

2011-03-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
	of !TARGET_ABI_OPEN_VMS.
	(alpha_trampoline_init, alpha_start_function): Likewise.
	(alpha_expand_epilogue, alpha_file_start): Likewise.
	* config/alpha/alpha.md (divsi3, modsi3): Likewise.
	(udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
	(*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
	(*divmodsi_internal, *divmoddi_internal_er): Likewise.
	(*divmoddi_internal_er_1, *divmoddi_internal): Likewise.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/s390/s390-opts.h: New.
	* config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
	s390_arch_flags, s390_warn_framesize, s390_stack_size,
	s390_stack_guard): Remove.
	(s390_handle_arch_option): Return void.  Take enum
	s390_arch_option value instead of string and searching array.
	(s390_handle_option): Don't assert that global structures are in
	use.  Access variables via opts pointer.  Use error_at.  Don't use
	sscanf for -mstack-guard= or -mstack-size=.  Update call to
	s390_handle_arch_option.
	(s390_option_override): Update call to s390_handle_arch_option.
	(s390_emit_prologue): Use %d format for s390_stack_size in
	diagnostic.  Use %wd for HOST_WIDE_INT.
	* config/s390/s390.h (enum processor_type): Move to s390-opts.h.
	(s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
	* config/s390/s390.opt (config/s390/s390-opts.h): New
	HeaderInclude entry.
	(s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
	s390_arch_flags, s390_warn_framesize): New Variable entries.
	(s390_arch_option): New Enum and EnumValue entries.
	(march=): Use Enum instead of Var.
	(mstack-guard=, mstack-size=): Use UInteger and Var.
	(mtune=): Use Enum.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/score/score.c (score_handle_option): Don't assert that
	global structures are in use.  Access target_flags via opts
	pointer.  Use value of -march= option to determine target_flags
	settings.
	* config/score/score.opt (march=): Use Enum.
	(score_arch): New Enum and EnumValue entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/mep/mep.c (option_mtiny_specified): Remove.
	(mep_option_override): Move register handling for -mivc2 from
	mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
	instead of option_mtiny_specified.
	(mep_handle_option): Access target_flags via opts pointer.  Don't
	assert that global structures are in use.  Defer part of -mivc2
	handling and move it to mep_option_override.
	* config/mep/mep.opt (IVC2): New Mask entry.
	(mivc2): Use Var and Defer instead of Mask.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/v850/v850-opts.h: New.
	* config/v850/v850.c (small_memory): Replace with
	small_memory_physical_max array.  Make that array static const.
	(v850_handle_memory_option): Take integer value of argument.  Take
	gcc_options pointer, option text and location.  Return void.
	Update for changes to small memory structures.
	(v850_handle_option): Access target_flags via opts pointer.  Don't
	assert that global structures are in use.  Update calls to
	v850_handle_memory_option.
	(v850_encode_data_area): Update references to small memory settings.
	* config/v850/v850.h (struct small_memory_info, small_memory): Remove.
	(enum small_memory_type): Move to v850-opts.h.
	* config/v850/v850.opt (config/v850/v850-opts.h): New
	HeaderInclude entry.
	(small_memory_max): New Variable entry.
	(msda): Replace by pair of options msda= and msda-.  Use UInteger.
	(mtda, mzda): Likewise.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/sh/sh.c (sh_handle_option): Access target_flags via opts
	pointer.  Don't assert that global structures are in use.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
	via opts pointer.  Don't assert that global structures are in use.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
	(munix=93): Use Var.
	* config/pa/pa-hpux1010.opt (munix=95): Use Var.
	* config/pa/pa-hpux1111.opt (munix=98): Use Var.
	* config/pa/pa-opts.h: New.
	* config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
	(pa_handle_option): Don't assert that global structures are in
	use.  Access target_flags via opts pointer.  Don't handle
	OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
	OPT_munix_98 here.
	(pa_option_override): Handle deferred OPT_mfixed_range_.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/mn10300/mn10300-opts.h: New.
	* config/mn10300/mn10300.c (mn10300_processor,
	mn10300_tune_string): Remove.
	(mn10300_handle_option): Don't assert that global structures are
	in use.  Access mn10300_processor via opts pointer.  Don't handle
	OPT_mtune_ here.
	* config/mn10300/mn10300.h (enum processor_type): Move to
	mn10300-opts.h.
	(mn10300_processor): Remove.
	* config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
	HeaderInclude entry.
	(mn10300_processor): New Variable entry.
	(mtune=): Use Var.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/microblaze/microblaze.c: Don't include opts.h.
	(microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
	* config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
	(mno-clearbss): Use Var and Warn.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/m32r/m32r-opts.h: New.
	* config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
	(m32r_handle_option): Don't assert that global structures are in
	use.  Access target_flags and m32r_cache_flush_func via opts
	pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
	OPT_mno_flush_trap here.
	* config/m32r/m32r.h (Code Models, Small Data Area): Replace by
	include of m32r-opts.h.
	* config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
	HeaderInclude entry.
	(m32r_model_selected, m32r_sdata_selected): New Variable entries.
	(mmodel=): Use Enum and Var.
	(m32r_model): New Enum and EnumValue entries.
	(mno-flush-trap): Use Var.
	(msdata=): Use Enum and Var.
	(m32r_sdata): New Enum and EnumValue entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/m32c/m32c.c: Don't include opts.h.
	(target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
	m32c_handle_option): Remove.
	(m32c_option_override): Check global_options_set.x_target_memregs
	instead of target_memregs_set.
	* config/m32c/m32c.h (target_memregs): Remove.
	* config/m32c/m32c.opt (memregs=): Use UInteger with integer
	variable.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/iq2000/iq2000-opts.h: New.
	* config/iq2000/iq2000.c: Don't include opts.h.
	(iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
	* config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
	* config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
	HeaderInclude entry.
	(iq2000_tune): New Variable entry.
	(march=): Add comment.  Use Enum.
	(iq2000_arch): New Enum and EnumValue entries.
	(mcpu=): Use Enum and Var.
	(iq2000_tune): New Enum and EnumValue entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/ia64/ia64-opts.h: New.
	* config/ia64/ia64.c (ia64_tune): Remove.
	(ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
	here.  Use error_at.
	(ia64_option_override): Handle deferred OPT_mfixed_range_.
	* config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
	* config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
	HeaderInclude entry.
	(ia64_tune): New Variable entry.
	(mfixed-range=): Use Defer and Var.
	(mtune=): Use Enum and Var.
	(ia64_tune): New Enum and EnumValue entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/frv/frv-opts.h: New.
	* config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
	frv-opts.h.
	(frv_cpu_type): Remove.
	* config/frv/frv.c: Don't include opts.h.
	(frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
	* config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
	(frv_cpu_type): New Variable entry.
	(frv_cpu): New Enum and EnumValue entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/cris/cris.c (cris_handle_option): Access target_flags via
	opts pointer.  Don't assert that global structures are in use.
	Don't call CRIS_SUBTARGET_HANDLE_OPTION.
	* config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin-opts.h: New.
	* config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
	bfin_si_revision, bfin_workarounds): Remove.
	(bfin_cpus): Make static const.
	(bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
	not bfin_lib_id_given.
	(bfin_handle_option): Don't set bfin_lib_id_given.  Access
	bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
	pointer. Use error_at.  Don't assert that global structures are in use.
	* config/bfin/bfin.h: Include bfin-opts.h.
	(enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
	(bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
	* bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
	(bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
	entries.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
	* config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
	or -msoft-float here.
	* config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
	-msoft-float and -mhard-float.
	(OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
	* config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
	msoft-float.
	* config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
	-msoft-float.
	(MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
	* config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
	not mhard-float.
	(LIBGCC_SPEC): Don't handle -msoft-float.
	* config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
	-mhard-float.
	* config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
	msoft-float.
	* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
	-mfloat-abi=*, not -msoft-float and -mhard-float.
	* config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
	-msoft-float.
	* config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
	Use mfloat-abi=hard and mfloat-abi=soft in comments, not
	mhard-float and msoft-float.
	* config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
	mfloat-abi=soft in comments, not mhard-float and msoft-float.
	* config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
	mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
	mhard-float.
	* config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
	mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
	msoft-float.
	* config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
	not mhard-float.
	* config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
	not msoft-float.

2011-03-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_expand_prologue): Don't test
	TARGET_ABI_WINDOWS_NT.
	(alpha_output_function_end_prologue): Likewise.
	* config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/alpha/alpha.md (call, call_value, tablejump): Likewise.
	(trap, *movsi_nt_vms): Likewise.
	(call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
	(*tablejump_osf_nt_internal): Remove.
	* config/alpha/predicates.md (input_operand): Only test Pmode.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/alpha.c (alpha_handle_option): Access target_flags
	via opts pointer.  Use error_at.  Don't assert that global
	structures are in use.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (ix86_isa_flags_explicit): Remove.
	(ix86_handle_option): Access ix86_isa_flags and
	ix86_isa_flags_explicit via opts pointer.  Don't assert that
	global structures are in use.
	(ix86_function_specific_save, ix86_function_specific_restore):
	Update ix86_isa_flags_explicit field name.
	* config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
	(ix86_isa_flags_explicit): Rename TargetSave entry to
	x_ix86_isa_flags_explicit.

2011-03-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
	(alpha_option_override, direct_return): Likewise.
	(alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
	(alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
	(alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
	(alpha_start_function, alpha_output_function_end_prologue): Likewise.
	(alpha_expand_epilogue, alpha_end_function): Likewise.
	(alpha_init_libfuncs): Likewise.
	(struct machine_function): Remove unicosmk members.
	(print_operand) ['t']: Remove.
	(unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
	unicosmk_output_module_name, unicosmk_output_common,
	current_section_align, unicosmk_output_text_section_asm_op,
	unicosmk_output_data_section_asm_op, unicosmk_init_sections,
	unicosmk_section_type_flags, unicosmk_unique_section,
	unicosmk_asm_named_section, unicosmk_insert_attributes,
	unicosmk_output_align, unicosmk_defer_case_vector,
	unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
	SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
	unicosmk_output_ssib, unicosmk_add_call_info_word,
	unicosmk_extern_head, unicosmk_output_default_externs,
	unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
	unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
	unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
	* config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
	(UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
	(mulsi3): Don't test TARGET_ABI_UNICOSMK.
	(*mulsi_se, mulvsi3): Likewise.
	(divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
	(*divmodsi_internal, call, call_value, realign): Likewise.
	(moddi3, umoddi3): Likewise; remove duplicate expander.
	(moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
	(*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
	(*movdi_nofix): Remove r/U alternative.
	(umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
	* config/alpha/constraints.md ("U"): Remove.
	* config/alpha/predicates.md (call_operand"): Don't test
	TARGET_ABI_UNICOSMK.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* target.def (handle_option): Take gcc_options and
	cl_decoded_option pointers and location_t.
	* doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
	* doc/tm.texi: Regenerate.
	* hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
	* hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
	* lto-opts.c (lto_reissue_options): Generate option structure for
	targetm.handle_option call.
	* opts.c (target_handle_option): Update call to
	targetm.handle_option.  Remove assertions about values now passed
	down to hook.
	* targhooks.c (default_target_handle_option): New.
	* targhooks.h (default_target_handle_option): Declare.
	* config/alpha/alpha.c: Include opts.h.
	(alpha_handle_option): Update to new hook interface.
	* config/arm/arm.c: Include opts.h.
	(arm_handle_option): Update to new hook interface.
	* config/arm/t-arm (arm.o): Update dependencies.
	* config/bfin/bfin.c: Include opts.h.
	(bfin_handle_option): Update to new hook interface.
	* config/cris/cris.c: Include opts.h.
	(cris_handle_option): Update to new hook interface.
	* config/frv/frv.c: Include opts.h.
	(frv_handle_option): Update to new hook interface.
	* config/i386/i386.c: Include opts.h.
	(ix86_handle_option): Update to new hook interface.
	(ix86_valid_target_attribute_inner_p): Generate option structure
	for call to ix86_handle_option.
	* config/i386/t-i386 (i386.o): Update dependencies.
	* config/ia64/ia64.c: Include opts.h.
	(ia64_handle_option): Update to new hook interface.
	* config/ia64/t-ia64 (ia64.o): Update dependencies.
	* config/iq2000/iq2000.c: Include opts.h.
	(iq2000_handle_option): Update to new hook interface.
	* config/m32c/m32c.c: Include opts.h.
	(m32c_handle_option): Update to new hook interface.
	* config/m32r/m32r.c: Include opts.h.
	(m32r_handle_option): Update to new hook interface.
	* config/m68k/m68k.c: Include opts.h.
	(m68k_handle_option): Update to new hook interface.
	* config/mep/mep.c: Include opts.h.
	(mep_handle_option): Update to new hook interface.
	* config/microblaze/microblaze.c: Include opts.h.
	(microblaze_handle_option): Update to new hook interface.
	* config/mips/mips.c: Include opts.h.
	(mips_handle_option): Update to new hook interface.
	* config/mn10300/mn10300.c: Include opts.h.
	(mn10300_handle_option): Update to new hook interface.
	* config/pa/pa.c: Include opts.h.
	(pa_handle_option): Update to new hook interface.
	* config/pdp11/pdp11.c: Include opts.h.
	(pdp11_handle_option): Update to new hook interface.
	* config/rs6000/rs6000.c: Include opts.h.
	(rs6000_handle_option): Update to new hook interface.
	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
	* config/rx/rx.c: Include opts.h.
	(rx_handle_option): Update to new hook interface.
	* config/s390/s390.c: Include opts.h.
	(s390_handle_option): Update to new hook interface.
	* config/score/score.c: Include opts.h.
	(score_handle_option): Update to new hook interface.
	* config/sh/sh.c: Include opts.h.
	(sh_handle_option): Update to new hook interface.
	* config/sparc/sparc.c: Include opts.h.
	(sparc_handle_option): Update to new hook interface.
	* config/v850/v850.c: Include opts.h.
	(v850_handle_option): Update to new hook interface.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (driver_unknown_option_callback): Only permit and save
	unknown -Wno- options.
	(driver_wrong_lang_callback): Save options directly instead of via
	driver_unknown_option_callback.

2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c (simplify_set): Try harder to find the best CC mode when
	simplifying a nested COMPARE on the RHS.

2011-03-22  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/gnu.h: Remove.
	* config/arc: Remove directory.
	* config/arm/netbsd.h: Remove.
	* config/arm/t-pe: Remove.
	* config/crx: Remove directory.
	* config/i386/netbsd.h: Remove.
	* config/m68hc11: Remove directory.
	* config/m68k/uclinux-oldabi.h: Remove.
	* config/mcore/mcore-pe.h: Remove.
	* config/mcore/t-mcore-pe: Remove.
	* config/netbsd-aout.h: Remove.
	* config/rs6000/gnu.h: Remove.
	* config/sh/sh-symbian.h: Remove.
	* config/sh/symbian-base.c: Remove.
	* config/sh/symbian-c.c: Remove.
	* config/sh/symbian-cxx.c: Remove.
	* config/sh/symbian-post.h: Remove.
	* config/sh/symbian-pre.h: Remove.
	* config/sh/t-symbian: Remove.
	* config/svr3.h: Remove.
	* config/vax/netbsd.h: Remove.
	* config.build: Don't handle i[34567]86-*-pe.
	* config.gcc: Remove handling of deprecations for most deprecated
	targets.
	(m68k-*-uclinuxoldabi*): Add to second deprecated list.
	(alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
	i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
	m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
	powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
	sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
	Remove cases.
	* config.host: Don't handle i[34567]86-*-pe.
	* config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
	(ASM_SPEC32): Don't handle -mcall-gnu.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
	-mcall-gnu.
	(ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
	STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
	(LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
	LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
	(SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
	* config/sh/sh-protos.h, config/sh/sh.c: Remove all code
	conditional on SYMBIAN.
	* configure.ac: Don't handle powerpc*-*-gnu*.
	* configure: Regenerate.
	* doc/extend.texi (interrupt attribute): Don't mention CRX.
	* doc/install-old.texi (m6811, m6812): Don't mention.
	* doc/install.texi (arc-*-elf*): Don't document multilib option.
	(arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
	(m68k-uclinuxoldabi): Don't mention.
	* doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
	Remove.
	(-mcall-gnu): Remove.
	* doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
	families): Remove constraint documentation.

2011-03-22  Marius Strobl  <marius@FreeBSD.org>

	* config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
	(FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
	(TARGET_GNU_TLS, TARGET_SUN_TLS): Define.

2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48226
	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
	vector when peeking at the next token for vector, don't expand the
	keywords.

2011-03-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (expand_epilogue): Change prototype
	* config/avr/avr.h (struct machine_function): Add field sibcall_fails.
	* config/avr/avr.c (init_cumulative_args)
	(avr_function_arg_advance): Use it.
	* config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
	sibcall epilogues.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
	(avr_function_ok_for_sibcall): ...this new function.
	(avr_lookup_function_attribute1): New static Function.
	(avr_naked_function_p, interrupt_function_p)
	(signal_function_p, avr_OS_task_function_p)
	(avr_OS_main_function_p): Use it.
	* config/avr/avr.md ("sibcall", "sibcall_value")
	("sibcall_epilogue"): New expander.
	("*call_insn", "*call_value_insn"): New insn.
	("call_insn", "call_value_insn"): Remove
	("call", "call_value", "epilogue"): Change expander to handle
	sibling calls.

2011-03-21  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (Overall Options): Move closing brace to end of
	options list.
	(Optimization Options): Add missing @gol.
	(Directory Options): Likewise.
	(i386 and x86-64 Options): Likewise.
	(RS6000 and PowerPC Options): Likewise.
	(i386 and x86-64 Windows Options): Likewise.
	(V850 Options): Add text missing from descriptions.

2011-03-22  Richard Henderson  <rth@redhat.com>

	* config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
	(avr_incoming_return_addr_rtx): New.
	(emit_push_byte): New.
	(expand_prologue): Use it.  Remove incorrect dwarf annotation for
	SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
	annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
	(emit_pop_byte): New.
	(expand_epilogue): Use it.  Pop frame pointer by bytes.
	* config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
	(INCOMING_RETURN_ADDR_RTX): New.
	(INCOMING_FRAME_SP_OFFSET): New.
	(ARG_POINTER_CFA_OFFSET): New.
	* config/avr/avr.md (*pushqi): Fix mode of auto-inc.
	(*pushhi, *pushsi, *pushsf, popqi): Likewise.
	(pophi): Remove.

	* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.

2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>

	* system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
	(FUNCTION_ARG_ADVANCE): Likewise.
	* tm.texi.in: Change references to them to hook references.
	* tm.texi: Regenerate.
	* targhooks.c (default_function_arg): Eliminate check for target
	macro.
	(default_function_incoming_arg): Likewise.
	(default_function_arg_advance): Likewise.
	* target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
	(function_arg_advance): Likewise.
	* target-def.h: Eliminate FUNCTION_INCOMING_ARG check.

2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_call_1): New function.
	(build_call_valist, build_call_array_loc, build_call_vec): Call it.

2011-03-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48228
	* tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
	for single-arg PHIs.

2011-03-22  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/48143
	* config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
	(*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
	sse2_cvtps2pd): Likewise.

2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* recog.c (canonicalize_change_group): Use validate_unshare_change.

2011-03-22  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
	a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
	* tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
	and REALIGN_LOAD_EXPR.
	(verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
	DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
	* expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
	DOT_PROD_EXPR case ...
	(expand_expr_real_2): ... here.
	* gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
	and REALIGN_LOAD_EXPR.
	* tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
	* tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
	(vect_create_epilog_for_reduction): Likewise.
	(vectorizable_reduction): Likewise.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
	* tree-vect-stmts.c (vectorizable_load): Likewise.

2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.

2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_delegitimize_address): Fix offset
	handling for PLTOFF/GOTOFF.

2011-03-22  Nick Clifton  <nickc@redhat.com>

	* config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
	trailing backslash from the end of the macro definition.

2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
	and PLT unspecs.

2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>

	* expr.h (prepare_operand): Move to...
	* optabs.h (prepare_operand): ...here and change the insn code
	parameter from "int" to "enum insn_code".
	(insn_operand_matches): Declare.
	* expr.c (init_expr_target): Use insn_operand_matches.
	(compress_float_constant): Likewise.
	* function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
	* optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
	(emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
	(have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
	Likewise.
	(gen_cond_trap): Likewise.
	(prepare_operand): Likewise.  Change icode to an insn_code.
	(insn_operand_matches): New function.
	* reload.c (find_reloads_address_1): Use insn_operand_matches.
	* reload1.c (gen_reload): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.

2011-03-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (unspec): New define_c_enum.
	(unspecv): Ditto.

2011-03-21  Uros Bizjak  <ubizjak@gmail.com>

	PR debug/48214
	* config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
	between a call and its CALL_ARG_LOCATION note.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.

2011-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/42544
	PR c/48197
	* c-common.c (shorten_compare): If primopN is first sign-extended
	to opN and then zero-extended to result type, set primopN to opN.

2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
	for barrier handlers.

2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
	UNSPEC constants to be in the unspec enumeration, and redefine
	all UNSPECV constants to be in the unspecv enumeration, so that
	dumps print which unspec/unspec_volatile this is.
	* config/rs6000/vector.md (UNSPEC_*): Ditto.
	* config/rs6000/paired.md (UNSPEC_*): Ditto.
	* config/rs6000/vsx.md (UNSPEC_*): Ditto.
	* config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
	* config/rs6000/dfp.md (UNSPEC_*): Ditto.

	* config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
	UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
	UNSPECV_LWSYNC, since these are used as unspec_volatile.
	* config/rs6000/sync.md (isync, lwsync): Ditto.

2011-03-21  Richard Guenther  <rguenther@suse.de>

	* params.def (lto-min-partition): Fix typo.

2011-03-21  Richard Guenther  <rguenther@suse.de>

	PR c/47939
	* c-decl.c (grokdeclarator): Drop to the main variant only
	for array types.  Drop flag_gen_aux_info check.

2011-03-21  Richard Guenther  <rguenther@suse.de>

	PR translation/47911
	* params.def (lto-partitions): Fix typo.
	(lto-min-partition): Fix wording.

2011-03-21  Andreas Tobler  <andreast@fgznet.ch>

	* config/rs6000/t-freebsd: Remove duplication from file.

2011-03-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47661
	* gimple.c (is_gimple_condexpr): Use tree_could_throw_p.

2011-03-21  Richard Guenther  <rguenther@suse.de>

	PR lto/48210
	* params.def (lto-partitions): Require at least 1 partition.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gthr-solaris.h: Remove.
	* gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
	* config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
	(LIB_SPEC): Likewise.
	* config/sol2.opt (threads): Remove.
	* config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
	(sparc*-*-solaris2*): Likewise.
	* configure.ac (enable_threads): Enable solaris support.
	* configure: Regenerate.
	* doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
	* doc/install.texi (Configuration, --enable-threads=lib): Remove
	solaris.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Obsolete *-*-solaris2.8*.
	* doc/install.texi (Specific, *-*-solaris2*): Document it.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48135
	* doc/install.texi (Prerequisites, Perl): Remove Glob.pm
	reference.  Solaris 8 perl works.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48135
	* doc/install.texi (Prerequisites): Move jar etc. up.
	Explain support library version requirements.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48135
	* doc/install.texi (Prerequisites): Move Perl to build
	requirements.  Always necessary on Solaris 2 with Sun ld.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
	binutils 2.21.
	(Specific, i?86-*-solaris2.[89]): Likewise.
	(Specific, i?86-*-solaris2.10): Likewise.
	(Specific, mips-sgi-irix6): Likewise.
	(Specific, *-*-solaris2*): Remove Sun Studio download URL.
	Update for binutils 2.21.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_lto_plugin): Fix typo.
	Allow -fuse-linker-plugin for non-default plugin linker.
	* configure: Regenerate.

2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR bootstrap/48167
	* gengtype.c (files_rules): Added rule for cp/parser.h.

2011-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/48213
	* config/s390/s390.c (s390_delegitimize_address): Don't call
	lowpart_subreg if orig_x has BLKmode.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* doc/plugins.texi: Adjust documentation for plugin register_callback.
	* tree.h (attribute_spec): Add new member affects_type_identity.
	* attribs.c (empty_attribute_table): Adjust attribute_spec
	initializers.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/crx/crx.c: Likewise.
	* config/darwin.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/cygming.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68hc11/m68hc11.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sol2.h: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.

2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>

	* simplify-rtx.c (simplify_binary_operation_1): Handle
	(xor (and A B) C) case when B and C are both constants.

2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>

	* tree-dfa.c (add_referenced_var): Fix typo in comment.

2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/48168
	* config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.

2011-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/48156
	* df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
	assume df and df_lr are not NULL.

2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR debug/48023
	* config/arm/arm.c (create_fix_barrier): Do not emit a minipool
	between a call and its CALL_ARG_LOCATION note.

2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR debug/48178
	* config/sh/sh.c (find_barrier): Don't emit a constant pool
	between a call and its corresponding CALL_ARG_LOCATION note.

2011-03-19  Anatoly Sokolov  <aesok@post.ru>

	* cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
	instead of loop. Use HARD_REGISTER_NUM_P predicate.
	* haifa-sched.c (setup_ref_regs): Ditto.
	* caller-save.c (add_used_regs_1): Ditto.
	* dse.c (look_for_hardregs): Ditto.
	* df-problems.c (df_simulate_one_insn_forwards): Ditto.
	* sched-rgn.c (check_live_1): Ditto.

2011-03-18  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (diagnose_mismatched_decls): Give an error for
	redefining a typedef with variably modified type.

2011-03-18  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (grokfield): Don't allow typedefs for structures or
	unions with no tag by default.
	* doc/extend.texi (Unnamed Fields): Update.

2011-03-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
	Rewrite using indirect functions.
	(lwp_slwpcb): Ditto.
	* config/i386/sse.md (avx_vextractf128<mode>): Ditto.
	(avx_vinsertf128<mode>): Ditto.

2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
	unspecs.

2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_chunkify_start): Prevent literal pool
	splitting between a call and its corresponding CALL_ARG_LOCATION note.

2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/48170
	* gcse.c (hoist_code): Remove bogus asserts.

2011-03-18  Georg-Johann Lay  <avr@gjlay.de>

	* ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
	computation for	prologue/epilogue.

2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (check-consistency): Remove.

2011-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48176
	* dwarf2out.c (dwarf2out_finish): Call output_aranges even when
	arange_table_in_use is 0, but either text_section_used or
	cold_text_section_used is true.  Don't call it if
	!info_section_emitted.

2011-03-18  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove.
	* config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
	Remove.
	* config/avr/avr.c (avr_ret_register): Make static inline.
	(avr_function_value_regno_p): New function.
	(avr_libcall_value): Make static. Add 'func' argument.
	(avr_function_value): Make static. Rename 'func' argument to
	'fn_decl_or_type', forward it to avr_libcall_value. Call
	avr_ret_register function instead of RET_REGISTER macro.
	(TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.

2011-03-18  Jason Merrill  <jason@redhat.com>

	PR c++/23372
	* gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.

2011-03-18  Richard Guenther  <rguenther@suse.de>

	* doc/install.texi (--enable-gold): Remove.
	(--with-plugin-ld): Document.
	* doc/invoke.texi (-fuse-linker-plugin): Clarify.

2011-03-18  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/47790
	* expr.c (optimize_bitfield_assignment_op): Revamp to work
	again after expansion changes.

2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>

	* combine.c (try_combine): Do simplification only call of
	subst() on i2 even when i1 is present. Update comments.

2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
	and UNSPEC_PCREL_SYMOFF.

2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md: Use define_c_enum for the unspec constant
	definitions.

2011-03-18  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/48161
	* expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
	instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.

2011-03-17  Anatoly Sokolov  <aesok@post.ru>

	* config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
	* config/v850/v850.c (v850_output_addr_const_extra): Make static.
	Change return type to bool.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2011-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48163
	* var-tracking.c (prepare_call_arguments): If CALL target
	is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
	pc instead of looking it up using cselib_lookup and use
	Pmode for it if x has VOIDmode.
	* dwarf2out.c (gen_subprogram_die): If also both first and
	second CONCAT arguments are VOIDmode, use mode of CONCAT itself.

	PR debug/48163
	* function.c (assign_parms): For data.passed_pointer parms
	use MEM of data.entry_parm instead of data.entry_parm itself
	as DECL_INCOMING_RTL.
	* dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
	also when passed and declared mode is the same, DECL_RTL
	is a MEM with pseudo as address and DECL_INCOMING_RTL is
	a MEM too.

2011-03-16  Jeff Law  <law@redhat.com>

	PR rtl-optimization/37273
	* ira-costs.c (scan_one_insn): Detect constants living in memory and
	handle them like argument loads from stack slots.  Do not double
	count memory for memory constants and argument loads from stack slots.

2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/48160
	* var-tracking.c (prepare_call_arguments): Check SUBREG.

2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/48171
	* config/i386/i386.opt: Add Save to -mavx and -mfma.

2011-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/48153
	* dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
	if dwarf_strict.
	(gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
	Clear call_arg_locations and call_arg_loc_last always.

	PR middle-end/48152
	* var-tracking.c (prepare_call_arguments): If argument needs to be
	passed by reference, adjust argtype and mode.

2011-03-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48134
	* tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
	a value make sure to fold the statement.

2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>

	PR target/43872
	* config/arm/arm.c (arm_get_frame_offsets): Adjust early
	return condition with !cfun->calls_alloca.

2011-03-17  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/48148
	* lto-cgraph.c (input_overwrite_node): Clear the abstract
	origin for decls in other ltrans units.
	(input_varpool_node): Likewise.

2011-03-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48165
	* tree-object-size.c (compute_object_offset): Properly return
	the offset operand of MEM_REFs as sizetype.

2011-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/48141
	* params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
	* dse.c: Include params.h.
	(active_local_stores_len): New variable.
	(add_wild_read, dse_step1): Clear it when setting active_local_stores
	to NULL.
	(record_store, check_mem_read_rtx): Decrease it when removing
	from the chain.
	(scan_insn): Likewise.  Increase it when adding to chain, if it
	reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
	set active_local_stores to NULL before the addition.
	* Makefile.in (dse.o): Depend on $(PARAMS_H).

	PR rtl-optimization/48141
	* dse.c (record_store): If no positions are needed in an insn
	that cannot be deleted, at least unchain it from active_local_stores.

2011-03-16  Dodji Seketeli  <dodji@redhat.com>

	PR debug/47510
	* dwarf2out.c (strip_naming_typedef): Factorize out of ...
	(lookup_type_die_strip_naming_typedef): ... here.
	(get_context_die): Use it.
	(gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
	the anonymous struct named by the naming typedef.

2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/48154
	* config/i386/i386.c (ix86_builtin_vectorized_function): Check
	TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.

2011-03-16  Jeff Law  <law@redhat.com>

	* tree-vrp.c (identify_jump_threads): Slightly simplify type
	check for operands of conditional.  Allow type to be a pointer.

2011-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48149
	* fold-const.c (fold_binary_loc): Fold
	COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.

2011-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/26134
	* tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
	complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
	(non_rewritable_mem_ref_base): Handle complex type component
	accesses, constrain offsets for vector and complex extracts
	more properly.

2011-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48146
	* tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
	operands avoiding the need for renaming.

2011-03-16  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (maybe_fold_reference): Open-code relevant
	constant folding.  Move MEM_REF canonicalization first.
	Rely on fold_const_aggregate_ref for initializer folding.
	* tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.

2011-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48136
	* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
	arg0/arg1 or their arguments are always fold converted to matching
	types.

	* var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
	to nargs.

2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR lto/46944
	* configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
	Handle in-tree gold.
	(ld_vers): Extract binutils version for gold.
	(gcc_cv_ld_hidden): Handle gold here.
	(gcc_cv_lto_plugin): Determine level of linker plugin support.
	* configure: Regenerate.
	* config.in: Regenerate.
	* gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
	-fuse-linker-plugin otherwise.
	(LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
	(LINK_COMMAND_SPEC): Use it.
	(main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.

2011-03-16  Jakub Jelinek  <jakub@redhat.com>

	* emit-rtl.c (try_split): Don't call copy_call_info debug hook.
	* calls.c: Remove debug.h include.
	(emit_call_1): Don't call virtual_call_token debug hook.
	* dwarf2out.c (debug_dcall_section, debug_vcall_section,
	dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
	vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
	size_of_dcall_table, output_dcall_table, size_of_vcall_table,
	output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
	vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
	dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
	dwarf2out_virtual_call): Remove.
	(dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
	copy_call_info and virtual_call hooks.
	(dwarf2out_init): Don't initialize vcall_insn_table,
	debug_dcall_section and debug_vcall_section.
	(prune_unused_types): Don't mark nodes from dcall_table.
	(dwarf2out_finish): Don't output dcall or vcall tables.
	* final.c (final_scan_insn): Don't call direct_call or
	virtual_call debug hooks.
	* debug.h (struct gcc_debug_hooks): Remove direct_call,
	virtual_call_token, copy_call_info and virtual_call hooks.
	(debug_nothing_uid): Remove prototype.
	* sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
	copy_call_info and virtual_call hooks.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
	* debug.c (do_nothing_debug_hooks): Likewise.
	(debug_nothing_uid): Remove.
	* doc/invoke.texi (-fenable-icf-debug): Remove.
	* common.opt (-fenable-icf-debug): Likewise.

	* calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
	* var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
	call's MEM.  Handle functions returning aggregate through a hidden
	first pointer.  For virtual calls add clobbered pc to call arguments
	chain.
	* dwarf2out.c (gen_subprogram_die): Emit
	DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
	can't be emitted.

	PR debug/45882
	* rtl.def (ENTRY_VALUE): Change format from "e" to "0".
	* rtl.h (ENTRY_VALUE_EXP): Define.
	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
	* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* gengtype.c (adjust_field_rtx_def): Likewise.
	* var-tracking.c (vt_add_function_parameter): Adjust
	gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
	* dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
	* cfgexpand.c (expand_debug_expr): If a SSA_NAME without
	partition is a default definition of a PARM_DECL, use ENTRY_VALUE
	of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.

	* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
	Call var_location debug hook even on CALL_INSNs.
	(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
	* rtl.def (ENTRY_VALUE): New.
	* dwarf2out.c: Include cfglayout.h.
	(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
	output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
	(struct call_arg_loc_node): New type.
	(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
	tail_call_site_count): New variables.
	(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
	DW_TAG_GNU_call_site_parameter.
	(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
	DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
	DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
	DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
	and DW_AT_GNU_all_source_call_sites.
	(mem_loc_descriptor): Handle ENTRY_VALUE.
	(add_src_coords_attributes): Don't add enything if
	DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
	(dwarf2out_abstract_function): Save and clear call_arg_location,
	call_site_count and tail_call_site_count around dwarf2out_decl call.
	(gen_call_site_die): New function.
	(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
	(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
	(dwarf2out_function_decl): Clear call_arg_locations,
	call_arg_loc_last, set call_site_count and tail_call_site_count
	to -1 and free block_map.
	(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
	CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
	followed by any real instructions.
	(dwarf2out_begin_function): Set call_site_count and
	tail_call_site_count to 0.
	(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
	is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
	attempt to force a DIE for it and worst case remove the attribute.
	(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
	check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
	the decl itself.
	* var-tracking.c: Include tm_p.h.
	(vt_stack_adjustments): For calls call note_register_arguments.
	(argument_reg_set): New variable.
	(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
	ensure the VALUE is resolved.
	(call_arguments): New variable.
	(prepare_call_arguments): New function.
	(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
	(struct expand_loc_callback_data): Add ignore_cur_loc field.
	(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
	always use the best expression.
	(vt_expand_loc): Add ignore_cur_loc argument.
	(vt_expand_loc_dummy): Clear ignore_cur_loc field.
	(emit_note_insn_var_location): Adjust vt_expand_loc callers.
	(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
	note for all calls.
	(vt_add_function_parameter): Use cselib_lookup_from_insn.
	If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
	argument.  Don't call cselib_preserve_only_values and
	cselib_reset_table.
	(note_register_arguments): New function.
	(vt_initialize): Compute argument_reg_set.  Call
	vt_add_function_parameters before processing basic blocks instead of
	afterwards.  For calls call prepare_call_arguments before calling
	cselib_process_insn.
	* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
	* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
	(var-tracking.o): Depend on $(TM_P_H).
	* cfglayout.h (insn_scope): New prototype.
	* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
	* cfglayout.c (insn_scope): No longer static.
	* insn-notes.def (CALL_ARG_LOCATION): New.
	* calls.c (expand_call, emit_library_call_value_1): Put USEs for
	MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
	* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
	nothing for DECL_EXTERNAL BLOCK_VARS.

2011-03-16  Alan Modra  <amodra@gmail.com>

	PR target/45844
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
	create invalid offset address for vsx splat insn.
	* config/rs6000/predicates.md (splat_input_operand): New.
	* config/rs6000/vsx.md (vsx_splat_*): Use it.

2011-03-15  Xinliang David Li  <davidxl@google.com>

	PR c/47837
	* tree-ssa-uninit.c (pred_chain_length_cmp): New function.
	(normalize_preds): New function.
	(is_use_properly_guarded): Normalize def predicates.

2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/46788
	* config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
	in the output template.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47650
	* tree-pretty-print.c (dump_function_declaration): Properly
	dump unprototyped and varargs function types.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/13954
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
	and friends.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48037
	* tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
	selects into BIT_FIELD_REFs.
	(non_rewritable_mem_ref_base): Check if a MEM_REF is a
	vector select.

2011-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48129
	* builtins.c (fold_builtin_snprintf): Convert to type of
	built_in_decls[BUILT_IN_SNPRINTF] retval instead of
	implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41490
	* tree-ssa-dce.c (propagate_necessity): Handle returns without
	value but with VUSE.
	* tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
	return statements.
	* tree-ssa-sink.c (statement_sink_location): Fix store sinking.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
	* tree-tailcall.c (find_tail_calls): Ignore returns.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48031
	* fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
	or variable-indexed array accesses when in gimple form.

2011-03-15  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.

2011-03-15  Alan Modra  <amodra@gmail.com>

	PR target/48032
	* config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
	presume symbol_refs without a symbol_ref_decl are suitably
	aligned, nor other trees we may see here.  Handle anchor symbols.
	(legitimate_constant_pool_address_p): Comment.  Add mode param.
	Check cmodel=medium addresses.  Adjust all calls.
	(rs6000_emit_move): Don't call offsettable_ok_by_alignment on
	creating cmodel=medium optimized access to locals.
	* config/rs6000/constraints.md (R): Pass QImode to
	legitimate_constant_pool_address_p.
	* config/rs6000/predicates.md (input_operand): Pass mode to
	legitimate_constant_pool_address_p.
	* config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
	Update prototype.

2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48053
	* config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
	64-bit constants being loaded into registers other than GPRs such
	as loading 0 into a VSX register.

2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.

2011-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47917
	* builtins.c (fold_builtin_snprintf): New function.
	(fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
	(fold_builtin_4): Likewise.

	PR middle-end/38878
	* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
	STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
	and C - X == X also strip nops from +/-/p+ operand.
	When optimizing -X == C, fold C to arg0's type.

	PR debug/47946
	* dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
	emit it as add_AT_int instead of add_AT_unsigned.

2011-03-14  Tom Tromey  <tromey@redhat.com>

	* unwind-dw2.c: Include sys/sdt.h if it exists.
	(_Unwind_DebugHook): Use STAP_PROBE2.
	* config.in, configure: Rebuild.
	* configure.ac: Check for sys/sdt.h.

2011-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ROUND_FLOOR): New constant.
	(ROUND_CEIL): Ditto.
	(ROUND_TRUNC): Ditto.
	(ROUND_MXCSR): Ditto.
	(ROUND_NO_EXC): Ditto.
	(rint<mode>2): Use new defines instead of numerical constants.
	(floor<mode>2): Ditto.
	(ceil<mode>2): Ditto.
	(btrunc<mode>2): Ditto.
	* config/i386/i386-builtin-types.def: Define ROUND function type
	aliases.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
	(struct builtin_description): Add
	__builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
	(ix86_expand_sse_round): New static function.
	(ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
	function types.
	(ix86_builtin_vectorized_function): Handle
	BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.

2011-03-14  Tom Tromey  <tromey@redhat.com>

	* c-parser.c (c_parser_asm_string_literal): Clear
	warn_overlength_strings.

2011-03-14  Tom Tromey  <tromey@redhat.com>

	* c-parser.c (disable_extension_diagnostics): Save
	warn_overlength_strings.
	(restore_extension_diagnostics): Restore warn_overlength_strings.

2011-03-14  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Change to 4.7.0.

2011-03-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48098
	* tree.c (build_vector_from_val): Adjust assert to requirements
	and reality.

2011-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/48102
	* graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.

2011-03-14  Andreas Tobler  <andreast@fgznet.ch>

	* config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
	terms of target_flags_explicit. Adjust copyright year.

	* config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
	* config/rs6000/t-freebsd: New file. Add override for
	LIB2FUNCS_EXTRA.

2011-03-13  Chris Demetriou  <cgd@google.com>

	* doc/invoke.texi (-fdiagnostics-show-option): Replace with...
	(-fno-diagnostics-show-option): this, to reflect current default.
	(-Werror=): Update text about -fno-diagnostics-show-option.

2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/48053
	* config/rs6000/predicates.md (easy_vector_constant_add_self,
	easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
	* config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
	mode is not V2DImode or V2DFmode.
	(vspltis_constant): Do not handle V2DImode and V2DFmode.
	(rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
	* config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
	registers to 0.
	(movdi_internal64): Likewise.

2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47127
	* graphite-clast-to-gimple.c (build_cloog_prog): Removed state
	parameter.
	(set_cloog_options): Same.
	(scop_to_clast): Same.
	(print_clast_stmt): Do not call cloog_state_malloc and
	cloog_state_free.
	(print_generated_program): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h (cloog_state): Declared.
	(scop_to_clast): Adjust declaration.
	* graphite.c (cloog_state): Defined here.
	(graphite_initialize): Call cloog_state_malloc.
	(graphite_finalize): Call cloog_state_free.

2011-03-11  Jason Merrill  <jason@redhat.com>

	* attribs.c (lookup_attribute_spec): Take const_tree.
	* tree.h: Adjust.

2011-03-11  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sparc.c (sparc_option_override): Use
	PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".

2011-03-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48067
	* tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
	multiplication result will be only used once on the target
	stmt.

2011-03-11  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (max-inline-insns-single): Adjust default value.

2011-03-11  Richard Guenther  <rguenther@suse.de>

	PR lto/48073
	* tree.c (find_decls_types_r): Do not walk types only reachable
	from IDENTIFIER_NODEs.

2011-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48044
	* ipa.c (cgraph_remove_unreachable_nodes): Enqueue
	all vnode->force_output nodes as needed.

2011-03-11  Jason Merrill  <jason@redhat.com>

	PR c++/48069
	* tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
	COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.

2011-03-11  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
	cgraph_node.

2011-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/48063
	* ipa-inline.c (cgraph_decide_inlining): Don't try to
	inline functions called once if !tree_can_inline_p (node->callers).

2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>

	* config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
	extra_objs.
	* config/score/score3.c: Delete.
	* config/score/score3.h: Delete.
	* config/score/mul-div.S: Delete.
	* config/score/sfp-machine.h: Add new file.
	* config/score/constraints.md: Add new file.
	* config/score/t-score-softfp: Add new file.
	* config/score/t-score-elf: Remove score3.o, do not generate multilib.
	* config/score/score7.c (score7_const_ok_for_letter_p): Delete.
	(score7_extra_constraint): Delete.
	(score7_option_override): Remove unused code.
	* config/score/score.c: Remove score3 and score5 define and code.
	* config/score/score.h: Remove score3 and score5 define and code.
	* config/score/score.md: Remove score3 template and unusual insn.
	* config/score/score.opt: Remove score3 and score5 options.

2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
	when _HPUX_SOURCE is defined.
	(LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.

2011-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/48029
	* stor-layout.c (layout_type): Don't set structural equality
	on arrays of incomplete type.
	* tree.c (type_hash_eq): Handle comparing them properly.

2011-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR debug/48043
	* config/s390/s390.c (s390_delegitimize_address): Make sure the
	result mode matches original rtl mode.

2011-03-10  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
	(andsi3, andsi3_flags): Fix timings for three operand alternative.

2011-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/47866
	* expr.c (store_field): If MEM_SCALAR_P (target), don't use
	MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
	if target wasn't scalar.
	* function.c (assign_stack_temp_for_type): Assert that neither
	MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
	MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
	macro.
	* rtl.h (MEM_SET_IN_STRUCT_P): Removed.

2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390-protos.h (s390_label_align): New prototype.
	* config/s390/s390.c (s390_label_align): New function.
	* config/s390/s390.h (LABEL_ALIGN): New target macro definition.

2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47755
	* config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
	V2DI/V2DF constants.  Only all 0's or all 1's are easy.
	(output_vec_const_move): Ditto.

2011-03-08  Anatoly Sokolov  <aesok@post.ru>

	* config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
	* config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
	* config/mips/mips.c (mips_preferred_reload_class): Make static.
	Change 'rclass' argument and result type to reg_class_t.
	(TARGET_PREFERRED_RELOAD_CLASS): Define.

2011-03-08  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
	(TARGET_MEMORY_MOVE_COST): Define.
	(avr_register_move_cost, avr_memory_move_cost): New Functions.

2011-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47881
	* ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
	removed anything.

	PR tree-optimization/48022
	* fold-const.c (fold_comparison): Don't call fold_overflow_warning
	for EQ/NE_EXPR.

2011-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47991
	* var-tracking.c (find_use_val): Return NULL for
	cui->sets && cui->store_p BLKmode MEMs.

2011-03-07  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
	Remove.
	* config/stormy16/stormy16-protos.h (xstormy16_print_operand,
	xstormy16_print_operand_address): Remove.
	* config/stormy16/stormy16.c (xstormy16_print_operand,
	xstormy16_print_operand_address): Make static.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.

2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>

	PR target/47862
	* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
	* config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
	before definition.

2011-03-07  Zdenek Dvorak  <ook@ucw.cz>

	PR bootstrap/48000
	* cfgloopmanip.c (fix_bb_placements): Return immediately
	if FROM is BASE_LOOP's header.

2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>

	* gimplify.c (gimplify_function_tree): Fix building calls
	to __builtin_return_address.

2011-03-07  Alan Modra  <amodra@gmail.com>

	* config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
	* config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
	* config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
	return_mode args.
	* config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
	(INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
	(INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
	(INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
	* config/rs6000/rs6000.c
	(rs6000_elf_end_indicate_exec_stack): Rename to..
	(rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
	for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
	(rs6000_file_start): ..here.
	(rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
	file scope variables.
	(call_ABI_of_interest): New function.
	(init_cumulative_args): Set above vars when function return value
	is a float, vector, or small struct.
	(rs6000_function_arg_advance_1): Likewise for function args.
	(rs6000_va_start): Set rs6000_passes_float if variable arg function
	references float args.

2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>

	* doc/cfg.texi: Remove "See" before @ref.
	* doc/invoke.texi: Likewise.

2011-03-05  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi (C++ Dialect Options): Document ABI v5.

2011-03-05  Anthony Green  <green@moxielogic.com>

	* config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.

2011-03-05  Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/47899
	* cfgloopmanip.c (fix_bb_placements): Fix first argument
	to flow_loop_nested_p when moving the loop upward.

2011-03-05  Richard Earnshaw  <rearnsha@arm.com>

	PR target/47719
	* arm.md (movhi_insn_arch4):  Accept any immediate constant.

2011-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47967
	* ipa-cp.c (build_const_val): Return NULL instead of creating
	VIEW_CONVERT_EXPR for mismatching sizes.
	(ipcp_create_replace_map): Return NULL if build_const_val failed.
	(ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
	give up on versioning.

2011-03-05  Alan Modra  <amodra@gmail.com>

	PR target/47986
	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
	full cmodel medium/large lo_sum + high addresses.

2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Reject non-literal
	pool references in UNSPEC_LTREL_OFFSET.

2011-03-04  Jan Hubicka  <jh@suse.cz>

	PR lto/47497
	* lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
	(lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
	* cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
	Add node pointers.
	* cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
	cgraph_add_thunk): Add node pointers.
	* lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
	associated to right node.
	(input_node): Update use of cgraph_same_body_alias
	and cgraph_add_thunk.

2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>

	* config/i386/i386.opt (mprefer-avx128): New flag.
	* config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
	modes when the flag -mprefer-avx128 is on.

2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>

	* dwarf2out.c (compare_loc_operands): Fix address handling.

2011-03-04  Alan Modra  <amodra@gmail.com>

	* tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.

2011-03-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47968
	* expmed.c (extract_bit_field_1): Prefer vector modes that
	vec_extract patterns can handle.

2011-03-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47975
	* optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.

2011-03-04  Richard Henderson  <rth@redhat.com>

	* explow.c (emit_stack_save): Remove 'after' parameter.
	(emit_stack_restore): Likewise.
	* expr.h: Update to match.
	* builtins.c, calls.c, stmt.c: Likewise.
	* config/alpha/alpha.md, config/avr/avr.md: Likewise.
	* config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
	* function.c (expand_function_end): Insert the emit_stack_save
	sequence before parm_birth_insn instead of after.

2011-03-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
	(ssse3_pmaddubsw128): Ditto.
	(ssse3_pmaddubsw): Ditto.

2011-03-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH

2011-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/47963
	* gimplify.c (omp_add_variable): Only call omp_notice_variable
	on TYPE_SIZE_UNIT if it is a DECL.

	PR debug/47283
	* cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
	first operand is not is_gimple_mem_ref_addr, try to fold it.
	If the operand still isn't is_gimple_mem_ref_addr, clear
	MEM_EXPR on op0.

2011-03-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47283
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
	match comment.
	(refs_may_alias_p_1): For release branches return true if
	we are confused by our input.

2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_function_value): Rename to ...
	(s390_function_and_libcall_value): ... this.
	(s390_function_value): New function.
	(s390_libcall_value): New function.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
	* config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
	target macro definitions.
	* config/s390/s390-protos.h (s390_function_value): Remove prototype.

2011-03-02  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/freebsd64.h (CC1_SPEC): Define.
	* config/i386/linux64.h (CC1_SPEC): Define.
	* config/i386/x86-64.h (CC1_SPEC): Don't define.

2011-03-02  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
	Remove.
	* config/stormy16/stormy16.c: Include reload.h.
	(xstormy16_memory_move_cost): New function.
	(TARGET_MEMORY_MOVE_COST): Define.

2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>

	PR rtl-optimization/47925
	* cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
	with side effects.  Remove the more-specific check for volatile asms.

2011-03-02  Alan Modra  <amodra@gmail.com>

	PR target/47935
	* config/rs6000/predicates.md (lwa_operand): Check cmodel medium
	toc relative addresses for valid offsets.

2011-03-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47890
	* tree-vect-loop.c (get_initial_def_for_induction): Set
	related stmt properly.

2011-03-01  Richard Guenther  <rguenther@suse.de>

	PR lto/47924
	* lto-streamer.c (lto_record_common_node): Also register
	the canonical type.

2011-03-01  Richard Guenther  <rguenther@suse.de>

	PR lto/46911
	* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Do not stream DECL_ABSTRACT_ORIGIN.
	(lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
	BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
	Do not stream DECL_ABSTRACT_ORIGIN.
	(lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
	BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.

2011-02-28  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove.
	* config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
	* config/stormy16/stormy16.c (xstormy16_function_value): Make static.
	Add 'outgoing' argument.
	(xstormy16_libcall_value, xstormy16_function_value_regno_p): New
	function.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.

2011-02-28  Kai Tietz  <kai.tietz@onevision.com>

	PR debug/28047
	* dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
	(lookup_filename): Likewise.
	* final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.

2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47893
	* rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
	(assign_stack_local_1): Change last argument type to int.
	* function.c (assign_stack_local_1): Replace reduce_alignment_ok
	argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
	don't record padding space into frame_space_list nor use those areas.
	(assign_stack_local): Adjust caller.
	(assign_stack_temp_for_type): Call assign_stack_local_1 instead
	of assign_stack_local, pass 0 as last argument.
	* caller-save.c (setup_save_areas): Adjust assign_stack_local_1
	callers.

2011-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47283
	* cfgexpand.c (convert_debug_memory_address): Add AS parameter.
	Use target address_mode and pointer_mode hooks instead of hardcoded
	Pmode and ptr_mode.  Handle some simple cases of extending if
	POINTERS_EXTEND_UNSIGNED < 0.
	(expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
	Call convert_debug_memory_address.
	(expand_debug_expr) <case ADDR_EXPR>: Pass as to
	convert_debug_memory_address.

	PR middle-end/46790
	* configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
	* configure: Regenerated.
	* config.in: Regenerated.
	* varasm.c (default_function_section): Return NULL
	if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.

2011-02-28  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
	the description to match the printed values.

2011-02-28  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
	of the copied scope tree.

2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Function Attributes): Avoid deeply (and
	wrongly) nested tables.

2011-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47903
	* real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
	MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
	r isn't op0 nor op1.

2011-02-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Remove magic comment for emacs.

2011-02-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/45261
	* config/avr/avr.c (avr_option_override): Use error on bad options.
	(avr_help): New function.
	(TARGET_HELP): Define.

2011-02-22  Georg-Johann Lay  <avr@gjlay.de>

	PR target/42240
	* config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
	(TARGET_CANNOT_MODIFY_JUMPS_P): Define.

2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (ARC Options): Use CPU instead of cpu.
	(ARM Options): Ditto.
	(i386 and x86-64 Options): Ditto.
	(RX Options): Ditto.
	(SPARC Options): Ditto.

2011-02-26  Tijl Coosemans  <tijl@coosemans.org>

	* config.gcc (i386-*-freebsd*): Make i486 the default arch on
	FreeBSD 6 and later.  Generally use cpu generic.

2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/cpp.texi: Update copyright years.

2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>

	PR target/46898
	* config/lm32/lm32.md (ashrsi3): Added needed variable.

2011-02-25  Jon Beniston  <jon@beniston.com>

	PR target/46898
	* config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
	* config/lm32/lm32.md (ashlsi3): Remove unused variable.
	* config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
	(lm32_block_move_inline): Add type cast to remove warning.
	(lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
	(gen_int_relational): Move declarations to start of function.

2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/45470
	* tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
	can throw internally only.
	* tree-vect-stmts.c (vectorizable_call): Likewise.

2011-02-24  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
	PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* config/stormy16/stormy16-protos.h
	(xstormy16_preferred_reload_class): Remove.
	* config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
	static. Change 'rclass' argument and return type to reg_class_t.
	(TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.

2011-02-24  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (input_bb): Do not find referenced vars
	in debug statements.

2011-02-23  Jason Merrill  <jason@redhat.com>

	* common.opt (fabi-version): Document v5 and v6.

2011-02-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47849
	* tree-if-conv.c (main_tree_if_conversion): Free postdom info.

2011-02-23  Jie Zhang  <jie@codesourcery.com>

	* opts-common.c (decode_cmdline_option): Print empty string
	argument as "" in decoded->orig_option_with_args_text.
	* gcc.c (execute): Print empty string argument as ""
	in the verbose output.
	(do_spec_1): Keep empty string argument.

2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>

	* config.gcc: Declare score-* and crx-* obsolete.

2011-02-23  Jie Zhang  <jie@codesourcery.com>

	PR rtl-optimization/47763
	* web.c (web_main): Ignore naked clobber when replacing register.

2011-02-22  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
	Remove.

2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR doc/47848
	* doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.

2011-02-22  Mike Stump  <mikestump@comcast.net>

	* acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
	assembler.
	* configure: Regenerate.

2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>

	PR rtl-optimization/46002
	* ira-color.c (update_copy_costs): Change class intersection
	test to reg_class_contents[] test of 'hard_regno'.

2011-02-21  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
	than Driver option.
	* config/hpux11.opt (mt): Likewise.
	* config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
	* config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
	* config/vax/elf.opt (mno-asm-pic): Likewise.
	* config/vms/vms.opt (map, mvms-return-codes): Likewise.

2011-02-21  Mike Stump  <mikestump@comcast.net>

	PR target/47822
	* config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
	tree so we can get save the type.
	* config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
	for CFString instead of trying to use past the end of the builtins.
	* config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
	* config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
	Rename to darwin_builtin_cfstring.
	(darwin_init_cfstring_builtins): Return the built type.

2011-02-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47840
	* config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
	(_mm256_insert_epi64): Use _mm_insert_epi64.

2011-02-21  Anatoly Sokolov  <aesok@post.ru>

	* config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/stormy16/stormy16-protos.h
	(xstormy16_mode_dependent_address_p): Remove.
	* config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
	Make static. Change return type to bool. Change argument type to
	const_rtx. Remove dead code.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.

2011-02-21  Richard Guenther  <rguenther@suse.de>

	PR lto/47820
	* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
	(lto_input_ts_block_tree_pointers): Hook a BLOCK into the
	TUs context.
	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
	Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.

2011-02-20  Richard Guenther  <rguenther@suse.de>

	PR lto/47822
	* tree.c (free_lang_data_in_decl): Clean builtins from
	the TU decl BLOCK_VARS.

2011-02-19  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47620
	PR debug/47630
	* haifa-sched.c (fix_tick_ready): Skip tick computation
	for debug insns.

2011-02-19  Richard Guenther  <rguenther@suse.de>

	PR lto/47647
	* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
	Remove lazy BLOCK_VARS streaming.
	(lto_input_ts_block_tree_pointers): Likewise.
	* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.

2011-02-19  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.

2011-02-19  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/biarch32.h, config/i386/mach.h,
	config/rs6000/aix.opt, config/sh/superh64.h: Remove.

2011-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/47800
	* config/i386/i386.md (peephole2 for shift and plus): Use
	operands[1] original mode in the first insn.

2011-02-18  Mike Stump  <mikestump@comcast.net>

	* config/t-darwin (TM_H): Add dependency on darwin-sections.def.

2011-02-18  Jan Hubicka  <jh@suse.cz>

	PR middle-end/47788
	* ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
	to zero when the function is not inlinable at all.

2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
	* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
	pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
	* config/pa/t-pa-hpux11: Add rules to build pthread stubs.
	* config/pa/t-pa64: Likewise.
	* config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

2011-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR driver/47787
	* gcc.c (default_compilers): Clear combinable field for "@cpp-output".

2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/47792
	* gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.

2011-02-18  Anatoly Sokolov  <aesok@post.ru>

	* config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
	RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
	LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
	GO_IF_LEGITIMATE_ADDRESS): Remove macros.
	* config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
	(m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
	m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
	m32r_load_postinc_p, m32r_store_preinc_predec_p,
	m32r_legitimate_address_p): New functions.
	* config/m32r/constraints.md (constraint "S"): Don't use
	STORE_PREINC_PREDEC_P.
	(constraint "U"): Don't use LOAD_POSTINC_P.

2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>

	PR rtl-optimization/46178
	* ira.c (setup_hard_regno_class): Use ira_class_translate[] to
	compute ira_hard_regno_cover_class[].

2011-02-18  Richard Guenther  <rguenther@suse.de>

	PR lto/47798
	* lto-streamer.h (lto_global_var_decls): Declare.
	* lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
	statics for global var processing.

2011-02-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47737
	* tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
	edge dominance check.

2011-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47780
	* cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
	avoid invalid rtx sharing.

2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/cpp.texi (Obsolete Features): Add background on the
	origin of assertions.

2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
	objc_abi == 2.
	* config/darwin.c (output_objc_section_asm_op): Added support for
	ABI v1 and v2.
	(is_objc_metadata): New.
	(darwin_objc2_section): New.
	(darwin_objc1_section): New.
	(machopic_select_section): Added support for ABI v1 and v2.
	(darwin_emit_objc_zeroed): New.
	(darwin_output_aligned_bss): Detect objc metadata and treat it
	appropriately.
	(darwin_asm_output_aligned_decl_common): Same.
	(darwin_asm_output_aligned_decl_local): Same.
	* config/darwin-sections.def: Updated for ABI v1 and v2.
	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
	compiling Objective-C code for the NeXT runtime, default to using
	ABI version 0 for 32-bit, and version 2 for 64-bit.

2011-02-17  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (optimize_fast): New Variable.
	* opts.c (default_options_optimization): Use opts->x_optimize_fast
	instead of local variable ofast.

2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/invoke.texi (fobjc-abi-version): Documented.
	(fobjc-nilcheck): Documented.
	(fno-nil-receiver): Updated documentation to refer to the NeXT ABI
	version.

2011-02-17  Joseph Myers  <joseph@codesourcery.com>

	PR driver/47390
	* common.opt (export-dynamic): New Driver option.
	* gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.

2011-02-17  Joseph Myers  <joseph@codesourcery.com>

	* config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.

2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
	    Jan Hubicka  <jh@suse.cz>

	PR debug/47106
	PR debug/47402
	* cfgexpand.c (account_used_vars_for_block): Remove.
	(estimated_stack_frame_size): Use referenced vars.
	* tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
	that were referenced in the original function.  Test src_fn
	rather than cfun.  Drop redundant get_var_ann.
	(setup_one_parameter): Drop redundant get_var_ann.
	(declare_return_variable): Likewise.
	(copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
	(copy_arguments_for_versioning): Drop redundant get_var_ann.
	* ipa-inline.c (compute_inline_parameters): Do not compute
	disregard_inline_limits here.
	(compute_inlinable_for_current, pass_inlinable): New.
	(pass_inline_parameters): Require PROP_referenced_vars.
	* cgraphunit.c (cgraph_process_new_functions): Don't run
	compute_inline_parameters explicitly unless function is in SSA form.
	(cgraph_analyze_function): Set .disregard_inline_limits.
	* tree-sra.c (convert_callers): Compute inliner parameters
	only for functions already in SSA form.

2011-02-17  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
	-mlittle-endian-data.

2011-02-17  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
	-mno-fpu, not -fpu and -no-fpu.
	* config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
	* config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.

2011-02-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43653
	* config/i386/i386.c (ix86_secondary_reload): Handle SSE
	input reload with PLUS RTX.

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
	of InverseVar(MDMX).

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
	--m4-340.

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/mn10300/mn10300.opt (mno-crt0): New.

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/uclinux.opt (static-libc): New Driver option.

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.

2011-02-16  Joseph Myers  <joseph@codesourcery.com>

	* config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
	%{muser-extend-enabled}.

2011-02-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47738
	* tree-ssa-loop.c (run_tree_predictive_commoning): Return
	the TODO from tree_predictive_commoning.

2011-02-15  Jeff Law  <law@redhat.com>

	Revert
	2011-01-25  Jeff Law  <law@redhat.com>

	PR rtl-optimization/37273
	* ira-costs.c (scan_one_insn): Detect constants living in memory and
	handle them like argument loads from stack slots.  Do not double
	count memory for memory constants and argument loads from stack slots.

2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47755
	* config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
	mode for vector constants.  Remove code that checks for TImode.

2011-02-15  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	PR debug/47402
	* cgraph.h (compute_inline_parameters): Return void.
	* ipa-inline.c (compute_inline_parameters): Adjust.

2011-02-15  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	PR debug/47402
	* tree-inline.h (estimated_stack_frame_size): Take cgraph node
	rather than decl.
	* cfgexpand.c (estimated_stack_frame_size): Likewise.
	* ipa-inline.c (compute_inline_parameters): Adjust.

2011-02-15  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	PR debug/47402
	* tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
	Adjust all users.  Pass FN to...
	* tree-flow-inline.h (first_referenced_var): ... this.  Add
	fn argument.
	* ipa-struct-reorg.c: Adjust.
	* tree-dfa.c: Adjust.
	* tree-into-ssa.c: Adjust.
	* tree-sra.c: Adjust.
	* tree-ssa-alias.c: Adjust.
	* tree-ssa-live.c: Adjust.
	* tree-ssa.c: Adjust.
	* tree-ssanames.c: Adjust.
	* tree-tailcall.c: Adjust.

2011-02-15  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	PR debug/47402
	* tree-flow.h (referenced_var_lookup): Add fn parameter.
	Adjust all callers.
	* tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
	* tree-flow-inline.h: Adjust.
	* gimple-pretty-print.c: Adjust.
	* tree-into-ssa.c: Adjust.
	* tree-ssa.c: Adjust.
	* cfgexpand.c: Adjust.

2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>

	* config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.
	* config/iq2000/constraints.md: New file.
	* config/iq2000/iq2000.md: Include it.
	(define_insn ""): Delete.
	(movsi_internal2, movhi_internal2, movqi_internal2): Delete
	unsupported constraint letters from patterns.
	(call_value, call_value_internal1): Likewise.
	(call_value_multiple_internal1): Likewise.

2011-02-15  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c: Include tm-constrs.h.
	(struct liw_data): New data structure describing an LIW candidate
	instruction.
	(extract_bundle): Use struct liw_data.  Allow small integer
	operands for some instructions.
	(check_liw_constraints): Use struct liw_data.  Remove swapped
	parameter.  Add comments describing the checks.  Fix bug when
	assigning the source of liw1 to the source of liw2.
	(liw_candidate): Delete.  Code moved into extract_bundle.
	(mn10300_bundle_liw): Use struct liw_data.  Check constraints
	before swapping.
	* config/mn10300/predicates.md (liw_operand): New predicate.
	Allows registers and small integer constants.
	* config/mn10300/constraints.md (O): New constraint.  Accetps
	integers in the range -8 to +7 inclusive.
	* config/mn10300/mn10300.md (movesi_internal): Add an alternative
	for moving a small integer into a register.  Give this alternative
	LIW attributes.
	(addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
	(ashlsi3): Likewise, plus give LIW attributes to the alternatives
	using the J,K,L and M constraints,
	(liw): Remove SI mode on second operands to allow for HI and QI
	mode values.
	(cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
	instruction.

2011-02-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47743
	* tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
	for a non-type-compatible VN lookup bail out.

2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>

	* config/fr30/constraints.md: New file.
	* config/fr30/fr30.md: Include it.
	* config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.

2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>

	* config/frv/constraints.md: New file.
	* config/frv/predicates.md: Include it.
	* config/frv/frv.c (reg_class_from_letter): Delete.
	(frv_option_override): Don't initialize it.
	* config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
	(CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
	(CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
	(CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
	(EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
	(EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
	(EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
	(REG_CLASS_FROM_CONSTRAINT): Delete.

2011-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47581
	* config/i386/i386.c (ix86_compute_frame_size): Don't align offset
	if frame size is 0 in a leaf function.

2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR pch/14940
	* config/alpha/host-osf.c: New file.
	* config/alpha/x-osf: New file.
	* config.host (alpha*-dec-osf*): Use it.

2011-02-14  Anatoly Sokolov  <aesok@post.ru>

	* config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
	* config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
	(rx_mode_dependent_address_p): ...this. Make static. Change argument
	type to const_rtx.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.

2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>

	* config/stormy16/constraints.md: New file.
	* config/stormy16/predicates.md (nonimmediate_nonstack_operand):
	Use satisfies_constraint_Q and satisfies_constraint_R.
	* config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
	Delete.
	(xstormy16_legitiamte_address_p): Declare.
	* config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.
	* config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
	Un-staticize.
	(xstormy16_extra_constraint_p): Delete.

2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/46494
	* loop-unroll.c (split_edge_and_insert): Adjust comment.
	* loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
	(pass_rtl_loop_done): Add TODO_verify_flow.
	* fwprop.c (pass_rtl_fwprop): Likewise.
	* modulo-sched.c (pass_sms): Likewise.
	* tree-ssa-dom.c (pass_dominator): Likewise.
	* tree-ssa-loop-ch.c (pass_ch): Likewise.
	* tree-ssa-loop.c (pass_complete_unrolli): Likewise.
	(pass_tree_loop_done): Likewise.
	* tree-ssa-pre.c (execute_pre): Likewise.
	* tree-ssa-reassoc.c (pass_reassoc): Likewise.
	* tree-ssa-sink.c (pass_sink_code): Likewise.
	* tree-vrp.c (pass_vrp): Likewise.

2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>

	* config/v850/constraints.md: New file.
	* config/v850/v850.md: Include it.
	* config/v850/predicates.md (reg_or_0_operand): Use
	satisfies_constraint_G.
	(special_symbolref_operand): Use satisfies_constraint_K.
	* config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
	(GO_IF_LEGITIMATE_ADDRESS): Likewise.
	(REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
	(CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.
	(CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
	(CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
	(CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.

2011-02-14  Anatoly Sokolov  <aesok@post.ru>

	PR target/47696
	* config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
	description.

2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mcore/constraints.md: New file.
	* config/mcore/mcore.md: Include it.
	* config/mcore/mcore.c (reg_class_from_letter): Delete.
	* config/mcore/mcore.h (reg_class_from_letter): Delete.
	(REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
	insn_const_int_ok_for_constraint.
	(CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
	(CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.

2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR ada/41929
	* config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
	(IS_SIGHANDLER): Define.
	(sparc64_is_sighandler): New function, split off from
	sparc64_fallback_frame_state.
	(sparc_is_sighandler): New function, split off from
	sparc_fallback_frame_state.
	(sparc64_fallback_frame_state): Merge with ...
	(sparc_fallback_frame_state): ... this into ...
	(MD_FALLBACK_FRAME_STATE_FOR): ... this.
	Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
	Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
	stack instead of hardcoded offsets.

2011-02-14  Andriy Gapon  <avg@freebsd.org>

	PR target/45808
	* config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.

2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2011-02-12  Joseph Myers  <joseph@codesourcery.com>

	PR driver/45731
	* gcc.c (asm_options): Correct spec matching --target-help.

2011-02-12  Martin Jambor  <mjambor@suse.cz>

	* tree-cfg.c (verify_gimple_call): Return true upon invalid argument
	to gimple call error.

2011-02-12  Mike Stump  <mikestump@comcast.net>

	* config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
	comments in backslash regions.

2011-02-12  Mike Stump  <mikestump@comcast.net>
	    Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR target/47324
	* dwarf2out.c (output_cfa_loc): When required, apply the
	DWARF2_FRAME_REG_OUT macro to adjust register numbers.
	(output_loc_sequence): Likewise.
	(output_loc_operands_raw): Likewise.
	(output_loc_sequence_raw): Likewise.
	(output_cfa_loc): Likewise.
	(output_loc_list): Suppress register number adjustment when
	calling output_loc_sequence()
	(output_die): Likewise.

2011-02-12  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
	Remove macros.
	* config/xtensa/xtensa.c (xtensa_register_move_cost,
	xtensa_memory_move_cost): New functions.
	(TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.

2011-02-12  Alexandre Oliva  <aoliva@redhat.com>

	PR lto/47225
	* configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
	in the current directory.
	* configure: Rebuilt.

2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.c (darwin_override_options): Add a hunk missed
	from the commit of r168571.  Trim comment line lengths and
	correct indents of the preceding block.

2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>

	* gcc.c (driver_handle_option): Concatenate the argument to -F with
	the switch.

2011-02-11  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (nostartfiles): New Driver option.

2011-02-11  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/47707
	* tree-chrec.c (convert_affine_scev): Keep type precision.

2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/47420
	* ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.

2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>

	PR rtl-optimization/47614
	* rtl.h (check_for_inc_dec): Declare.
	* dse.c (check_for_inc_dec): Externalize...
	* postreload.c (reload_cse_simplify): ...use it before deleting stmt.
	(reload_cse_simplify_operands): Don't simplify opnds with side effects.

2011-02-11  Joseph Myers  <joseph@codesourcery.com>

	PR driver/47678
	* gcc.c (main): Do not compile inputs if there were errors in
	option handling.
	* opts-common.c (read_cmdline_option): Check for wrong language
	after other error checks.

2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>

	* cgraph.c: Fix comment typos.
	* cgraph.h: Likewise.
	* cgraphunit.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.

2011-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47684
	* tree-predcom.c (single_nonlooparound_use): Ignore debug uses.

2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR testsuite/47400
	* doc/sourcebuild.texi (Require Support): Document
	dg-require-ascii-locale.

2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>

	* doc/lto.texi (Write summary): Fix missing parentheses.

2011-02-10  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_option_override): Disable
	-fcombine-stack-adjustments until flag value tracking and compare
	optimization can be rewritten.

2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
	PROCESSOR_POWER7.
	(PROCESSOR_DEFAULT64): Likewise.

2011-02-10  Richard Henderson  <rth@redhat.com>

	* config/rx/predicates.md (rx_zs_comparison_operator): Revert
	change from 2011-02-03.
	* config/rx/rx.c (flags_from_code): Likewise.
	(rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
	is valid, n/pz otherwise.
	(rx_select_cc_mode): Return CCmode if Y is not zero.

2011-02-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.

2011-02-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47677
	* tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.

2011-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/47665
	* combine.c (make_compound_operation): Only change shifts into
	multiplication for SCALAR_INT_MODE_P.

2011-02-10  Jie Zhang  <jie@codesourcery.com>

	PR testsuite/47622
	Revert
	2011-02-05  Jie Zhang  <jie@codesourcery.com>
	PR debug/42631
	* web.c (entry_register): Don't clobber the number of the
	first uninitialized reference in used[].

2011-02-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47664
	* ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
	all edges again.

2011-02-09  David Edelsohn  <dje.gcc@gmail.com>

	PR target/46481
	PR target/47032
	* config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
	PROCESSOR_POWER7.
	(PROCESSOR_DEFAULT64): Same.
	(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.

2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.

2011-02-09  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/45505
	* tree-sra.c (struct access): New flags grp_scalar_read and
	grp_scalar_write.  Changed description of assignment read and write
	flags.
	(dump_access): Dump new flags, reorder all of them.
	(sort_and_splice_var_accesses): Set the new flag accordingly, use them
	to detect multiple scalar reads.
	(analyze_access_subtree): Use the new scalar read write flags instead
	of the old flags.  Adjusted comments.

2011-02-08  DJ Delorie  <dj@redhat.com>

	PR target/47548
	* config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
	patterns.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/uclinux.opt: New.
	* config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/cris/elf.opt (sim): New Driver option.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/xtensa/elf.opt: New.
	* config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/vax/elf.opt: New.
	* config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/aix64.opt (posix, pthread): New Driver options.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config/gnu-user.opt: New.
	* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
	*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
	*-*-uclinux*): Use gnu-user.opt.

2011-02-08  Thomas Schwinge  <thomas@schwinge.name>

	* config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
	* config/i386/gnu.h (CPP_SPEC): Likewise.

2011-02-08  Ian Lance Taylor  <iant@google.com>

	* common.opt (fcx-limited-range): Add SetByCombined flag.
	(ffinite-math-only, fmath-errno, frounding-math): Likewise.
	(fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
	(fassociative-math, freciprocal-math): Likewise.
	(funsafe-math-optimizations): Likewise.
	* opth-gen.awk: Handle SetByCombined.
	* optc-gen.awk: Likewise.
	* opts.c (set_fast_math_flags): Don't override flag if set by frontend.
	(set_unsafe_math_optimizations_flags): Likewise.
	* doc/options.texi (Option properties): Document SetByCombined.

2011-02-08  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
	i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
	m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
	m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
	sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.

2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46834
	PR tree-optimization/46994
	PR tree-optimization/46995
	* graphite-sese-to-poly.c (used_outside_reduction): New.
	(detect_commutative_reduction): Call used_outside_reduction.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Call
	translate_scalar_reduction_to_array only when at least one
	loop-phi/close-phi tuple has been detected.

2011-02-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47639
	* tree-vect-generic.c (expand_vector_operations_1): Update
	stmts here ...
	(expand_vector_operations): ... not here.  Cleanup EH info
	and the CFG if required.

2011-02-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47641
	* tree-ssa.c (execute_update_addresses_taken): For asm outputs
	require type compatibility.

2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gimple-low.c (lower_function_body): Don't remove the location of
	the return statement here.
	(lower_gimple_return): Do it here instead but only if the return
	statement is actually used twice.

2011-02-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47632
	* tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
	unused up_to_stmt parameter, return whether cfg-cleanup is
	necessary, remove EH info properly.
	(forward_propagate_into_gimple_cond): Adjust caller.
	(forward_propagate_into_cond): Likewise.
	(forward_propagate_comparison): Likewise.
	(tree_ssa_forward_propagate_single_use_vars): Make
	forward_propagate_comparison case similar to the two others.

2011-02-08  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.opt (mliw): New command line option.
	* config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
	(liw_bundling): New automaton.
	(liw): New attribute.
	(liw_op): New attribute.
	(liw_op1, liw_op2, liw_both, liw_either): New reservations.
	(movsi_internal): Add LIW attributes.
	(andsi3): Likewise.
	(iorsi3): Likewise.
	(xorsi3): Likewise.
	(addsi3): Separate register and immediate alternatives.
	Add LIW attributes.
	(subsi3): Likewise.
	(cmpsi): Likewise.
	(aslsi3): Likewise.
	(lshrsi3): Likewise.
	(ashrsi3): Likewise.
	(liw): New pattern.
	* config/mn10300/mn10300.c (liw_op_names): New
	(mn10300_print_operand): Handle 'W' operand descriptor.
	(extract_bundle): New function.
	(check_liw_constraints): New function.
	(liw_candidate): New function.
	(mn10300_bundle_liw): New function.
	(mn10300_reorg): New function.
	(TARGET_MACHINE_DEPENDENT_REORG): Define.
	(TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
	* config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
	__LIW__ or __NO_LIW__.
	* doc/invoke.texi: Describe the -mliw command line option.

2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
	* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
	pthread_mutex_unlock): Remove.
	* config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
	* config/pa/t-pa64: Likewise.
	* config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
	shared libc if not linking against libpthread.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.

2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/47558
	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
	on 10.6 and later to ensure that we always use the unwinder from
	the system.  Only add -no_compact_unwind when tarteting darwin
	10.6 or later.

2011-02-07  Steve Ellcey  <sje@cup.hp.com>

	PR target/46997
	* vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
	(vec_interleave_lowv2sf): Ditto.
	(vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
	(vec_extract_oddv2sf): Ditto.

2011-02-07  Mike Stump  <mikestump@comcast.net>

	PR target/42333
	Add __ieee_divdc3 entry point.
	* config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
	entry point.
	(SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
	* config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
	* config/darwin.c (darwin_rename_builtins): Add.
	* config/darwin-protos.h (darwin_rename_builtins): Add.

2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47636
	* config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
	for the condition.

2011-02-07  Mike Stump  <mikestump@comcast.net>

	* config/darwin.opt (mmacosx-version-min): Update default OS version.

2011-02-07  Denis Chertykov  <chertykov@gmail.com>

	PR target/47534
	* config/avr/libgcc.S (exit): Move .endfunc

2011-02-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47615
	* tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
	* tree-ssa-sccvn.c (default_vn_walk_kind): New global.
	(run_scc_vn): Initialize it.
	(visit_reference_op_load): Use it.
	* tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.

2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_init_libfuncs): Install SImode and
	DImode trapping arithmetic libfuncs.

2011-02-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47621
	* tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
	two duplicates ...
	(execute_update_addresses_taken): ... here.  Make it more
	conservative in what we accept.

2011-02-06  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/freebsd.h (ASM_SPEC): Define.
	* config/sparc/vxworks.h (ASM_SPEC): Define.

2011-02-06  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.

2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/invoke.texi: Remove reference to compiler internals from
	user documentation.

	* reg-notes.def: Remove REG_VALUE_PROFILE.
	* combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.

2011-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47610
	* varasm.c (default_section_type_flags): If decl is NULL,
	and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.

2011-02-05  Jie Zhang  <jie@codesourcery.com>

	PR debug/42631
	* web.c (entry_register): Don't clobber the number of the
	first uninitialized reference in used[].

2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46194
	* tree-data-ref.c (analyze_miv_subscript): Remove comment.
	(build_classic_dist_vector_1): Do not represent classic distance
	vectors when the access functions are variating in different loops.

2011-02-04  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/iris6.opt: New.
	* config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.

2011-02-04  Richard Henderson  <rth@redhat.com>
	    Steve Ellcey  <sje@cup.hp.com>

	PR target/46997
	* config/ia64/predicates.md (mux1_brcst_element): New.
	* config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
	* config/ia64/ia64.c (ia64_unpack_assemble): New.
	(ia64_unpack_sign): New.
	(ia64_expand_unpack): Rewrite using new routines.
	(ia64_expand_widen_sum): Ditto.
	(ia64_expand_dot_prod_v8qi): Ditto.
	* config/ia64/vect.md (mulv8qi3): Rewrite to use new
	routines, add endian check.
	(pmpy2_even): Rename from pmpy2_r, add endian check.
	(pmpy2_odd): Rename from pmpy2_l, add endian check.
	(vec_widen_smult_lo_v4hi): Rewrite using new routines.
	(vec_widen_smult_hi_v4hi): Ditto.
	(vec_widen_umult_lo_v4hi): Ditto.
	(vec_widen_umult_hi_v4hi): Ditto.
	(mulv2si3): Change endian checks.
	(sdot_prodv4hi): Rewrite with new calls.
	(udot_prodv4hi): New.
	(vec_pack_ssat_v4hi): Add endian check.
	(vec_pack_usat_v4hi): Ditto.
	(vec_pack_ssat_v2si): Ditto.
	(max1_even): Rename from max1_r, add endian check.
	(max1_odd): Rename from max1_l, add endian check.
	(*mux1_rev): Format change.
	(*mux1_mix): Ditto.
	(*mux1_shuf): Ditto.
	(*mux1_alt): Ditto.
	(*mux1_brcst_v8qi): Use new predicate.
	(vec_extract_evenv8qi): Remove endian check.
	(vec_extract_oddv8qi): Ditto.
	(vec_interleave_lowv4hi): Format change.
	(vec_interleave_highv4hi): Ditto.
	(mix2_even): Rename from mix2_r, add endian check.
	(mix2_odd): Rename from mux2_l, add endian check.
	(*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
	(vec_extract_evenodd_helper): Format change.
	(vec_extract_evenv4hi): Remove endian check.
	(vec_extract_oddv4hi): Remove endian check.
	(vec_interleave_lowv2si): Format change.
	(vec_interleave_highv2si): Format change.
	(vec_initv2si): Remove endian check.
	(vecinit_v2si): Add endian check.
	(reduc_splus_v2sf): Add endian check.
	(reduc_smax_v2sf): Ditto.
	(reduc_smin_v2sf): Ditto.
	(vec_initv2sf): Remove endian check.
	(fpack): Add endian check.
	(fswap): Add endian check.
	(vec_interleave_highv2sf): Add endian check.
	(vec_interleave_lowv2sf): Add endian check.
	(fmix_lr): Add endian check.
	(vec_setv2sf): Format change.
	(*vec_extractv2sf_0_be): Use shift to extract operand.
	(*vec_extractv2sf_1_be): New.
	(vec_pack_trunc_v4hi): Add endian check.
	(vec_pack_trunc_v2si): Format change.

2011-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/23200
	* tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
	do bb, locus and block comparison and disallow loads if it is not set.
	(stmt_is_replaceable_p): New function.
	(process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
	callers.
	* expr.c (expand_expr_real_1) <case SSA_NAME>: If
	get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
	SSA_NAME_DEF_STMT.
	* tree-flow.h (stmt_is_replaceable_p): New prototype.

2011-02-04  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/xilinx.opt: New.
	* config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.

2011-02-04  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.opt (EB, EL, noasmopt): New Driver options.

2011-02-03  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
	PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
	secondary_reload_info, xtensa_secondary_reload): Remove.
	* config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
	(xtensa_preferred_reload_class): Make static. Change return and
	'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
	Use CONST_DOUBLE_P predicate.
	(xtensa_preferred_output_reload_class): New function.
	(xtensa_secondary_reload): Make static.

2011-02-03  Joseph Myers  <joseph@codesourcery.com>

	* config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
	Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
	Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.

2011-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/31490
	* output.h (SECTION_RELRO): Define.
	(SECTION_MACH_DEP): Adjust.
	(get_variable_section): New prototype.
	* varpool.c (varpool_finalize_named_section_flags): New function.
	(varpool_assemble_pending_decls): Call it.
	* cgraph.h (varpool_finalize_named_section_flags): New prototype.
	* cgraphunit.c (cgraph_output_in_order): Call
	varpool_finalize_named_section_flags.
	* varasm.c (get_section): Allow section flags conflicts between
	relro and read-only sections if the section hasn't been declared yet.
	Set SECTION_OVERRIDE after diagnosing section type conflict.
	(get_variable_section): No longer static.
	(default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
	readonly sections that need relocations.
	(decl_readonly_section_1): New function.
	(decl_readonly_section): Use it.

	Revert:
	2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
		    Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/31490
	* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
	if section attribute used.

2011-02-03  Jakub Jelinek  <jakub@redhat.com>

	* config/darwin.h (SECTION_NO_ANCHOR): Remove.
	* config/darwin.c (SECTION_NO_ANCHOR): Define.
	(darwin_init_sections): Remove assertion.

2011-02-03  Nick Clifton  <nickc@redhat.com>

	* config/rx/predicates.md (rx_zs_comparison_operator): Remove
	lt and ge.
	* config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
	* config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
	instead of "n" and "pz".
	(flags_from_code): LT and GE tests need CC_FLAG_O as well as
	CC_FLAG_S.

2011-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/47312
	* expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
	fma, expand FMA_EXPR as fma{,f,l} call.

	PR lto/47274
	* lto-streamer-out.c (write_symbol): When writing kind and visibility,
	copy them into a unsigned char variable and pass address of it to
	lto_output_data_stream.

	PR target/47564
	* toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
	around backend_init_target and lang_dependent_init_target calls.
	* cgraphunit.c (cgraph_debug_gimple_stmt): New function.
	(verify_cgraph_node): Don't call set_cfun here.  Use
	cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
	Set error_found for incorrectly represented calls to thunks.

2011-02-03  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/43092
	PR rtl-optimization/43494
	* rtl.h (for_each_inc_dec_fn): New type.
	(for_each_inc_dec): Declare.
	* rtlanal.c (struct for_each_inc_dec_ops): New type.
	(for_each_inc_dec_find_inc_dec): New fn.
	(for_each_inc_dec_find_mem): New fn.
	(for_each_inc_dec): New fn.
	* dse.c (struct insn_size): Remove.
	(replace_inc_dec, replace_inc_dec_mem): Remove.
	(emit_inc_dec_insn_before): New fn.
	(check_for_inc_dec): Use it, along with for_each_inc_dec.
	(canon_address): Pass mem modes to cselib_lookup.
	* cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
	(cselib_lookup_from_insn): Likewise.
	(cselib_subst_to_values): Likewise.
	* cselib.c (find_slot_memmode): New var.
	(cselib_find_slot): New fn.  Use it instead of
	htab_find_slot_with_hash everywhere.
	(entry_and_rtx_equal_p): Use find_slot_memmode.
	(autoinc_split): New fn.
	(rtx_equal_for_cselib_p): Rename and implement in terms of...
	(rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
	Deal with autoinc.  Special-case recursion into MEMs.
	(cselib_hash_rtx): Likewise.
	(cselib_lookup_mem): Infer pmode from address mode.  Distinguish
	address and MEM modes.
	(cselib_subst_to_values): Add memmode, pass it on.
	Deal with autoinc.
	(cselib_lookup): Add memmode argument, pass it on.
	(cselib_lookup_from_insn): Add memmode.
	(cselib_invalidate_rtx): Discard obsolete push_operand handling.
	(struct cselib_record_autoinc_data): New.
	(cselib_record_autoinc_cb): New fn.
	(cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
	mode to cselib_lookup.  Reset autoinced REGs here instead of...
	(cselib_process_insn): ... here.
	* var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
	to cselib_lookup.
	(add_uses): Likewise, also to cselib_subst_to_values.
	(add_stores): Likewise.
	* sched-deps.c (add_insn_mem_dependence): Pass mode to
	cselib_subst_to_values.
	(sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
	* gcse.c (do_local_cprop): Adjusted.
	* postreload.c (reload_cse_simplify_set): Adjusted.
	(reload_cse_simplify_operands): Adjusted.
	* sel-sched-dump (debug_mem_addr_value): Pass mode.

2011-02-03  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/45122
	* tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
	unsafe assumptions when there's more than one loop exit.

2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47272
	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document using vector double with the load/store builtins, and
	that the load/store builtins always use Altivec instructions.

	* config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
	to use altivec memory instructions, even on VSX.
	(vector_altivec_store_<mode>): Ditto.

	* config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
	function.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	V2DF, V2DI support to load/store overloaded builtins.

	* config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
	altivec load/store builtins for V2DF/V2DI types.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	set avoid indexed addresses on power6 if -maltivec.
	(altivec_expand_ld_builtin): Add V2DF, V2DI support, use
	vector_altivec_load/vector_altivec_store builtins.
	(altivec_expand_st_builtin): Ditto.
	(altivec_expand_builtin): Add VSX memory builtins.
	(rs6000_init_builtins): Add V2DI types to internal types.
	(altivec_init_builtins): Add support for V2DF/V2DI altivec
	load/store builtins.
	(rs6000_address_for_altivec): Insure memory address is appropriate
	for Altivec.

	* config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
	vec_vsx_ld and vec_vsx_st.
	(vsx_store_<mode>): Ditto.

	* config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
	variables to hold long long types for VSX vector memory builtins.
	(RS6000_BTI_unsigned_long_long): Ditto.
	(long_long_integer_type_internal_node): Ditti.
	(long_long_unsigned_type_internal_node): Ditti.

	* config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
	(altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
	(altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.

	* config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
	short cuts.
	(vec_vsx_st): Ditto.

2011-02-02  Joseph Myers  <joseph@codesourcery.com>

	* config/pa/pa-hpux10.opt: New.
	* config/hpux11.opt (pthread): New Driver option.
	* config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
	* config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.

2011-02-02  Joseph Myers  <joseph@codesourcery.com>

	* config/ia64/vms.opt: New.
	* config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.

2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47580
	* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
	gpc_reg_operand instead of vsx_register_operand to match rs6000.md
	generator functions.
	(vsx_floatuns<VSi><mode>2): Ditto.
	(vsx_fix_trunc<mode><VSi>2): Ditto.
	(vsx_fixuns_trunc<mode><VSi>2): Ditto.

2011-02-02  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/djgpp.opt (posix): New Driver option.

2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>

	* config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
	Move to the unsupported targets list.

2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>

	PR rtl-optimization/47525
	* df-scan.c: Update copyright years.
	(df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
	and non-clobber DF_REF_REG_DEF for calls to const and pure functions.

2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sysv4.h (TARGET_VERSION): Remove.
	(SUBTARGET_RETURN_IN_MEMORY): Remove.
	(ASM_OUTPUT_ASCII): Remove.
	* config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.

2011-02-02  Jeff Law  <law@redhat.com>

	PR middle-end/47543
	* reload.c (find_reloads_address): Handle reg+d address where both
	components are invalid by reloading the entire address.

2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40979
	PR bootstrap/47044
	* passes.c (init_optimization_passes): After LIM call copy_prop
	and DCE to clean up.
	* tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.

2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47576
	PR tree-optimization/47555
	* doc/invoke.texi (scev-max-expr-complexity): Documented.
	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
	(PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
	* tree-scalar-evolution.c (follow_ssa_edge): Use
	PARAM_SCEV_MAX_EXPR_COMPLEXITY.

2011-02-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47566
	* builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.

2011-02-02  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	PR debug/47402
	* tree-inline.c (declare_return_variable): Remove unused caller
	variable.

	PR debug/47106
	PR debug/47402
	* tree-flow-inline.h (clear_is_used, is_used_p): New.
	* cfgexpand.c (account_used_vars_for_block): Use them.
	* tree-nrv.c (tree_nrv): Likewise.
	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
	(dump_scope_block): Likewise.
	(remove_unused_locals): Likewise.

	PR debug/47106
	PR debug/47402
	* tree-inline.c (declare_return_variable): Add result decl to
	local decls only once.
	* gimple-low.c (record_vars_into): Mark newly-created variables
	as referenced.

2011-02-02  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47498
	PR debug/47501
	PR debug/45136
	PR debug/45130
	* haifa-sched.c (get_ebb_head_tail): Move notes across boundary
	debug insns.
	(no_real_insns_p, schedule_block, set_priorities): Drop special
	treatment of boundary debug insns.
	* sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
	* sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
	* sched-int.h (DEBUG_INSN_SCHED_P): Remove.
	(BOUNDARY_DEBUG_INSN_P): Likewise.
	(SCHEDULE_DEBUG_INSN_P): Likewise.
	* sched-rgn.c (init_ready_list): Drop special treatment of
	boundary debug insns.
	* final.c (rest_of_clean_state): Clear notes' BB.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/openbsd.opt (assert=): New Driver option.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/nto.opt: New.
	* config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/netware.opt: New.
	* config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/interix.opt (posix): New Driver option.

2011-02-01  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.

	* config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
	class for A0/A1.

2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47561
	* toplev.c (process_options): Print the Graphite flags.  Add
	flag_loop_flatten to the list of options requiring Graphite.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/cygming.opt (posix): New Driver option.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/vxworks.opt: New.
	* config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.

2011-02-01  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/elf.opt: New.
	* config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
	alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.

2011-02-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47559
	* tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
	store-motion on references that can throw.

2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>

	* tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
	* tree-pass.h (TDF_CSELIB): New macro.
	* cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
	cselib_lookup): Check for it rather than for TDF_DETAILS.

2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/47547
	* lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
	is HOST_BIT_BUCKET.

	* opts.c (finish_options): Don't add x_aux_base_name if it is
	HOST_BIT_BUCKET.

2011-02-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47555
	Revert
	2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.

2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>

	PR gcc/46692
	* config/lm32/t-lm32: Add multilib for all CPU options.

2011-02-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47541
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
	sure to have a field at offset zero.

2011-01-31  Joseph Myers  <joseph@codesourcery.com>

	* config/arc/arc.opt (EB, EL): New Driver options.

2011-01-31  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/osf5.opt: New.
	* config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.

2011-01-31  Joseph Myers  <joseph@codesourcery.com>

	* config/vms/vms.opt (map, mvms-return-codes): New Driver options.

2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (ftree-loop-linear): Use Alias to make it an alias of
	-floop-interchange.
	* invoke.texi (-ftree-loop-linear): Make it clear that this flag
	is an alias of -floop-interchange and that it requires the
	Graphite infrastructure.
	* tree-ssa-loop.c (gate_graphite_transforms): Do not set
	flag_loop_interchange based on the value of flag_tree_loop_linear.

2011-01-31  Jakub Jelinek  <jakub@redhat.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47538
	* tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
	type instead of r1type, except for comparisons.  For right
	shifts and comparisons punt if there are mismatches in
	sizetype vs. non-sizetype types.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	avx_runtime.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
	version number.
	* configure: Regenerate.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_static_option): Define.
	(gcc_cv_ld_dynamic_option): Define.
	(gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
	instead.
	(HAVE_LD_STATIC_DYNAMIC): Update message.
	(LD_STATIC_OPTION): Define.
	(LD_DYNAMIC_OPTION): Define.
	* configure: Regenerate.
	* config.in: Regenerate.
	* gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
	HAVE_LD_STATIC_DYNAMIC]: Use them.

2011-01-31  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
	registers inside interrupt handlers if the handler is not a leaf
	function.

2011-01-31  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
	reg_renumber returning an INVALID_REGNUM.

2011-01-31  Alexandre Oliva  <aoliva@redhat.com>

	PR libgcj/44341
	* doc/install.texi: Document host options discarded when cross
	configuring target libraries.

2011-01-31  Alexandre Oliva  <aoliva@redhat.com>

	Reverted:
	2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
	PR debug/45136
	PR debug/45130
	* haifa-sched.c (get_ebb_head_tail): Move notes across boundary
	debug insns.
	(no_real_insns_p, schedule_block, set_priorities): Drop special
	treatment of boundary debug insns.
	* sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
	* sched-ebb.c (schedule_ebbs): Don't skip debug insns.
	* sched-int.h (DEBUG_INSN_SCHED_P): Remove.
	(BOUNDARY_DEBUG_INSN_P): Likewise.
	(SCHEDULE_DEBUG_INSN_P): Likewise.
	* sched-rgn.c (init_ready_list): Drop special treatment of
	boundary debug insns.
	* final.c (rest_of_clean-state): Clear notes' BB.

2011-01-31  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (print_operand): Rearrange addends in
	toc relative expressions as we do in print_operand_address.

2011-01-30  Kazu Hirata  <kazu@codesourcery.com>

	* doc/extend.texi: Follow spelling conventions.
	* doc/invoke.texi: Fix a typo.

2011-01-30  Joseph Myers  <joseph@codesourcery.com>

	* config/hpux11.opt: New.
	* config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
	ia64*-*-hpux*): Use hpux11.opt.

2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>

	* config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
	to tmake_file.

2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (hppa-hp-hpux10): Remove references to HP
	support sites.

2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Binaries): Remove outdated reference for
	Motorola 68HC11/68HC12 downloads.

2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (Thread-Local): Adjust reference to Ulrich
	Drepper's paper.

2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR bootstrap/47147
	* ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
	used by NetBSD.

2011-01-28  Ahmad Sharif  <asharif@google.com>

	* value-prof.c (check_counter): Corrected error message.

2011-01-29  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.c (arm_legitimize_reload_address): New.
	* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
	arm_legitimize_reload_address.
	* config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.

2011-01-28  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_define): Ignore macros whose definitions include
	two adjacent operands.

2011-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/42894
	* varasm.c (force_const_mem): Store copy of x in desc->constant
	instead of x itself.
	* expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
	itself into REG_EQUAL note.

2011-01-28  Joseph Myers  <joseph@codesourcery.com>

	* config/freebsd.opt (posix, rdynamic): New Driver options.

2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
	-Bstatic/-Bdynamic.
	* configure: Regenerate.

2011-01-27  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
	* config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.

2011-01-27  Anatoly Sokolov  <aesok@post.ru>

	* config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
	* config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
	(s390_preferred_reload_class): Make static. Change return and
	'rclass' argument type to reg_class_t.

2011-01-27  Jan Hubicka  <jh@suse.cz>

	PR middle-end/46949
	* cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
	(process_function_and_variable_attributes): Check defined weakrefs.

2011-01-27  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/47228
	* tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
	build_ref_for_offset.

2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-elf.h (ASM_SPEC): Remove.

2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>

	PR rtl-optimization/46856
	* postreload.c (reload_combine_recognize_const_pattern): Do not
	separate cc0 setter and user on cc0 targets.

2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR c/43082
	* c-typeck.c (c_objc_common_truthvalue_conversion): If we are
	passed a VOID_TYPE expression, immediately emit an error and
	return error_mark_node.

2011-01-26  Jeff Law  <law@redhat.com>

	PR rtl-optimization/47464
	* df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
	rather than may_trap_p as needed.

2011-01-26  DJ Delorie  <dj@redhat.com>

	PR rtl-optimization/46878
	* combine.c (insn_a_feeds_b): Check for the implicit cc0
	setter/user dependency as well.

2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/44469
	* cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
	after removing trivially dead basic blocks.

2011-01-26  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
	* config/frv/frv.h (LINK_SPEC): Likewise.
	* config/i386/netware.h (LINK_SPEC): Likewise.
	* config/m68k/linux.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
	* config/rs6000/sysv4.h (LINK_SPEC): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/sparc/linux.h (ASM_SPEC): Likewise.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.
	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.

2011-01-26  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
	* config/frv/frv.h (ASM_SPEC): Likewise.
	* config/m68k/linux.h (ASM_SPEC): Likewise.
	* config/pa/pa-linux.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/sparc/linux.h (ASM_SPEC): Likewise.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.
	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.

2011-01-26  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
	* config/frv/frv.h (LINK_SPEC): Likewise.
	* config/rs6000/sysv4.h (LINK_SPEC): Likewise.

2011-01-26  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
	* config/frv/frv.h (ASM_SPEC): Likewise.
	* config/i386/sol2-10.h (ASM_SPEC): Likewise.
	* config/m68k/linux.h (ASM_SPEC): Likewise.
	* config/pa/pa-linux.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
	* config/sparc/linux.h (ASM_SPEC): Likewise.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.
	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
	* config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.

2011-01-26  Steve Ellcey  <sje@cup.hp.com>

	PR target/46997
	* config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
	(*mux2): Ditto.
	(vec_extract_evenodd_help): Ditto.
	(vec_extract_evenv4hi): Ditto.
	(vec_extract_oddv4hi): Ditto.
	(vec_interleave_lowv2si): Ditto.
	(vec_interleave_highv2si): Ditto.
	(vec_extract_evenv2si): Ditto.
	(vec_extract_oddv2si: Ditto.
	(vec_pack_trunc_v2si): Ditto.

2011-01-22  Jan Hubicka  <jh@suse.cz>

	PR target/47237
	* cgraph.h (cgraph_local_info): New field can_change_signature.
	* ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
	signature can change.
	(ipcp_estimate_growth): Call sequence simplify only if calle signature
	can change.
	(ipcp_insert_stage): Only compute args_to_skip if signature can change.
	(cgraph_function_versioning): We can not change signature of functions
	that don't allow that.
	* lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
	(lto_input_node): Likewise.
	* ipa-inline.c (compute_inline_parameters): Compute
	local.can_change_signature.
	* ipa-split.c (visit_bb): Never split away APPLY_ARGS.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
	functions that can not change signature.
	* i386.c (ix86_function_regparm, ix86_function_sseregparm,
	init_cumulative_args): Do not use local calling conventions
	for functions that can not change signature.

2011-01-22  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.

2011-01-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47190
	* cgraphunit.c (process_common_attributes): New function.
	(process_function_and_variable_attributes): Use it.

2011-01-26  Richard Guenther  <rguenther@suse.de>

	PR lto/47423
	* cgraphbuild.c (record_eh_tables): Record reference to personality
	function.

2011-01-26  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45454
	* sel-sched.c (moveup_expr): Don't let debug insns prevent
	non-debug insns from moving up.

2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	* config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
	t-dlldir{,-x} fragment for build and add it to tmake_file.
	(i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
	* Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
	* config/i386/t-dlldir: New file.
	(SHLIB_DLLDIR): Define.
	* config/i386/t-dlldir-x: New file.
	(SHLIB_DLLDIR): Define.
	* config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
	(SHLIB_INSTALL): Use it.

2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>

	PR target/47246
	* config/arm/arm.c (thumb2_legitimate_index_p): Change the
	lower bound of the allowed Thumb-2 coprocessor load/store
	index range to -256. Add explaining comment.

2011-01-25  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_define): Improve lexing of macro expansion to only
	accept expressions which match Go spec.

2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR c++/43601
	* tree.c (handle_dll_attribute): Handle it.
	* doc/extend.texi (@item dllexport): Mention it.
	* doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.

2011-01-25  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/26854
	* c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
	(decl_jump_unsafe): Move higher in file, with no other change.
	(bind): Set has_jump_unsafe_decl if appropriate.
	(update_label_decls): Test has_jump_unsafe_decl to avoid loop.
	(check_earlier_gotos): Likewise.
	(c_check_switch_jump_warnings): Likewise.

2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi (Warning Options): Add missing hyphen.
	(-fprofile-dir): Minor grammatical fixes.
	(-fbranch-probabilities): Likewise.

2011-01-25  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45136
	PR debug/45130
	* haifa-sched.c (get_ebb_head_tail): Move notes across boundary
	debug insns.
	(no_real_insns_p, schedule_block, set_priorities): Drop special
	treatment of boundary debug insns.
	* sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
	* sched-ebb.c (schedule_ebbs): Don't skip debug insns.
	* sched-int.h (DEBUG_INSN_SCHED_P): Remove.
	(BOUNDARY_DEBUG_INSN_P): Likewise.
	(SCHEDULE_DEBUG_INSN_P): Likewise.
	* sched-rgn.c (init_ready_list): Drop special treatment of
	boundary debug insns.
	* final.c (rest_of_clean-state): Clear notes' BB.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (LAMBDA_H): Removed.
	(TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
	(OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
	lambda-trans.o, and tree-loop-linear.o.
	(lto-symtab.o): Remove dependence on LAMBDA_H.
	(tree-loop-linear.o): Remove rule.
	(lambda-mat.o): Same.
	(lambda-trans.o): Same.
	(lambda-code.o): Same.
	(tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
	(tree-vect-slp.o): Same.
	* hwint.h (gcd): Moved here.
	(least_common_multiple): Same.
	* lambda-code.c: Removed.
	* lambda-mat.c: Removed.
	* lambda-trans.c: Removed.
	* lambda.h: Removed.
	* tree-loop-linear.c: Removed.
	* lto-symtab.c: Do not include lambda.h.
	* omega.c (gcd): Removed.
	* passes.c (init_optimization_passes): Remove pass_linear_transform.
	* tree-data-ref.c (print_lambda_vector): Moved here.
	(lambda_vector_copy): Same.
	(lambda_matrix_copy): Same.
	(lambda_matrix_id): Same.
	(lambda_vector_first_nz): Same.
	(lambda_matrix_row_add): Same.
	(lambda_matrix_row_exchange): Same.
	(lambda_vector_mult_const): Same.
	(lambda_vector_negate): Same.
	(lambda_matrix_row_negate): Same.
	(lambda_vector_equal): Same.
	(lambda_matrix_right_hermite): Same.
	* tree-data-ref.h: Do not include lambda.h.
	(lambda_vector): Moved here.
	(lambda_matrix): Same.
	(dependence_level): Same.
	(lambda_transform_legal_p): Removed declaration.
	(lambda_collect_parameters): Same.
	(lambda_compute_access_matrices): Same.
	(lambda_vector_gcd): Same.
	(lambda_vector_new): Same.
	(lambda_vector_clear): Same.
	(lambda_vector_lexico_pos): Same.
	(lambda_vector_zerop): Same.
	(lambda_matrix_new): Same.
	* tree-flow.h (least_common_multiple): Removed declaration.
	* tree-parloops.c (lambda_trans_matrix): Moved here.
	(LTM_MATRIX): Same.
	(LTM_ROWSIZE): Same.
	(LTM_COLSIZE): Same.
	(LTM_DENOMINATOR): Same.
	(lambda_trans_matrix_new): Same.
	(lambda_matrix_vector_mult): Same.
	(lambda_transform_legal_p): Same.
	* tree-pass.h (pass_linear_transform): Removed declaration.
	* tree-ssa-loop.c (tree_linear_transform): Removed.
	(gate_tree_linear_transform): Removed.
	(pass_linear_transform): Removed.
	(gate_graphite_transforms): Make flag_tree_loop_linear an alias of
	flag_loop_interchange.

2011-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47265
	PR tree-optimization/47443
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
	if name still has some uses.

2011-01-25  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/47382
	* gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
	(gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.

2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
	sjlj_except_unwind_info.

2011-01-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47426
	* tree-ssa-structalias.c (ipa_pta_execute): Make externally
	visible functions results escape.

2011-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/45701
	* config/arm/arm.c (any_sibcall_uses_r3): New function.
	(arm_get_frame_offsets): Use it.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47271
	* tree-if-conv.c (bb_postdominates_preds): New.
	(if_convertible_bb_p): Call bb_postdominates_preds.
	(if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
	(predicate_scalar_phi): Call bb_postdominates_preds.

2011-01-25  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
	* config/rx/rx.c (rx_function_value): Likewise.
	(rx_promote_function_mode): Likewise.
	(gen_safe_add): Place an outsized immediate value inside an UNSPEC
	in order to make it legitimate.
	* config/rx/rx.md (adddi3_internal): If the second operand is a MEM
	make sure that the first operand is the same as the result register.
	(addsi3_unspec): Delete.
	(subdi3): Do not accept immediate operands.
	(subdi3_internal): Likewise.

2011-01-25  Jeff Law  <law@redhat.com>

	PR rtl-optimization/37273
	* ira-costs.c (scan_one_insn): Detect constants living in memory and
	handle them like argument loads from stack slots.  Do not double
	count memory for memory constants and argument loads from stack slots.

2011-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47427
	PR tree-optimization/47428
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
	coalesce if the new root var would be TREE_READONLY.

2011-01-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47414
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
	correct type for TBAA.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
	(close_phi_written_to_memory): Call for_each_index with
	dr_indices_valid_in_loop.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
	when it is initialized.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
	call to graphite_find_data_references_in_stmt.
	* graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
	(try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
	call to graphite_find_data_references_in_stmt.
	(analyze_drs_in_stmts): Same.
	* tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
	in which the scalar analysis of indices is performed.
	(create_data_ref): Same.  Update call to dr_analyze_indices.
	(find_data_references_in_stmt): Update call to create_data_ref.
	(graphite_find_data_references_in_stmt): Same.
	* tree-data-ref.h (graphite_find_data_references_in_stmt): Update
	declaration.
	(create_data_ref): Same.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
	call to create_data_ref.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Move
	rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
	VAR_DECL, PARM_DECL, and RESULT_DECL.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (reduction_dr_1): Allow several reductions
	in a reduction PBB.
	* graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
	that have already been marked as PBB_IS_REDUCTION.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (same_close_phi_node): New.
	(remove_duplicate_close_phi): New.
	(make_close_phi_nodes_unique): New.
	(canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
	* graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
	of both data references to be the same.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_lexicographical_constraint): Remove
	the gdim parameter.
	(build_lexicographical_constraint): Adjust call to
	ppl_powerset_is_empty.
	(dependence_polyhedron): Same.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.
	* graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
	parameter.
	* graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c
	(translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
	(close_phi_written_to_memory): New.
	(translate_scalar_reduction_to_array): Call close_phi_written_to_memory
	and unshare_expr.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/install.texi: Update the expected version number of PPL to 0.11.
	* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
	#if PPL_VERSION_MINOR < 11.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c: Include graphite-cloog-util.h.
	(new_poly_ddr): Inlined into dependence_polyhedron.
	(free_poly_ddr): Moved close by new_poly_ddr.
	(dependence_polyhedron_1): Renamed dependence_polyhedron.
	Early return NULL when ppl_powerset_is_empty returns true.
	(dependence_polyhedron): Renamed new_poly_ddr.  Call only once
	poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
	(graphite_legal_transform_dr): Call new_poly_ddr.
	(graphite_carried_dependence_level_k): Same.
	(dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
	(dot_transformed_deps_stmt_1): Removed.
	(dot_deps_stmt_1): Call dot_deps_stmt_2.
	(dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
	(dot_deps_1): Call dot_deps_2.
	* Makefile.in (graphite-dependences.o): Add missing dependence on
	graphite-cloog-util.h.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
	(build_lexicographical_constraint): Same.
	(dependence_polyhedron_1): Same.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.
	* graphite-ppl.c (ppl_powerset_is_empty): New.
	* graphite-ppl.h (ppl_powerset_is_empty): Declared.
	* tree-data-ref.c (dump_data_reference): Print the basic block index.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_pairwise_scheduling): Correctly compute
	the "a followed by b" relation and document it.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_lexicographical_constraint): Stop the
	iteration when the bag of constraints is empty.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
	nest and two loop depths as parameters.
	(lst_try_interchange_loops): Call lst_interchange_profitable_p after
	lst_perfect_nestify.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (print_pddr): Call
	ppl_io_fprint_Pointset_Powerset_C_Polyhedron.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (debug_gmp_value): New.
	* graphite-ppl.h (debug_gmp_value): Declared.

2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* doc/install.texi: Document availability of cloog-0.16.

2011-01-25  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
	invalid postdominance info.

2011-01-24  Jan Hubicka  <jh@suse.cz>

	PR c/21659
	* doc/extend.texi (weak pragma): Drop claim that it must
	appear before definition.
	* varasm.c (merge_weak, declare_weak): Only sanity check
	that DECL is not output at a time it is declared weak.

2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* machmode.def: Fixed comments.

2011-01-24  Kai Tietz  <kai.tietz@onevision.com>

	* emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.

2011-01-24  Paul Koning  <ni1d@arrl.net>

	* builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
	WORDS_BIG_ENDIAN.

2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* config/i386/i386.c: Include sbitmap.h and fibheap.h.
	(block_info): Add scanned and prev.
	(move_or_delete_vzeroupper_2): Return if the basic block
	has been scanned and the upper 128bit state is unchanged
	from the last scan.
	(move_or_delete_vzeroupper_1): Return true if the exit
	state is changed.
	(move_or_delete_vzeroupper): Visit basic blocks using the
	work-list based algorithm based on vt_find_locations in
	var-tracking.c.

	* config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).

2011-01-24  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
	* config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
	-mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
	then define __v850e1__.
	* doc/invoke.texi: Document -mv850es.

2011-01-24  Richard Henderson  <rth@redhat.com>

	* config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
	compound unordered comparisons.
	* config/rx/rx.c (rx_split_fp_compare): Remove.
	* config/rx/rx-protos.h: Update.
	* config/rx/rx.md (gcc_conds, rx_conds): Remove.
	(cbranchsf4): Don't call rx_split_fp_compare.
	(*cbranchsf4): Use rx_split_cbranch.
	(*cmpsf): Don't accept "i" constraint.
	(*conditional_branch): Only valid after reload.
	(cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.

2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47385
	* config/rs6000/altivec.md (vector constant splitters): Add
	support for creating vector single precision constants if -mvsx is
	used and we would create the constant using Altivec primitives.

2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/47166
	* reload1.c (emit_reload_insns): Disable the spill_reg_store
	mechanism for PRE_MODIFY and POST_MODIFY.
	(inc_for_reload): For PRE_MODIFY, return the insn that sets the
	reloadreg.

2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>

	* compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.

2011-01-22  Jan Hubicka  <jh@suse.cz>

	PR lto/47333
	* lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.

2011-01-22  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/43884
	PR lto/44334
	* predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
	* doc/invoke.texi (hot-bb-frequency-fraction): Update docs.

2011-01-22  Anatoly Sokolov  <aesok@post.ru>

	* config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/s390/s390.c (s390_register_move_cost,
	s390_memory_move_cost): New.
	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.

2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR middle-end/47401
	* except.c (sjlj_assign_call_site_values): Move setting the
	crtl->uses_eh_lsda flag to ...
	(sjlj_mark_call_sites): ... here.
	(sjlj_emit_function_enter): Support NULL dispatch label.
	(sjlj_build_landing_pads): In a function with no landing pads
	that still has must-not-throw regions, generate code to register
	a personality function with empty LSDA.

2011-01-21  Richard Henderson  <rth@redhat.com>

	* config/rx/rx.c (TARGET_FLAGS_REGNUM): New.

	* config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.

	* compare-elim.c: New file.
	* Makefile.in (OBJS-common): Add it.
	(compare-elim.o): New.
	* common.opt (fcompare-elim): New.
	* opts.c (default_options_table): Add OPT_fcompare_elim.
	* tree-pass.h (pass_compare_elim_after_reload): New.
	* passes.c (init_optimization_passes): Add it.
	* recog.h: Protect against re-inclusion.
	* target.def (TARGET_FLAGS_REGNUM): New POD hook.
	* doc/invoke.texi (-fcompare-elim): Document it.
	* doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
	* doc/tm.texi: Rebuild.

2011-01-22  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (cstoresf4): Pass comparison operator to
	rx_split_fp_compare.

2011-01-22  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (UNSPEC_CONST): New.
	(deallocate_and_return): Wrap the amount popped off the stack in
	an UNSPEC_CONST in order to stop it being rejected by
	-mmax-constant-size.
	(pop_and_return): Add a "(return)" rtx.
	(call): Drop the immediate operand.
	(call_internal): Likewise.
	(call_value): Likewise.
	(call_value_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(sibcall): Likewise.  Generate an explicit call using
	sibcall_internal.
	(sibcall_value): Likewise.
	(mov<>): FAIL if a constant operand is not legitimate.
	(addsi3_unpsec): New pattern.

	* config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
	(ok_for_max_constant): New function.
	(gen_safe_add): New function.
	(rx_expand_prologue): Use gen_safe_add.
	(rx_expand_epilogue): Likewise.
	(rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
	UNSPEC CONSTs.

2011-01-21  Jeff Law  <law@redhat.com>

	PR tree-optimization/47053
	* tree-ssa-dse.c (need_eh_cleanup): New bitmap.
	(dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
	statements are deleted.
	(tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
	is nonempty, then purge dead edges and cleanup the CFG.

2011-01-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47402
	Temporarily revert:
	2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
	PR debug/47106
	* tree-dfa.c (create_var_ann): Mark variable as used.

2011-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45566
	* except.c (convert_to_eh_region_ranges): Emit queued no-region
	notes from other section in hot/cold partitioning even if
	last_action is -3.  Increment call_site_base.

	PR rtl-optimization/47366
	* fwprop.c (forward_propagate_into): Return bool.  If
	any changes are made, -fnon-call-exceptions is used and
	REG_EH_REGION note is present, call purge_dead_edges
	and return true if it purged anything.
	(fwprop_addr): Adjust callers, call cleanup_cfg (0) if
	any EH edges were purged.

2011-01-21  Jeff Law  <law@redhat.com>

	PR rtl-optimization/41619
	* caller-save.c (setup_save_areas): Break out code to determine
	which hard regs are live across calls by examining the reload chains
	so that it is always used.
	Eliminate code which checked REG_N_CALLS_CROSSED.

2011-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47355
	* tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
	NOP has non-debug uses beyond PHIs in new_bb.

2011-01-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47106
	* cfgexpand.c (account_used_vars_for_block): Only account vars
	that are annotated as used.
	(estimated_stack_frame_size): Don't set TREE_USED.
	* tree-dfa.c (create_var_ann): Mark variable as used.

2011-01-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47395
	* tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.

2011-01-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47365
	* tree-ssa-sccvn.h (vn_lookup_kind): Declare.
	(vn_reference_lookup_pieces): Adjust.
	(vn_reference_lookup): Likewise.
	* tree-ssa-sccvn.c (vn_walk_kind): New static global.
	(vn_reference_lookup_3): Only look through kills if in
	VN_WALKREWRITE mode.
	(vn_reference_lookup_pieces): Adjust.
	(vn_reference_lookup): Likewise.
	(visit_reference_op_load): Likewise.
	(visit_reference_op_store): Likewise.
	* tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
	(compute_avail): Likewise.
	(eliminate): Likewise.

2011-01-21  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
	DECL_IGNORED_P non-reg vars if they are used.

	PR tree-optimization/47391
	* varpool.c (const_value_known_p): Return false if
	decl is volatile.

2011-01-21  Kai Tietz  <kai.tietz@onevision.com>

	PR bootstrap/47215
	* config/i386/i386.c (ix86_local_alignment): Handle
	case for va_list_type_node is nil.
	(ix86_canonical_va_list_type): Likewise.

2011-01-21  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
	builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.

2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (define_attr type): Rename f_load
	and f_store to f_fpa_load and f_fpa_store. Update.
	(write_conflict): Deal with rename fallout.
	(*push_fp_multi): Likewise.
	* config/arm/fpa.md (f_load): Use f_fpa_load.
	(f_store): Use f_fpa_store.
	(*movsf_fpa): Likewise.
	(*movdf_fpa): Likewise.
	(*movxf_fpa): Likewise.
	(*thumb2_movsf_fpa): Likewise.
	(*thumb2_movdf_fpa): Likewise.
	(*thumb2_movxf_fpa): Likewise.
	* config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
	f_loadd and f_stored.
	(*thumb2_movdi_vfp): Likewise.
	(*thumb2_movsf_vfp): Fix attribute to f_loads.
	(*thumb2_movsi_vfp): Likewise.
	* config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
	Use f_loads instead of f_load.
	* config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.

2011-01-20  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
	* config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	(xtensa_mode_dependent_address_p): New function.
	(constantpool_address_p): Make static. Change return type to bool.
	Change argument type to const_rtx. Use CONST_INT_P predicate.

2011-01-20  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46583
	* tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.

2011-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47283
	* cfgexpand.c (expand_debug_expr): Instead of generating
	(mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
	etc. handling.

2011-01-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47370
	* tree-inline.c (remap_gimple_op_r): Recurse manually for
	the pointer operand of MEM_REFs.

2011-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46130
	* ipa-split.c (consider_split): If return_bb contains non-virtual
	PHIs other than for retval or if split_function would not adjust it,
	refuse to split.

2011-01-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47167
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
	Revert previous change, only avoid enumeral type changes.

2011-01-19  Mike Stump  <mikestump@comcast.net>

	* doc/tm.texi.in (BRANCH_COST): Englishify.
	* doc/tm.texi (BRANCH_COST): Likewise.

2011-01-19  Dodji Seketeli  <dodji@redhat.com>

	PR c++/47291
	* dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
	(gen_scheduled_generic_parms_dies): New functions.
	(gen_struct_or_union_type_die): Schedule template parameters DIEs
	generation for the end of CU compilation.
	(dwarf2out_finish): Generate template parameters DIEs here.

2011-01-19  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46240
	* tree-into-ssa.c (maybe_register_def): Do not attempt to add
	debug bind stmt on merge edges.

2011-01-19  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47079
	PR debug/46724
	* function.c (instantiate_expr): Instantiate incoming rtl of
	implicit arguments, and recurse on VALUE_EXPRs.
	(instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
	* var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.

2011-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* c-parser.c (c_parser_for_statement): Initialize
	collection_expression.

2011-01-19  Joseph Myers  <joseph@codesourcery.com>

	* config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.

2011-01-19  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
	(LINK_SHLIB_SPEC): Don't use %(link_path).
	(SUBTARGET_EXTRA_SPECS): Remove link_path.

2011-01-19  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
	(NO_SHARED_LIB_SUPPORT): Remove.
	(LINK_SHLIB_SPEC): Remove one conditional definition.

2011-01-19  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
	%{call_shared}.
	* config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
	* config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
	* config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
	%{call_shared} and conditionals on these options not being passed.
	* config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
	%{call_shared}.

2011-01-19  Jakub Jelinek  <jakub@redhat.com>

	* ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
	simplify.

	* ipa-split.c: Spelling fixes.

2011-01-19  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
	(*mulsi3): Likewise.

	* longlong.h [__mn10300__] (count_leading_zeros): New.
	[__mn10300__] (umul_ppmm, smul_ppmm): New.
	[__mn10300__] (add_ssaaaa, subddmmss): New.
	[__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
	[__mn10300__] (UMUL_TIME, UDIV_TIME): New.

2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.

2011-01-19  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.md (addsi3_flags): New.
	(addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
	(subsi3_flags, subc_internal, subdi3): New.
	(subdi3_internal, *subdi3_degenerate): New.
	* config/mn10300/predicates.md (reg_or_am33_const_operand): New.

	* config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
	(mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
	(mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
	* config/mn10300/mn10300-protos.h: Update.
	* config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
	(return_ret): Likewise.  Rename from return_internal_regs.
	(return_internal): Remove.

	* config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
	(mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
	(mn10300_legitimate_constant_p): Likewise.
	(mn10300_can_use_return_insn): Use mn10300_initial_offset.
	(mn10300_frame_size): New.
	(mn10300_expand_prologue): Use it.
	(mn10300_expand_epilogue): Likewise.
	(mn10300_initial_offset): Likewise.
	* config/mn10300/mn10300-protos.h: Update.
	* config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
	* config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
	(prologue, epilogue, return_internal): Tidy output code.
	(mn10300_store_multiple_operation, return): Likewise.
	(int_label, pop_pic_reg, GOTaddr2picreg): Remove.
	(am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
	(add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
	(load_pic, am33_load_pic): New.
	(mn10300_load_pic0, mn10300_load_pic1): New.

	* config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
	* config/mn10300/mn10300.c (CC_FLAG_Z): New.
	(CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
	(cc_flags_for_mode, cc_flags_for_code): New.
	(mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
	overflow flag is not valid.  Validate that the flags we need
	for the comparison are valid.
	(mn10300_output_cmp): Remove.
	(mn10300_output_add): New.
	(mn10300_select_cc_mode): Use cc_flags_for_code.
	(mn10300_split_cbranch): New.
	(mn10300_match_ccmode): New.
	(mn10300_split_and_operand_count): New.
	* config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
	to the function.
	* config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
	(addsi3): ... here.  Use mn10300_output_add.
	(*addsi3_flags): New.
	(*am33_subsi3, *mn10300_subsi3): Merge...
	(subsi3): ... here.  Use attribute isa.
	(*subsi3_flags): New.
	(negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
	when possible.
	(*am33_andsi3, *mn10300_andsi3): Merge...
	(andsi3): ... here.
	(*andsi3_flags): New.
	(andsi3 splitters): New.
	(*am33_iorsi3, *mn10300_iorsi3): Merge...
	(iorsi3): ... here.
	(*iorsi3_flags): New.
	(*am33_xorsi3, *mn10300_xorsi3): Merge...
	(xorsi3): ... here.
	(*xorsi3_flags): New.
	(*am33_cmpsi2, *mn10300_cmplsi2): Merge...
	(one_cmplsi2): ... here.
	(*one_cmplsi2_flags): New.
	(*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
	instead of "dax" in constraints.  Use mn10300_split_cbranch.
	(*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
	use matching constraints to eliminate a self-comparison.
	(*integer_conditional_branch): Rename from integer_conditional_branch.
	Use int_mode_flags to match CC_REG.
	(*cbranchsi4_btst, *btstsi): New.
	(*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
	mn10300_split_cbranch.
	(*am33_cmpsf): Rename from am33_cmpsf.
	(*float_conditional_branch): Rename from float_conditional_branch.
	(*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
	(zero_extendqisi2): ... here.
	(*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
	(zero_extendhisi2): ... here.
	(*extendqisi2_am33, *extendqisi2_mn10300): Merge...
	(extendqisi2): ... here.
	(*extendhisi2_am33, *extendhisi2_mn10300): Merge...
	(extendhisi2): ... here.
	(*am33_ashlsi3, *mn10300_ashlsi3): Merge...
	(ashlsi3): ... here.
	(*am33_lshrsi3, *mn10300_lshrsi3): Merge...
	(lshrsi3): ... here.
	(*am33_ashrisi3, *mn10300_ashrsi3): Merge...
	(ashrsi3): ... here.
	(consecutive add peephole): Remove.
	* config/mn10300/predicates.md (label_ref_operand): New.
	(int_mode_flags): New.
	(CCZN_comparison_operator): New.

	* config/mn10300/mn10300.md (UNSPEC_EXT): New.
	(throughput_42_latency_43): New reservation.
	(mulsidi3, umulsidi3): New expanders.
	(mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
	the MDR register to allocation; separately allocate the low and
	high parts of the DImode result.
	(umulsidi3_internal): Similarly.
	(*am33_mulsi3, *mn10300_mulsi3): Merge into ...
	(*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
	(udivsi3, umodsi3): Remove.
	(udivmodsi4, divmodsi4): New expanders.
	(*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
	(*divmodsi4): Simiarly.
	(ext_internal): New.

	* config/mn10300/constraints.md ("z"): New constraint.
	* config/mn10300/mn10300.h (MDR_REGNUM): Remove.
	(FIXED_REGISTERS): Don't fix MDR.
	(CALL_USED_REGSITERS): Reformat nicely.
	(REG_ALLOC_ORDER): Add MDR.
	(enum regclass): Add MDR_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
	(IRA_COVER_CLASSES): Add MDR_REGS.
	(REGNO_REG_CLASS): Handle MDR_REG.
	* config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
	(mn10300_register_move_cost): Likewise.
	* config/mn10300/mn10300.md (MDR_REG): New.
	(*movsi_internal): Handle moves to/from MDR_REGS.

	* config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
	POST_MODIFY.
	(mn10300_secondary_reload): Tidy combination reload classes.
	(mn10300_legitimate_address_p): Allow post-modify and reg+reg
	addresses for AM33.  Allow symbolic offsets for reg+imm.
	(mn10300_regno_in_class_p): New.
	(mn10300_legitimize_reload_address): New.
	* config/mn10300/mn10300.h (enum reg_class): Remove
	DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
	SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
	SP_OR_GENERAL_REGS.
	(REG_CLASS_NAMES): Update to match.
	(REG_CLASS_CONTENTS): Likewise.
	(INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
	(BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
	(REGNO_IN_RANGE_P): Remove.
	(REGNO_DATA_P): Use mn10300_regno_in_class_p.
	(REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
	(REGNO_STRICT_OK_FOR_BASE_P): Likewise.
	(REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
	(REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
	(REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
	(REGNO_GENERAL_P): New.
	(HAVE_POST_MODIFY_DISP): New.
	(USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
	(LEGITIMIZE_RELOAD_ADDRESS): New.
	* config/mn10300/mn10300-protos.h: Update.

	* config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
	DATA_REGS for AM33 stack-pointer destination.
	(mn10300_preferred_output_reload_class): Likewise.
	(mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
	into a form appropriate for ...
	(TARGET_SECONDARY_RELOAD): New.
	* config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
	* config/mn10300/mn10300-protos.h: Update.
	* config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
	reload_insi; use the "A" constraint for the scratch; handle AM33
	moves of sp to non-address registers.

	* config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
	(*movqi_internal): ... here.
	(*am33_movhi, *mn10300_movhi): Merge into...
	(*movhi_internal): ... here.
	(*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
	as the source/destination of moves from/to SP.
	(movsf): Only allow for AM33-2.
	(*movsf_internal): Use "r" instead of "dax"; use "F" instead of
	any integer constant constraint.  Only allow for AM33-2.  Tidy
	all of the alternative outputs.
	(movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
	(udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
	for MN103.
	(udivsi3, umodsi3): New patterns for MN103 only.

2011-01-19  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi.in: Spell out that a lack of register class unions
	can lead to ICEs.
	* doc/tm.texi: Regenerate.

2011-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/47337
	* dce.c (check_argument_store): New function.
	(find_call_stack_args): Ignore debug insns.  Use check_argument_store.

	PR tree-optimization/47290
	* tree-eh.c (infinite_empty_loop_p): New function.
	(cleanup_empty_eh): Use it.

2011-01-18  Steve Ellcey  <sje@cup.hp.com>

	PR target/46997
	* ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
	(a64_expand_widen_sum): Ditto.
	* vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
	(vec_extract_evenodd_help): Ditto.
	(vec_extract_evenv4hi): Ditto.
	(vec_extract_oddv4hi): Ditto.
	(vec_extract_evenv2si): Ditto.
	(vec_extract_oddv2si): Ditto.
	(vec_extract_evenv2sf): Ditto.
	(vec_extract_oddv2sf): Ditto.
	(vec_pack_trunc_v4hi: Ditto.
	(vec_pack_trunc_v2si): Ditto.
	(vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
	(vec_interleave_highv8qi): Ditto.
	(mix1_r): Ditto.
	(vec_extract_oddv8qi): Ditto.
	(vec_interleave_lowv4hi): Ditto.
	(vec_interleave_highv4hi): Ditto.
	(vec_interleave_lowv2si): Ditto.
	(vec_interleave_highv2si): Ditto.

2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* doc/extend.texi: Mention __float128 support on hppa HP-UX.
	* config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
	* config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
	(pa_c_mode_for_suffix): New.
	(TARGET_EXPAND_BUILTIN): Define.
	(TARGET_C_MODE_FOR_SUFFIX): Define.
	(pa_builtins): Define.
	(pa_init_builtins): Register __float128 type and init new support
	builtins.
	* config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
	* config/pa/quadlib.c (_U_Qfcopysign): New.

2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/46894
	* explow.c (allocate_dynamic_stack_space): Do not assume more than
	BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
	are defined.

2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR tree-optimization/47179
	* config/spu/spu.c (spu_ref_may_alias_errno): New function.
	(TARGET_REF_MAY_ALIAS_ERRNO): Define.

2011-01-18  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/47216
	* emit-rtl.c: Include tree-flow.h.
	(set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
	of replicating it with different semantics.
	* Makefile.in (emit-rtl.o): Adjust.

2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
	(cortex_a9_dp): Handle neon types correctly.

2011-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/47299
	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
	subtarget.  Use normal multiplication if both operands are constants.
	* expmed.c (expand_widening_mult): Don't try to optimize constant
	multiplication if op0 has VOIDmode.  Convert op1 constant to mode
	before using it.

2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/lto.texi (LTO): Ensure two spaces after period.  Fix
	spacing after 'e.g.', typos, comma, hyphenation.

2011-01-17  Richard Henderson  <rth@redhat.com>

	* config/rx/predicates.md (rx_constshift_operand): Use match_test.
	(rx_restricted_mem_operand): New.
	(rx_shift_operand): Use register_operand.
	(rx_source_operand, rx_compare_operand): Likewise.
	* config/rx/rx.md (addsi3_flags): New expander.
	(adddi3): Rewrite as expander.
	(adc_internal, *adc_flags, adddi3_internal): New patterns.
	(subsi3_flags): New expander.
	(subdi3): Rewrite as expander.
	(sbb_internal, *sbb_flags, subdi3_internal): New patterns.

	* config/rx/rx.c (RX_BUILTIN_SAT): Remove.
	(rx_init_builtins): Remove sat builtin.
	(rx_expand_builtin): Likewise.
	* config/rx/rx.md (ssaddsi3): New.
	(*sat): Rename from sat.  Represent the CC_REG input.

	* config/rx/predicates.md (rshift_operator): New.
	* config/rx/rx.c (rx_expand_insv): Remove.
	* config/rx/rx-protos.h: Update.
	* config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
	operand to the canonical position.
	(*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
	(*bitclr, *bitclr_in_memory): Similarly.
	(*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
	(insv): Retain the zero_extract in the expansion.

	* config/rx/rx.md (bswapsi2): Use = not + for output reload.
	(bswaphi2, bitinvert, revw): Likewise.

	* config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
	(gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
	* config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
	(stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
	(bitset, bitset_in_memory): Likewise.
	(bitinvert, bitinvert_in_memory): Likewise.
	(bitclr, bitclr_in_memory): Likewise.
	(insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
	(rx_strend, rx_cmpstrn): Likewise.
	(rx_setmem): Likewise.  Make the source BLKmode to match the dest.
	(bitop peep2 patterns): Remove.

	* config/rx/rx.c (rx_match_ccmode): New.
	* config/rx/rx-protos.h: Update.
	* config/rx/rx.md (abssi2): Clobber, don't set flags.
	(addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
	(rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
	(subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
	(fix_truncsfsi2, floatsisf2): Likewise.
	(*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
	(*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
	(*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
	(*subsi3_flags, *xorsi3_flags): New.

	* config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.

	* config/rx/rx.c (rx_print_operand): Remove workaround for
	unsplit comparison operations.

	* config/rx/rx.md (movsicc): Split after reload.
	(*movsicc): Merge *movsieq and *movsine via match_operator.
	(*stcc): New pattern.

	* config/rx/rx.c (rx_float_compare_mode): Remove.
	* config/rx/rx.h (rx_float_compare_mode): Remove.
	* config/rx/rx.md (cstoresi4): Split after reload.
	(*sccc): New pattern.

	* config/rx/predicates.md (label_ref_operand): New.
	(rx_z_comparison_operator): New.
	(rx_zs_comparison_operator): New.
	(rx_fp_comparison_operator): New.
	* config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
	Validate that the flags are set properly for the comparison.
	(rx_gen_cond_branch_template): Remove.
	(rx_cc_modes_compatible): Remove.
	(mode_from_flags): New.
	(flags_from_code): Rename from flags_needed_for_conditional.
	(rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
	(rx_select_cc_mode): Likewise.
	(rx_split_fp_compare): New.
	(rx_split_cbranch): New.
	* config/rx/rx.md (most_cond, zs_cond): Remove iterators.
	(*cbranchsi4): Use match_operator and rx_split_cbranch.
	(*cbranchsf4): Similarly.
	(*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
	match_operator and rx_split_cbranch.
	(*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
	tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
	(*cmpsi): Rename from cmpsi.
	(*tstsi): Rename from tstsi.
	(*cmpsf): Rename from cmpsf; use CC_Fmode.
	(*conditional_branch): Rename from conditional_branch.
	(*reveresed_conditional_branch): Remove.
	(b<code>): Remove expander.
	* config/rx/rx-protos.h: Update.

	* config/rx/rx.c (rx_compare_redundant): Remove.
	* config/rx/rx.md (cmpsi): Don't use it.
	* config/rx/rx-protos.h: Update.

	* config/rx/rx-modes.def (CC_F): New mode.
	* config/rx/rx.c (rx_select_cc_mode): New.
	* config/rx/rx.h (SELECT_CC_MODE): Use it.
	* config/rx/rx-protos.h: Update.

2011-01-17  Richard Henderson  <rth@redhat.com>

	* except.c (dump_eh_tree): Fix stray ; after for statement.

2011-01-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47313
	* tree-inline.c (tree_function_versioning): Move DECL_RESULT
	handling before copying the body.  Properly deal with
	by-reference result in SSA form.

2011-01-17  Ian Lance Taylor  <iant@google.com>

	PR target/47219
	* config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
	(struct_value_alias_set): Don't define.
	(sparc_option_override): Don't set sparc_sr_alias_set and
	struct_value_alias_set.
	(save_or_restore_regs): Use gen_frame_mem rather than calling
	set_mem_alias_set.
	(sparc_struct_value_rtx): Likewise.

2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/47318
	* config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
	(_mm_maskstore_pd): Likewise.
	(_mm_maskload_ps): Likewise.
	(_mm_maskstore_ps): Likewise.
	(_mm256_maskload_pd): Change mask to __m256i.
	(_mm256_maskstore_pd): Likewise.
	(_mm256_maskload_ps): Likewise.
	(_mm256_maskstore_ps): Likewise.

	* config/i386/i386-builtin-types.def: Updated.
	(ix86_expand_special_args_builtin): Likewise.

	* config/i386/i386.c (bdesc_special_args): Update
	__builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
	__builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
	__builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
	__builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.

	* config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
	Use <avxpermvecmode> on mask register.
	(avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.

2011-01-17  Olivier Hainque  <hainque@adacore.com>
	    Michael Haubenwallner  <michael.haubenwallner@salomon.at>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR target/46655
	* xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
	if <= USHRT_MAX in 32-bit mode.

2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/install.texi (Configuration, Specific): Wrap long
	lines in examples.  Allow line wrapping in long options
	and URLs where beneficial for PDF output.

2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_classify_symbol): Don't return
	SYMBOL_PC_RELATIVE for nonlocal labels.

2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.

2011-01-15  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/47276
	* ipa.c (function_and_variable_visibility): Do not try to mark alias
	declarations as needed.

2011-01-15  Martin Jambor  <mjambor@suse.cz>

	* common.opt (fdevirtualize): New flag.
	* doc/invoke.texi (Option Summary): Document it.
	* opts.c (default_options_table): Add devirtualize flag.
	* ipa-prop.c (detect_type_change): Return immediately if
	devirtualize flag is not set.
	(detect_type_change_ssa): Likewise.
	(compute_known_type_jump_func): Likewise.
	(ipa_analyze_virtual_call_uses): Likewise.

2011-01-14  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/45934
	PR tree-optimization/46302
	* ipa-prop.c (type_change_info): New type.
	(stmt_may_be_vtbl_ptr_store): New function.
	(check_stmt_for_type_change): Likewise.
	(detect_type_change): Likewise.
	(detect_type_change_ssa): Likewise.
	(compute_complex_assign_jump_func): Check for dynamic type change.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_known_type_jump_func): Likewise.
	(compute_scalar_jump_functions): Likewise.
	(ipa_analyze_virtual_call_uses): Likewise.
	(ipa_analyze_node): Push and pop cfun, set current_function_decl.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
	* config/i386/i386.opt (msse5): New Alias.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
	* config/sparc/linux64.h (CC1_SPEC): Likewise.
	* config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
	* config/sparc/sparc.h (CC1_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
	-mcpu options.
	* config/sparc/linux64.h (CC1_SPEC): Likewise.
	* config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
	* config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
	* config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
	Likewise.
	* config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.

2011-01-14  Mike Stump  <mikestump@comcast.net>

	* config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
	* config/fr30/fr30.md: Likweise
	(movsi_push): Likewise.
	(movsi_pop): Likewise.
	(enter_func): Likewise.
	* config/moxie/moxie.md (movsi_push): Likewise.
	(movsi_pop): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
	%{no_archive} %{exact_version}.
	* config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
	* config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
	%{no_archive} %{exact_version}.
	* config/mips/openbsd.h (LINK_SPEC): Likewise.
	* config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
	* config/mips/vxworks.h: Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
	ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
	-nodefaultlib.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
	for mcpu not cpu.
	* config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
	CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
	not cpu.
	(CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
	Don't handle -shlib.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/avr/avr.h (CPP_SPEC): Don't handle -posix.
	(CC1_SPEC): Don't handle -profile.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
	* config/mips/mips.h (CC1_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
	* config/mips/mips.h (CC1_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
	* config/m32r/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux64.h (LINK_SPEC): Likewise.
	* config/sparc/linux.h (LINK_SPEC): Likewise.
	* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
	LINK_SPEC): Likewise.
	* config/xtensa/linux.h (LINK_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
	%{version:-v}.
	* config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
	* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.

2011-01-14  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.

2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
	supports -Bstatic/-Bdynamic.
	* configure: Regenerate.

2011-01-14  Jan Hubicka  <jh@suse.cz>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/46037
	* config/darwin.c (darwin_override_options): Honor flag_gtoggle
	when checking debug_info_level. Test write_symbols instead of
	debug_hooks->var_location when setting flag_var_tracking_uninit.

2011-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47179
	* target.def (ref_may_alias_errno): New target hook.
	* targhooks.h (default_ref_may_alias_errno): Declare.
	* targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
	(default_ref_may_alias_errno): New function.
	* target.h (struct ao_ref_s): Declare.
	* tree-ssa-alias.c: Include target.h.
	(call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
	* Makefile.in (tree-ssa-alias.o): Adjust dependencies.
	(targhooks.o): Likewise.
	* doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
	* doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.

2011-01-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.

2011-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47280
	* tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
	return CFG changes.
	(tree_ssa_forward_propagate_single_use_vars): Deal with
	CFG changes from associate_plusminus.

2011-01-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/47281
	Revert
	2011-01-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46076
	* tree-ssa.c (useless_type_conversion_p): Conversions from
	unprototyped to empty argument list function types are useless.

2011-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47286
	* tree-ssa-structalias.c (new_var_info): Register variables are global.

2011-01-14  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/46823
	* tree-inline.c (expand_call_inline): Get fndecl from call graph edge.

2011-01-13  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
	LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/xtensa/xtensa.c (xtensa_libcall_value,
	xtensa_function_value_regno_p): New functions.
	(TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.

2011-01-13  Kai Tietz  <kai.tietz@onevision.com>

	PR c++/47213
	* config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
	PE specific hook.
	* config/i386/i386-protos.h (i386_pe_assemble_visibility):
	New function prototype.
	* config/i386/winnt.c (i386_pe_assemble_visibility):
	Warn only if attribute was specified by user.

2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/47251
	* config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
	floating point.
	(floatunsdidf2_fcfidu): Ditto.

2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (print_operand_address): Replace 'error' with
	'output_operand_lossage'.
	(print_operand): Likewise.

2011-01-13  Jeff Law  <law@redhat.com>

	PR rtl-optimization/39077
	* doc/invoke.texi (max-gcse-insertion-ratio): Document.
	* params.h (MAX_GCSE_INSERTION_RATIO): Define.
	* params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
	* lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
	* gcse.c (prune_insertions_deletions): New function.
	(compute_pre_data): Use it.

2011-01-13  Dodji Seketeli  <dodji@redhat.com>

	PR debug/PR46973
	* dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
	static function.
	(prune_unused_types_mark): Use it.

2011-01-13  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/45352
	* sel-sched.c: Update copyright years.
	(reset_sched_cycles_in_current_ebb): Also recheck the DFA state
	in the advancing loop when we have issued issue_rate insns.

2011-01-12  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
	(TARGET_MD_ASM_CLOBBERS): New.

	* config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
	(TARGET_DELEGITIMIZE_ADDRESS): New.

	* config/mn10300/mn10300.md (UNSPEC_BSCH): New.
	(clzsi2, *bsch): New patterns.

	* config/mn10300/mn10300.md (INT): New mode iterator.
	(*mov<INT>_clr): New pattern, and peep2 to generate it.

	* config/mn10300/mn10300.c (mn10300_option_override): Force enable
	flag_split_wide_types.

	* config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
	(mn10300_trampoline_init): Rewrite without a template, an immediate
	load and a direct branch.
	* config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.

2011-01-12  Anatoly Sokolov  <aesok@post.ru>

	* config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
	* config/s390/s390.c (s390_output_addr_const_extra): Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2011-01-12  Kai Tietz  <kai.tietz@onevision.com>

	PR debug/47209
	* dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
	of type.

2011-01-12  Jan Hubicka  <jh@suse.cz>

	PR driver/47244
	* gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
	(PLUGIN_COND_CLOSE): New macro.
	(LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.

2011-01-12  Richard Guenther  <rguenther@suse.de>

	PR lto/47259
	* lto-streamer-out.c (output_gimple_stmt): Do not wrap
	register variables in a MEM_REF.

2011-01-12  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
	crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
	hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
	i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
	i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
	x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
	ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
	m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
	mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
	s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
	sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
	am33_2.0-*-linux*): Use gnu-user.h before linux.h.
	* config/gnu-user.h: New.  Copied from linux.h.
	(LINUX_TARGET_STARTFILE_SPEC): Rename to
	GNU_USER_TARGET_STARTFILE_SPEC.
	(LINUX_TARGET_ENDFILE_SPEC): Rename to
	GNU_USER_TARGET_ENDFILE_SPEC.
	(LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
	(LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
	(OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
	LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
	CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
	UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
	BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
	BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
	TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
	* config/arm/linux-eabi.h (CC1_SPEC): Use
	GNU_USER_TARGET_CC1_SPEC.
	(LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
	(STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
	(ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
	* config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
	LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
	LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
	CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
	LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.

2011-01-12  Richard Guenther  <rguenther@suse.de>

	PR other/46946
	* doc/invoke.texi (ffast-math): Document it is turned on
	with -Ofast.

2011-01-12  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/47233
	* opts.c (common_handle_option): Disable ipa-reference with profile
	feedback.

2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_at_property_declaration): Improved
	error message.

2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): Updated and reindented some
	comments.  No changes in code.

2011-01-11  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_output_var): Don't output the variable if there is
	already a type with the same name.

2011-01-11  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_format_type): Don't generate float80.

2011-01-11  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
	declaration.  Rewrite for both speed and size.
	(mn10300_address_cost_1): Remove.
	(mn10300_register_move_cost): New.
	(mn10300_memory_move_cost): New.
	(mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
	ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
	extensions, shifts, BSWAP, CLZ.
	(mn10300_wide_const_load_uses_clr): Remove.
	(TARGET_REGISTER_MOVE_COST): New.
	(TARGET_MEMORY_MOVE_COST): New.
	* config/mn10300/mn10300-protos.h: Update.
	* config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.

	* config/mn10300/constraints.md ("R", "T"): Remove constraints.
	* config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
	* config/mn10300/mn10300-protos.h: Update.
	* config/mn10300/mn10300.md (movsi_internal): Don't use "R".
	(*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
	(iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
	(*test_int_bitfield, *test_byte_bitfield): Remove.
	(*bit_test, *subreg_bit_test): Remove.
	* config/mn10300/predicates.md (const_8bit_operand): Remove.

	* config/mn10300/constraints.md ("c"): Rename from "A".
	("A", "D"): New constraint letters.
	* config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
	(fmssf4, fnmasf4, fnmssf4): Likewise.

	* config/mn10300/mn10300.md (isa): New attribute.
	(enabled): New attribute.

	* config/mn10300/mn10300.md (absdf2, negdf2): Remove.
	(abssf2, negsf2): Define only for hardware fp.
	(sqrtsf2): Reformat.
	(addsf3, subsf3, mulsf3): Merge expander and insn.

	* config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
	(DEBUGGER_AUTO_OFFSET): Remove.
	(DEBUGGER_ARG_OFFSET): Remove.

	* config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
	Emit register stores with the same offsets as the hardware.
	(mn10300_store_multiple_operation): Don't check that the register
	save offsets are monotonic.
	* config/mn10300/mn10300-protos.h: Update.

	* config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.

	* config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
	in terms of the value on the stack, not the MDR register.

2011-01-11  Jan Hubicka  <jh@suse.cz>

	PR lto/45721
	PR lto/45375
	* tree.h (symbol_alias_set_t): Move typedef here from varasm.c
	(symbol_alias_set_destroy, symbol_alias_set_contains,
	propagate_aliases_backward): Declare.
	* lto-streamer-out.c (struct sets): New sturcture.
	(trivally_defined_alias): New function.
	(output_alias_pair_p): Rewrite.
	(output_unreferenced_globals): Fix output of alias pairs.
	(produce_symtab): Likewise.
	* ipa.c (function_and_variable_visibility): Set weak alias destination
	as needed in lto.
	* varasm.c (symbol_alias_set_t): Remove.
	(symbol_alias_set_destroy): Export.
	(propagate_aliases_forward, propagate_aliases_backward): New functions
	based on ...
	(compute_visible_aliases): ... this one; remove.
	(trivially_visible_alias): New
	(trivially_defined_alias): New.
	(remove_unreachable_alias_pairs): Rewrite.
	(finish_aliases_1): Reorganize code checking if alias is defined.
	* passes.c (rest_of_decl_compilation): Do not call assemble_alias when
	in LTO mode.

2011-01-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46076
	* tree-ssa.c (useless_type_conversion_p): Conversions from
	unprototyped to empty argument list function types are useless.

2011-01-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45235
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
	volatile MEMs as MEM_READONLY_P.

2011-01-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/47239
	* tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.

2011-01-11  Jeff Law  <law@redhat.com>

	PR tree-optimization/47086
	* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
	IVs from statements that might throw.

2011-01-10  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* lto-cgraph.c (input_profile_summary): Remove overactive sanity check.

2011-01-10  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* profile.c (read_profile_edge_counts): Ignore profile inconistency
	when correcting profile.

2011-01-10  Jan Hubicka  <jh@suse.cz>

	PR lto/46083
	* lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
	DECL_FINI_PRIORITY.
	* lto-streamer-in.c (unpack_ts_function_decl_value_fields):
	Restore DECL_FINI_PRIORITY.

2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/gimple.texi: Fix quoting of multi-word return values in
	@deftypefn statements.  Ensure presence of return value.  Wrap
	overlong @deftypefn lines.
	(is_gimple_operand, is_gimple_min_invariant_address): Remove
	descriptions of removed functions.
	* doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
	of multi-word return value in @deftypefn statement.

2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
	(Conditional Expressions, Logical Operators)
	(Statement and operand traversals): Do not indent smallexample
	code.  Fix duplicate function argument in example.

2011-01-10  Jeff Law  <law@redhat.com>

	PR tree-optimization/47141
	* ipa-split.c (split_function): Handle case where we are
	returning a value and the return block has a virtual operand phi.

2011-01-10  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/47234
	* tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
	(pass_feedback_split_functions): Declare.
	* passes.c (init_optimization_passes): Add ipa-split as subpass of
	tree-profile.
	* ipa-split.c (gate_split_functions): Update comments; disable
	split-functions for profile_arc_flag and branch_probabilities.
	(gate_feedback_split_functions): New function.
	(execute_feedback_split_functions): New function.
	(pass_feedback_split_functions): New global var.

2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/46760
	* tree-inline.c (tree_can_inline_p): Check e->call_stmt before
	calling gimple_call_set_cannot_inline.

2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin-sections.def: Remove unused section.

2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR c++/47218
	* cgraphunit.c (assemble_thunk): Call resolve_unique_section.

2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/47232
	* c-parser.c (c_parser_declaration_or_fndef): Improved
	error message.

2011-01-09  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/winnt.c (i386_pe_start_function): Make sure
	to switch back to function's section.

2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>

	PR gcc/46902
	PR testsuite/46912
	* plugin.c: Move include of dlfcn.h from here...
	* system.h: ... to here.

2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/cpp.texi (C++ Named Operators): Fix markup for header
	file name.
	* doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
	two extra empty pages in PDF output.

2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/47078
	* c-parser.c (c_parser_objc_type_name): If the type is unknown,
	for error recovery purposes behave as if it was not specified so
	that the default type is usd.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	PR tree-optmization/46469
	* ipa.c (function_and_variable_visibility): Clear needed flags on
	nodes with external decls; handle weakrefs merging correctly.

2011-01-07  Joseph Myers  <joseph@codesourcery.com>

	* opts.c (finish_options): Set opts->x_flag_opts_finished to true,
	not false.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
	and no longer claim that gold is required for linker plugin.
	* configure: Regenerate.
	* gcc.c (PLUGIN_COND): New macro.
	(LINK_COMMAND_SPEC): Use it.
	(main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
	* config.in (HAVE_LTO_PLUGIN): New.
	* configure.ac (--with-lto-plugin): New parameter; autodetect
	HAVE_LTO_PLUGIN.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/46367
	* ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
	when we can update original.
	(cgraph_mark_inline_edge): Sanity check.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.

2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (ASM_COMMENT_START): Define.

2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/42445
	* gcc.c (%>S): New.
	(SWITCH_KEEP_FOR_GCC): Likewise.
	(set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
	(do_spec_1): Handle "%>".

	* config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".

2011-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/47201
	* config/i386/i386.c (ix86_delegitimize_address): If
	simplify_gen_subreg fails, return orig_x.

	PR bootstrap/47187
	* value-prof.c (gimple_stringop_fixed_value): Handle
	lhs of the call properly.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* lto-opt.c (lto_reissue_options): Set flag_shlib.

2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>

	* target.def (function_switched_text_sections): New hook.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
	* final.c (default_function_switched_text_sections): New.
	(final_scan_insn): Call function_switched_text_sections when a
	mid-function section change occurs.
	* output.h (default_function_switched_text_sections): Declare.
	* config/darwin-protos.h (darwin_function_switched_text_sections):
	Likewise.
	* config/darwin.c (darwin_function_switched_text_sections): New.
	* config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.

2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>

	* dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
	DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
	the secondary code fragment when outputting for DWARF == 2.

2011-01-07  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
	Remove.
	* config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/46704
	* dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
	when it is not empty.

2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>

	Bobcat Enablement
	* config.gcc (i[34567]86-*-linux* | ...): Add btver1.
	(case ${target}): Add btver1.
	* config/i386/driver-i386.c (host_detect_local_cpu): Let
	-march=native recognize btver1 processors.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	btver1 def_and_undef
	* config/i386/i386.c (struct processor_costs btver1_cost): New
	btver1 cost table.
	(m_BTVER1): New definition.
	(m_AMD_MULTIPLE): Includes m_BTVER1.
	(initial_ix86_tune_features): Add btver1 tune.
	(processor_target_table): Add btver1 entry.
	(static const char *const cpu_names): Add btver1 entry.
	(software_prefetching_beneficial_p): Add btver1.
	(ix86_option_override_internal): Add btver1 instruction sets.
	(ix86_issue_rate): Add btver1.
	(ix86_adjust_cost): Add btver1.
	* config/i386/i386.h (TARGET_BTVER1): New definition.
	(enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
	(enum processor_type): Add PROCESSOR_BTVER1.
	* config/i386/i386.md (define_attr "cpu"): Add btver1.

2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/43309
	* config/i386/i386.c (legitimize_tls_address)
	<TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
	* config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
	(tls_initial_exec_64_sun): New pattern.

2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Overall Options): Improve wording and markup
	of the description of -wrapper.

2011-01-06  Joseph Myers  <joseph@codesourcery.com>

	* config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
	rdynamic, threads): New Driver options.

2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/38118
	* config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
	if coming from .tdata.
	* config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.

2011-01-06  Jan Hubicka  <jh@suse.cz>

	PR lto/47188
	* collect2.c (main): Do not enable LTOmode when plugin is active.

2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR other/45915
	* configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
	--version output if supported.
	* configure: Regenerate.

2011-01-06  Joseph Myers  <joseph@codesourcery.com>

	* config/linux-android.opt (tno-android-cc, tno-android-ld): New
	Driver options.

2011-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/47150
	* c-convert.c (convert): When converting a complex expression
	other than COMPLEX_EXPR to a different complex type, ensure
	c_save_expr is called instead of save_expr, unless in_late_binary_op.
	* c-typeck.c (convert_for_assignment): Set in_late_binary_op also
	when converting COMPLEX_TYPE.

2011-01-06  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/47139
	* tree-vect-loop.c (vect_is_simple_reduction_1): Check that
	only the last reduction value is used outside the loop.  Update
	documentation.

2011-01-05  Joseph Myers  <joseph@codesourcery.com>

	* config/rtems.opt: New.
	* config.gcc (*-*-rtems*): Use rtems.opt.

2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>

	* config/i386/i386.c (ix86_option_override_internal): Bulldozer
	processors do not support 3DNow instructions.

2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_option_override): Set parameter
	PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.

2011-01-05  Jan Hubicka  <jh@suse.cz>

	* lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
	at the command line.

2011-01-05  Martin Jambor  <mjambor@suse.cz>

	PR lto/47162
	* lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
	deltas on streamed outgoing edges.
	(output_node_opt_summary): Output info for outgoing edges only when
	the node is in new parameter set.
	(output_cgraph_opt_summary): New parameter set, passed to the two
	aforementioned functions.  Update its forward declaration and its
	callee too.

2011-01-05  Tom Tromey  <tromey@redhat.com>

	* c-parser.c (c_parser_omp_atomic): Pass location of assignment
	operator to c_finish_omp_atomic.
	* c-typeck.c (lvalue_or_else): Add 'loc' argument.
	(build_unary_op): Update.
	(build_modify_expr): Update.
	(build_asm_expr): Update.

2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
	newly inserted insns.
	(pad_bb): Likewise.
	(spu_emit_branch_hint): Likewise.
	(insert_hbrp_for_ilb_runout): Likewise.
	(spu_machine_dependent_reorg): Call df_finish_pass after
	schedule_insns returns.

2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.

2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/47005
	* tree-sra.c (struct access): Add 'non_addressable' bit.
	(create_access): Set it for a DECL_NONADDRESSABLE_P field.
	(decide_one_param_reduction): Return 0 if the parameter is passed by
	reference and one of the accesses in the group is non_addressable.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/47056
	* cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
	(mark_load): Likewise.  Handle FUNCTION_DECL specially.
	(mark_store): Likewise.  Pass STMT to ipa_record_reference.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
	initializer.  Skip view conversions from aggregate types.

2011-01-04  Kai Tietz  <kai.tietz@onevision.com>

	PR bootstrap/47055
	* libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.

2011-01-04  Philipp Thomas  <pth@suse.de>

	* config/microblaze/microbalse.opt (mxl-float-convert): Fix
	obvious typo.

2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* function.c (thread_prologue_and_epilogue_insns): Do not crash
	on empty epilogue sequences.

2011-01-04  Joseph Myers  <joseph@codesourcery.com>

	* config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
	non-static): New Driver options.

2011-01-04  Jie Zhang  <jie@codesourcery.com>

	PR driver/47137
	* gcc.c (default_compilers[]): Set combinable field to 0
	for all assembly languages.

2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/loongson3a.md: New file.
	* config/mips/mips.md: Include loongson3a.md.
	* config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
	TUNE_LOONGSON_3A.

2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/47017
	* expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
	instead of convert_memory_address_addr_space on the base expression.

2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_option_override): Update error text
	for bad -march= / -mtune= values.

2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
	if branch-hint optimization will be performed.

2011-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47148
	* ipa-split.c (split_function): Convert arguments to
	DECL_ARG_TYPE if possible.

	PR tree-optimization/47155
	* tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
	when computing uns.

	PR rtl-optimization/47157
	* combine.c (try_combine): If undobuf.other_insn becomes
	(set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
	and set *new_direct_jump_p too.

2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47021
	* graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.

2011-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (process_command): Update copyright notice dates.
	* gcov.c (print_version): Likewise.
	* gcov-dump.c (print_version): Likewise.
	* mips-tfile.c (main): Likewise.
	* mips-tdump.c (main): Likewise.

2011-01-03  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/46801
	* tree-sra.c (type_internals_preclude_sra_p): Check whether
	aggregate fields start at byte boundary instead of the bit-field flag.

2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/47137
	* gcc.c (main): Revert revision 168407.

2011-01-03  Martin Jambor  <mjambor@suse.cz>

	* lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.

2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* tree-vect-generic.c (expand_vector_operations_1): When using vector/
	vector optab to expand vector/scalar shift, update gimple to vector.

2011-01-03  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
	a thunk.

2011-01-03  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/46984
	* cgraph.h (cgraph_indirect_call_info): make field thunk_delta
	HOST_WIDE_INT.
	(cgraph_create_indirect_edge): Fixed line length.
	(cgraph_indirect_call_info): Declare.
	(cgraph_make_edge_direct) Update declaration.
	* cgraph.c (cgraph_allocate_init_indirect_info): New function.
	(cgraph_create_indirect_edge): Use it.
	(cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
	callees.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
	the new thunk_delta representation.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
	HOST_WIDE_INT.
	(ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
	(ipa_read_indirect_edge_info): Likewise.
	* lto-cgraph.c (output_edge_opt_summary): New function.
	(output_node_opt_summary): Call it on all outgoing edges.
	(input_edge_opt_summary): New function.
	(input_node_opt_summary): Call it on all outgoing edges.

2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/47137
	* gcc.c (main): Don't check have_o when settting combine_inputs.

2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>

	* regrename.c: Add general comment describing the pass.
	(struct du_head): Remove 'length' field.
	(get_element, merge_sort_comparison, merge, sort_du_head): Remove.
	(regrename_optimize): Do not sort chains.  Rework comments, add others.
	Force renaming to the preferred class (if any) in the first pass and do
	not consider registers that belong to it in the second pass.
	(create_new_chain): Do not set 'length' field.
	(scan_rtx_reg): Likewise.

2011-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47140
	* tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
	TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
	to bit_value_binop.

	PR rtl-optimization/47028
	* cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
	parm_birth_insn instead of at the beginning of first bb.

2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>

	* doc/generic.texi: Remove duplicated "@subsubsection Statements".
	Remove the word "see" before "@pxref".
	* doc/rtl.texi: Remove the word "see" before "@pxref".

2011-01-01  Jan Hubicka  <jh@suse.cz>

	* tree-loop-distribution.c (tree_loop_distribution): Do not use freed
	memory.

2011-01-01  Kai Tietz  <kai.tietz@onevision.com>

	PR target/38662
	* tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.


Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
