2009-12-31  Jakub Jelinek  <jakub@redhat.com>

	* tree-dump.c (dump_options): Don't set TDF_NOUID for all.

2009-12-31  Dave Korn  <dave.korn.cygwin@gmail.com>
	    Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>

	PR target/41605
	* config/darwin.h (LINK_COMMAND_SPEC): Resolve fopenmp specifically
	for target.
	(LINK_SPEC): Replace dynamic libraries by static equivalents where
	necessary.
	* config/darwin9.h (LINK_COMMAND_SPEC): Resolve fopenmp specifically
	for target.

2009-12-30  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR lto/42531
	* lto-streamer-out.c (produce_asm): Skip any leading asterisk when
	using DECL_ASSEMBLER_NAME to generate a section name.
	(copy_function): Likewise.

2009-12-30  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/42516
	* config/m68k/m68k.md (rotlsi_16): New insn.

2009-12-30  Joseph Myers  <joseph@codesourcery.com>

	PR c/42439
	* c-decl.c (check_bitfield_type_and_width): Only pedwarn if
	pedantic for bit-field width not an integer constant expression
	but folding to one.

2009-12-30  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/41956
	* tree-vect-slp.c (vect_supported_load_permutation_p): Add check that
	the load indices differ.

2009-12-30  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42549
	* config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for
	alternative 1.

2009-12-30  Robert Millan  <rmh.gcc@aybabtu.com>

	PR other/42537
	* errors.c: Fix typo in comment.
	* graphite-sese-to-poly.c: Likewise.
	* profile.c (is_inconsistent): Fix typo in string.

2009-12-29  Ian Lance Taylor  <iant@google.com>

	PR middle-end/42099
	* expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more
	than HOST_BITS_PER_WIDE_INT.

2009-12-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_int_vcond): Reformat.

2009-12-29  Dave Korn  <dave.korn.cygwin@gmail.com>
	    Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>

	PR objective-c++/41595
	* config/darwin.c (darwin_label_is_anonymous_local_objc_name):
	New function to recognize objective c/c++ internal symbols,
	including mangled ones.
	* config/darwin.h (ASM_OUTPUT_LABELREF): Use
	darwin_label_is_anonymous_local_objc_name to detect both
	mangled and clear ObjC internal symbols.

2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/41344
	* omp-low.c (diagnose_sb_2): Handle GIMPLE_COND.

2009-12-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR target/42457
	* config/avr/avr.c (avr_extra_arch_macro): Remove static.
	(avr_cpu_cpp_builtins): Remove.
	* config/avr/avr.h (avr_extra_arch_macro): Add prototype.
	* config/avr/avr-c.c: New File.
	(avr_cpu_cpp_builtins) : Add.
	* config/avr/t-avr: Add make information for avr-c.
	* config.gcc (avr-*-*): Include avr-c.o as c and cpp object.

2009-12-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR target/35013, 27192
	* config/avr/avr.c (print_operand_address): Print correct program
	memory address.
	Add warning for large device offset addresses.
	(avr_assemble_integer): Ditto.
	(print_operand): Add warnings for incorrect addressing.
	(out_movqi_r_mr): Tag assembler with new address codes.
	(out_movhi_r_mr): Ditto.
	(out_movsi_r_mr): Ditto.
	(out_movqi_mr_r): Ditto.
	(out_movhi_mr_r): Ditto.
	(out_movsi_mr_r): Ditto.
	* config/avr/predicates.md (text_segment_operand): New predicate.
	* config/avr/avr.md (jump): Tag assembler with new address codes.
	(call_insn): Ditto.
	(call_value_insn): Ditto.
	(*tablejump_lib): Ditto.
	(*cbi): Ditto.
	(*sbi): Ditto.
	(indirect_jump): New define_expand.
	(jcindirect_jump): New pattern for constant expression jump.
	(njcindirect_jump): Renamed old indirect_jump.

2009-12-24  Steven Bosscher  <steven@gcc.gnu.org>

	* store-motion.c (build_store_vectors): Clear regs_set_in_block at
	the start of a loop over basic blocks.

2009-12-24  Julian Brown  <julian@codesourcery.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/40887
	* config/arm/arm.c (output_call_mem): Remove armv5 support.
	* config/arm/arm.md (*call_mem): Disable for armv5. Add note.
	(*call_value_mem): Likewise.

2009-12-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/42475
	* combine.c (make_compound_operation) <case SUBREG>: Use mode of
	SUBREG_REG (x) instead of tem's mode.

2009-12-23  Jakub Jelinek  <jakub@redhat.com>
	    Cary Coutant  <ccoutant@google.com>

	PR debug/42454
	* dwarf2out.c (add_ranges_by_labels): Conditionally Add DW_AT_ranges
	attribute.
	(dwarf2out_finish): Change calls to add_ranges_by_labels.

2009-12-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/42093
	* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Fix macro usage
	to TARGET_THUMB1.
	(CASE_VECTOR_SHORTEN_MODE): Allow signed offsets
	only for TARGET_THUMB1.

2009-12-23  Ramana Radhakrishnan  <ramrad01@arm.com>

	PR target/40670
	* config/arm/arm.md: Split for Thumb1 as well.

2009-12-22  Cary Coutant  <ccoutant@google.com>

	PR debug/42454
	* dwarf2out.c (dwarf2out_finish): Don't output range for .text
	section unless .text section was used.  Likewise for cold.

2009-12-22  Brian Hackett  <bhackett1024@gmail.com>

	* doc/plugins.texi: Rename pre-genericize event.

2009-12-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR driver/42463
	* params.def ([PARAM_PREDICTABLE_BRANCH_OUTCOME]): Fix typo in
	help string.

	* doc/invoke.texi: Fix typo.

2009-12-22  Paul Brook <paul@codesourcery.com>

	* doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default.
	* defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
	* config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.

2009-12-21  Brian Hackett  <bhackett1024@gmail.com>

	* plugin.def: Rename pre-genericize event.
	* plugin.c (register_callback, invoke_plugin_callbacks): Same.
	* c-decl.c (finish_function): Invoke callbacks on above event.

2009-12-21  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/42429
	* reload.c (find_reloads_subreg_address): When adjusting mode of
	MEM, update also MEM_SIZE if it is set.

2009-12-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/42345
	* acinclude.m4 (gcc_GAS_FLAGS): New.
	(gcc_GAS_CHECK_FEATURE): Use gcc_GAS_FLAGS.
	* configure: Regenerated.

2009-12-20  Michael Matz  <matz@suse.de>

	PR tree-optimization/42027
	* cfgexpand.c (expand_gimple_cond): Use jumpy sequence for &, &&, |
	and || if jumps are cheap.

2009-12-19  Richard Guenther  <rguenther@suse.de>

	PR lto/42401
	* lto-streamer-out.c (tree_is_indexable): Local statics are indexable.
	(lto_output_tree_ref): Adjust assert.

2009-12-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42108
	* tree-ssa-sccvn.c (last_vuse_ptr): New variable.
	(vn_reference_lookup_2): Update last seen VUSE.
	(vn_reference_lookup_3): Avoid updating last seen VUSE after
	translating.
	(visit_reference_op_load): Use last seen VUSE from the first
	lookup when entering into the table.

2009-12-19  Joern Rennecke  <amylaar@spamcop.net>

	* Makefile.in (PLUGIN_HEADERS): Add more headers.

	* tree-pass.h (GCC_PASS_LISTS): Define.
	(PASS_LIST_NO_all_lowering_passes): New enumeration value.
	(PASS_LIST_NO_all_small_ipa_passes): Likewise.
	(PASS_LIST_NO_all_regular_ipa_passes): Likewise.
	(PASS_LIST_NO_all_lto_gen_passes): Likewise.
	(PASS_LIST_NO_all_passes): Likewise.
	(PASS_LIST_NUM): Likewise.
	(gcc_pass_lists): Declare.
	* passes.c (gcc_pass_lists): Define.

2009-12-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_nary): New function.
	(copy_phis): Likewise.
	(copy_references): Likewise.
	(process_scc): Avoid last iteration by copying the
	optimistic table to the valid table.

2009-12-17  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (loc_descriptor): For SYMBOL_REFs and LABEL_REFs
	use DW_OP_addr+DW_OP_stack_value instead of DW_OP_implicit_value.
	(add_const_value_attribute): For CONST_STRING, SYMBOL_REFs and
	LABEL_REFs use DW_OP_addr+DW_OP_stack_value DW_AT_location instead of
	DW_AT_const_value.

2009-12-17  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41679
	* var-tracking.c (count_uses): Count MO_VAL_USE of original
	MO_VAL_SET value for COND_EXEC.
	(add_stores): Handle conditional stores.

	PR debug/41679
	* var-tracking.c (use_type): Remove indirection from loc.
	(count_uses): Dereference incoming loc early.
	(add_uses): Dereference incoming loc early.

	PR debug/41679
	* var-tracking.c (add_stores): Avoid value mode mismatch for
	promoted declarations.

2009-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/42386
	* ipa.c (function_and_variable_visibility): Clear same_comdat_group
	links of DECL_EXTERNAL nodes.

2009-12-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/rtl.texi (Vector Operations): Clarify vec_select result mode.

2009-12-17  Julian Brown  <julian@codesourcery.com>

	* config/arm/bpabi-v6m.S (test_div_by_zero): New macro.
	(aeabi_ldivmod, aeabi_uldivmod): Use above macro.
	* config/arm/bpabi.S (test_div_by_zero): New macro.
	(aeabi_ldivmod, aeabi_uldivmod): Use above macro.
	* config/arm/lib1funcs.asm (ARM_LDIV0): Tail-call int div-by-zero
	handler for EABI. Add signed/unsigned argument, pass correct value
	to that handler.
	(THUMB_LDIV0): Same, for Thumb.
	(DIV_FUNC_END): Add signed argument.
	(WEAK): New macro (for EABI).
	(__udivsi3, __umodsi3): Add unsigned argument to DIV_FUNC_END. For
	__udivsi3, add entry point which skips division-by-zero test.
	(__divsi3, __modsi3): Add signed argument to DIV_FUNC_END.
	(__aeabi_uidivmod, __aeabi_idivmod): Check for division by zero.
	Call __udivsi3 or __divsi3 via entry points which skip
	division-by-zero tests.
	(__div0): Rename to __aeabi_idiv0, __aeabi_ldiv0 for EABI, and
	declare those names weak.

2009-12-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42397
	* builtins.c (get_object_alignment): Properly deal with
	a CONST_DECL base.
	* expr.c (emit_block_move_hints): Assert the alignment makes sense.

2009-12-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32280
	* config/i386/i386-modes.def (V1TI): New vector mode.
	* config/i386/i386.h (VALID_SSE_REG_MODE): Add V1TImode.
	(SSE_REG_MODE_P): Ditto.
	* config/i386/sse.md (SSEMODE16): New mode iterator.
	(AVXMODE16): Ditto.
	(avxvecmode): Handle V1TI mode.
	(*avx_mov<mode>_internal): Use AVXMODE16 instead of AVXMODE.
	(mov<mode>): Use SSEMODE16 instead of SSEMODE.
	(*mov<mode>_internal): Ditto.
	(push<mode>1): Ditto.
	(movmisalign<mode>): Ditto.
	(sse2_ashlv1ti): Rename from sse2_ashlti.
	(sse2_lshrv1ti): Rename from sse2_lshrti.
	(*avx_ashlv1ti): Rename from *avx_ashlti and move from i386.md.
	(*avx_lshrv1ti): Rename from *avx_lshrti and move from i386.md.
	(vec_shl_<mode>): Convert operands to V1TImode and use V1TI shift.
	(vec_shr_<mode>): Ditto.
	(*sse2_mulv4si3): Update for renamed sse2_ashlv1ti3.
	(udot_prodv4si): Ditto.
	* config/i386/i386.c (classify_argument): Handle V1TImode.
	(function_arg_advance_32): Ditto.
	(function_arg_32): Ditto.
	(ix86_expand_sse4_unpack): Convert operands to V1TImode and update
	for renamed gen_sse2_lshrv1ti3.
	(ix86_expand_args_builtin) <V2DI_FTYPE_V2DI_INT_CONVERT>: Set rmode
	to V1TImode.
	(struct builtin_description) <__builtin_ia32_pslldqi128>: Update
	for renamed sse2_ashlv1ti3.
	<__builtin_ia32_psrldqi128>: Update for renamed sse2_lshrv1ti3.

	Revert:
	2007-06-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32280
	* config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
	* config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.

2009-12-17  Richard Earnshaw  <rearnsha@arm.com>

	PR target/42372
	* arm.md (pic_add_dot_plus_eight): Change output constraint from
	update to write.

2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Update build_indirect_ref calls.

2009-12-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (IMODE): Remove mode iterator.
	(modesuffix): Remove mode attribute.
	(modeconstraint): Ditto.
	(immconstraint): Ditto.
	(*sync_compare_and_swap<mode>): Use SWI mode iterator instead of
	IMODE mode iterator, imodesuffix mode attribute instead of modesuffix,
	<r> mode attribute instead of modeconstraint and <i> mode attribute
	instead of immconstraint.
	(sync_double_compare_and_swap<mode>): Ditto.
	(sync_old_add<mode>): Ditto.
	(sync_lock_test_and_set<mode>): Ditto.
	(sync_add<mode>): Ditto.
	(sync_sub<mode>): Ditto.
	(sync_and<mode>): Ditto.
	(sync_ior<mode>): Ditto.
	(sync_xor<mode>): Ditto.
	(sync_<code><mode>): Macroize insn pattern from
	sync_{and,ior,xor}<mode> using any_logic code iterator.

2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/40885
	* c-common.h (ref_operator): New type.
	(build_indirect_ref): Adjust prototype with new argument.
	* c-typeck.c (build_indirect_ref): Accept ref_operator as argument and
	emit the diagnostics for easy translation.
	(build_array_ref): Update calls to build_indirect_ref.
	* c-omp.c (c_finish_omp_atomic): Likewise.
	* c-parser.c (c_parser_unary_expression,
	c_parser_postfix_expression_after_primary): Likewise.

2009-12-16  Richard Guenther  <rguenther@suse.de>

	PR lto/42392
	* langhooks.c (lhd_begin_section): Make sure to switch back
	to the text section, not some random one.

2009-12-16  Jakub Jelinek  <jakub@redhat.com>

	* tree-chrec.c (chrec_convert_1): Only fold (T2)(t +- x) to
	(T2)t +- (T2)x if only integer types are involved.

2009-12-16  Ben Elliston  <bje@au.ibm.com>

	* tree-data-ref.h (dot_rdg): Remove prototype.
	* tree-data-ref.c (dog_rdg_1, dot_rdg): Remove.

2009-12-16  Kazu Hirata  <kazu@codesourcery.com>

	* doc/invoke.texi, doc/options.texi, doc/plugins.texi,
	doc/tm.texi: Fix typos.

2009-12-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Function Attributes, Extended Asm):
	Replace TABs with spaces.
	* doc/md.texi (Standard Names): Likewise.
	* doc/plugins.texi (Plugins): Likewise.

	* doc/c-tree.texi (Expression trees): Use @itemx for all but
	the first item for merged items.
	* doc/extend.texi (Variable Attributes): Likewise.
	* doc/install.texi (Configuration): Likewise.
	* doc/invoke.texi (RS/6000 and PowerPC Options, RX Options):
	Likewise.

2009-12-15  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET
	and BINFO_VPTR_FIELD.
	(free_lang_data_in_type): Do not free TYPE_STUB_DECL if we
	generate debug information.
	(free_lang_data_in_decl): Do not free DECL_SIZE_UNIT,
	DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT.
	(free_lang_data): Do not disable debuginfo.
	* lto-streamer-out.c (write_symbol_vec): Deal with
	non-constant DECL_SIZE.
	(pack_ts_base_value_fields): Write types with false
	TREE_ASM_WRITTEN.
	(lto_output_ts_type_tree_pointers): Stream TYPE_STUB_DECL.
	* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Stream
	TYPE_STUB_DECL.
	* dwarf2out.c (add_pure_or_virtual_attribute): Check for
	DECL_CONTEXT.
	(gen_type_die_for_member): Test for TYPE_STUB_DECL.
	* opts.c (decode_options): Do not disable var-tracking for lto.
	* doc/invoke.texi (-flto): Document -flto vs. -g experimental
	status.
	(-fwhopr): Document experimental status.

2009-12-15  Aldy Hernandez  <aldyh@redhat.com>

	PR graphite/42185
	* graphite-sese-to-poly.c (is_reduction_operation_p): Assert that
	we are a GIMPLE_ASSIGN.  Do not calculate rhs code twice.
	(follow_ssa_with_commutative_ops): Return NULL on non assignment.

2009-12-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/rs6000.md (probe_stack): Use an enclosing SET.

2009-12-15  Richard Guenther  <rguenther@suse.de>

	* gimple.h (compare_field_offset): Declare.
	* gimple.c (compare_field_offset): Export.
	* lto-streamer-in.c (input_gimple_stmt): Use compare_field_offset.

2009-12-15  Richard Guenther  <rguenther@suse.de>

	* lto-cgraph.c (lto_output_node): Also stream the alias
	for regular aliases.
	(input_node): Likewise.

2009-12-15  Paolo Bonzini  <bonzini@gnu.org>
	    Shujing Zhao  <pearly.zhao@oracle.com>

	* intl.c (get_spaces): New.
	* intl.h (get_spaces): New.

2009-12-14  Mark Mitchell  <mark@codesourcery.com>

	* configure.ac (--with-specs): New option.
	* configure: Regenerated.
	* gcc.c (driver_self_specs): Include CONFIGURE_SPECS.
	* Makefile.in (DRIVER_DEFINES): Add -DCONFIGURE_SPECS.

2009-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/42369
	* config/i386/i386.c (ix86_expand_special_args_builtin): Avoid
	using switch with CODE_FOR_lwp_lwp* cases.

	* config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use
	DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID).

2009-12-14  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous
	assertion and useless code.
	<TARGET_MEM_REF>: Likewise.

2009-12-14  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41473
	* dwarf2out.c (AT_loc_list_ptr): New.
	(resolve_addr): Remove unresolved attributes and loc_list entries.

	PR debug/41473
	* dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty
	locations.
	(new_loc_list): Drop gensym arg.  Move generation of ll_symbol...
	(gen_llsym): ... here.  New function.
	(add_loc_descr_to_loc_list): Removed.
	(loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs.
	(single_element_loc_list): Removed.
	(dw_loc_list): Don't create entries without a location.  Don't
	special-case the first node of the list, only single nodes.
	(single_element_loc_list_p): Simplify.
	(loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty.
	(add_location_or_const_value_attribute): Test var loc for NULL.
	(convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list,
	call gen_llsym if needed.

2009-12-14  Jakub Jelinek  <jakub@redhat.com>

	* cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
	cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
	prototypes.
	* cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
	cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
	functions.
	* except.h (set_nothrow_function_flags): Remove prototype.
	* except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag.
	Make static.
	* ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag,
	cgraph_set_readonly_flag, cgraph_set_pure_flag
	and cgraph_set_looping_const_or_pure_flag.
	(local_pure_const): Likewise.

2009-12-14  Jakub Jelinek  <jakub@redhat.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386-builtin-types.def (PVOID): Declared.
	(VOID_FTYPE_PVOID): Declared.
	(PVOID_FTYPE_VOID): Declared.
	(UCHAR_FTYPE_USHORT_UINT_USHORT): Removed.
	(VOID_FTYPE_USHORT_UINT_USHORT): Removed.
	* config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32,
	IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32,
	IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16):
	Removed.
	(IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New.
	(bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb,
	__builtin_ia32_slwpcb, __builtin_ia32_lwpval32,
	__builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and
	__builtin_ia32_lwpins64.
	(ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID.
	Do not handle VOID_FTYPE_USHORT_UINT_USHORT and
	UCHAR_FTYPE_USHORT_UINT_USHORT.  Warn when the third operand is
	not an immediate.  Also handle builtin functions with 3 arguments.
	(ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and
	IX86_BUILTIN_SLWPCB.
	* config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC):
	Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC.
	(memory attribute): Handle lwp.
	(lwp*): Rewrite all the insn patterns for LWP.
	* config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64,
	__slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed.
	(__llwpcb, __slwpcb): New.

2009-12-14  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	* dominance.c (set_immediate_dominator): Don't mark as inline.

2009-12-14  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default.
	* doc/md.texi (check_stack): Clarify.
	(probe_stack): Likewise.
	* config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant.
	(probe_stack): New insn.

2009-12-14  Ben Elliston  <bje@au.ibm.com>

	* lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
	BUILT_IN_NORMAL or BUILT_IN_MD.

2009-12-13  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
	* expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
	* explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
	* system.h (STACK_CHECK_PROBE_LOAD): Poison.

2009-12-13  Michael Matz  <matz@suse.de>

	PR tree-optimization/42027
	* dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
	TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
	falling through.

2009-12-13  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR target/23726
	* config/avr/predicates.md (pseudo_register_operand): New predicate
	for pseudos.
	* config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
	to allow div/mod optimization.
	(udivmodqi4): Ditto.
	(divmodhi4): Ditto.
	(udivmodhi4): Ditto.
	(divmodsi4): Ditto.
	(udivmodsi4): Ditto.

2009-12-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42357
	* tree-sra.c (sra_modify_assign): Do not tear apart struct copies.

2009-12-12  Richard Guenther  <rguenther@suse.de>

	* tree.c (need_assembler_name_p): Abstract decls do not need
	an assembler name.
	* dwarf2out.c (dwarf2out_abstract_function): Preserve
	DECL_ABSTRACT properly.

2009-12-11  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_tree_ref): Do not register
	DEBUG_EXPR_DECLs with the varpool.

2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
	(sparc64_frob_update_context): New function.

2009-12-11  Richard Guenther  <rguenther@suse.de>

	PR lto/41658
	PR lto/41657
	* lto-streamer-out.c (write_global_stream): Do not make decls
	weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
	Make sure to mark all decls that we have written.

2009-12-11  Sebastian Andrzej Siewior  <bigeasy@linutronix.de>

	PR target/36047

	* config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
	not used by glibc/uclibc and does not work with large binaries.

2009-12-11  Richard Guenther  <rguenther@suse.de>

	PR lto/41662
	* lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
	handling here.
	(input_eh_regions): Adjust.
	(lto_input_ts_function_decl_tree_pointers): Initialize EH
	if a non-NULL DECL_FUNCTION_PERSONALITY was read in.

2009-12-11  Duncan Sands  <baldrick@free.fr>

	* passes.c (make_pass_instance): Allocate and copy the right amount of
	memory for ipa passes, which are not the same size as other passes.

2009-12-11  Joern Rennecke  <amylaar@spamcop.net>

	* plugin.c (get_named_event_id): Fix hash table rebuild to include
	dynamically allocated events.

2009-12-11  Richard Guenther  <rguenther@suse.de>

	PR lto/42320
	* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
	detect non-prevailing decls.

2009-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/42317
	* cgraph.h (struct cgraph_node): Add same_comdat_group field.
	* cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
	circular list.
	(cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
	node->same_comdat_group.
	* ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
	mark all its same_comdat_group nodes as also reachable.
	(cgraph_externally_visible_p): Return true even if any of
	same_comdat_group nodes has address taken.
	* lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
	(output_cgraph): Ensure other same_comdat_group nodes are also
	included.
	(input_node): Stream in same_comdat_group.
	(input_cgraph_1): Fix up same_comdat_group fields from references
	to pointers.
	* cgraphunit.c (cgraph_analyze_functions): Mark all other
	same_comdat_group nodes as reachable.
	(cgraph_mark_functions_to_output): For each node->process process
	also other same_comdat_group nodes.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
	with same_comdat_group non-NULL.
	(cgraph_mark_inline_edge): Likewise.

2009-12-10  Jan Hubicka  <jh@suse.cz>

	PR middle-end/42228
	PR middle-end/42110
	* cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
	parameter; update edge if it already exists.
	(cgraph_remove_node): Handle correctly cases where we are removing
	node having clones.
	* cgraph.h (cgraph_create_edge_including_clones): Declare.
	(verify_cgraph_node): Add missing error_found = true code.
	(cgraph_materialize_all_clones): Remove call edges of dead nodes.
	* ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
	clone; fix double linked list removal.
	* tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
	call; fix frequency of newly created edge.

2009-12-10  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR rtl-opt/42216
	* regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
	HOST_BITS_PER_WIDE_INT.
	(verify_reg_in_set): New function, broken out of verify_reg_tracked.
	(verify_reg_tracked): Use it.
	(scan_rtx_reg): When seeing a use involving a superset of the
	registers in an existing chain, enlarge that chain.  Otherwise,
	allow subsets and set fail_current_block for all other kinds of
	overlap.
	(hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
	Do not modify operands when the bit with the corresponding number
	is set in that bitmap.
	(build_def_use): When we see matching operands with different
	modes, don't set fail_current_block, but keep track of such
	operands in a bitmap if their registers aren't already tracked
	in an open chain.  Pass this bitmap to all hide_operands calls.

2009-12-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42337
	* tree-ssa-pre.c (seen_during_translate): Remove.
	(phi_translate_1): Collapse into ...
	(phi_translate): ... this.  Remove seen parameter and
	adjust recursive calls.

2009-12-10  Richard Guenther  <rguenther@suse.de>
	Allan Sandfeld Jensen  <linux@carewolf.com>

	* tree-vectorizer.c (vectorize_loops): Properly guard
	vectorizer verboseness.

2009-12-10  Ben Elliston  <bje@au.ibm.com>

	* fwprop.c (free_load_extend): Initialise `use'.

2009-12-09  David Edelsohn  <edelsohn@gnu.org>

	* builtins.c (do_mpc_ckconv): Pass the component type to
	real_from_mpfr().

2009-12-09  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/42337
	* tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.

2009-12-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
	mulv2sf3, divv2sf3): New expanders.
	* config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
	spe_evdivws): Rename to use standard GCC names.
	* config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
	mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
	* config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
	names for renamed patterns.

2009-12-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("copysign<mode>3"): Pattern removed.

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

	* configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
	ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
	isn't cached.
	* configure: Regenerated.

2009-12-08  Richard Henderson  <rth@redhat.com>

	* combine.c (setup_incoming_promotions): Fix sign-extend of
	zero-extend case; tidy conditions.

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

	PR middle-end/38474
	* function.c (free_temp_slots): Only walk the temp slot
	addresses and combine slots if we actually changes something.
	(pop_temp_slots): Ditto.

2009-12-08  Olga Golovanevsky  <olga@il.ibm.com>

	PR middle-end/41843
	* ipa-struct-reorg.c (compare_fields): New function.
	(find_field_in_struct_1): Use compare_fields function.
	(is_equal_types): Likewise.

2009-12-07  DJ Delorie  <dj@redhat.com>

	PR c/42312
	* config/mep/mep.c (mep_expand_prologue): Set
	really_need_stack_frame after frame_size is set.

2009-12-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/42269
	* combine.c (setup_incoming_promotions): Improve the conditions
	under which we respect the promotions applied.

2009-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.

2009-12-07  Richard Henderson  <rth@redhat.com>

	PR debug/42299
	PR debug/42166
	* tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
	for ssa names already registered for update.

2009-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/42244
	* ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
	is a DEBUG_INSN.

2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
	options when bit_LWP is set.

2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/cpuid.h (bit_ABM): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
	options when bit_ABM is set.

2009-12-07  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
	this array ...
	(bdesc_args): ... here.
	* config.gcc (i[34567]86-*-*): Include abmintrin.h.
	(x86_64-*-*): Likewise.

2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>

	* config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
	* config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
	* config/i386/i386-c.c (__POPCNT__): Defined.
	* config/i386/popcntintrin.h: ...here.  New file.
	* config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
	Include popcntintrin.h.
	* config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
	is defined.

2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
	Removed.
	* config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
	* config/i386/sse.md: Remove all XOP splitters.
	Allow the second and fourth operands of XOP multiply-add insns
	to be nonimmediate.

2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/sse.md: Remove all FMA4 splitters.
	Allow the second operand of FMA4 insns to be a nonimmediate.
	Fix comments punctuation.

2009-12-07  Julian Brown  <julian@codesourcery.com>

	* config/arm/constraints.md (Ps, Pt): New constraint letters.
	* config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.

2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR other/40302
	* configure.ac (HAVE_mpc): Don't define.
	* config.in, configure: Regenerate.

	PR other/40302
	* builtins.c: Remove HAVE_mpc* checks throughout.
	* fold-const.c: Likewise.
	* real.h: Likewise.
	* toplev.c: Likewise.

2009-12-07  Edmar Wienskoski  <edmar@freescale.com>

	* config.gcc (cpu_is_64bit): Add new core e500mc64.
	(powerpc*-*-*): Add new core e500mc64.
	* config/rs6000/e500mc64.md: New file.
	* config/rs6000/rs6000.c (processor_costs): Add new costs for
	e500mc64.
	(rs6000_override_options): Add e500mc64 case to
	processor_target_table. Altivec and Spe options not allowed with
	e500mc64. Disable string instructions for e500mc64. Enable branch
	targets alignment for both e500mc and e500mc64. Initialize
	rs6000_cost for e500mc64.
	(rs6000_emit_sISEL): New function.
	(rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
	(rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
	generation.
	(rs6000_issue_rate): Set issue rate for e500mc64.
	(rs6000_rtx_costs): Set more accurate cost for mfcr instruction
	on architectures with isel.
	* config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
	* config/rs6000/rs6000.h (processor_type): Add
	PROCESSOR_PPCE500MC64.
	(ASM_CPU_SPEC): Add e500mc64.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
	Include e500mc64.md.
	(abssi2_isel): Expand pattern to handle DImode.
	(nabs<mode>2_isel): New pattern.
	(absdi2): Change pattern to handle 64 bit isel targets.
	(absdi2_internal): Exclude ISEL targets.
	(nabsdi2): Exclude ISEL targets.
	* doc/invoke.texi: Add e500mc64 to list of cpus.

2009-12-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_or): New code iterator.
	(any_logic): Rename from plogic code iterator.
	(logicprefix): Rename from plogicprefix code attribute.
	(<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
	any_or code iterator.
	(*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
	any_or code iterator.
	(*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
	(*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
	(ior and xor splitters): Ditto.
	* config/i386/mmx.md: Updated for rename.
	* config/i386/sse.md: Ditto.

2009-12-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
	Remove quotes around condition logic code.

2009-12-06  Richard Henderson  <rth@redhat.com>

	PR debug/42234
	* tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
	argument earlier.

2009-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Document MPC is required.

2009-12-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (g): Add HImode and QImode.
	(general_szext_operand): New mode attribute.
	(*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
	SWI124 mode iterator.
	(and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
	SWIM mode iterator.
	(*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
	SWI124 mode iterator.
	(ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
	SWIM mode iterator.
	(*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
	SWI248 mode iterator.
	(*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
	SWI mode iterator.
	(*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
	SWI mode iterator.
	(xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
	SWIM mode iterator.
	(*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
	SWI248 mode iterator.
	(*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
	SWI mode iterator.
	(*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
	SWI mode iterator.

2009-12-05  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
	MASK_FUSED_MADD.
	* config/i386/i386.h (CC1_CPU_SPEC_1): Remove
	"'-mfused-madd' was removed".
	* config/i386/i386.opt (mfused-madd): New.
	* config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
	* doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.

2009-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
	* pa-hpux10.h (LIB_SPEC): Likewise.
	* pa-hpux11.h (LIB_SPEC): Likewise.

	PR ada/41912
	* pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
	for signal frames.
	* pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.

2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
	for the scratch.

2009-12-04  David Daney  <ddaney@caviumnetworks.com>

	PR rtl-optimization/42164
	* combine.c (combine_simplify_rtx): Handle truncation of integer
	constants.

2009-12-04  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-out.c (pack_ts_decl_common_value_fields):
	Revert previous change.
	(lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
	* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Likewise.

2009-12-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_MALLOC.
	(call_may_clobber_ref_p_1): Likewise.

2009-12-04  Matthias Klose  <doko@ubuntu.com>
	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/40134
	* config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
	* config/pa/pa-linux.h (LIB_SPEC): Remove.

2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
	* config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
	* config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
	* config/i386/sse.md (fma4_*): Remove alternative with operand 1
	matching a memory access.  Do not use ix86_fma4_valid_op_p.
	(xop_*): Same.
	Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.

2009-12-03  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
	all operands into registers.

2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
	parameter.
	* config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
	* config/i386/sse.md: Same.

2009-12-03  Richard Guenther  <rguenther@suse.de>

	* cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
	instead of DECL_NAME for the entry point.

2009-12-03  Richard Earnshaw  <rearnsha@arm.com>

	* arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
	before the lock release.

2009-12-03  Michael Matz  <matz@suse.de>

	PR middle-end/38474
	* cfgexpand.c (struct stack_var): Add conflicts member.
	(stack_vars_conflict, stack_vars_conflict_alloc,
	n_stack_vars_conflict): Remove.
	(add_stack_var): Initialize conflicts member.
	(triangular_index, resize_stack_vars_conflict): Remove.
	(add_stack_var_conflict, stack_var_conflict_p): Rewrite in
	terms of new member.
	(union_stack_vars): Only run over the conflicts.
	(partition_stack_vars): Remove special case.
	(expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
	don't create self-conflicts.
	(account_used_vars_for_block): Don't create any conflicts.
	(fini_vars_expansion): Free bitmaps, don't free or clear removed
	globals.

2009-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR middle-end/42202
	* regrename.c (live_in_chains): New variable.
	(verify_reg_tracked): New static function.
	(scan_rtx_reg): Update live_in_chains.
	(scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
	we're already tracking the reg.
	(build_def_use): Likewise.  Initialize live_in_chains.

2009-12-03  Ken Werner  <ken.werner@de.ibm.com>

	* config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
	startup files.
	* config/spu/spu-protos.h (spu_function_profiler): Add prototype.
	* config/spu/spu.c (spu_function_profiler): New function.
	* config/spu/spu.h (FUNCTION_PROFILER): Invoke
	spu_function_profiler.
	(NO_PROFILE_COUNTERS): Define.
	(PROFILE_BEFORE_PROLOGUE): Likewise.

2009-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>

	* ggc-page.c (struct free_object): Pull definition out ...
	(struct globals): .. from here.

2009-12-02  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (div_if_zero_remainder): Honor that sizetypes
	are sign-extending.  Simplify.

2009-12-02  Richard Henderson  <rth@redhat.com>

	PR tree-opt/42215
	* tree-loop-distribution.c (build_size_arg_loc): Tidy.
	(generate_memset_zero): Convert to sizetype properly.  Tidy.

2009-12-02  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-out.c (pack_ts_decl_common_value_fields):
	Do not pretend we have value exprs.

2009-12-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41491
	* fold-const.c (try_move_mult_to_index): Do not leak
	domain types into the IL.

2009-12-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42088
	* tree.c (free_lang_data): Disable if not using LTO.

2009-12-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42229
	* cfgloopmanip.c (remove_path): Avoid cancelling loops twice.

2009-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR middle-end/42224
	* tree.h (int_or_pointer_precision): Remove.
	* tree.c (int_or_pointer_precision): Remove.
	(integer_pow2p): Use TYPE_PRECISION instead.
	(tree_log2): Likewise.
	(tree_floor_log2): Likewise.
	(signed_or_unsigned_type_for): Likewise.
	* fold-const.c (fit_double_type): Likewise.
	* varasm.c (initializer_constant_valid_p): Likewise.

2009-12-02  Ira Rosen  <irar@il.ibm.com>

	* doc/invoke.texi (-fdump-tree-slp): Document.
	(-ftree-vectorizer-verbose): Update.
	(-ftree-slp-vectorize): Document.

2009-12-02  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_conditional_register_usage): Do not warn if
	no fixed registers are available for interrupt handlers.  Do not
	fix normal registers.
	(MUST_SAVE_ACC_REGISTER): New macro.
	(rx_get_stack_layout): Create a stack frame for fast interrupt
	handlers, if necessary.  Push extra registers if needed in order
	to save the accumulator.
	(rx_expand_prologue): Create a stack frame for fast interrupt
	handlers, if necessary.
	(rx_expand_builtin_mvfc): Handle the case where there is no target.

2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/abmintrin.h (__lzcnt16): New.
	(__lzcnt): New.
	(__lzcnt64): New.
	* config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
	* config/i386/i386.c (IX86_BUILTIN_CLZS): New.
	(bdesc_special_args): Add __builtin_clzs.
	(ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.

2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/abmintrin.h (_mm_popcnt_u32): New.
	(_mm_popcnt_u64): New.

2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/abmintrin.h: New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
	* config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.

2009-12-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SWI124): Rename from CRC32MODE.
	(crc32modesuffix): Remove.
	(crc32modeconstraint): Ditto.
	(sse4_2_crc32<mode>): Update for renamed mode iterator.  Use
	imodesuffix instead of crc32modesuffix and <r>m instead of
	crc32modeconstraint.

2009-12-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/42234
	* tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
	contains no statements.

2009-12-01  Grigori Fursin  <grigori.fursin@inria.fr>
	    Joern Rennecke  <amylaar@spamcop.net>

	* cgraphunit.c (plugin.h): Include.
	(ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
	PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
	* gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
	(enum plugin_event): Define by including plugin.def.
	Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
	(plugin_event_name): Change type to const char **.
	(get_event_last, get_named_event_id, unregister_callback): Declare.
	(register_callback): Change type of event argument to int.
	(highlev-plugin-common.h): New file.
	* Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
	$(HASHTAB_H)
	(tree-optimize.o passes.o): Depend on $(PLUGIN_H).
	(PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
	(s-header-vars): New rule.
	(install-plugin): Depend on s-header-vars.  Install b-header-vars.
	* params.c (get_num_compiler_params): New function.
	* params.h (get_num_compiler_params): Declare.
	* passes.c (plugin.h): Include.
	(make_pass_instance): Invoke PLUGIN_NEW_PASS.
	(do_per_function_toporder, pass_init_dump_file): No longer static.
	(pass_fini_dump_file): Likewise.
	(execute_one_pass): Likewise.  Invoke PLUGIN_OVERRIDE_GATE and
	PLUGIN_PASS_EXECUTION.
	(execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
	PLUGIN_EARLY_GIMPLE_PASSES_END.
	* plugin.c (plugin_event_name_init): New array, defined by
	including plugin.def.
	(FMT_FOR_PLUGIN_EVENT): Update.
	(plugin_event_name): Change type to const char ** and initialize
	to plugin_event_name_init.
	(event_tab, event_last, event_horizon): New variable.
	(get_event_last): New function.
	(plugin_callbacks_init): New array.
	(plugin_callbacks: Change type to struct callback_info **.
	Initialize to plugin_callbacks_init.
	(htab_event_eq, get_named_event_id, unregister_callback): New function.
	(invoke_plugin_va_callbacks): Likewise.
	(register_callback): Change type of event argument to int.
	Handle new events.  Allow dynamic events.
	(invoke_plugin_callbacks): Likewise.  Return success status.
	(plugins_active_p): Allow dynamic callbacks.
	* plugin.def: New file.
	* plugin.h (invoke_plugin_callbacks): Update prototype.
	(invoke_plugin_va_callbacks): Declare.
	* tree-optimize.c (plugin.h): Include.
	(tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
	PLUGIN_ALL_PASSES_END.
	* tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
	(pass_fini_dump_file, do_per_function_toporder): Likewise.
	* doc/plugin.texi: Document new event types.

2009-12-01  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42237
	* tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
	in between references into two.

2009-12-01  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
	to the block of the call when remapping a type.

2009-12-01  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (struct cgraph_edge): Reorder fields.  Make loop_nest
	unsigned short int.
	* ipa-prop.h (struct ipa_param_call_note): Likewise.
	* ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.

2009-12-01  Richard Guenther  <rguenther@suse.de>

	* final.c (rest_of_clean_state): If -fcompare-debug is
	given dump final insns without UIDs.
	* tree-ssa-live.c (remove_unused_scope_block_p): Remove
	after_inlining checks.

2009-11-30  Chao-ying Fu  <fu@mips.com>

	* config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.

2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>

	* configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
	status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
	options for Cygwin DLL libstdc++ support wrappers.
	(CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
	according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
	(CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
	whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
	(LINK_SPEC): Include CXX_WRAP_SPEC.
	* gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
	(i386_find_on_wrapper_list): Check if a function is found on the list
	of libstdc++ wrapper options.
	(i386_pe_file_end): If we are importing a wrapped function, also emit
	an external declaration for the real version.
	* config/i386/cygming.opt (muse-libstdc-wrappers): New option for
	Cygwin targets. Update copyright year.

2009-11-30  Steve Ellcey  <sje@cup.hp.com>
	    Jakub Jelinek <jakub@redhat.com>

	* function.c (instantiate_virtual_regs_in_insn): Copy to new reg
	before forcing mode.

2009-11-30  Anatoly Sokolov  <aesok@post.ru>

	* config/sh/sh.c (sh_promote_prototypes): Make static.
	(sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
	functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
	sh_function_value_regno_p.
	(FUNCTION_VALUE, LIBCALL_VALUE): Remove.
	* config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
	(sh_promote_prototypes) : Remove.

2009-11-30  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
	reloads to LO_REGS.

2009-11-30  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
	(bdesc_special_args): Update insn codes.
	(avx_vpermilp_parallel): Correct range check.
	(ix86_rtx_costs): Handle vector permutation rtx codes.
	(struct expand_vec_perm_d): Move earlier.
	(get_mode_wider_vector): New.
	(expand_vec_perm_broadcast_1): New.
	(ix86_expand_vector_init_duplicate): Use it.  Tidy AVX modes.
	(expand_vec_perm_broadcast): New.
	(ix86_expand_vec_perm_builtin_1): Use it.
	* config/i386/i386-protos.h: Update.
	* config/i386/predicates.md (avx_vbroadcast_operand): New.
	* config/i386/sse.md (AVX256MODE24P): New.
	(ssescalarmodesuffix2s): New.
	(avxhalfvecmode, avxscalarmode): Fill out to all modes.
	(avxmodesuffixf2c): Add V8SI, V4DI.
	(vec_dupv4sf): New expander.
	(*vec_dupv4sf_avx): Add vbroadcastss alternative.
	(*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
	V4SF and V4SI.  Move C alternatives to front.  Add insertps and
	pinsrd alternatives.
	(*vec_set<mode>_0_sse2): Split out from ...
	(vec_set<mode>_0): Macro-ize for V4SF and V4SI.
	(vec_interleave_highv2df, vec_interleave_lowv2df): Require register
	destination; use ix86_vec_interleave_v2df_operator_ok, instead of
	ix86_fixup_binary_operands.
	(*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
	(*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
	(*avx_movddup, *sse3_movddup): Remove.  New splitter from
	vec_select form to vec_duplicate form.
	(*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
	ix86_vec_interleave_v2df_operator_ok.
	(avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
	(*avx_unpcklpd256): ... here.
	(*vec_dupv4si_avx): New.
	(*vec_dupv2di_avx): Add movddup alternative.
	(*vec_dupv2di_sse3): New.
	(vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
	avx_vbroadcastss256; represent with vec_duplicate instead of
	nested vec_concat operations.
	(avx_vbroadcastf128_<mode>): Rename from
	avx_vbroadcastf128_p<avxmodesuffixf2c>256.
	(*avx_vperm_broadcast_v4sf): New.
	(*avx_vperm_broadcast_<AVX256MODEF2P>): New.

2009-11-30  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42196
	* tree-sra.c (struct access): New field grp_different_types.
	(dump_access): Dump grp_different_types.
	(compare_access_positions): Prefer scalars and vectors over other
	scalar types.
	(sort_and_splice_var_accesses): Set grp_different_types if appropriate.
	(sra_modify_expr): Use the original also when dealing with a complex
	 or vector group accessed as multiple types.

2009-11-30  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (avx_vperm2f128_parallel): New.
	* config/i386/i386-protos.h: Declare it.
	* config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
	avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
	* config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
	(*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
	(*avx_vperm2f128<mode>_nozero): New.

2009-11-30  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
	(V8SF_FTYPE_V8SF_V8SF_V8SI): New.
	* config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
	V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
	(IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
	(bdesc_args): Add them.
	(ix86_expand_builtin): Expand them.
	(expand_vec_perm_pshufb2): Only operate on 16-byte vectors.

2009-11-30  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42206
	* ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.

2009-11-30  Jakub Jelinek  <jakub@redhat.com>

	* ipa-reference.c (propagate): Only dump bitmaps if computed.

2009-11-30  Olga Golovanevsky  <olga@il.ibm.com>

	PR middle-end/39806
	* ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
	(new_var_hash): Likewise.
	(is_in_new_vars_htab): Likewise.
	(add_to_new_vars_htab): Likewise.

2009-11-30  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-stmts.c (vectorizable_assignment): Support
	multiple types.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	* doc/contrib.texi (Contributors): Add myself.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data): Do not set debug_info_level to
	none if terse.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42119
	PR fortran/38530
	* expr.c (expand_expr_addr_expr_1): Properly expand the initializer
	of CONST_DECLs.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
	variable UID order.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	* tree-dump.c (dump_option_value_in): Add TDF_NOUID.
	* tree-pass.h (TDF_NOUID): Likewise.
	* print-rtl.c: Include tree-pass.h.
	(print_mem_expr): Pass dump_flags.
	(print_rtx): Likewise.
	* print-tree.c: Include tree-pass.h.
	(print_node_brief): Handle TDF_NOUID.
	(print_node): Likewise.
	* tree-pretty-print.c (dump_decl_name): Likewise.
	(dump_generic_node): Likewise.
	* Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
	dependency.

2009-11-30  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
	* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
	stormy16-lib2-count-leading-zeros.c.
	* config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
	__stormy16_count_leading_zeros() into this function.
	(__ctzhi2): Use __builtin_clz.
	(__ffshi2): Likewise.

2009-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (DF_MODES): Simplify.
	(TF_ONLY_MODES, OF_ONLY_MODES): Delete.
	(TF_MODES, OF_MODES): Adjust for above change.
	(TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
	*  config/sparc/sparc.h (REGNO_REG_CLASS): Move around.

2009-11-30  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/41812
	* fwprop.c (local_md, local_lr): New globals.
	(process_defs, process_uses): Remove local_md argument.  Never
	consider dead pseudos to have singleton def-use chains.
	(single_def_use_enter_block): Perform LR simulation.
	(build_single_def_use_links): Remove local_md local variable.
	Add DF_NOTE.  Allocate local_lr.
	(fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
	* df-problems.c (df_md_scratch): New.
	(df_md_alloc, df_md_free): Allocate/free it.
	(df_md_local_compute): Only include live registers in init.
	(df_md_transfer_function): Prune the in-set computed by
	the confluence function, and the gen-set too.

2009-11-30  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/40086
	* reorg.c (relax_delay_slots): When looking for redundant insn at
	the branch target, use next_real_insn, not next_active_insn.

2009-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Update minimum MPC version to 0.8.

2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
	HONOR_SIGNED_ZEROS final condition.
	(fnmsubsf4_powerpc_1): Same.
	(fnmadddf4_fpr_1): Same.
	(fnmsubdf4_fpr_1): Same.

2009-11-29  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/42193
	* tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
	to 1 in case of basic block SLP.
	(vectorizable_load): Likewise.

2009-11-28  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (same_body_alias_1): Break out of
	(same_body_alias): ... here; remove comdat check; it is handled
	in cp already.
	(cgraph_add_thunk): New.
	(dump_cgraph_node): Dump aliases and thunks.
	* cgraph.h (cgraph_thunk_info): New structure.
	(struct cgraph_node): Add thunk info.
	(cgraph_add_thunk): New.
	* cgraphunit.c (cgraph_emit_thunks): Remove.
	(cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
	(assemble_thunk): New function.
	(cgraph_expand_function): Handle thunks.
	(thunk_adjust): New.
	(init_lowered_empty_function): New.
	* cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
	Remove.
	* lto-cgraph.c (lto_output_node): Stream thunk info.
	(input_node): Likewise.
	* langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
	* langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
	(LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
	* i386.c (x86_output_mi_thunk): Make output prettier.

2009-11-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42183
	* tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
	address taken.  Merge the addressable state of the NRV
	variable and the result instead of copying it.

2009-11-28  Jakub Jelinek  <jakub@redhat.com>

	* matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
	malloc_fname variable.
	(check_allocation_function): Remove unused gsi and bb_level_0
	variables.
	(transform_access_sites): Remove unused d_type_size and d_type_size_k
	variables.
	* omega.c (resurrect_subs): Remove unused n variable.
	(omega_solve_geq): Remove unused neweqns variable.
	* lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
	* tree-inline.c (declare_return_variable): Remove USE_P argument,
	return use instead of var.
	(remap_decl, remap_block): Remove unused fn variable.
	(expand_call_inline): Remove unused retvar variable, adjust
	declare_return_variable caller.
	(optimize_inline_calls): Remove unused prev_fn variable.
	* tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
	variable.
	(vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
	variables.
	* tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
	properly.
	* tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
	variable.
	(vect_create_epilog_for_reduction): Remove unused bytesize variable.
	* omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
	parameter.  Remove unused par_stmt variable.
	(determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
	(expand_omp_sections): Remove unused l1 variable.
	(lower_omp_for): Remove unused ilist variable.
	* tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
	Remove unused has_upstream_mem_write_p variable.
	* recog.c (decode_asm_operands): Remove unused noperands variable.
	* tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
	size2 variable.
	* libgcov.c (__gcov_merge_delta): Remove unused last variable.
	* tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
	base_nm variable.
	(gen_conditions_for_pow): Remove unused ec variable.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
	variable.
	* ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
	fndecl variable.
	* tree-ssa-sink.c (statement_sink_location): Remove unused code
	variable.
	* regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
	variables.
	* tree-complex.c (create_one_component_var): Remove unused inner_type
	variable.
	* calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
	unnecessarily when GEN_*CALL omits that argument.
	* regrename.c (regrename_optimize): Remove unused regs_seen variable.
	(build_def_use): Remove unused icode variable.
	* ipa-pure-const.c (check_call): Remove unused callee and avail
	variables.
	* tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
	variable.
	(vect_pattern_recog): Remove unused stmt variable.
	* sel-sched-ir.c (make_regions_from_the_rest): Remove unused
	new_regions variable.
	* postreload.c (reload_cse_simplify_operands): Remove unused mode
	variable.
	* tree-parloops.c (create_call_for_reduction_1): Remove unused
	addr_type variable.
	(create_parallel_loop): Remove unused res variable.
	(gen_parallel_loop): Remove unused nloop variable.
	* tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
	* value-prof.c (gimple_mod_subtract_transform,
	gimple_stringops_transform): Remove unused value variable.
	(gimple_stringops_values_to_profile): Remove unused fcode variable.
	* tree-vrp.c (register_new_assert_for): Remove unused found variable.
	(vrp_visit_switch_stmt): Remove unused n variable.
	* tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
	variable.
	(vectorizable_operation): Remove unused shift_p variable.
	(vectorizable_store): Remove unused first_stmt_vinfo variable.
	* tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
	* tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
	variable.
	(vect_permute_store_chain): Remove unused scalar_dest variable.
	(vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
	variable.
	* tree-ssa-threadupdate.c (thread_single_edge): Remove unused
	local_info variable.
	* tree-optimize.c (tree_rest_of_compilation): Remove unused node
	variable.
	* optabs.c (expand_binop): Remove unused equiv_value variable.
	(emit_libcall_block): Remove unused prev variable.
	(init_optabs): Remove unused int_mode variable.
	* tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
	variable.
	(do_structure_copy): Remove unused lhsbase and rhsbase variables.
	(find_func_aliases): Remove unused rhstype variable.
	(ipa_pta_execute): Remove unused varid variable.

2009-11-28  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	* config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.

2009-11-28  David Binderman  <dcb314@hotmail.com>

	* ira-color.c (put_allocno_into_bucket): Remove set but not used
	local variable hard_regs_num.
	* ira-lives.c (process_single_reg_class_operands): Remove cover_class.
	* loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
	* lower-subreg.c (decompose_multiword_subregs): Remove next.

2009-11-27  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42006
	* tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
	instead of create_tmp_var.  Set DECL_GIMPLE_REG_P to one manually
	for vector and complex types.
	(get_adjustment_for_base): Describe return value in the comment.

2009-11-27  Nick Clifton  <nickc@redhat.com>

	* longlong.h (count_leading_zeros): Define macro for stormy16 target.
	(COUNT_LEADING_ZEROS_0): Likewise.
	* config/stormy16/stormy16-lib2.c: Arrange for separate
	compilation of each function.
	(__ffshi2): New function.
	(__stormy16_count_leading_zeros): New function.
	* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
	compile each function into its own object file.
	(stormy16-lib2-ashlsi3.c): New stub file.
	(stormy16-lib2-ashrsi3.c): New stub file.
	(stormy16-lib2-clzhi2.c): New stub file.
	(stormy16-lib2-count-leading-zeros.c): New stub file.
	(stormy16-lib2-ctzhi2.c): New stub file.
	(stormy16-lib2-divsi3.c): New stub file.
	(stormy16-lib2-ffshi2.c): New stub file.
	(stormy16-lib2-lshrsi3.c): New stub file.
	(stormy16-lib2-modsi3.c): New stub file.
	(stormy16-lib2-parityhi2.c): New stub file.
	(stormy16-lib2-popcounthi2.c): New stub file.
	(stormy16-lib2-udivmodsi4.c): New stub file.
	(stormy16-lib2-udivsi3.c): New stub file.
	(stormy16-lib2-umodsi3.c): New stub file.

2009-11-27  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (vec_interleave_highv16qi,
	vec_interleave_lowv16qi, vec_interleave_highv8hi,
	vec_interleave_lowv8hi, vec_interleave_highv4si,
	vec_interleave_lowv4si, vec_interleave_highv2di,
	vec_interleave_lowv2di, vec_interleave_highv4sf,
	vec_interleave_lowv4sf, vec_interleave_highv2df,
	vec_interleave_lowv2df): Remove expanders.
	(sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
	sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
	sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
	Rename to their proper vec_interleave equivalent.  Update all users
	to the new name.
	* config/i386/i386.c, config/i386/i386.md: Update all users.

2009-11-27  Michael Matz  <matz@suse.de>

	PR rtl-optimization/42084
	* cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
	use it to stop walking.
	(expand_gimple_cond): Adjust call to above.

2009-11-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/41810
	* gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
	[SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
	__extension__ to allow cast from function pointer to object
	pointer in C++.
	* doc/install.texi (--enable-threads): Clarify use of Solaris threads.

2009-11-27  Steven Bosscher  <steven@gcc.gnu.org>

	* config/ia64/itanium1.md: Remove.
	* config/ia64/ia64.md: Do not include it.
	* config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
	"itanium1", and "merced" from the processor alias table.
	(clocks, add_cycles): Remove global variables.
	(ia64_sched_reorder2): Don't set/use them.
	(ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
	(bundling): Likewise. Remove extra pass for MMMUL/MMSHF.

2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (last_scheduled_insn): New variable.
	(s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
	functions.
	(s390_sched_reorder, s390_sched_variable_issue): New functions.
	(TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
	defined.

2009-11-27  Michael Matz  <matz@suse.de>

	PR c++/41906
	* tree-eh.c (lower_catch): Stop after expanding a catch-all.

2009-11-27  Richard Guenther  <rguenther@suse.de>

	* timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
	TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
	* loop-init.c (pass_rtl_move_loop_invariants): Use
	TV_LOOP_MOVE_INVARIANTS.
	(pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
	(pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
	(pass_rtl_doloop): Use TV_LOOP_DOLOOP.

2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.

2009-11-27  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
	unused insn variable.
	* genemit.c (output_peephole2_scratches): Only declare and initialize
	_regs_allocated if it will be ever used.
	* cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
	succ_bb variable.
	(create_empty_loop_on_edge): Remove unused freq and cnt variables.
	* unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
	variable.

	* opts.c (decode_options): If optimize is bigger than 255,
	set it to 255.

2009-11-26  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (mulv16qi3): Change back from an expander
	to an insn-and-split.
	(mulv4si): Mention AVX not XOP for AVX exception.
	(*sse2_mulv4si3): Likewise.
	(mulv2di3): Use vmulld not vpmacsdd for XOP expansion.  Tidy.

2009-11-26  Bernd Schmidt  <bernd.schmidt@analog.com>

	* cfgexpand (n_stack_vars_conflict): New static variable.
	(triangular_index): Reduce likelyhood of overflow by performing
	the division before the multiplication.
	(resize_stack_vars_conflict): Call fatal_error if overflow
	occurred in triangular_index.  Update n_stack_vars_conflict.

	PR rtl-opt/38582
	* regrename.c (struct du_chain): Remove member earlyclobber.
	(scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
	all callers changed.
	(scan_rtx): Remove argument earlyclobber, all callers changed.
	(hide_operands, restore_operands, record_out_operands): New functions,
	broken out of build_def_use.
	(build_def_use): Call them as necessary.

	* regrename.c (struct du_head): New members id, conflicts,
	hard_conflicts and cannot_rename.
	(enum scan_actions): Remove terminate_all_read and
	terminate_overlapping_read; add mark_all_read.
	(scan_actions_name): Likewise.
	(du_head_p): New typedef.  Define a vector type for it.
	(id_to_chain): New static variable.
	(note_sets, clear_dead_regs): Delete functions.
	(free_chain_data): New function.
	(merge_overlapping_regs): Simply walk the conflicts bitmap.
	Remove argument B, all callers changed.
	(regrename_optimize): Allocate id_to_chain.  Ignore chains that have
	the cannot_rename bit set.  Update regno and nregs of a renamed chain.
	Call free_chain_data when done.
	(do_replace): Remove death notes when the renamed reg is set in the
	last insn; add them if not.
	(mark_conflict, note_sets_clobbers): New static function.
	(fail_current_block, current_id, open_chains_set, live_hard_regs): New
	static variables.
	(scan_rtx_reg): Keep track of conflicts between chains, and between
	chains and hard regs.  Don't terminate chains when we find a read we
	can't handle, mark it unrenameable instead.  For terminate_write,
	terminate chains that are written with an exact match or a superset
	of registers.  Set fail_current_block if multi-word lifetimes are too
	complex to handle.
	(scan_rtx_address): Use mark_all_read instead of terminate_all_read.
	(build_def_use): Initialize current_id, live_chains and live_hard_regs;
	free memory for them when done.
	Rearrange the steps so that earlyclobbers are noted before reads
	are processed.  Add new steps to keep track of hard register lifetimes
	outside insn operands.

2009-11-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dce.c (nr_walks): New variable.
	(mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
	(perform_tree_ssa_dce): Init nr_walks.

2009-11-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/41905
	* tree-eh.c (lower_eh_constructs_2): Don't add assignments
	below statements that can't fall thru.

2009-11-26  Michael Matz  <matz@suse.de>

	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf): Remove.
	(expand_builtin): Don't call them.

2009-11-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.

2009-11-26  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
	being used incorrectly.
	(rx_function_ok_for_sibcall): New function.  Do not allow indirect
	sibcalls, or sibcalls from interrupt functions.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
	* config/rx/rx.md (sibcall): Convert to a define_expand.  Check
	for a MEM inside a MEM.
	(sibcall_value): Likewise.
	(sibcall_internal): New pattern containing old sibcall pattern.
	(sibcall_value_internal): Likewise.

2009-11-25  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
	optional 3rd argument to define the mode.
	* config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
	(V2UDI, V4USI, V8UHI, V16UQI): New.
	(V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
	V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
	V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
	* config/i386/i386-modes.def: Rearrange for double-wide AVX.
	* config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
	* config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
	(bdesc_args): Add the builtin definitions to match.
	(ix86_expand_builtin): Expand them.
	(ix86_builtin_vectorization_cost): Rename from
	x86_builtin_vectorization_cost.
	(ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
	doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
	expand_vec_perm_blend, expand_vec_perm_vpermil,
	expand_vec_perm_pshufb, expand_vec_perm_1,
	expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
	expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
	expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
	ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
	ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
	ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
	TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
	* sse.md (SSEMODE_EO): New.
	(vec_extract_even<mode>): Use SSEMODE_EO and
	ix86_expand_vec_extract_even_odd.
	(vec_extract_odd<mode>): Likewise.
	(mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
	vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.

2009-11-25  Richard Henderson  <rth@redhat.com>

	* target.h (targetm.vectorize.builtin_vec_perm_ok): New.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
	* hooks.h, hooks.c (hook_bool_tree_tree_true): New.
	* tree-vect-slp.c (vect_create_mask_and_perm): Don't create
	the vector constant here...
	(vect_transform_slp_perm_load): ... do it here instead.  Validate
	that the permutation vector is implementable by the target.

2009-11-25  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
	* config/rs6000/sysv4.h (TARGET_REGNAMES): Define.

	* print-rtl.c (print_rtx): When printing newline, append
	print_rtx_head and indentation after the newline.

	PR target/42165
	* config/i386/i386.c (print_operand): For 32-byte memory use
	YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
	* config/i386/i386.md (crc32modesuffix): Expand to nothing
	in -masm=intel mode.
	(sse4_2_crc32di): Print just crc32 instead of crc32q in
	-masm=intel mode.
	* config/i386/mmx.md (*mmx_pinsrw): Print correct size of
	memory operand in -masm=intel mode.
	* config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
	*sse2_pinsrw): Likewise.
	(sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
	q suffix in -masm=intel mode.

2009-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/10127
	PR ada/20548
	PR middle-end/42004
	* dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
	(dwarf2out_stack_adjust): ...this.  Do not adjust the arg size for
	ACCUMULATE_OUTGOING_ARGS targets.  Rename former version to...
	(dwarf2out_notice_stack_adjust): ...this.  Adjust for above renaming.
	(dwarf2out_frame_debug_expr): Revert previous change and adjust for
	above renaming.
	(dwarf2out_frame_debug): Add ??? comment.  Adjust for above renaming.

2009-11-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (emms_operation): New predicate.
	(vzeroupper_operation): Ditto.
	(vzeroall_operation): Improve pattern recognition.
	* config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
	(avx_vzeroupper): Change insn pattern to expander.
	(*avx_vzeroupper): New insn pattern.  Use vzeroupper_operation
	predicate.
	(*avx_vzeroall): Remove operands 1 and 2.
	* config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
	(mmx_femms): Ditto.
	(*mmx_emms): New insn pattern.  Use emms_operation predicate.
	(*mmx_femms): Ditto.
	* config/i386/i386.c (enum ix86_builtins)
	<IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
	(struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
	Remove initailization.
	<CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.

2009-11-25  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (consttable_4): Handle (high ...).

2009-11-25  Robert Nelson  <robert.nelson@digikey.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (enum vfp_reg_type): Add VFP_NONE.
	* arm.c (all_fpus): Use it for floating point units that aren't based
	on the VFP architecture.
	(aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
	enum machine_mode.

2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>

	* alias.c: Remove trailing white spaces.
	* alloc-pool.c: Likewise.
	* alloc-pool.h: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* basic-block.h: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* builtins.def: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-parser.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfghooks.h: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphunit.c: Likewise.
	* cif-code.def: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* crtstuff.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* dbgcnt.c: Likewise.
	* dbgcnt.def: Likewise.
	* dbgcnt.h: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* ddg.h: Likewise.
	* defaults.h: Likewise.
	* df-byte-scan.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* df.h: Likewise.
	* dfp.c: Likewise.
	* diagnostic.c: Likewise.
	* diagnostic.h: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* double-int.h: Likewise.
	* dse.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2asm.h: Likewise.
	* dwarf2out.c: Likewise.
	* ebitmap.c: Likewise.
	* ebitmap.h: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* final.c: Likewise.
	* flags.h: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* fwprop.c: Likewise.
	* gcc.c: Likewise.
	* gcov-dump.c: Likewise.
	* gcov-io.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattr.c: Likewise.
	* genattrtab.c: Likewise.
	* genautomata.c: Likewise.
	* genchecksum.c: Likewise.
	* genconfig.c: Likewise.
	* genflags.c: Likewise.
	* gengtype-parse.c: Likewise.
	* gengtype.c: Likewise.
	* gengtype.h: Likewise.
	* genmddeps.c: Likewise.
	* genmodes.c: Likewise.
	* genopinit.c: Likewise.
	* genpreds.c: Likewise.
	* gensupport.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc-page.c: Likewise.
	* ggc-zone.c: Likewise.
	* ggc.h: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple.c: Likewise.
	* gimple.def: Likewise.
	* gimple.h: Likewise.
	* gimplify.c: Likewise.
	* graphds.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* gthr-nks.h: Likewise.
	* gthr-posix.c: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-posix95.h: Likewise.
	* gthr-single.h: Likewise.
	* gthr-tpf.h: Likewise.
	* gthr-vxworks.h: Likewise.
	* gthr.h: Likewise.
	* haifa-sched.c: Likewise.
	* hard-reg-set.h: Likewise.
	* hooks.c: Likewise.
	* hooks.h: Likewise.
	* hosthooks.h: Likewise.
	* hwint.h: Likewise.
	* ifcvt.c: Likewise.
	* incpath.c: Likewise.
	* init-regs.c: Likewise.
	* integrate.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-struct-reorg.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa-type-escape.h: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-utils.h: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-int.h: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* lambda-code.c: Likewise.
	* lambda-mat.c: Likewise.
	* lambda-trans.c: Likewise.
	* lambda.h: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* libgcov.c: Likewise.
	* lists.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* lto-streamer.h: Likewise.
	* lto-symtab.c: Likewise.
	* lto-wpa-fixup.c: Likewise.
	* matrix-reorg.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omega.c: Likewise.
	* omega.h: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* optabs.h: Likewise.
	* opts-common.c: Likewise.
	* opts.c: Likewise.
	* params.def: Likewise.
	* params.h: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* predict.def: Likewise.
	* pretty-print.c: Likewise.
	* pretty-print.h: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* read-rtl.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regmove.c: Likewise.
	* regrename.c: Likewise.
	* regs.h: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* resource.c: Likewise.
	* rtl.c: Likewise.
	* rtl.def: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.
	* sbitmap.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-dump.h: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* sel-sched.c: Likewise.
	* sel-sched.h: Likewise.
	* sese.c: Likewise.
	* sese.h: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* stub-objc.c: Likewise.
	* sync-builtins.def: Likewise.
	* target-def.h: Likewise.
	* target.h: Likewise.
	* targhooks.c: Likewise.
	* targhooks.h: Likewise.
	* timevar.c: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* toplev.h: Likewise.
	* tracer.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-affine.h: Likewise.
	* tree-browser.def: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-chrec.h: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-data-ref.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-dump.h: Likewise.
	* tree-eh.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-flow.h: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-loop-linear.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-operands.h: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vectorizer.h: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* treestruct.def: Likewise.
	* unwind-compat.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2.c: Likewise.
	* value-prof.c: Likewise.
	* value-prof.h: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vec.c: Likewise.
	* vec.h: Likewise.
	* vmsdbgout.c: Likewise.
	* web.c: Likewise.
	* xcoffout.c: Likewise.

2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_call): Only use sr4 for long interspace calls if
	call binds local and generating non PIC code.
	(attr_length_call): Adjust length calculation for above.

2009-11-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
	(add<mode>3_carry): Change operand order of plus RTX.
	(*add<mode>3_carry): Ditto.
	(*addsi3_carry_zext): Ditto.
	(*add<dwi>3_doubleword): Update for changed operand order.
	(*negti2_1 splitter): Ditto.
	(*negdi2_1 splitter): Ditto.
	(<plusminus_insn><mode>3_carry): Macroize expander from
	{add,sub}<mode>3_carry patterns using plusminus code iterator.
	(*<plusminus_insn><mode>3_carry): Macroize insn from
	*{add,sub}<mode>3_carry patetrns using plusminus code iterator.
	(neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
	patterns using SDWIM mode iterator.
	(*neg<dwi>2_doubleword): New insn_and_split pattern.  Macroize
	pattern from *neg{di,ti}2_1 patterns and corresponding splitters
	using DWIH mode iterator.
	(*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
	using SWI mode iterator.
	(*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
	(one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
	patterns using SWIM mode iterator.
	(*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
	patterns using SWI248 mode iterator.
	(*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
	patterns using SWI mode iterator.
	(*one_cmpl<mode>2_2 splitter): Macroize splitter from
	one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.

2009-11-24  Michael Matz  <matz@suse.de>

	* expr.c (set_storage_via_libcall): Fix build_call_expr call.

2009-11-24  David Binderman  <dcb314@hotmail.com>

	* expr.c (store_field): Remove set but not used local variable
	width_mask.
	(expand_expr_real_2): Remove treeop2.
	* gcse.c (update_ld_motion_stores): Remove new_rtx.
	* haifa-sched.c (max_issue): Remove points.
	(sched_create_recovery_edges): Remove e.
	* ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.

2009-11-24  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (function_arg): Fix handling of zero-length
	function arguments.

2009-11-24  Michael Matz  <matz@suse.de>

	* tree.h (union tree_ann_d): Don't declare.
	(tree_base): Remove ann field.
	(struct var_ann_d): Declare forward.
	(tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
	(DECL_VAR_ANN_PTR): New macro.
	* tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
	accept only VAR, PARM or RESULT decls.
	(create_tree_common_ann): Remove.
	(remove_referenced_var): Use DECL_VAR_ANN_PTR.
	* tree-eh.c (lookup_expr_eh_lp): Remove.
	* tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
	DECL_VAR_ANN_PTR.
	(ann_type, tree_common_ann, get_tree_common_ann): Remove.
	* tree-flow.h (enum tree_ann_type): Remove.
	(struct tree_ann_common_d): Remove.
	(struct var_ann_d): Remove common field.
	(union tree_ann_d): Remove.
	(tree_ann_t, tree_ann_common_t): Remove typedefs.
	(tree_common_ann, get_tree_common_ann, ann_type,
	create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
	* tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
	* tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
	* builtins.c (expand_builtin_memcpy): Use
	currently_expanding_gimple_stmt instead of tree annotation.
	(expand_builtin_memset_args): Ditto.
	* cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
	(expand_call_stmt): Don't set tree annotation.
	(expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
	* expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
	* gimple.h (currently_expanding_gimple_stmt): Declare.

2009-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* dwarf2out.c (add_location_or_const_value_attribute): Remove
	useless NOTE_VAR_LOCATION_STATUS call.
	* cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.

2009-11-24  Rafael Avila de Espindola  <espindola@google.com>

	* lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
	being called recursively.

2009-11-24  Basile Starynkevitch  <basile@starynkevitch.net>

	* Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
	$(MD5_H) params.def params.h prefix.h tree-inline.h.

2009-11-24  Paul Brook  <paul@codesourcery.com>

	* gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
	typo.

2009-11-24  Julian Brown  <julian@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
	(arm_dwarf_register_span): New function.
	(arm_dbx_register_number): Add VFPv3 dwarf numbering.

2009-11-24  David Binderman  <dcb314@hotmail.com>

	* cfgrtl.c (commit_one_edge_insertion): Remove set but not used
	local variable bb_note.
	* dominance.c (get_dominated_by): Likewise local var n.
	(output_file_names): Likewise local var idx.
	(add_location_or_const_value_attribute): Likewise local var status.
	* dwarf2out.c (gen_variable_die): Likewise local var field.
	* emit-rtl.c (no_line_numbers): Remove.
	(init_emit_once): Remove line_numbers parameter.
	* rtl.h (init_emit_once): Adjust prototype.
	* toplev.c (backend_init): Adjust init_emit_once call.

2009-11-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42142
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
	Handle iv-dependent (non-)kills properly.
	(mark_aliased_reaching_defs_necessary): Pass the basic-block
	of the reference statement to mark_aliased_reaching_defs_necessary_1.

2009-11-24  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42154
	* tree-sra.c (struct access): Added comments.
	(sra_modify_expr): Build references to the old aggregate with
	build_ref_for_offset instead of reusing access->expr.
	(load_assign_lhs_subreplacements): Likewise.

2009-11-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (add<mode>3_carry): Change insn pattern
	to expander.
	(sub<mode>3_carry): Ditto.
	(x86_mov<mode>cc_0_m1): Ditto.
	(*add<mode>3_carry): New insn pattern.  Use VOIDmode match_operator
	for ix86_carry_flag_operator operator predicate.
	(*sub<mode>3_carry): Ditto.
	(*x86_mov<mode>cc_0_m1): Ditto.
	(*addsi3_carry_zext): Use VOIDmode match_operator for
	ix86_carry_flag_operator operator predicate.
	(*subsi3_carry_zext): Ditto.
	(*x86_mov<mode>cc_0_m1_s): Ditto.
	(*x86_mov<mode>cc_0_m1_neg): Ditto.
	* config/i386/predocates.md (ix86_carry_flag_operator): Do not
	check operator sub-expressions for FLAGS_REG and const0_rtx.
	* config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
	(ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
	(ix86_expand_int_addcc): Update calls to
	gen_{add,sub}{qi,hi,si,di}3_carry.  Do not set mode of compare_op.
	(ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
	Do not set mode of compare operation.

2009-11-23  Jan Hubicka  <jh@suse.cz>

	PR middle-end/42151
	* ipa-inline.c (inline_transform): Avoid ICE when transform is called
	twice.

2009-11-23  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_compute_node_scale): Work around completely
	wrong profile updates.
	* predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
	having largest frequency.
	* ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
	used uninitalized warning.
	* tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
	frequencies.

2009-11-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
	of gen_rtx_REG to generate operand 5.
	(*cmp_ssub_sidi): Ditto.

2009-11-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
	mismatch.

2009-11-23  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
	case for noreturn functions.
	(arm_compute_save_reg_mask): Remove special noreturn handling.

2009-11-23  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
	size for DECL bases.

2009-11-22  Richard Henderson  <rth@redhat.com>

	* i386.c (avx_vpermilp_parallel): New function.
	* i386-protos.h: Declare it.
	* predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
	avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
	* sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
	(ssescalarnum, ssedoublesizemode): Add AVX modes.
	(vpermilbits): Remove.
	(avx_vpermil<mode>): Change insns to expanders.
	(*avx_vpermil<mode>): New.  Use vec_select.

2009-11-22  Richard Earnshaw  <rearnsha@arm.com>

	* opts.c (decode_options): Don't enable flag_schedule_insns
	when optimizing for size.
	* doc/invoke.texi: Document change.

2009-11-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42113
	* config/alpha/alpha.md (*cmp_sadd_si): Change mode
	of scratch register to SImode.
	(*cmp_sadd_sidi): Ditto.
	(*cmp_ssub_si): Ditto.
	(*cmp_ssub_sidi): Ditto.

2009-11-21  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (HOST_LIBS): Move higher in file.
	(LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
	is not empty, set to $(CC) and $(CFLAGS).

2009-11-22  Martin Jambor  <mjambor@suse.cz>

	* tree-cfg.c (verify_types_in_gimple_reference): Error out on
	V_C_E of an SSA_NAME or an invariant if lvalue is required.
	(verify_gimple_call): Verify LHS also with with
	verify_types_in_gimple_reference.

2009-11-21  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42025
	* tree-sra.c (access_precludes_ipa_sra_p): New function.
	(splice_param_accesses): Check all accesses by calling
	access_precludes_ipa_sra_p.
	(sra_ipa_modify_expr): Rename argument erite to dont_convert and do
	not convert types if it is true.
	(sra_ipa_modify_assign): Convert types in case of mismatch.

2009-11-21  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
	for operand 1.

2009-11-21  Adam Nemet  <adambnemet@gmail.com>

	* config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
	(mips_mulsidi3_gen_fn): Declare new function.
	* config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
	* config/mips/mips.md (<u>mulsidi3): Change condition to use
	mips_mulsidi3_gen_fn.  Use mips_mulsidi3_gen_fn to generate the insn.
	(<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
	(mulsidi3_64bit_dmul): New define_insn.

2009-11-21  Ben Elliston  <bje@au.ibm.com>

	* gengtype-lex.l: Enable noinput flex option.
	(YY_NO_INPUT): Remove define.

2009-11-21  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa.c (find_released_ssa_name): Handle NULL wi.
	(insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
	(insert_debug_temps_for_defs): Handle PHI nodes.
	* tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
	SSA names.

2009-11-21  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
	after remove_phi_node.

2009-11-21  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/42078
	* gimple.h (gimple_replace_lhs): New declaration.
	* gimple.c (gimple_replace_lhs): New function.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
	modifying the call.

2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
	(xop_mulv2div2di3_low): Same.
	(*xop_pmacsdqh_mem): Same.

2009-11-20  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-builtin-types.awk: New file.
	* config/i386/i386-builtin-types.def: New file.
	* config/i386/t-i386: Use them to build i386-builtin-types.inc.
	* config/i386/i386.c: Include it.
	(ix86_builtin_type_tab, ix86_get_builtin_type): New.
	(ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
	(struct builtin_isa): Remove GTY marker.  Replace tree type with
	ix86_builtin_func_type; add set_and_not_built_p.
	(def_builtin): Change type parameter to tcode; use
	ix86_get_builtin_func_type; update all callers.  Accept zero mask
	to mean the builtin is unconditionally available.
	(ix86_add_new_builtins): Use set_and_not_built_p instead of type
	being set to NULL.
	(enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
	Update some users to rationalized enumeration codes from new include.
	(enum multi_arg_type): Remove.  Replace all enumeration values
	with defines to new ix86_builtin_func_type.
	(ix86_init_mmx_sse_builtins): Don't build any types here.  Defer
	all type resolution to def_builtin.
	(ix86_init_builtin_types): Split out from ...
	(ix86_init_builtins): ... here.  Use ix86_get_builtin_func_type.

2009-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/41787
	* config/rs6000/rs6000.c (struct machine_function): Revert
	2009-10-23 change to set VRSAVE to non-0 if we use VSX.
	(rs6000_expand_to_rtl_hook): Ditto.
	(rs6000_check_vector_mode): Ditto.
	(compute_vrsave_mask): Ditto.

2009-11-20  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document ARM -mcpu=cortex-a5.
	* config/arm/arm-cores.def: Add cortex-a5.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
	* config/arm/arm-tune.md: Regenerate.

2009-11-20 Olga Golovanevsky <olga@il.ibm.com>

	PR middle-end/39960
	* ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
	(ref_pos): New field in structure.
	(insert_new_var_in_stmt): New function.


2009-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
	* config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
	(INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
	(UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
	(INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE): Define.
	(UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
	UINT_LEAST64_TYPE): Define.
	(INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
	INT_FAST64_TYPE): Define.
	(UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE): Define.
	(INTPTR_TYPE, UINTPTR_TYPE): Define.

2009-11-20  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
	specially for Thumb-1.
	(ASM_OUTPUT_REG_POP): Likewise.

2009-11-19  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.

2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* doc/plugins.texi (Plugin initialization): Added advices for
	retrieving the version of GCC at plugin compilation and loading times.

2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
	(dump_active_plugins): output to file everything. Use
	internationalized dump & FMT_FOR_PLUGIN_EVENT.

2009-11-19  Richard Guenther  <rguenther@suse.de>

	* gimple.c (canonicalize_cond_expr_cond): Strip conversions
	around truth-valued expressions.
	* tree.c (free_lang_data): Untangle check for LTO frontend.

2009-11-19  Jakub Jelinek  <jakub@redhat.com>

	* tree.c (need_assembler_name_p): Use cgraph_get_node instead
	of cgraph_node_for_decl.
	* cgraph.h (cgraph_node_for_decl): Remove prototype.
	* cgraph.c (cgraph_node_for_decl): Remove.
	(cgraph_get_node): Just return NULL if !cgraph_hash.

2009-11-19  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Add new ARM --with-fpu options.
	* doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
	* config/arm/arm.c (all_fpus): Add fpv4-sp-d16.

2009-11-18  Richard Guenther  <rguenther@suse.de>

	* gimple.h (union gimple_statement_d): Add gsmembase member.
	(gimple_vuse_op): Use gsmembase for access.
	(gimple_vdef_op): Likewise.
	(gimple_vuse): Likewise.
	(gimple_vdef): Likewise.
	(gimple_vuse_ptr): Likewise.
	(gimple_vdef_ptr): Likewise.
	(gimple_set_vuse): Likewise.
	(gimple_set_vdef): Likewise.
	* gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.

2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/arm-neon-intrinsics.texi: Regenerated.

2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.

2009-11-18  Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
	(arm_arch7em): New variable.
	(all_architectures): Add armv7e-m.
	(arm_override_options): Set arm_arch7em.
	* config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
	Include arm_arch7em.
	(arm_arch7em): Declare.

2009-11-18  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (input_gimple_stmt): Assert that we find
	a valid field decl if checking is enabled.

2009-11-18  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
	(lto_ipa_fixup_call_notes): Declare.
	* ipa-prop.c (ipa_note_param_call): Store gimple uid.
	(update_call_notes_after_inlining): Copy call stmt uid to the new
	edge.
	(ipa_write_param_call_note): New function.
	(ipa_read_param_call_note): New function
	(ipa_write_node_info): Write also param call notes.  Removed a bogus
	comment, reformatted to fit 80 columns.
	(ipa_read_node_info): Read also param call notes. Removed a bogus
	comment.  Remove ipa_edge_args_vector growth.
	(lto_ipa_fixup_call_notes): New function.
	* ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
	* ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
	inlining regardless of flag_wpa.
	(cgraph_decide_inlining_of_small_functions): Likewise.
	(cgraph_decide_inlining): Likewise.
	(inline_read_summary): Likewise.

2009-11-18  Jan Hubicka  <jh@suse.cz>

	* predict.c (compute_function_frequency): Export.
	* predict.h (compute_function_frequency): Declare.
	* tree-optimize.c (execute_fixup_cfg): Rescale frequencies.

2009-11-18  Martin Jambor  <mjambor@suse.cz>

	* passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
	on all nodes we write summaries for.

2009-11-18  Shujing Zhao  <pearly.zhao@oracle.com>

	PR middle-end/22201
	* params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
	(PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
	(PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
	(PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
	(PARAM_MIN_INSN_TO_PREFETCH_RATIO)
	(PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
	(PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
	description string.

2009-11-18  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
	unnecessarily.
	(rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.

	PR c++/3187
	* cgraph.h (struct cgraph_node): Add same_body and same_body_alias
	fields.
	(cgraph_same_body_alias, cgraph_remove_same_body_alias): New
	prototypes.
	* cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
	cgraph_materialize_all_clones): Handle same_body aliases.
	* cgraph.c (cgraph_allocate_node): New function.
	(cgraph_create_node): Use it.
	(cgraph_node_for_decl, cgraph_node, cgraph_get_node,
	cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
	(cgraph_same_body_alias, cgraph_remove_same_body_alias): New
	functions.
	* lto-cgraph.c (lto_output_node): Stream out same_body aliases.
	(input_node): Stream in same_body aliases.
	* lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
	for same_body aliases.
	(lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.

2009-11-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>

	PR other/39888
	* config/darwin.h: Use the extension stub libraries to access
	current libgcc_s features.

2009-11-18  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41926
	* tree-vect-loop.c (vect_loop_kill_debug_uses): New.
	(vect_transform_loop): Call it.

2009-11-18  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
	released SSA names.

2009-11-18  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41888
	PR debug/41886
	* graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
	are ok.
	* graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
	(try_generate_gimple_bb): Skip debug stmts when finding data refs.
	* sese.c (sese_build_liveouts_bb): Skip debug stmts.
	(sese_bad_liveouts_use): New.
	(sese_reset_debug_liveouts_bb): New.
	(sese_build_liveouts): Use it.
	(rename_variables_in_stmt): Reset debug stmts rather than creating
	new vars for them.
	(expand_scalar_variable_stmt): Likewise.

2009-11-18  Alexandre Oliva  <aoliva@redhat.com>

	* df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
	(df_ref_remove): Likewise.

2009-11-17  Jan Hubicka  <jh@suse.cz>

	* ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
	info.

2009-11-17  Eric Botcazou  <ebotcazou@adacore.com>

	* toplev.c (process_options): Remove dead code.
	* doc/invoke.texi (-frename-registers): Mention -fpeel-loops.

2009-11-17  Rafael Avila de Espindola  <espindola@google.com>

	* lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
	nodes.

2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR tree-optimization/41857
	* tree-ssa-address.c (move_hint_to_base): Use void pointer to
	TYPE's address space instead of pointer to TYPE.

2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* reload.c (find_reloads_address): Fix typo.

2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
	registers in leaf functions if possible.

2009-11-17  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k-devices.def: Add MCF5441x family.

2009-11-17  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
	removed node.
	* cgraphunit.c (verify_cgraph_node): Verify frequencies for match.

2009-11-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (x86_64_szext_general_operand): Do not
	nest ior expressions.
	(x86_64_szext_nonmemory_operand): Ditto.
	(call_insn_operand): Ditto.

2009-11-16  Alexandre Oliva  <aoliva@redhat.com>

	* stmt.c (expand_asm_stmt): Get locus from stmt.

2009-11-16  Alexandre Oliva  <aoliva@redhat.com>

	* tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
	Create the decl label for the new dest block on demand.  Require
	a fallthrough edge if no asm labels were redirected.

2009-11-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
	operand 1 predicate.
	(cstoresi4): Ditto for operand 2.
	(cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
	patterns using SDWIM mode iterator.
	(cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
	using SWIM mode iterator.
	(cmpdi_1): Rename from cmpdi_1_rex64.
	(cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
	SWI48 mode iterator.
	(*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
	using SWI mode iterator.
	(*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
	(*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
	(*cmpqi_ext_3_insn): Make private.
	(*cmpqi_ext_3_insn_rex64): Make private.
	(cmpstrnsi): Update for renamed cmpdi_1_rex64.
	* config/i386/predicates.md (cmpsi_operand): Remove.

2009-11-16  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document ARM VFPv4 based FPUs.
	* config/arm/arm.c (all_fpus): Add VFPv4 entries.

2009-11-14  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
	ENTRY_BLOCK_PTR.
	* cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
	zero out all callees.
	* cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
	frequency and count match.
	* ipa-inline.c (update_noncloned_frequencies): New function.
	(cgraph_clone_inlined_nodes): Use it.
	* tree-inline.c (copy_bb): Fix frequency scaling; output
	diagnostic on frequency mismatches to dump file.
	(initialize_cfun): Do not scale frequency; fix count scaling;
	initialize entry and exit block frequencies; copy profile info.
	(copy_cfg_body): Use frequency_scale as argument; fix count scaling.
	(copy_body): Use frequency_scale as argument.
	(expand_call_inline): Compute frequency scale and output diagnostic
	to dump file.
	(delete_unreachable_blocks_update_callgrah): Remove checking that
	has to be done after edge redirection.
	(tree_function_versioning): Update initialize_cfun and copy_body call.

2009-11-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_release_function_body): Update use of
	ipa_transforms_to_apply.
	(cgraph_remove_node): Remove ipa_transforms_to_apply.
	* cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
	* cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
	copied body.
	(cgraph_materialize_clone): Remove original if dead.
	* lto-streamer-in.c (lto_read_body): Remove FIXME and
	ipa_transforms_to_apply hack.
	* function.h (struct function): Add ipa_transforms_to_apply.
	* ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
	* tree-inline.c (copy_bb): Update sanity check.
	(initialize_cfun): Do not copy ipa_transforms_to_apply.
	(expand_call_inline): remove dead clone originals.
	(tree_function_versioning): Merge transformation queues.
	* passes.c (add_ipa_transform_pass): Remove.
	(execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
	tracking.
	(execute_all_ipa_transforms): Update.
	(execute_one_pass): Update.

2009-11-14  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR target/21078, 21080
	* config/avr/avr.c (avr_return_addr_rtx): New function for
	builtin_return_address.
	(expand_prologue): Calculate stack usage.
	(avr_asm_function_end_prologue): Output stack size and offset label.
	* config/avr/avr.h (RETURN_ADDR_RTX): Replace.
	(machine_function): Add stack_usage.
	* config/avr/avr-protos.h (avr_return_addr_rtx): New function.

2009-11-14  Anatoly Sokolov  <aesok@post.ru>

	* config/iq2000/iq2000.c (iq2000_function_value): Make static, add
	new 'outgoing' argument.
	(iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
	iq2000_function_value_regno_p.
	(FUNCTION_VALUE, LIBCALL_VALUE): Remove.
	* config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
	Declare.

2009-11-14  Richard Earnshaw  <rearnsha@arm.com>

	PR target/42031
	* arm.md (adddi_sesidi_di): Place tied contraint first.
	(adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
	(subdi_zesidi_di, subdi_sesidi_di): Likewise.
	(mulsi3_compare0, mulsi_compare0_scratch): Likewise.
	(mulsi3addsi, mulsi3addsi_compare0): Likewise.
	(mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
	(umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
	(anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
	(andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
	(arm_lshrdi3_1bit, one_cmpldi2): Likewise.

2009-11-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (call_register_no_elim_operand):
	New predicate.  Reject stack register as valid call operand
	for 32bit targets.
	(call_insn_operand): Use call_register_no_elim_operand.

2009-11-13  Richard Henderson  <rth@redhat.com>

	* function.c (stack_protect_prologue): Don't bypass expand_expr
	for stack_protect_guard and guard_decl.
	(stack_protect_epilogue): Likewise.

2009-11-13  Jan Hubicka  <jh@suse.cz>

	* ipa.c (function_and_variable_visibility): Clear COMDAT on functions
	when to PUBLIC is set.

2009-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/42029
	* gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
	tmp_load if needed.

2009-11-13  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41900
	* config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
	*call_value_1): Use "lsm" as operand 1 constraint.
	* config/i386/predicates.md (call_insn_operand): Depend on
	index_register_operand to avoid %esp register.

2009-11-13  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2009-11-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41900
	* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
	(TARGET_CALL_ESP): New define.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_ARCH_CALL_ESP.
	* config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
	*call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
	*call_1, *call_value_pop_1 and *call_value_1.  Depend on
	TARGET_CALL_ESP.
	(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
	New patterns, use "lsm" as operand 1 constraint.
	* config/i386/predicates.md (call_insn_operand): Depend on
	index_register_operand for !TARGET_CALL_ESP to avoid %esp register.

2009-11-13  Jason Merrill  <jason@redhat.com>

	PR debug/26965
	* dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
	Don't emit a second declaration at any scope.

2009-11-13  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/41697
	* sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
	a conditional jump has a single successor.

2009-11-13  Andrey Belevantsev  <abel@ispras.ru>

	* sched-deps.c (init_deps): New parameter lazy_reg_last.  Don't
	allocate reg_last when in case lazy_reg_last is true.
	(init_deps_reg_last): New.
	(free_deps): When max_reg is 0, this context is already freed.
	* sched-int.h (init_deps_reg_last): Export.
	(init_deps): Update prototype.
	* sched-ebb.c (schedule_ebb): Update the call to init_deps.
	* sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
	* ddg.c (build_intra_loop_deps): Likewise.
	* sel-sched-ir.c (copy_deps_context, create_deps_context,
	reset_deps_context, deps_init_id): Likewise.
	(init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
	(free_data_for_scheduled_insn): New, break down from ...
	(free_first_time_insn_data): ... here.
	(has_dependence_p): Allocate reg_last now, when it is needed.
	(extend_insn_data): When maximal LUID is big enough, allocate
	per-insn data in smaller chunks.
	* sel-sched-ir.h (free_data_for_scheduled_insn): Export.
	* sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
	in scheduled insn.

2009-11-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (call_value): Fix comment.
	(sibcall_value): Ditto.

2009-11-13  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/linux-unwind.h (x86_frob_update_context): New function.
	(MD_FROB_UPDATE_CONTEXT): Define.

2009-11-12  Eric Botcazou  <ebotcazou@adacore.com>
	    Laurent GUERBY  <laurent@guerby.net>

	* config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
	Do not schedule an %sp restore.  Compensate for RETURN_ADDR_OFFSET.
	(sparc_fallback_frame_state): Tidy.  Compensate for RETURN_ADDR_OFFSET.

2009-11-12  Jan Hubicka  <jh@suse.cz>

	* ipa.c (function_and_variable_visibility): Fix my accidentail commit
	and clear DECL_COMMON on localized declarations.

2009-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR rtl-opt/38582
	* regrename.c (struct du_head): New structure; some elements moved
	from...
	(struct du_chain): ... this one.
	(open_chains, closed_chains): Now of type struct du_head *.
	(do_replace): Accept du_head argument, not du_chain.  All callers
	changed.  Modified code to match new data structures.
	(build_def_use): Return a list of du_head structures.  Modified code
	to match new data structures.
	(dump_def_use_chain): Accept du_head argument, not du_chain.  All
	callers changed.  Modified code to match new data structures.
	(merge_overlapping_regs): Accept du_head argument, not du_chain.  All
	callers changed.  Modified code to match new data structures.
	(scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
	Allocate a du_head structure as well as a du_chain when creating a
	new chain.  Modified other code to match new data structures.

2009-11-12  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (varpool_node_name): Declare.
	* cgraphunit.c (process_function_and_variable_attributes): Set
	force_output flag on used variables.
	* ipa.c (function_and_variable_visibility): Dump externally visible
	and needed variables.
	* varpool.c (varpool_node_name): Export.
	(decide_is_variable_needed): Check COMDAT for externally visible vars;
	ignore needed flag.

2009-11-12  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/41930
	* simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
	processing if XEXP (x, i) is NULL.

2009-11-12  Jan Hubicka  <jh@suse.cz>

	* ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
	imply PUBLIC || EXTERNAL.

2009-11-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR middle-end/41440
	* cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
	single successor block, ending with jump created by RTL expander.

2009-11-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/41729
	* ipa.c (function_and_variable_visibility): Do not privatize COMDAT
	and WEAK variables at -fwhole-program.

	PR middle-end/41735
	* ipa.c (whole_program_function_and_variable_visility): COMDAT
	functions/variables are not needed even if they are externally visible.

2009-11-11  Jan Hubicka  <jh@suse.cz>

	(patch by Richard Guenther)
	* lto-streamer-out.c (output_function): Output head of argument list
	earlier.
	* lto-streamer-in.c (input_function): Re-map arguments into merged
	declaration.

2009-11-11  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c: Include gcov-io.h
	(output_profile_summary): New function.
	(output_cgraph): Use it.
	(input_profile_summary): New function.
	(input_cgraph): Use it.
	* coverage.c (build_ctr_info_value): Use varpool; initalize
	DECL_ASSEMBLER_NAME.
	(create_coverage): Likewise.
	* tree-profile.c (tree_init_ic_make_global_vars): Likewise.
	(tree_init_edge_profiler): Likewise.
	* Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.

2009-11-11  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
	* c-pragma.c (def_pragma_macro_value): Likewise.
	(def_pragma_macro): Likewise.
	(pushed_macro_table): Likewise.
	(HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
	* doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.

2009-11-11  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Registering custom attributes): section
	renamed as (Registering custom attributes or pragmas).
	Mentions custom attributes & pragmas, and c_register_pragma, with
	a small example.
	* doc/cpp.texi (Pragmas): Mentions that plugins can provide their
	pragmas.
	* doc/extend.texi (Function Attributes): Mentions that plugin can
	provide their attributes.

2009-11-11  Jon Beniston  <jon@beniston.com>

	* config.gcc: Add lm32 elf and uclinux targets.
	* config/lm32: New directory.
	* config/lm32/lm32.c: New file.
	* config/lm32/lm32.h: New file.
	* config/lm32/lm32.md: New file.
	* config/lm32/lm32.opt: New file.
	* config/lm32/lm32-protos.h: New file.
	* config/lm32/constraints.md: New file.
	* config/lm32/predicates.md: New file.
	* config/lm32/sfp-machine.h: New file.
	* config/lm32/t-fprules-softfp: New file.
	* config/lm32/uclinux-elf.h: New file.
	* doc/invoke.texi: Document lm32 options.
	* doc/contrib.texi: Document lm32 porter.
	* doc/install.texi: Document lm32 targets.

2009-11-11  Martin Jambor  <mjambor@suse.cz>

	PR lto/41932
	* ipa-prop.c (ipa_update_after_lto_read): Call
	ipa_check_create_node_params and ipa_check_create_edge_args.  Also
	call ipa_initialize_node_params instead of ipa_populate_param_decls.

2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
	(neon_expand_vector_init): Use them.  Also handle non-constant
	vectors with identical elements and vectors with only one
	non-constant element.
	(arm_print_operand): Handle 'y' modifier.
	* config/arm/arm-protos.h (neon_make_constant): Declare.
	* config/arm/neon.md (neon_vdup_n<mode>): Split into two
	patterns.  Use VX instead of VDQW for the first one.  Allow
	a VFP alternative and V32 modes for the second one.
	* config/arm/neon.ml (shape_elt): Add Alternatives.
	(ops): Use Alternatives for vdup lane instructions.
	* config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
	* config/arm/vec-common.md (mov<mode>): Use neon_make_constant.

2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/neon.md (*neon_mov<mode>): Reject two non-register
	operands.
	(movti, mov<mode>): Call force_reg on one operand if required.
	* config/arm/vec-common.md (mov<mode>): Likewise.

2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (arm_override_options): Enable scheduling for
	Thumb-2.

2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/10127
	PR ada/20548
	* expr.h (anti_adjust_stack_and_probe): Declare.
	* explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
	parameter and rewrite head comment.
	(allocate_dynamic_stack_space): Adjust call to above function.
	* function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.

	* tree.h (dwarf2out_args_size): Delete.
	* dwarf2out.c (dwarf2out_args_size): Make static and move around.
	(dwarf2out_args_size_adjust): Delete prototype and move around.
	(dwarf2out_frame_debug_expr): Do not record arg size adjustments for
	ACCUMULATE_OUTGOING_ARGS targets.

2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
	DECL_SIZE of DECL_RESULT before evaluating it.

2009-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR tree-optimization/41987
	* fold-const.c (const_binop): Avoid using fold_buildN().

2009-11-10  Martin Jambor  <mjambor@suse.cz>

	* tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
	(execute_all_ipa_stmt_fixups): Declare.
	* ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
	* ipa-inline.c (pass_ipa_inline): Likewise.
	* ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
	* ipa-reference.c (pass_ipa_reference): Likewise.
	* ipa.c (pass_ipa_whole_program_visibility): Likewise.
	* lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
	(pass_ipa_lto_finish_out): Likewise.
	* lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
	* passes.c (execute_ipa_stmt_fixups): New function.
	(execute_all_ipa_stmt_fixups): New function.
	* lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.

2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/20548
	* explow.c (probe_stack_range): Fix typo.
	* config/sparc/sparc.md (probe_stack): New expander.

2009-11-09  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.

2009-11-09  Jason Merrill  <jason@redhat.com>

	* gdbinit.in (pgq): New function for printing gimple sequence.

2009-11-09  Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Half-Precision): Update wording to reflect
	that there are now multiple -mfpu options that enable fp16
	hardware support.
	* doc/invoke.texi: Update list of ARM -mfpu= options.
	* config.gcc: Update ARM --with-fpu option list.
	* config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
	vfpv3xd and vfpv3xd-fp16.
	(use_vfp_abi): New function.
	(aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
	when undesirable.
	(aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
	aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
	(arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
	arm_9e_rtx_costs): Only expect double-precision operations if the FPU
	provides them.
	(coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
	NEON.
	(arm_print_operand): Handle 'p' modifier.
	(arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
	TARGET_FP16.
	* config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
	(TARGET_FP16): Define.
	* config/arm/vfp.md: Disable double-precision patterns if the FPU
	does not provide them.
	(arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
	double-precision values on a single-precision FPU.
	(movdf_vfp, thumb2_movdf_vfp): Likewise.  Use "Dy" for
	double-precision constants.
	(movhf_vfp_neon): New pattern (was movhf_vfp).
	(movhf_vfp): Remove NEON instructions.
	* config/arm/constraints.md: Add new "Dy" constraint for
	double-precision constants.  Update description of "Dv".
	* config/arm/arm.md: Disable double-precision patterns if the FPU
	does not provide them

2009-11-09  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
	(print_operand) <case 'Y'>: Likewise.  Fix a pasto in operand lossage
	diagnostics.

2009-11-08  H.J. Lu  <hongjiu.lu@intel.com>

	* collect2.c (main): Search PLUGIN_LD for plugin linker.

	* configure.ac (--with-plugin-ld): New.  Default to ld.
	* configure: Regenerated.
	* config.in: Likewise.

	* exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
	(collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.

2009-11-08  Jonathan Gray  <jsg@openbsd.org>

	* config/openbsd-stdint.h: Change to reflect what
	c_common_nodes_and_builtins expects.

2009-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* builtins.c (apply_args_reg_offset): Remove commented out delaration.

2009-11-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/41985
	* config/i386/i386.c (get_some_local_dynamic_name): Don't assert
	function contains at least one local dynamic name.
	(print_operand) <case '&'>: Instead output operand lossage diagnostics
	here if that happens.

2009-11-08  Zbigniew Chamski  <zbigniew.chamski@gmail.com>
	    Joern Rennecke  <amylaar@spamcop.net>

	* cfgrtl.c (pass_free_cfg): Add pass name.
	* cgraphbuild.c (pass_build_cgraph_edges): Likewise.
	(pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
	* dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
	* df-core.c (pass_df_initialize_no_opt): Likewise.
	* except.c (pass_rtl_eh): Likewise.
	* function.c (pass_init_function, pass_leaf_regs): Likewise.
	* gcse.c (pass_rtl_pre): Change pass name.
	* passes.c (pass_postreload): Add pass name.
	(make_pass_instance): Don't use duplicate-tracking logic for
	names starting with '*'.
	(next_pass_1): Assert that pass has a name.
	(register_one_dump_file): If there is an space in the name,
	skip past it.
	* predict.c (pass_strip_predict_hints): Add pass name.
	* reg-stack.c (pass_stack_regs): Likewise.
	* stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
	* tree-cfg.c (pass_warn_function_return,
	pass_warn_function_noreturn): Add pass name.
	* tree-dfa.c (pass_referenced_vars): Likewise.
	* tree-optimize.c (pass_cleanup_cfg_post_optimizing):
	Fix whitespace before comment.
	(pass_fixup_cfg): Add pass name, fix whitespace before comment.
	(pass_init_datastructures): Add pass name.
	* tree-ssa-loop.c (pass_record_bounds): Likewise.
	* tree-ssa.c (pass_early_warn_uninitialized,
	pass_late_warn_uninitialized): Likewise.
	* tree.c (pass_ipa_free_lang_data): Likewise.
	* doc/passes.texi (pass manager): Document how to disambiguate
	pass names.

2009-11-08  Paolo Bonzini  <bonzini@gnu.org>

	* df-problems.c: Fix documentation for forward simulation of LR.
	(df_simulate_one_insn_forwards): Use df_simulate_find_defs.
	(df_simulate_finalize_forwards): Remove.
	* df.h (df_simulate_finalize_forwards): Remove.

2009-11-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (build_succ_graph): Properly make
	variables escape if they are stored to anything.

2009-11-08  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/41928
	* loop-invariant.c (free_loop_data): If we didn't allocate
	loop data do not try to free it.

2009-11-07  Jason Merrill  <jason@redhat.com>

	* tree.c (reconstruct_complex_type): Preserve attributes.

2009-11-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (build_succ_graph): Feed stores
	to anything only to variables that can take pointers.
	(get_constraint_for_ssa_var): Properly exclude full
	variables from expanding.
	(first_vi_for_offset): Avoid overflow in arithmetic.
	(first_or_preceding_vi_for_offset): Likewise.
	(count_num_arguments): Fix implementation.
	(gate_ipa_pta): Do not run when not optimizing.

2009-11-07  David Binderman <dcb314@hotmail.com>

	* builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
	expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
	set but not used variables.
	(apply_args_reg_offset): Comment out as unused.
	* calls.c (flags_from_decl_or_type): Likewise.
	* genautomata.c (check_regexp_units_distribution): Likewise.

2009-11-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
	xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
	*xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
	xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
	xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
	xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
	operand alternatives.

2009-11-06  Michael Matz  <matz@suse.de>

	PR middle-end/41963
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
	of a potential reciprocal to really be reciprocals.

2009-11-06  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
	lwpintrin.h after immintrin.h.
	* config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
	typedefs.

	PR middle-end/41935
	* c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
	or non-constant index, allow index one past the last element and
	allow exceeding array bound in arrays that might be used as flexible
	array members.

2009-11-05  Richard Henderson  <rth@redhat.com>

	* config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.

2009-11-05  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
	(arm_fpu_desc): New.
	(all_fpus): Add FPU details.
	(fp_model_for_fpu): Remove.
	(arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
	(arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
	(arm_file_start): Use arm_fpu_desc.
	* config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
	TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
	arm_fpu_desc.
	(TARGET_FPA_EMU2): Define.
	(arm_fp_model, fputype, arm_fpu_tune): Remove.
	(vfp_reg_type, arm_fpu_desc): New.
	* config/arm/arm.md (attr fpu): Simplify.
	* config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
	* config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
	* config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
	* config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
	* config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.

2009-11-05  Michael Matz  <matz@suse.de>

	* config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
	on TARGET_RECIP.
	* doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
	for 1/sqrtf.

2009-11-04  Jason Merrill  <jason@redhat.com>

	PR c++/36912
	* varasm.c (initializer_constant_valid_p): A PLUS_EXPR
	or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
	(output_constant): Avoid crash after error.

2009-11-05  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): Changed comment of next_sibling field.
	(analyze_modified_params): Loop over accesses of a group rather than
	over all with the ame base, pass a common bitmap to
	walk_aliased_vdefs.
	(unmodified_by_ref_scalar_representative): Build link lists of
	accesses of a group.
	(splice_param_accesses): Likewise.

2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* df-scan.c (df-uses-record): Add case zero_extract of mem.

2009-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/10127
	PR ada/20548
	* config/i386/i386.md (probe_stack): New expander.
	(logical operation peepholes): Do not split stack checking probes.

2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* doc/invoke.texi (-mlwp): Add documentation.
	* doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
	* config.gcc (i[34567]86-*-*): Include lwpintrin.h.
	(x86_64-*-*): Ditto.
	* config/i386/lwpintrin.h: New file, provide x86 compiler
	intrinisics for LWP.
	* config/i386/cpuid.h (bit_LWP): Define LWP bit.
	* config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
	* config/i386/i386-c.c (ix86_target_macros_internal): Check
	ISA_FLAG for LWP.
	* config/i386/i386.h (TARGET_LWP): New macro for LWP.
	* config/i386/i386.opt (-mlwp): New switch for LWP support.
	* config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
	(OPTION_MASK_ISA_LWP_UNSET): New.
	(ix86_handle_option): Handle -mlwp.
	(isa_opts): Handle -mlwp.
	(enum pta_flags): Add PTA_LWP.
	(override_options): Add LWP support.
	(IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
	(IX86_BUILTIN_LLWPCB32): Ditto.
	(IX86_BUILTIN_LLWPCB64): Ditto.
	(IX86_BUILTIN_SLWPCB16): Ditto.
	(IX86_BUILTIN_SLWPCB32): Ditto.
	(IX86_BUILTIN_SLWPCB64): Ditto.
	(IX86_BUILTIN_LWPVAL16): Ditto.
	(IX86_BUILTIN_LWPVAL32): Ditto.
	(IX86_BUILTIN_LWPVAL64): Ditto.
	(IX86_BUILTIN_LWPINS16): Ditto.
	(IX86_BUILTIN_LWPINS32): Ditto.
	(IX86_BUILTIN_LWPINS64): Ditto.
	(enum  ix86_special_builtin_type): Add LWP intrinsic support.
	(builtin_description): Ditto.
	(ix86_init_mmx_sse_builtins): Ditto.
	(ix86_expand_special_args_builtin): Ditto.
	* config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
	LWP support.
	(UNSPEC_SLWP_INTRINSIC): Ditto.
	(UNSPECV_LWPVAL_INTRINSIC): Ditto.
	(UNSPECV_LWPINS_INTRINSIC): Ditto.
	(lwp_llwpcbhi1): New lwp pattern.
	(lwp_llwpcbsi1): Ditto.
	(lwp_llwpcbdi1): Ditto.
	(lwp_slwpcbhi1): Ditto.
	(lwp_slwpcbsi1): Ditto.
	(lwp_slwpcbdi1): Ditto.
	(lwp_lwpvalhi3): Ditto.
	(lwp_lwpvalsi3): Ditto.
	(lwp_lwpvaldi3): Ditto.
	(lwp_lwpinshi3): Ditto.
	(lwp_lwpinssi3): Ditto.
	(lwp_lwpinsdi3): Ditto.

2009-11-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>

	PR rtl-opt/41833
	* simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
	a vec_duplicate.

2009-11-04  Richard Guenther  <rguenther@suse.de>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gcc.c (process_command): Handle arguments name@offset.

2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* config.gcc (i[34567]86-*-*): Include xopintrin.h.
	(x86_64-*-*): Ditto.
	* config/i386/xopintrin.h: New file, provide common x86 compiler
	intrinisics for XOP.
	* config/i386/cpuid.h (bit_XOP): Define XOP bit.
	* config/i386/x86intrin.h: Add XOP check and xopintrin.h.
	* config/i386/i386-c.c(ix86_target_macros_internal): Check
	ISA_FLAG for XOP.
	* config/i386/i386.h(TARGET_XOP): New macro for XOP.
	* config/i386/i386.opt (-mxop): New switch for XOP support.
	* config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
	(UNSPEC_XOP_TRUEFALSE)
	(UNSPEC_XOP_PERMUTE)
	(UNSPEC_FRCZ): Add new UNSPEC for XOP support.
	(PPERM_*): New constants for vpperm instruction.
	(xop_pcmov_<mode>): Add XOP conditional mov instructions.
	* config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
	(OPTION_MASK_ISA_XOP_UNSET): New.
	(OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
	(ix86_handle_option): Handle -mxop.
	(isa_opts): Handle -mxop.
	(enum pta_flags): Add PTA_XOP.
	(override_options): Add XOP support.
	(print_operand): Add code for XOP compare instructions.
	(ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
	(ix86_expand_int_vcond): Extend for XOP compare instruction.

	(IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
	(IX86_BUILTIN_VPCMOV_V2DI): Ditto.
	(IX86_BUILTIN_VPCMOV_V4SI): Ditto.
	(IX86_BUILTIN_VPCMOV_V8HI): Ditto.
	(IX86_BUILTIN_VPCMOV_V16QI): Ditto.
	(IX86_BUILTIN_VPCMOV_V4SF): Ditto.
	(IX86_BUILTIN_VPCMOV_V2DF): Ditto.

	(IX86_BUILTIN_VPCMOV256): Ditto.
	(IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
	(IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
	(IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
	(IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
	(IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
	(IX86_BUILTIN_VPCMOV_V4DF256): Ditto.

	(IX86_BUILTIN_VPPERM): Ditto.

	(IX86_BUILTIN_VPMACSSWW): Ditto.
	(IX86_BUILTIN_VPMACSWW): Ditto.
	(IX86_BUILTIN_VPMACSSWD): Ditto.
	(IX86_BUILTIN_VPMACSWD): Ditto.
	(IX86_BUILTIN_VPMACSSDD): Ditto.
	(IX86_BUILTIN_VPMACSDD): Ditto.
	(IX86_BUILTIN_VPMACSSDQL): Ditto.
	(IX86_BUILTIN_VPMACSSDQH): Ditto.
	(IX86_BUILTIN_VPMACSDQL): Ditto.
	(IX86_BUILTIN_VPMACSDQH): Ditto.
	(IX86_BUILTIN_VPMADCSSWD): Ditto.
	(IX86_BUILTIN_VPMADCSWD): Ditto.

	(IX86_BUILTIN_VPHADDBW): Ditto.
	(IX86_BUILTIN_VPHADDBD): Ditto.
	(IX86_BUILTIN_VPHADDBQ): Ditto.
	(IX86_BUILTIN_VPHADDWD): Ditto.
	(IX86_BUILTIN_VPHADDWQ): Ditto.
	(IX86_BUILTIN_VPHADDDQ): Ditto.
	(IX86_BUILTIN_VPHADDUBW): Ditto.
	(IX86_BUILTIN_VPHADDUBD): Ditto.
	(IX86_BUILTIN_VPHADDUBQ): Ditto.
	(IX86_BUILTIN_VPHADDUWD): Ditto.
	(IX86_BUILTIN_VPHADDUWQ): Ditto.
	(IX86_BUILTIN_VPHADDUDQ): Ditto.
	(IX86_BUILTIN_VPHSUBBW): Ditto.
	(IX86_BUILTIN_VPHSUBWD): Ditto.
	(IX86_BUILTIN_VPHSUBDQ): Ditto.

	(IX86_BUILTIN_VPROTB): Ditto.
	(IX86_BUILTIN_VPROTW): Ditto.
	(IX86_BUILTIN_VPROTD): Ditto.
	(IX86_BUILTIN_VPROTQ): Ditto.
	(IX86_BUILTIN_VPROTB_IMM): Ditto.
	(IX86_BUILTIN_VPROTW_IMM): Ditto.
	(IX86_BUILTIN_VPROTD_IMM): Ditto.
	(IX86_BUILTIN_VPROTQ_IMM): Ditto.

	(IX86_BUILTIN_VPSHLB): Ditto.
	(IX86_BUILTIN_VPSHLW): Ditto.
	(IX86_BUILTIN_VPSHLD): Ditto.
	(IX86_BUILTIN_VPSHLQ): Ditto.
	(IX86_BUILTIN_VPSHAB): Ditto.
	(IX86_BUILTIN_VPSHAW): Ditto.
	(IX86_BUILTIN_VPSHAD): Ditto.
	(IX86_BUILTIN_VPSHAQ): Ditto.

	(IX86_BUILTIN_VFRCZSS): Ditto.
	(IX86_BUILTIN_VFRCZSD): Ditto.
	(IX86_BUILTIN_VFRCZPS): Ditto.
	(IX86_BUILTIN_VFRCZPD): Ditto.
	(IX86_BUILTIN_VFRCZPS256): Ditto.
	(IX86_BUILTIN_VFRCZPD256): Ditto.

	(IX86_BUILTIN_VPCOMEQUB): Ditto.
	(IX86_BUILTIN_VPCOMNEUB): Ditto.
	(IX86_BUILTIN_VPCOMLTUB): Ditto.
	(IX86_BUILTIN_VPCOMLEUB): Ditto.
	(IX86_BUILTIN_VPCOMGTUB): Ditto.
	(IX86_BUILTIN_VPCOMGEUB): Ditto.
	(IX86_BUILTIN_VPCOMFALSEUB): Ditto.
	(IX86_BUILTIN_VPCOMTRUEUB): Ditto.

	(IX86_BUILTIN_VPCOMEQUW): Ditto.
	(IX86_BUILTIN_VPCOMNEUW): Ditto.
	(IX86_BUILTIN_VPCOMLTUW): Ditto.
	(IX86_BUILTIN_VPCOMLEUW): Ditto.
	(IX86_BUILTIN_VPCOMGTUW): Ditto.
	(IX86_BUILTIN_VPCOMGEUW): Ditto.
	(IX86_BUILTIN_VPCOMFALSEUW): Ditto.
	(IX86_BUILTIN_VPCOMTRUEUW): Ditto.

	(IX86_BUILTIN_VPCOMEQUD): Ditto.
	(IX86_BUILTIN_VPCOMNEUD): Ditto.
	(IX86_BUILTIN_VPCOMLTUD): Ditto.
	(IX86_BUILTIN_VPCOMLEUD): Ditto.
	(IX86_BUILTIN_VPCOMGTUD): Ditto.
	(IX86_BUILTIN_VPCOMGEUD): Ditto.
	(IX86_BUILTIN_VPCOMFALSEUD): Ditto.
	(IX86_BUILTIN_VPCOMTRUEUD): Ditto.

	(IX86_BUILTIN_VPCOMEQUQ): Ditto.
	(IX86_BUILTIN_VPCOMNEUQ): Ditto.
	(IX86_BUILTIN_VPCOMLTUQ): Ditto.
	(IX86_BUILTIN_VPCOMLEUQ): Ditto.
	(IX86_BUILTIN_VPCOMGTUQ): Ditto.
	(IX86_BUILTIN_VPCOMGEUQ): Ditto.
	(IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
	(IX86_BUILTIN_VPCOMTRUEUQ): Ditto.

	(IX86_BUILTIN_VPCOMEQB): Ditto.
	(IX86_BUILTIN_VPCOMNEB): Ditto.
	(IX86_BUILTIN_VPCOMLTB): Ditto.
	(IX86_BUILTIN_VPCOMLEB): Ditto.
	(IX86_BUILTIN_VPCOMGTB): Ditto.
	(IX86_BUILTIN_VPCOMGEB): Ditto.
	(IX86_BUILTIN_VPCOMFALSEB): Ditto.
	(IX86_BUILTIN_VPCOMTRUEB): Ditto.

	(IX86_BUILTIN_VPCOMEQW): Ditto.
	(IX86_BUILTIN_VPCOMNEW): Ditto.
	(IX86_BUILTIN_VPCOMLTW): Ditto.
	(IX86_BUILTIN_VPCOMLEW): Ditto.
	(IX86_BUILTIN_VPCOMGTW): Ditto.
	(IX86_BUILTIN_VPCOMGEW): Ditto.
	(IX86_BUILTIN_VPCOMFALSEW): Ditto.
	(IX86_BUILTIN_VPCOMTRUEW): Ditto.

	(IX86_BUILTIN_VPCOMEQD): Ditto.
	(IX86_BUILTIN_VPCOMNED): Ditto.
	(IX86_BUILTIN_VPCOMLTD): Ditto.
	(IX86_BUILTIN_VPCOMLED): Ditto.
	(IX86_BUILTIN_VPCOMGTD): Ditto.
	(IX86_BUILTIN_VPCOMGED): Ditto.
	(IX86_BUILTIN_VPCOMFALSED): Ditto.
	(IX86_BUILTIN_VPCOMTRUED): Ditto.

	(IX86_BUILTIN_VPCOMEQQ): Ditto.
	(IX86_BUILTIN_VPCOMNEQ): Ditto.
	(IX86_BUILTIN_VPCOMLTQ): Ditto.
	(IX86_BUILTIN_VPCOMLEQ): Ditto.
	(IX86_BUILTIN_VPCOMGTQ): Ditto.
	(IX86_BUILTIN_VPCOMGEQ): Ditto.
	(IX86_BUILTIN_VPCOMFALSEQ): Ditto.
	(IX86_BUILTIN_VPCOMTRUEQ): Ditto.

	(enum multi_arg_type): New enum for describing the various XOP
	intrinsic argument types.
	(bdesc_multi_arg): New table for XOP intrinsics.
	(ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating XOP
	intrinsics.

	* config/i386/sse.md (sserotatemax): New mode attribute for XOP.
	(xop_pmacsww): Ditto.
	(xop_pmacssww): Ditto.
	(xop_pmacsdd): Ditto.
	(xop_pmacssdd): Ditto.
	(xop_pmacssdql): Ditto.
	(xop_pmacssdqh): Ditto.
	(xop_pmacsdql): Ditto.
	(xop_pmacsdql_mem): Ditto.
	(xop_mulv2div2di3_low): Ditto.
	(xop_pmacsdqh): Ditto.
	(xop_pmacsdqh_mem): Ditto.
	(xop_mulv2div2di3_high): Ditto.
	(xop_pmacsswd): Ditto.
	(xop_pmacswd): Ditto.
	(xop_pmadcsswd): Ditto.
	(xop_pmadcswd): Ditto.
	(xop_pcmov_<mode>): Ditto.
	(xop_pcmov_<mode>256): Ditto.
	(xop_phaddbw): Ditto.
	(xop_phaddbd): Ditto.
	(xop_phaddbq): Ditto.
	(xop_phaddwd): Ditto.
	(xop_phaddwq): Ditto.
	(xop_phadddq): Ditto.
	(xop_phaddubw): Ditto.
	(xop_phaddubd): Ditto.
	(xop_phaddubq): Ditto.
	(xop_phadduwd): Ditto.
	(xop_phadduwq): Ditto.
	(xop_phaddudq): Ditto.
	(xop_phsubbw): Ditto.
	(xop_phsubwd): Ditto.
	(xop_phsubdq): Ditto.
	(xop_pperm): Ditto.
	(rotl<mode>3): Ditto.
	(rotr<mode>3): Ditto.
	(xop_rotl<mode>3): Ditto.
	(xop_rotr<mode>3): Ditto.
	(vrotr<mode>3): Ditto.
	(vrotl<mode>3): Ditto.
	(xop_vrotl<mode>3): Ditto.
	(vlshr<mode>3): Ditto.
	(vashr<mode>3): Ditto.
	(vashl<mode>3
	(xop_ashl<mode>3): Ditto.
	(xop_lshl<mode>3): Ditto.
	(ashlv16qi3): Ditto.
	(lshlv16qi3): Ditto.
	(ashrv16qi3): Ditto.
	(ashrv2di3): Ditto.
	(xop_frcz<mode>2): Ditto.
	(xop_vmfrcz<mode>2): Ditto.
	(xop_frcz<mode>2256): Ditto.
	(xop_maskcmp<mode>3): Ditto.
	(xop_maskcmp_uns<mode>3): Ditto.
	(xop_maskcmp_uns2<mode>3): Ditto.
	(xop_pcom_tf<mode>3): Ditto.

	* doc/invoke.texi (-mxop): Add documentation.
	* doc/extend.texi (x86 intrinsics): Add XOP intrinsics.

2009-11-03  Mark Mitchell  <mark@codesourcery.com>

	PR driver/11810
	* gcc.c (SWITCHES_NEED_SPACES): Define to "o".
	* config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
	* config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.

2009-11-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/40835
	* arm.md (peephole2 patterns for move and compare): New.

2009-11-04  Nick Clifton  <nickc@redhat.com>

	* defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
	Make sure that it does not allow CONST_DOUBLEs.
	* doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
	* config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
	* config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
	* config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
	* config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
	* config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
	* config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
	* config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
	* config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
	* config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
	* config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
	* config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
	* config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
	* config/score/score.h (CONSTANT_ADDRESS_P): Delete.
	* config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.

2009-11-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41919
	* tree-vrp.c (test_for_singularity): Properly compare values.

2009-11-04  Revital Eres  <eres@il.ibm.com>

	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Consider peeling for alignment only for stores and remove
	redundant assignment.

2009-11-04  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/41302
	* config/m68k/m68k.c (m68k_reg_present_p): New static function.
	(m68k_ok_for_sibcall_p): Handle different result return locations.

2009-11-04  Richard Guenther  <rguenther@suse.de>

	* c-opts.c (c_common_post_options): Move LTO option processing
	code ...
	* opts.c (decode_options): ... here.

2009-11-04  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (fold_offsetof_1): Use %wd instead of
	HOST_WIDE_INT_PRINT_DEC.

2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
	__pic__ or __PIC__.

2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* config.gcc (vax-*-linux*): Keep the original contents of
	tmake_file while adding vax/t-linux.

2009-11-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/10127
	PR ada/20548
	* expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
	(STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
	(STACK_CHECK_MOVING_SP): Likewise.
	* system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
	* doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
	Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
	* doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
	Document PROBE_STACK.
	* explow.c (anti_adjust_stack_and_probe): New function.
	(allocate_dynamic_stack_space): Do not directly allocate space if
	STACK_CHECK_MOVING_SP, instead invoke above function.
	(emit_stack_probe): Handle probe_stack insn.
	(PROBE_INTERVAL): New macro.
	(STACK_GROW_OPTAB): Likewise.
	(STACK_GROW_OFF): Likewise.
	(probe_stack_range): Use Pmode and memory_address consistently.  Fix
	loop condition in the small constant case.  Rewrite in the general
	case to be immune to wraparounds.  Make sure the address of probes
	is valid.  Try to use [base + disp] addressing mode if possible.
	* ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
	checking is enabled and STACK_CHECK_MOVING_SP.
	* rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
	return 1 for volatile references to the stack pointer.
	* tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
	__builtin_alloca if stack checking is enabled.
	* unwind-dw2.c (uw_identify_context): Take into account whether the
	context is that of a signal frame or not.
	* config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
	* config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.

2009-11-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/41917
	* rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
	operand isn't known to be 0, return 1.

2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md: Fix typos.

2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/invoke.texi: Fix typo.

2009-11-03  Paul Brook  <paul@codesourcery.com>

	* config/arm/neon.ml (vectype): Add T_floatSF.
	(string_of_vectype): Ditto.
	* config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
	(deftypes): Use float for float32_t.
	* config/arm/arm_neon.h: Regenerate.

2009-11-03  Nick Clifton  <nickc@redhat.com>
	    Kevin Buettner  <kevinb@redhat.com>

	* config/rx/predicates.md (rx_store_multiple_vector): Reverse
	order of expected registers.
	(rx_load_multiple_vector): Likewise.
	(rx_rtsd_vector): Likewise.
	* config/rx/rx.c (rx_cpu_type): New variable.
	(rx_print_operand): Fix bug printing 64-bit constant values.
	(rx_emit_stack_pushm): Reverse order of pushed registers.
	(gen_rx_store_vector): Likewise.
	(is_fast_interrupt_func): Only accept "fast_interrupt" as the
	attribute name.
	(is_exception_func): Rename to is_interrupt_func and only accept
	"interrupt" as the attribute name.
	(rx_get_stack_layout): Use new function name.
	(rx_func_attr_inlinable): Likewise.
	(rx_attribute_table): Remove "exception".
	(rx_expand_prologue): If necessary push the accumulator register
	in the prologue of interrupt functions.
	(rx_expand_epilogue): If necessary pop the accumulator.
	(rx_builtins): Add RX_BUILTIN_MVTIPL.
	(rx_expand_builtin_stz): Remove.
	(rx_expand_builtin_mvtipl): New function.
	(rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
	(rx_expand_builtin): Likewise.
	(rx_enable_fpu): New variable.
	(rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
	* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
	on rx_cpu_type.  Define __RX_FPU_INSNS__ if FPU insns are allowed.
	(enum rx_cpu_types): Define.
	(ASM_SPEC): Pass -m32bit-doubles on to assembler.
	(INCOMING_FRAME_SP_OFFSET): Define.
	(ARG_POINTER_CFA_OFFSET): Define.
	(FRAME_POINTER_CFA_OFFSET): Define.
	(OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
	(ALLOW_RX_FPU_INSNS): Define.
	* config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
	fast_math_flags_set_p.
	(UNSPEC_BUILTIN_MVTIPL): Define.
	(revl): Rename to bswapsi2.
	(bswaphi2): New pattern.
	(mvtachi): Mark as volatile because it uses a register unknown to GCC.
	(mvtaclo): Likewise.
	(racw): Likewise.
	(mvtc): Remove clobber of cc0.
	(mvtcp): Delete.
	(opecp): Delete.
	* config/rx/rx.opt (mieee): Remove.
	(fpu): Add.
	(nofpu): Add.
	(mcpu=): Add.
	(patch=): Add.
	(msave-acc-in-interrupts): Add.
	* config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
	(MULTILIB_DIRS): Likewise.
	(MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
	* doc/extend.texi: Remove description of "exception" function
	attribute.
	* doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
	-msave-acc-in-interrupts options.

2009-11-03  Richard Guenther  <rguenther@suse.de>

	* c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.

2009-11-03  Dodji Seketeli  <dodji@redhat.com>

	PR c++/38699
	* c-common.c (fold_offsetof_1): Issue errors when the member
	designator of the offsetof expression is not legitimate.

2009-11-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
	names instead of numerical constants.
	(sse_prologue_save): Ditto.
	(*sse_prologue_save_insn): Ditto.

2009-11-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41900
	* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
	(TARGET_CALL_ESP): New define.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_ARCH_CALL_ESP.
	* config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
	*call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
	*call_1, *call_value_pop_1 and *call_value_1.  Depend on
	TARGET_CALL_ESP.
	(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
	New patterns, use "lsm" as operand 1 constraint.
	* config/i386/predicates.md (call_insn_operand): Depend on
	index_register_operand for !TARGET_CALL_ESP to avoid %esp register.

2009-11-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR tree-optimization/41857
	* tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
	* tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
	to create_mem_ref.
	* tree-ssa-address.c (move_hint_to_base): New function.
	(most_expensive_mult_to_index): Add TYPE argument.  Use mode and
	address space associated with TYPE.
	(addr_to_parts): Add TYPE and BASE_HINT arguments.  Pass TYPE to
	most_expensive_mult_to_index.  Call move_hint_to_base.
	(create_mem_ref): Add BASE_HINT argument.  Pass BASE_HINT and
	TYPE to addr_to_parts.

2009-11-02  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41750
	* tree-sra.c (analyze_modified_params): Loop over all
	representatives of components of a parameter.

2009-11-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/41841
	* ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
	local variables of not yet materialized clones.

	PR debug/41893
	* cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
	for a VOIDmode variable.

	PR c++/41774
	* c-pragma.c (visstack): Change into vector of ints rather than
	enum symbol_visibility.
	(push_visibility): Add kind argument, push default_visibility together
	with kind.
	(pop_visibility): Add kind argument, return true if successful, fail
	if visibility stack is empty or if stack top is of different kind.
	(handle_pragma_visibility): Don't check length of visstack, instead
	call pop_visibility and issue diagnostics if it failed.  Pass 0
	as last argument to push_visibility and pop_visibility.
	* c-pragma.h (push_visibility): Add kind argument.
	(pop_visibility): Likewise.  Return bool instead of void.

2009-11-01  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.def (TARGET_MEM_REF): Update comment.
	* alias.c (get_alias_set): Retrieve the original memory reference for
	a TARGET_MEM_REF before proceeding.

2009-10-31  Anatoly Sokolov  <aesok@post.ru>

	* config/frv/frv.c (frv_function_value, frv_libcall_value,
	frv_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
	(FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
	* config/frv/frv-protos.h (frv_function_value_regno_p): Declare.

2009-10-31  Anatoly Sokolov  <aesok@post.ru>

	* config/mn10300/mn10300.c (mn10300_function_value): Make static, add
	new 'outgoing' argument.
	(mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
	LIBCALL_VALUE): Remove.
	(FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
	* config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
	(mh10300_function_value_regno_p): Declare.

2009-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/cortex-a9.md: New - integer pipeline description.

2009-10-31  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
	aborting if the sizes of the two references don't match.

2009-10-31  Toon Moene  <toon@moene.org>

	* ipa-inline.c (cgraph_decide_inlining):
	Include reason for not inlining called-once functions in dump file.

2009-10-30  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
	* config/arm/bpapi.h (BE8_LINK_SPEC): New define.
	(LINK_SPEC): BE_LINK_SPEC added.

2009-10-30  Richard Guenther  <rguenther@suse.de>

	PR lto/41858
	* lto-streamer.h (struct lto_file_decl_data): Remove fd member.

2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>

	* target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
	* config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
	label.

2009-10-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_ref_for_offset_1): Remove a comment.

2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/40838
	* cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
	first.  Move assert on stack_alignment_estimated just before
	setting stack_realign_needed.
	(gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
	Don't call update_stack_boundary.

	* config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
	(verride_options): Don't check ix86_force_align_arg_pointer here.
	(ix86_function_ok_for_sibcall): Use it.
	(ix86_update_stack_boundary): Likewise.

	* config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.

2009-10-30  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (QHSI): New mode iterator.
	(movqi): If generating for thumb, then truncate any immediate to
	8 bits.
	* thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
	with...
	(thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
	version.

2009-10-29  Cary Coutant  <ccoutant@google.com>

	PR debug/41700
	* dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
	locations in the source).
	(store_vcall_insn): New function.
	(lookup_vcall_insn): New function.
	(dwarf2out_virtual_call_token): Use store_vcall_insn.
	(dwarf2out_copy_call_info): New function.
	(dwarf2out_virtual_call): Use lookup_vcall_insn.
	* emit-rtl.c (try_split): Call copy_call_info debug hook.
	* debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
	* debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
	(debug_nothing_rtx_rtx): New dummy hook.
	* dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
	(xcoff_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.

2009-10-29  David Daney  <ddaney@caviumnetworks.com>

	* doc/invoke.texi (mmcount-ra-address): Document new command line
	option.
	* config/mips/mips.opt (mmcount-ra-address): New option.
	* config/mips/mips-protos.h (mips_function_profiler): Declare new
	function.
	* config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
	member.
	(mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
	(mips_function_profiler): Moved from FUNCTION_PROFILER, and
	rewritten.
	* config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
	mips_function_profiler.

2009-10-29  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/37565
	PR target/38018
	* doc/tm.texi (OVERRIDE_OPTIONS): Update.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
	* optc-gen.awk (cl_target_option_restore): Include call to
	targetm.override_options_after_change.
	* target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
	* target.h (override_options_after_change): New.
	* c-common.c (parse_optimize_options): Call
	targetm.override_options_after_change.
	* config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
	(ia64_override_options_after_change): New.
	(ia64_override_options) Add call to above.

2009-10-29  Michael Matz  <matz@suse.de>

	* tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
	(gate_convert_to_rsqrt): Ditto.
	(pass_convert_to_rsqrt): Ditto.
	* tree-pass.h (pass_convert_to_rsqrt): Don't declare.
	* passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
	to pass list.

	* config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.

2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (find_best_start): Fix type of remainder to be
	unsigned.

2009-10-29  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41775
	* tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
	(generate_subtree_copies): Do not unshare agg.
	(load_assign_lhs_subreplacements): Do not unshare rhs.
	(sra_modify_assign): Do not unshare exprs.
	(propagate_subacesses_accross_link): Renamed to
	propagate_subaccesses_across_link.

2009-10-29  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (count_insns_for_constant): Rework to support counting for
	thumb2 immediates as well.
	(find_best_start): Split out from arm_gen_constant.
	(arm_gen_constant): Rework to support XOR with immediate.

2009-10-29  Chao-ying Fu  <fu@mips.com>

	* config/mips/mips.c (mips_emit_unary, mips_force_unary): New
	functions.
	(mips_expand_synci_loop):  Use the length rtx to control the
	synci loop from the begin rtx that points to the first byte of
	the cache line.

2009-10-28  Rafael Avila de Espindola  <espindola@google.com>

	* doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.

2009-10-28  Rafael Avila de Espindola  <espindola@google.com>

	* dbxout.c (dbxout_common_check): Accept non public trees.
	* dwarf2out.c (fortran_common): Accept non public trees.

2009-10-28  Rafael Avila de Espindola  <espindola@google.com>

	* common.opt (fuse-linker-plugin): New option.
	* gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
	fuse-linker-plugin.
	* opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
	(gen_cstoresi_ltu_thumb1): New splitter.

2009-10-28  Richard Guenther  <rguenther@suse.de>

	PR lto/41808
	PR lto/41839
	* tree-ssa.c (useless_type_conversion_p): Do not treat
	conversions to pointers to incomplete types as useless.
	* gimple.c (gimple_types_compatible_p): Compare struct tags,
	not typedef names.

2009-10-28  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (emit_note_insn_var_location): Don't call the second
	vt_expand_loc unnecessarily when location is not a register nor
	memory.

	PR middle-end/41837
	* ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
	fields don't have DECL_NAME.

	PR debug/41801
	* builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
	call convert_memory_address on addr.

	PR target/41762
	* config/i386/i386.c (ix86_pic_register_p): Don't call
	rtx_equal_for_cselib_p for VALUEs discarded as useless.

2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* var-tracking.c (emit_note_insn_var_location): Get the mode of
	a variable part from its REG, MEM or VALUE.

2009-10-28  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_get_alias_set): Fix comment typo.

2009-10-28  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_type): Do not call get_alias_set.
	(free_lang_data): Unconditionally compute alias sets for all
	standard integer types.  Bail out if gate bailed out previously.
	Do not reset the types_compatible_p langhook.
	(gate_free_lang_data): Remove.
	(struct pass_ipa_free_lang_data): Enable unconditionally.
	* gimple.c (gimple_get_alias_set): Use the same alias-set for
	all pointer types.

2009-10-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41855
	* tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
	(ref_maybe_used_by_call_p_1): Fix bcopy handling.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-structalias.c (find_func_aliases): Likewise.
	* alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/41812

	Revert:
	2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* df-problems.c (df_md_scratch): New.
	(df_md_alloc, df_md_free): Allocate/free it.
	(df_md_local_compute): Only include live registers in init.
	(df_md_transfer_function): Prune the in-set computed by
	the confluence function, and the gen-set too.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* combine.c (simplify_comparison): Use extensions to
	widen comparisons.  Try an ANDing first.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/40741
	* config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
	a small constant is cheap.
	* config/arm/arm.md (andsi3, iorsi3): Try to place the result of
	force_reg on the LHS.
	(xorsi3): Likewise, and split the XOR if the constant is complex
	and not in Thumb mode.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	* expmed.c (emit_store_flag): Check costs before
	transforming to the opposite representation.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.md (cbranchfp4_media): Remove hack extending
	cstore result to DImode.

2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (stuff_delay_slot): Move const_int pattern
	inside the unspec vector.

2009-10-27  Richard Henderson  <rth@redhat.com>

	* cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.

2009-10-27  Richard Henderson  <rth@redhat.com>

	PR c++/41819
	* tree-eh.c (eh_region_may_contain_throw_map): Rename from
	eh_region_may_contain_throw; update users.
	(eh_region_may_contain_throw): New function.
	(lower_catch): Check flag_exceptions before creating exception region.
	(lower_eh_filter, lower_eh_must_not_throw): Likewise.
	(lower_cleanup): Tidy existing flag_exceptions check to match.

2009-10-27  Kai Tietz <kai.tietz@onevision.com>

	PR/41799
	* config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
	* config/i386/mingw.opt: Add fset-stack-executable.
	* config/i386/i386.c (ix86_trampoline_init): Make call to
	emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
	defined and its value is not zero.
	* doc/invoke.texi

2009-10-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): In IPA mode
	handle calls to externally visible functions like in regular mode.
	(create_variable_info_for): Do not create function infos here.
	(have_alias_info): Remove write-only variable.
	(solve_constraints): New function split out from common code
	in compute_points_to_sets and ipa_pta_execute.
	(compute_points_to_sets): Adjust.
	(ipa_pta_execute): Likewise.  Handle clones and externally visible
	functions like in non-IPA mode.

2009-10-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/41842
	* c-typeck.c (convert_arguments): Return -1 if any of the arguments is
	error_mark_node.

2009-10-27  Richard Guenther  <rguenther@suse.de>

	* tree-complex.c (expand_complex_div_wide): Check for
	INTEGER_CST, not TREE_CONSTANT on comparison folding result.

2009-10-27  Revital Eres  <eres@il.ibm.com>

	PR tree-optimization/40648
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Change decision of when to peel for alignment.

2009-10-27  Richard Guenther  <rguenther@suse.de>

	PR lto/41821
	* gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.

2009-10-27  Aldy Hernandez  <aldyh@redhat.com>

	PR bootstrap/41451
	* fold-const.c (fold_binary_loc): Do not call
	protected_set_expr_location.

2009-10-27  Wei Guozhi  <carrot@google.com>

	PR target/41705
	* target.h (have_conditional_execution): Add a new target hook
	function.
	* target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
	* targhooks.h (default_have_conditional_execution): Likewise.
	* targhooks.c (default_have_conditional_execution): Likewise.
	* doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
	* config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
	(arm_have_conditional_execution): New function.
	* ifcvt.c (noce_process_if_block, find_if_header,
	cond_exec_find_if_block, dead_or_predicable): Change the usage of
	macro HAVE_conditional_execution to a target hook call.
	* recog.c (peephole2_optimize): Likewise.
	* sched-rgn.c (add_branch_dependences): Likewise.
	* final.c (asm_insn_count, final_scan_insn): Likewise.
	* bb-reorder.c (HAVE_conditional_execution): Remove it.

2009-10-26  Ben Elliston  <bje@au.ibm.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
	* config/spu/spu_cache.h: New file.

	* config/spu/cachemgr.c: New file.
	* config/spu/cache.S: New file.

	* config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
	(ADDR_SPACE_EA): Define.
	(TARGET_ADDR_SPACE_KEYWORDS): Define.
	* config/spu/spu.c (EAmode): New macro.
	(TARGET_ADDR_SPACE_POINTER_MODE): Define.
	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
	(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
	(TARGET_ADDR_SPACE_CONVERT): Likewise.
	(TARGET_ASM_SELECT_SECTION): Likewise.
	(TARGET_ASM_UNIQUE_SECTION): Likewise.
	(TARGET_ASM_UNALIGNED_SI_OP): Likewise.
	(TARGET_ASM_ALIGNED_DI_OP): Likewise.
	(ea_symbol_ref): New function.
	(spu_legitimate_constant_p): Handle __ea qualified addresses.
	(spu_addr_space_legitimate_address_p): New function.
	(spu_addr_space_legitimize_address): Likewise.
	(cache_fetch): New global.
	(cache_fetch_dirty): Likewise.
	(ea_alias_set): Likewise.
	(ea_load_store): New function.
	(ea_load_store_inline): Likewise.
	(expand_ea_mem): Likewise.
	(spu_expand_mov): Handle __ea qualified memory references.
	(spu_addr_space_pointer_mode): New function.
	(spu_addr_space_address_mode): Likewise.
	(spu_addr_space_subset_p): Likewise.
	(spu_addr_space_convert): Likewise.
	(spu_section_type_flags): Handle "._ea" section.
	(spu_select_section): New function.
	(spu_unique_section): Likewise.
	* config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
	and __EA64__ predefined macros.
	* config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
	-matomic-updates switches.

	* config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
	(EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
	libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
	libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
	($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
	($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
	$(T)cache128k.o): Likewise.
	($(T)libgcc_%.a): Likewise.

	* config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
	* config/spu/spu.opt (-mea32/-mea64): Add switches.
	(-maddress-space-conversion): Likewise.
	(-mcache-size=): Likewise.
	(-matomic-updates): Likewise.
	* doc/invoke.texi (-mea32/-mea64): Document.
	(-maddress-space-conversion): Likewise.
	(-mcache-size=): Likewise.
	(-matomic-updates): Likewise.

2009-10-26  Ben Elliston  <bje@au.ibm.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.

	* c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
	defined, add the named address space keywords.
	(c_addr_space_name): New function.
	(complete_array_type): Preserve named address space.
	(handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
	instead of targetm.valid_pointer_mode.

	* c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
	RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
	(ADDR_SPACE_KEYWORD): New macro.
	(c_addr_space_name): Add prototype.

	* c-tree.h (struct c_declspecs): Add address_space member.
	(declspecs_add_addrspace): Add prototype.

	* c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.

	* c-parser.c (c_parse_init): Add assertion.
	(typedef enum c_id_kind): Add C_ID_ADDRSPACE.
	(c_lex_one_token): Handle address space keywords.
	(c_token_starts_typename): Likewise.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_postfix_expression_after_paren_type): Diagnose compound
	literal within function qualified with named address space.

	* c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
	address space qualifiers.
	(shadow_tag_warned): Warn about useless address space qualifiers.
	(quals_from_declspecs): Handle address space qualifiers.
	(grokdeclarator): Likewise.
	(build_null_declspecs): Likewise.
	(declspecs_add_addrspace): New function.

	* c-typeck.c (addr_space_superset): New function.
	(qualify_type): Handle named address spaces.
	(composite_type): Likewise.
	(common_pointer_type): Likewise.
	(comp_target_types): Likewise.
	(build_conditional_expr): Likewise.
	(handle_warn_cast_qual): Likewise.
	(build_c_cast): Likewise.
	(convert_for_assignment): Likewise.
	(build_binary_op): Likewise.
	(pointer_diff): Handle named address spaces.  Use intermediate
	integer type of sufficient size if required.

2009-10-26  Ben Elliston  <bje@au.ibm.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.

	* target.h (struct target_def): Add pointer_mode, address_mode,
	and valid_pointer_mode to addr_space substructure.
	* target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
	(TARGET_ADDR_SPACE_HOOKS): Add them.
	* targhooks.c (target_default_pointer_address_modes_p): New function.
	* target.h (target_default_pointer_address_modes_p): Add prototype.
	* targhooks.c (default_addr_space_pointer_mode): New function.
	(default_addr_space_address_mode): Likewise.
	(default_addr_space_valid_pointer_mode): Likewise.
	* targhooks.h (default_addr_space_pointer_mode): Add prototype.
	(default_addr_space_address_mode): Likewise.
	(default_addr_space_valid_pointer_mode): Likewise.
	* output.h (default_valid_pointer_mode): Move to ...
	* targhooks.h (default_valid_pointer_mode): ... here.
	* varasm.c (default_valid_pointer_mode): Move to ...
	* targhooks.c (default_valid_pointer_mode): ... here.

	* varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
	instead of targetm.valid_pointer_mode.

	* fold-const.c (fit_double_type): Use int_or_pointer_precision.
	* tree.c (integer_pow2p): Likewise.
	(tree_log2): Likewise.
	(tree_floor_log2): Likewise.
	(signed_or_unsigned_type_for): Support pointer type of different size.
	(int_or_pointer_precision): New function.
	* tree.h (int_or_pointer_precision): Add prototype.
	* stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
	* varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
	incoming pointer type instead of POINTER_SIZE.

	* tree.c (build_pointer_type): Use appropriate pointer mode
	instead of ptr_mode.
	(build_reference_type): Likewise.
	* expr.c (store_expr): Likewise.
	(expand_expr_addr_expr): Likewise.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.

	* auto-inc-dec.c: Include "target.h".
	(try_merge): Use appropriate address mode instead of Pmode.
	(find_inc): Likewise.
	* combine.c (find_split_point): Likewise.
	* cselib.c (cselib_record_sets): Likewise.
	* dse.c (replace_inc_dec): Likewise.
	(canon_address): Likewise.
	* var-tracking.c (replace_expr_with_values): Likewise.
	(count_uses): Likewise.
	(add_uses): Likewise.
	(add_stores): Likewise.
	* emit-rtl.c: Include "target.h".
	(adjust_address_1): Use appropriate address mode instead of Pmode.
	(offset_address): Likewise.
	* explow.c (break_out_memory_refs): Likewise.
	(memory_address_addr_space): Likewise.
	(promote_mode): Likewise.
	* expr.c (move_by_pieces): Likewise.
	(emit_block_move_via_loop): Likewise.
	(store_by_pieces): Likewise.
	(store_by_pieces_1): Likewise.
	(expand_assignment): Likewise.
	(store_constructor): Likewise.
	(expand_expr_addr_expr): Likewise.
	(expand_expr_real_1): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* ifcvt.c (noce_try_cmove_arith): Likewise.
	* regcprop.c (kill_autoinc_value): Likewise.
	* regmove.c (try_auto_increment): Likewise.
	* reload.c (find_reloads): Likewise.
	(find_reloads_address): Likewise.
	(find_reloads_address_1): Likewise.
	* sched-deps.c: Include "target.h".
	(sched_analyze_1): Use appropriate address mode instead of Pmode.
	(sched_analyze_2): Likewise.
	* sel-sched-dump.c: Include "target.h".
	(debug_mem_addr_value): Use appropriate address mode instead of Pmode.
	* stor-layout.c (layout_type): Likewise.
	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
	(multiplier_allowed_in_address_p): Likewise.
	(get_address_cost): Likewise.
	* varasm.c (make_decl_rtl): Likewise.

	* expr.c (expand_assignment): Always convert offsets to appropriate
	address mode.
	(store_expr): Likewise.
	(store_constructor): Likewise.
	(expand_expr_real_1): Likewise.

	* reload.h (form_sum): Add MODE argument.
	* reload.c (form_sum): Add MODE argument, use it instead of Pmode.
	Update recursive calls.
	(subst_indexed_address): Update calls to form_sum.

	* tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
	* tree-ssa-address.c: Include "target.h".
	(templates): Replace by ...
	(mem_addr_template_list): ... this new vector.
	(TEMPL_IDX): Handle address space numbers.
	(gen_addr_rtx): Add address mode argument, use it instead of Pmode.
	(addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
	instead of global cache.  Update call to gen_addr_rtx.
	(valid_mem_ref_p): Update call to addr_for_mem_ref.
	* expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.

	* rtl.h (convert_memory_address_addr_space): Add prototype.
	(convert_memory_address): Define as macro.
	* explow.c (convert_memory_address): Rename to ...
	(convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
	Use appropriate pointer and address modes instead of ptr_mode / Pmode.
	Update recursive calls.
	(memory_address_addr_space): Call convert_memory_address_addr_space.
	* expmed.c (make_tree): Likewise.
	* expr.c (expand_assignment): Likewise.
	(expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
	(expand_expr_addr_expr): Likewise.  Also, update call.

	* alias.c (find_base_value): Guard pointer size optimizations.
	(find_base_term): Likewise.
	* rtlanal.c (nonzero_bits1): Likewise.
	(num_sign_bit_copies1): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1): Likewise.

	* Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
	(emit-rtl.o): Likewise.
	(auto-inc-dec.o): Likewise.
	(sched-deps.o): Likewise.

2009-10-26  Ben Elliston  <bje@au.ibm.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* doc/extend.texi (Named Address Spaces): New section.
	* coretypes.h (addr_space_t): New type.
	(ADDR_SPACE_GENERIC): New define.
	(ADDR_SPACE_GENERIC_P): New macro.

	* doc/tm.texi (Named Address Spaces): New section.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
	(TARGET_ADDR_SPACE_SUBSET_P): Document.
	(TARGET_ADDR_SPACE_CONVERT): Document.
	* target.h (struct gcc_target): Add addr_space substructure.
	* target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
	(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
	(TARGET_ADDR_SPACE_CONVERT): Likewise.
	(TARGET_ADDR_SPACE_HOOKS): Likewise.
	(TARGET_INITIALIZER): Initialize addr_space hooks.
	* targhooks.c (default_addr_space_legitimate_address_p): New function.
	(default_addr_space_legitimize_address): Likewise.
	(default_addr_space_subset_p): Likewise.
	(default_addr_space_convert): Likewise.
	* targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
	(default_addr_space_legitimize_address): Likewise.
	(default_addr_space_subset_p): Likewise.
	(default_addr_space_convert): Likewise.

	* doc/rtl.texi (MEM_ADDR_SPACE): Document.
	* rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
	(MEM_ADDR_SPACE): New macro.
	* emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
	address space memory attribute.
	(mem_attrs_htab_hash): Handle address space memory attribute.
	(mem_attrs_htab_eq): Likewise.
	(set_mem_attributes_minus_bitpos): Likewise.
	(set_mem_alias_set): Likewise.
	(set_mem_align): Likewise.
	(set_mem_expr): Likewise.
	(set_mem_offset): Likewise.
	(set_mem_size): Likewise.
	(adjust_address_1): Likewise.
	(offset_address): Likewise.
	(widen_memoy_address): Likewise.
	(get_spill_slot_decl): Likewise.
	(set_mem_attrs_for_spill): Likewise.
	(set_mem_addr_space): New function.
	* emit-rtl.h (set_mem_addr_space): Add prototype.
	* print-rtl.c (print_rtx): Print address space memory attribute.
	* expr.c (expand_assignment): Set address space memory attribute
	of generated MEM RTXes as appropriate.
	(expand_expr_real_1): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.

	* tree.h (struct tree_base): Add address_space bitfield.  Reduce
	size of "spare" bitfield.
	(TYPE_ADDR_SPACE): New macro.
	(ENCODE_QUAL_ADDR_SPACE): Likewise.
	(DECODE_QUAL_ADDR_SPACE): Likewise.
	(CLEAR_QUAL_ADDR_SPACE): Likewise.
	(KEEP_QUAL_ADDR_SPACE): Likewise.
	(TYPE_QUALS): Encode type address space.
	(TYPE_QUALS_NO_ADDR_SPACE): New macro.
	* tree.c (set_type_quals): Set type address space.
	(build_array_type): Inherit array address space from element type.
	* print-tree.c (print_node_brief): Print type address space.
	(print_node): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.

	* explow.c (memory_address): Rename to ...
	(memory_address_addr_space): ... this.  Add ADDRSPACE argument.
	Use address-space aware variants of memory address routines.
	* recog.c (memory_address_p): Rename to ...
	(memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
	Use address-space aware variants of memory address routines.
	(offsettable_address_p): Rename to ...
	(offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
	Use address-space aware variants of memory address routines.
	* reload.c (strict_memory_address_p): Rename to ...
	(strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
	Use address-space aware variants of memory address routines.
	(maybe_memory_address_p): Rename to ...
	(maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
	Use address-space aware variants of memory address routines.
	* expr.h (memory_address_addr_space): Add prototype.
	(memory_address): Define as macro.
	* recog.h (memory_address_addr_space_p): Add prototype.
	(memory_address_p): Define as macro.
	(offsettable_address_addr_space_p): Add prototype.
	(offsettable_address_p): Define as macro.
	(strict_memory_address_addr_space_p): Add prototype.
	(strict_memory_address_p): Define as macro.

	* combine.c (find_split_point): Use address-space aware variants
	of memory address routines.
	* emit-rtl.c (operand_subword): Likewise.
	(change_address_1): Likewise.
	(adjust_address_1): Likewise.
	(offset_address): Likewise.
	* expr.c (emit_move_insn): Likewise.
	(expand_assignment): Likewise.
	(expand_expr_real_1): Likewise.
	* recog.c (verify_changes): Likewise.
	(general_operand): Likewise.
	(offsettable_memref_p): Likewise.
	(offsettable_nonstrict_memref_p): Likewise.
	(constrain_operands): Likewise.
	* reload.c (get_secondary_mem): Likewise.
	(find_reloads_toplev): Likewise.
	(find_reloads_address): Likewise.
	(find_reloads_subreg_address): Likewise.
	* reload1.c (reload): Likewise.
	* rtlhooks.c (gen_lowpart_if_possible): Likewise.
	* rtl.h (address_cost): Add ADDRSPACE argument.
	* rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
	aware variant of memory address routines.
	* loop-invariant.c (create_new_invariant): Update address_cost call.
	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
	* fwprop.c (should_replace_address): Add ADDRSPACE argument.
	Use address-space aware variant of memory address routines.
	(propagate_rtx_1): Update call to should_replace_address.
	* tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
	argument.
	* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
	ADDRSPACE argument.  Use per-address-space instead of global cache.
	Use address-space aware variant of memory address routines.
	(get_address_cost): Likewise.
	(get_computation_cost_at): Update calls.
	* tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
	Use address-space aware variant of memory address routines.
	(create_mem_ref_raw): Update call to valid_mem_ref_p.
	(most_expensive_mult_to_index): Update call to
	multiplier_allowed_in_address_p.

	* dwarf2out.c (modified_type_die): Output DW_AT_address_class
	attribute to indicate named address spaces.

	* varasm.c (get_variable_section): DECLs in named address spaces
	cannot be "common".

	* reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
	for addresses in a non-generic address space.

	* expr.c (emit_block_move_hints): Do not use libcalls for
	memory in non-generic address spaces.
	(clear_storage_hints): Likewise.
	(expand_assignment): Likewise.

	* fold-const.c (operand_equal_p): Expressions refering to different
	address spaces are not equivalent.

	* rtl.c (rtx_equal_p_cb): MEMs refering to different address
	spaces are not equivalent.
	(rtx_equal_p): Likewise.
	* cse.c (exp_equiv_p): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* reload.c (operands_match_p): Likewise.

	* alias.c (nonoverlapping_memrefs_p): MEMs refering to different
	address spaces may alias.
	(true_dependence): Likewise.
	(canon_true_dependence): Likewise.
	(write_dependence_p): Likewise.

	* dse.c (canon_address): Handle named address spaces.
	* ifcvt.c (noce_try_cmove_arith): Likewise.

	* tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
	* expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
	* convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
	to handle conversions between different address spaces.
	* fold-const.c (fold_convert_loc): Likewise.
	(fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* gimple-pretty-print.c (dump_unary_rhs): Likewise.
	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Conversions between pointers
	to different address spaces are not useless.

2009-10-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/41345
	* cfgcleanup.c (trivially_empty_bb_p): New function.
	(try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.

	PR debug/41828
	* dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
	add_name_and_src_coords_attributes, gen_namespace_die,
	dwarf2out_set_name): Handle dwarf2_name returning NULL.

2009-10-26  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Add support for RX target.
	* config/rx: New directory.
	* config/rx/constraints.md: New file.
	* config/rx/predicates.md: New file.
	* config/rx/rx.c: New file.
	* config/rx/rx.h: New file.
	* config/rx/rx.md: New file.
	* config/rx/rx.opt: New file.
	* config/rx/rx-protos.h: New file.
	* config/rx/t-rx: New file.
	* doc/extend.texi: Document RX function attributes.
	* doc/invoke.texi: Document RX specific command line options.
	* doc/contrib.texi: Document RX contribution.
	* doc/md.texi: Document RX constraints.
	* doc/install.texi: Document RX support.

2009-10-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/41783
	* tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
	case for simple diamonds.
	* tree-ssa-alias.h (get_continuation_for_phi): Declare.
	* tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
	argument, use alias oracle to skip some vdefs.
	(phi_translate_1): Change call to above, don't allocate new
	value ids if they can stay the same.
	(compute_avail): Allow vuse walking when looking up references.

2009-10-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41826
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
	access to re-allocated vector fields.

2009-10-26  Richard Guenther  <rguenther@suse.de>

	* graphite-sese-to-poly.c (check_poly_representation): Fix
	compile without checking.

2009-10-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41714
	* gimple.h (tree_annotate_all_with_location): Remove prototype.
	* gimplify.c (tree_should_carry_location_p,
	tree_annotate_one_with_location,tree_annotate_all_with_location):
	Remove obsolete functions.

2009-10-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/41813
	* config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.

2009-10-25  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (unpack_ts_decl_common_value_fields):
	Stream DECL_RESTRICTED_P.
	* lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.

2009-10-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
	a note when expanding to nothing.

2009-10-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41814
	* tree.c (find_decls_types_r): Deal with Java overloading
	BINFO_VIRTUALS for its own purpose.

2009-10-24  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/predicates.md (hilo_operand): New predicate.
	* config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
	define_insn.  Correct !ISA_HAS_EXT_INS length from 24 to 28.  Move
	splitter part from here ...:
	(<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here.  Swap
	op0 and op4 to match the DINS case.
	(<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.

2009-10-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR middle-end/19154
	* avr.md (QIDI): Add new mode iterator.
	(sbrx_branch<mode>): Create new zero extract bit, test and jump
	patterns for all QI thru DI modes combinations.
	(sbrx_and_branch<mode>): Create new and based bit test and jump
	patterns for QI thru SI modes.
	avr.c (avr_out_sbxx_branch): Use only bit number.

2009-10-24  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (check_call): Noreturn notrhow calls do not write
	to memory.
	(analyze_function): When analyzing noreturn nothrow call, do not
	compute written stats; free bitmaps of vars early if possible.
	(generate_summary): Only update bitmaps if computed.
	(propagate): Only dump bitmaps if computed.
	(ipa_reference_read_summary): Fix pasto.

2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
	(aliasing_component_refs_p): ...this.  Return true if there is no
	common base and the base access types have the same alias set.
	(indirect_ref_may_alias_decl_p): Adjust for above renaming.
	(indirect_refs_may_alias_p): Likewise.

2009-10-23  Joseph Myers  <joseph@codesourcery.com>

	PR c/40033
	* c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
	a C_MAYBE_CONST_EXPR.

2009-10-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/41787
	* config/rs6000/rs6000.c (struct machine_function): Add
	vsx_or_altivec_used_p to record if vector types are used.
	(rs6000_expand_to_rtl_hook): Rename from
	rs6000_alloc_sdmode_stack_slot.  If VSX, check to see if there are
	any vector operations, so if there are, we can set VRSAVE to
	non-zero when only floating point vector registers are used.
	(TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
	(rs6000_check_vector_mode): Inner function to check if vector
	types are used in the code.
	(compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
	vector instructions are used.

	* config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
	Indicate that VSX registers which overlap floating point
	registers, can't be used across a call, since the ABI only states
	the scalar part of the register will be saved and restored.

2009-10-23  Joseph Myers  <joseph@codesourcery.com>

	PR c/41673
	* alias.c (get_alias_set): Call langhook before returning 0 for
	types with structural equality.
	* c-common.c (c_common_get_alias_set): Use alias set of element
	type for arrays with structural comparison.

2009-10-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41805
	* cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
	gimple_call_nothrow_p.

2009-10-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41778
	* tree-ssa-pre.c (do_regular_insertion): Only insert if a
	redundancy along a path in the CFG we want to optimize for speed
	is going to be removed.
	(execute_pre): Do partial-PRE only if the function is to be
	optimized for speed.
	(gate_pre): Do not turn off all of PRE when not optimizing a
	function for speed.

2009-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_cabs): Use validate_arg().
	(fold_builtin_cexp): Fix if-logic.
	(fold_builtin_1): Check subtype for BUILT_IN_CIMAG.

2009-10-22  Jeff Law  <law@redhat.com>

	* ira-lives.c (process_single_reg_class_operands): Update the
	hard reg costs for all the hard registers desired by the
	single reg class operand.

2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
	for rtxes that aren't handled specially.

2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (shallow_copy_rtvec): Declare.
	* rtl.c (shallow_copy_rtvec): New function.
	* cselib.c (cselib_subst_to_values): Use it.  Only modify an
	rtx field if the subrtx has changed.

2009-10-22  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.c (m32c_function_value_regno_p): New function.
	(m32c_function_value): Make static, add new 'outgoing' argument.
	(m32c_libcall_value): Make static, add new 'fun' argument.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
	(FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
	* config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
	(m32c_function_value, m32c_libcall_value): Delete declaration.

2009-10-22  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.

2009-10-22  Razya Ladelsky  <razya@il.ibm.com>

	* tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
	space.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
	* lto-symtab.c (struct lto_symtab_entry_def): Add node member.
	(lto_symtab_merge): Do not merge cgraph nodes here.
	(lto_symtab_resolve_can_prevail_p): Simplify.
	(lto_symtab_resolve_symbols): Store cgraph node.
	(lto_symtab_merge_decls_1): Simplify.  Do not drop non-prevailing
	functions from the symtab.
	(lto_symtab_merge_cgraph_nodes_1): New function.
	(lto_symtab_merge_cgraph_nodes): Likewise.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	PR lto/41791
	* lto-streamer-out.c (lto_output_location): Stream the
	system header flag.
	* lto-streamer-in.c (lto_input_location): Likewise.

2009-10-22  Razya Ladelsky  <razya@il.ibm.com>

	* cfgloopmanip.c (duplicate_subloops): Export.
	* tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
	(transform_to_exit_first_loop): Duplicate bbs starting from
	header up to loop->latch instead of exit->src.
	Initialize control variable to the correct number of iterations.
	(gather_scalar_reductions): Do not register double reductions.
	(parallelize_loops): Dump which loop is tested.
	Indicate whether the parallelized loop is inner or not.
	Remove the innermost-loop requirement.
	* cfgloop.h (duplicate_subloops): Export.
	* tree-cfg.c (add_phi_args_after_redirect): New function.
	(gimple_duplicate_sese_tail): Remove the no-subloops constraint.
	Call duplicate_subloops.
	Update number of iterations at the exit condition.
	Don't redirect nexits always to the loop exit.
	Redirect copied edges from latch to the loop exit.

2009-10-22  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
	flag_ltrans check.
	* ipa-inline.c (cgraph_mark_inline_edge,
	cgraph_decide_inlining_of_small_function,
	cgraph_decide_inlining, inline_read_summary): Disable indirect
	inlining for WPA for time being.

	PR tree-optimize/40556
	* ipa-inline.c (cgraph_early_inlining): Fix iterations condition.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.h (lto_symtab_clear_resolution): Remove.
	* lto-symtab.c (lto_symtab_clear_resolution): Likewise.

2009-10-22  Jan Hubicka  <jh@suse.cz>

	PR lto/41730
	* ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
	global vars.
	(check_call): Handle only indirect calls.
	(propagate_bits): Update comment.
	(write_node_summary_p): Turn bogus check to assert.
	(ipa_reference_write_summary): Stream calls_read_all properly.
	(ipa_reference_read_summary): Stream in calls_read_all properly.
	(read_write_all_from_decl): New function.
	(propagate): Handle OVERWRITABLE nodes and external calls here.
	* ipa-pre-const.c (check_call): In IPA mode handle indirect
	calls only.
	(analyze_function): Do not check visibility here.
	(add_new_function): We summary OVERWRITABLE too.
	(generate_summary): Stream OVERWRITABLE nodes too.
	(propagate): Handle external calls and OVERWRITABLE nodes here.
	(local_pure_const): Check visibility here.

2009-10-22  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
	(pass_ipa_cp): Register them.
	(ipcp_init_stage): Analyze all functions for whopr/lto.
	(ipcp_propagate_stage): Skip external calls.
	(ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
	* ipa-reference.c (write_node_summary_p): Fix thinko about
	availability.
	* cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
	when in ltrans, skip executing of ipa passes since everything
	should've been done.
	* ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
	(inline_generate_summary): Likewise.
	(inline_read_summary): New function.
	(inline_write_summary): New function.
	(pass_ipa_inline): Register new hooks.
	* ipa-prop.c: Inlcude lto-streamer.h
	(ipa_edge_args_vector): Update declaration.
	(ipa_count_arguments, ipa_compute_jump_functions,
	ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
	(ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
	ipa_read_node_info): New static functions.
	(ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
	(duplicate_array): Use xmalloc.
	(duplicate_ggc_array): New.
	(ipa_edge_duplication_hook): Use it.
	(ipa_update_after_lto_read): New function.
	* ipa-prop.h (ipa_prop_write_jump_functions,
	ipa_prop_read_jump_functions): Declare.
	(ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
	jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
	(ipa_edge_args_vector): Move into GGC.
	(ipa_check_create_edge_args): Update.
	(ipa_update_after_lto_read): New.
	* passes.c (ipa_write_summaries_1): When in wpa, do not write
	summaries.
	(ipa_read_summaries): When in ltrans, so not read summaries.
	* lto-streamer.c (lto_get_section_name): Add
	LTO_section_jump_functions.
	* lto-streamer.h (LTO_section_jump_functions): New section.
	(produce_asm): Declare.
	* lto-cgraph.c (output_cgraph): Output edges in reverse order.
	* lto-streamer-out.c (produce_asm): Export.
	* lto-streamer-in.c: Include tree-pass.h
	(input_function): Free dominance info when done.
	(lto_read_body): Push ipa_inline in ltrans stage.
	* gengtype.c (open_base_files): Add ipa-prop.h into includes.
	* Makefile.in (GTFILES): Add ipa-prop.h

2009-10-22  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document --enable-browser-plugin.

2009-10-21  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/invoke.texi (fira-loop-pressure): Update default value.
	* opts.c (decode_options): Remove default value setting for
	flag_ira_loop_pressure.
	* config/ia64/ia64.c (ia64_override_options): Set
	flag_ira_loop_pressure up for -O3.
	* config/rs6000/rs6000.c (rs6000_override_options): Ditto.

2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/41497
	* tree-scalar-evolution.c (analyze_evolution_in_loop): Return
	chrec_dont_know if the evolution function returned by follow_ssa_edge
	is constant in the analyzed loop and is not compatible with the
	initial value before the loop.
	* tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.

2009-10-21  Joseph Myers  <joseph@codesourcery.com>

	* config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.

2009-10-21  Jakub Jelinek  <jakub@redhat.com>

	PR other/25507
	* doc/invoke.texi: Document -print-multi-os-directory.

2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR c++/41313
	* gcc/config/darwin10.h: Use default_emit_unwind_label.
	* gcc/config/darwin.c: Disable -freorder-blocks-and-partition
	when darwin_emit_unwind_label is used.

2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
	order of checks.

2009-10-20  Richard Henderson  <rth@redhat.com>

	* tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
	before emit_post_landing_pad.

2009-10-20  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.c (mips_binary_cost): Add new argument speed.
	Use when calling rtx_costs.
	(mips_rtx_costs): Fix formatting.  Use argument speed rather than the
	global optimize_size.  Pass speed to mips_binary_cost.

2009-10-20  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
	of TREE_CONSTANT.

2009-10-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (simplify_replace_fn_rtx): Declare.
	(wrap_constant, unwrap_constant): Delete.
	* cfgexpand.c (unwrap_constant, wrap_constant): Delete.
	(expand_debug_expr): Don't call wrap_constant.
	* combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
	(auto_adjust_pair): Fold into...
	(propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
	Just return a new value.
	(propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
	otherwise use simplify_replace_rtx.
	* cselib.c (wrap_constant): Reinstate old definition.
	(cselib_expand_value_rtx_1): Don't wrap constants.
	* gcse.c (try_replace_reg): Don't use copy_rtx in the call to
	simplify_replace_rtx.
	(bypass_block): Fix formatting in calls to simplify_replace_rtx.
	* reload1.c (reload): Skip all uses for an insn before adjusting it.
	Use simplify_replace_rtx.
	* simplify-rtx.c (simplify_replace_fn_rtx): New function,
	adapted from...
	(simplify_replace_rtx): ...here.  Turn into a wrapper for
	simplify_replace_fn_rtx.
	(simplify_unary_operation): Don't unwrap CONSTs.
	* var-tracking.c (check_wrap_constant): Delete.
	(vt_expand_loc_callback): Don't call it.
	(vt_expand_loc): Likewise.

2009-10-20  Pascal Obry  <obry@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.

2009-10-20  Michael Matz  <matz@suse.de>

	* loop-invariant.c (create_new_invariant): Use different magic number.

2009-10-20  Richard Earnshaw  <rearnsha@arm.com>

	PR target/39247
	* arm.c (arm_override_options): Forcibly disable hot/cold block
	partitioning.

2009-10-20  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41739
	* haifa-sched.c (try_ready): Skip debug deps updating speculation
	status.

2009-10-20  Richard Guenther  <rguenther@suse.de>

	* ggc-page.c: Include cfgloop.h.
	(struct max_alignment): Drop long double, add void *.
	(extra_order_size_table): Add low non-power-of-two multiples
	of MAX_ALIGNMENT.  Drop small type-based entries, add
	tree_type, cgraph_node and loop.
	* alloc-pool.c (struct allocation_object_def): Drop long double
	aligning element.

2009-10-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41340
	* loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
	referenced just in DEBUG_INSNs.

2009-10-20  Richard Guenther  <rguenther@suse.de>

	PR lto/41761
	* gimple.c (gimple_register_type): Make sure we register
	the types main variant first.

2009-10-20  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p): Simplify.  Move
	cheap checks before hashtable queries.  Add checks for
	TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.

2009-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
	without size or with size that can't be represented as a host integer.

2009-10-20  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
	the removal of a debug stmt as a significant change.

2009-10-20  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md: Added agen condition to operand
	forwarding bypasses.  Added bypass for early address generation
	use of int results.  Updated comments.

2009-10-20  Stefan Dösinger  <stefan@codeweavers.com>

	* config/i386/i386.c: Remove signal.h #include.

2009-10-20  Jie Zhang  <jie.zhang@analog.com>

	* simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
	* doc/rtl.texi: Document ss_abs.

2009-10-19  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (c_parse_error): Handle CPP_UTF8STRING.
	* c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
	instead of C_LEX_RAW_STRINGS.
	(lex_string): Handle CPP_UTF8STRING.
	* c-parser.c (c_parser_postfix_expression): Likewise.
	* c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
	(C_LEX_STRING_NO_JOIN): ... this.

2009-10-19  Anatoly Sokolov  <aesok@post.ru>

	* config/cris/cris.c (cris_function_value, cris_libcall_value,
	cris_function_value_regno_p): New functions.
	(cris_promote_function_mode): Update comment.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
	* config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
	(FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
	* config/cris/cris-protos.h (cris_function_value_regno_p): Declare.

2009-10-19  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2.c (execute_stack_op): Fix operand order for
	DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.

2009-10-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-low.c (struct lower_data): Add cannot_fallthru field.
	(lower_stmt) <GIMPLE_BIND>: Add comment.
	<GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
	and return.
	<GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
	Otherwise lower it and set cannot_fallthru to true.
	<GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
	<GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
	<GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
	to true for a noreturn call.  Do not remove statements.
	<GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
	Set cannot_fallthru to false on function exit.
	(gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
	<GIMPLE_ASSIGN>: Remove.

2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.

2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_z10_optimize_cmp): Use
	next/prev_active_insn to skip DEBUG_INSNs as well.

2009-10-19  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (output_move_neon): Use DImode in call to
	adjust_address.

2009-10-19  Matthias Klose  <doko@ubuntu.com>

	PR target/40134
	* config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.

2009-10-19  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.

2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR middle-end/41738
	* optabs.c (expand_binop): Make mode of shift count expression mode
	of shift count not target.
	Remove indent nit.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
	case.  Force using values to replace references within the statement.
	(convert_local_reference_stmt): Likewise.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
	remove a subsequent GOTO or RETURN statement.

2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>

	* config/avr.md (*movqi): Add zero as equally preferable constraint
	as general register.
	(*movhi): Ditto.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.

2009-10-17  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_location): Try to reuse previous maps.

2009-10-17  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
	operands in COMPONENT_REFs.

2009-10-17  Anatoly Sokolov  <aesok@post.ru>

	* targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
	if not defined. Change type of second argument to const_rtx.
	(default_function_value): Call gcc_unreachable if FUNCTION_VALUE
	macro not defined.
	* targhooks.h (default_libcall_value): Update prototype.
	* target.h (struct gcc_target): Change type of second argument of
	libcall_value to const_rtx.
	* config/arm/arm.c (arm_libcall_value): Change type of second argument
	to const_rtx.
	(arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
	* doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.

2009-10-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40521
	* debug.h (struct gcc_debug_hooks): Add assembly_start hook.
	* cgraphunit.c (cgraph_optimize): Call it.
	* dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
	(dwarf2out_assembly_start): ... here.  New hook.
	(dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
	* debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
	hook.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
	(vmsdbgout_assembly_start): New hook.

2009-10-17  Alexandre Oliva  <aoliva@redhat.com>

	* rtl.h (RTL_LOCATION): Fix typo.

2009-10-17  Alexandre Oliva  <aoliva@redhat.com>

	* print-rtl.c (print_rtx): Print locators in asm_operands
	and asm_input.

2009-10-17  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41535
	* sched-deps.c (depl_on_debug_p): New.
	(attach_dep_link): Reject debug deps before nondebug deps.
	(add_to_deps_list): Insert debug deps after nondebug deps.
	(sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
	deps.
	(sd_add_dep): Do not reject debug deps.
	(add_insn_mem_dependence): Don't count debug deps.
	(remove_from_deps): Likewise.
	(sched_analyze_2): Set up mem deps on debug insns.
	(sched_analyze_insn): Record reg uses for deps on debug insns.
	* haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
	try_ready nondebug insn after debug insn.
	* ddg.c (create_ddg_dep_from_intra_loop_link,
	create_ddg_dep_no_link): Don't reject debug deps.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (merge_incomplete_and_complete_type): Remove.
	(maybe_merge_incomplete_and_complete_type): Likewise.
	(lto_symtab_merge): Do not call them.  Do not warn for
	complete vs. incomplete compatible types.
	(lto_symtab_merge_decls_2): Simplify.
	* gimple.c (gimple_force_type_merge): Remove.
	(gimple_types_compatible_p): Make it static.
	* gimple.h (gimple_force_type_merge): Remove.
	(gimple_types_compatible_p): Likewise.

2009-10-16  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
	DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41728
	* tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
	if fold_stmt did anything.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41715
	* lto-streamer-in.c (lto_input_tree_ref): Revert last change.
	(maybe_fixup_handled_component): New function.
	(input_gimple_stmt): Fixup mismatched decl replacements.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41713
	* lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
	the same as VAR_DECL.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_gimple_type): For integer types
	also hash their minimum and maximum values and the string flag.
	For array types hash their domain and the string flag.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p): Restrict completing
	types to record or unions.  Simplify completion.
	Do not merge records or unions with different
	TYPE_STRUCTURAL_EQUALITY_P tag.
	(iterative_hash_gimple_type): Restrict non-recursing into
	pointer targets for records and unions.

2009-10-15  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41717
	* cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
	* dwarf2out.c (mem_loc_descriptor): Don't handle
	POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
	punt if it is not lowpart subreg or if inner mode isn't
	MODE_INT.

2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
	investigating previous or next insns.

2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (build_ref_for_offset_1): Update comment.

2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md (atype): Added missing values.

2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/41702
	* pa.md (casesi): Use sign extended index in call to gen_casesi64p.
	(casesi64p): Update pattern to reflect above.

2009-10-15  Steve Ellcey  <sje@cup.hp.com>

	PR rtl-optimization/41697
	* sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.

2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/23983
	* config/rs6000/predicates.md: Update copyright year.
	* config/rs6000/altivec.md: Ditto.

	* config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
	(MD_INCLUDES): Add a2.md.

	* config/rs6000/rs6000.c (rs6000_builtin_decls): Change
	RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
	(builtin_classify): New static vector to classify various builtins
	to get the tree attributes correct.
	(def_builtin): Set the attributes of builtins based on what the
	builtin does (i.e. memory operation, floating point, saturation
	need special attributes, others are pure functions).

	* config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
	the builtins.
	(enum rs6000_builtins): Include rs6000-builtin.def to define the
	builtins.  Change the end marker to MAX_RS6000_BUILTINS from
	RS6000_BUILTIN_COUNT.
	(rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
	MAX_RS6000_BUILTINS.

	* config/rs6000/rs6000-builtin.def: New file that combines the
	builtin enumeration name and attributes.

2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/linux.h (ASM_SPEC): Add --32.

2009-10-15  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
	and DW_TAG_template_alias.
	(dwarf_attr_name): Handle DW_AT_main_subprogram,
	DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
	DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
	DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
	DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
	and DW_AT_GNU_odr_signature.
	(dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
	DW_FORM_flag_present and DW_FORM_ref_sig8.
	(output_signature): Only print name on the first byte.
	(output_die): Likewise for dw_val_class_data8.

2009-10-15  Alexander Monakov  <amonakov@ispras.ru>

	* doc/invoke.texi: Clarify that most optimizations are not enabled
	without -O.

2009-10-15  Richard Guenther  <rguenther@suse.de>

	PR lto/41668
	* gimple.c (compare_type_names_p): Handle anonymous names
	differently based on new mode argument.
	(gimple_types_compatible_p): For structs also compare the tags.
	(iterative_hash_type_name): Rename to ...
	(iterative_hash_name): ... this.  Hash all names.
	(iterative_hash_gimple_type): Fix hashing the struct tag of
	pointer targets.  Hash field decl names.

2009-10-15  Richard Guenther  <rguenther@suse.de>

	PR lto/41669
	* gimple.c (gimple_get_alias_set): Avoid recursing on
	invalid type topology.

2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c (get_branch_target): Use extract_asm_operands.

2009-10-15  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.

2009-10-15  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
	add --with-tune{,-32,-64} configured default for -mtune if explicit
	-mcpu is used.

2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.

2009-10-14  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.c (F): New.
	(Fpa): New.
	(h8300_emit_stack_adjustment): Call them.
	(push): Likewise.
	(h8300_push_pop): Likewise.
	(h8300_expand_prologue): Likewise.
	* config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
	(MUST_USE_SJLJ_EXCEPTIONS): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	(INCOMING_FRAME_SP_OFFSET): Define.
	(DWARF_CIE_DATA_ALIGNMENT): Define.

2009-10-14  Jakub Jelinek  <jakub@redhat.com>

	* stor-layout.c (place_field): Don't emit -Wpadded warnings for
	fields in builtin structs.
	(finalize_record_size): Likewise.

2009-10-14  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gtc_ob): New global.
	(struct type_pair_d): Replace pointers with type UIDs.
	(type_pair_hash): Adjust.
	(type_pair_eq): Likewise.
	(lookup_type_pair): Likewise.  Allocate from an obstack.
	(gimple_force_type_merge): Adjust.
	(gimple_types_compatible_p): Likewise.
	(free_gimple_type_tables): Free the obstack.

2009-10-14  Jakub Jelinek  <jakub@redhat.com>

	* tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
	stmts setting DEBUG_EXPR_DECLs.

	* cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
	Don't crash if mode1 is VOIDmode.

2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
	* params.h (IRA_LOOP_RESERVED_REGS): New.
	* tree-pass.h (pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	* passes.c (pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	(pass_reginfo_init): Move before loop optimizations.
	* config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
	* common.opt (fira-loop-pressure): New.
	* toplev.h (flag_ira_loop_pressure): New.
	* rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
	* reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
	Make external and void type functions.
	(gate_subregs_of_mode_init, pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	* ira-costs.c (init_costs): Call init_subregs_of_mode.
	* regmove.c: Include ira.h.
	(regmove_optimize): Call ira_set_pseudo_classes after IRA based
	register pressure calculation in loops.
	* loop-invariant.c: Include REGS_H and ira.h.
	(struct loop_data): New members max_reg_pressure, regs_ref, and
	regs_live.
	(struct invariant): New member orig_regno.
	(curr_loop): New variable.
	(find_exits): Initialize regs_ref and regs_live.
	(create_new_invariant): Initialize orig_regno.
	(get_cover_class_and_nregs): New.
	(get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
	array.  Add code for flag_ira_loop_pressure.
	(gain_for_invariant): Make new_regs an array.  Add code for
	flag_ira_loop_pressure.
	(best_gain_for_invariant): Ditto.
	(set_move_mark): New parameter gain.  Use it for debugging output.
	(find_invariants_to_move): Make regs_needed and new_regs an array.
	Add code for flag_ira_loop_pressure.
	(move_invariant_reg): Set up orig_regno.
	(move_invariants): Set up reg classes for pseudos for
	flag_ira_loop_pressure.
	(free_loop_data): Clear regs_ref and regs_live.
	(curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
	get_regno_cover_class, change_pressure, mark_regno_live,
	mark_regno_death, mark_reg_store, mark_reg_clobber,
	mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
	(move_loop_invariants): Calculate pressure.  Initialize curr_loop.
	* ira.c (ira): Call ira_set_pseudo_classes after IRA based
	register pressure calculation in loops if new regs were added.
	Call finish_subregs_of_mode.
	* opts.c (decode_options): Set up flag_ira_loop_pressure.
	* Makefile.in (loop-invariant.o): Add ira.h.
	(regmove.o): Ditto.
	* doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
	Describe.
	* doc/tm.texi (STACK_REG_COVER_CLASS): Describe.

2009-10-14  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_compatible): Fold in ...
	(lto_symtab_merge): ... here.  Rewrite both to take the
	prevailing and a to-be-merged entry and to queue diagnostics properly.
	(lto_symtab_resolve_replaceable_p): New predicate for
	symbol resolution.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_resolve_symbols): Rewrite.  Fold in code that
	handles merging commons by choosing the largest decl.  Fold
	in code that gives ODR errors.
	(lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
	diagnostics here.
	(lto_symtab_merge_decls_1): Re-structure.  Deal with the
	case of no prevailing decl here.  Diagnose mismatches
	in object types here.  Drop all but the prevailing decls.
	(lto_symtab_prevailing_decl): Return the single prevailing decl.
	* lto-streamer-in.c (lto_input_tree_ref): Deal with
	VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.

2009-10-14  Richard Guenther  <rguenther@suse.de>

	PR lto/41521
	* lto-streamer-in.c (input_bb): Replace debug stmts with
	nops instead of dropping them.

2009-10-14  Nick Clifton  <nickc@redhat.com>

	* gcc/doc/extended.texi: Replace the dash character with @minus{}
	in situations where it is being used as a minus symbol.
	* gcc/doc/tm.texi: Likewise.
	* gcc/doc/md.texi: Likewise.

2009-10-14  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/41543
	* input.h (BUILTINS_LOCATION): Change to 1 from 2.
	Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
	* tree.c: Include intl.h.
	(expand_location): Handle BUILTINS_LOCATION.
	* Makefile.in (tree.o): Depend on intl.h.

	PR debug/41695
	* dwarf2out.c (dwarf2out_var_location): Always clear
	last_postcall_label when changing last_label.

2009-10-14  Pascal Obry  <obry@adacore.com>

	* gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
	(process_command): Handle -E as done with -c and -S.  Do not add
	the target executable suffix to the output file when -E is used.
	(main): Adjust error message accordingly.

2009-10-14  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41343
	PR debug/41447
	PR debug/41264
	PR debug/41338
	* tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
	decl with rtl.
	(tree_code_size): Likewise.

2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_1): Support complex "arc" functions.
	* real.h (HAVE_mpc_arc): Define.

2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
	(struct builtin_description): Add fndecl field.
	(bdesc): Remove const qualifier.  Update initializer.
	(sh_media_init_builtins): Remove const qualifier for d.  Record
	the result of add_builtin_function to the fndecl field.
	(sh_builtin_decl): New.
	(sh_media_builtin_decl): New.

2009-10-14  Hans-Peter Nilsson  <hp@axis.com>

	PR target/38948
	* config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
	requests between special registers.

2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.

2009-10-13  Richard Henderson  <rth@redhat.com>

	PR tree-optimization/41377
	* tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
	(cleanup_empty_eh_merge_phis): New change_region parameter;
	pass it on to redirect_eh_edge_1.  Update callers.
	(cleanup_empty_eh_unsplit): Don't require an existing EH label
	at the destination block.

2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>

	* passes.c (register_pass): Replaced gcc_unreachable by
	fatal_error on failure. Mentions plugins in comments & messages.

2009-10-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/41693
	* rtl.h (DEBUG_EXPR_TREE_DECL): Define.
	* sched-vis.c (print_value): Use it.
	* cselib.c (cselib_hash_rtx): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* cfgexpand.c (expand_debug_rtx): Likewise.
	* var-tracking.c (vt_expand_loc_callback): Likewise.

2009-10-13  Richard Guenther  <rguenther@suse.de>

	PR lto/41565
	* opts.c (handle_option): Split out code to handle setting
	the options flag var ...
	(set_option): ... here.
	* opts.h (set_option): Declare.
	* lto-opts.c (register_user_option_p): Include -fexceptions
	and all position independent code variants.
	(handle_common_option): Remove.
	(lto_reissue_options): Use set_option.

2009-10-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41661
	* ipa-prop.c (compute_complex_pass_through): Allow only operations
	that are tcc_comparisons or do not change the type in any
	un-usleless way.
	* ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
	folding tcc_comparison operations.

2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_encode_section_info): Handle BLKmode
	properly.

2009-10-12  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41343
	PR debug/41447
	PR debug/41264
	PR debug/41338
	* tree.def (DEBUG_EXPR_DECL): New.
	* rtl.def (DEBUG_EXPR): New.
	* gengtype.c (adjust_field_rtx_def): Handle it.
	* tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
	(insert_debug_temp_for_var_def): ... this.  Drop support for
	moving.  Take iterator for def stmt; insert debug stmt before it.
	Scan early for use count and kind in debug stmts.
	(propagate_defs_into_debug_stmts): Rename to...
	(insert_debug_temps_for_defs): ... this.  Likewise.
	* tree.h (DEBUG_TEMP_UID): New.
	* tree.c (next_debug_decl_uid): New.
	(make_node_stat): Count debug decls separately.
	(copy_node_stat): Likewise.
	* cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
	* var-tracking.c (dv_is_decl_p): Recognize it.
	(VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
	(track_expr_p): Track expanded DEBUG_EXPR_DECLs.
	(vt_expand_loc_callback): Expand DEBUG_EXPRs.
	(emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
	* cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
	(cselib_hash_rtx): Likewise.
	(cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
	* tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
	debug bind stmts.
	* emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
	(copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
	* rtl.c (copy_rtx): Likewise.
	(rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
	* print-rtl.c (print_rtx): Likewise.
	* sched-vis.c (print_value): Likewise.
	(print_insn): Handle DEBUG_EXPR_DECL.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
	* gimple-iterator (gsi_replace): Check for same lhs.
	(gsi_remove): Insert debug temps.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
	(move_computations_stmt): Drop explicit propagation into debug stmts.
	(rewrite_bittest): Likewise.  Use gsi_remove for propagation.
	* tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
	* tree-ssa-sink.c (statement_sink_location): Likewise.
	* tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
	* tree-ssanames.c (release_ssa_name): Adjust for rename.
	* tree-flow.h: Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
	debug temps without values.
	(eliminate_unnecessary_stmts): Don't discard just-inserted
	debug stmts.

2009-10-12  Hans-Peter Nilsson  <hp@axis.com>

	PR target/26515
	* config/cris/cris.md (andu): Check that operand 1 is one of the
	general registers.  Fix typo in head comment.

2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>

	* config/i386/i386.md (vswapmov): New.
	* config/i386/i386.c (ix86_handle_fndecl_attribute): New.
	(ix86_function_ms_hook_prologue): New.
	(ix86_expand_prologue): Handle ms_hook_prologue attribute.
	* configure.ac: Test for swap suffix support in as.
	* configure: Rebuild.

2009-10-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/41680
	* config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
	paradoxical subregs to prevent partial register stalls if the inner
	mode is integer mode.

2009-10-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.

2009-10-12  Dodji Seketeli  <dodji@redhat.com>

	PR c++/41570
	* gcc/dwarf2out.c (template_parameter_pack_die,
	gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.

2009-10-12  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41616
	* tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
	on updates too.
	(maybe_register_def): Likewise.  Take stmt iterator.
	(rewrite_update_stmt): Take stmt iterator and pass it on.
	(rewrite_update_enter_block): Pass stmt iterator.

2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
	(spu_builtin_decl): New function.

2009-10-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SWIM): New mode iterator.
	(mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
	using SWIM mode iterator.
	(x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
	patterns using SWI48 mode iterator.
	(*x86_mov<mode>cc_0_m1_se):  Macroize insn from
	*x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
	(*x86_mov<mode>cc_0_m1_neg): New insn pattern.
	(*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
	patterns using SWI248 mode iterator.
	* config/i386/i386.c (ix86_expand_int_movcc): Update the call to
	gen_x86_movdicc_0_m1_rex64 for renamed function

2009-10-11  Jose Ruiz  <ruiz@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR target/33743
	* config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
	* config/sparc/sol2-unwind.h: New file.

2009-10-11  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR target/33743
	* config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
	* config/i386/sol2-unwind.h: New file.

2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/41665
	* config/i386/i386.md (addsi_1_zext): Get the proper second
	operand for lea.

2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
	all OLD_RTXes, not just REGs.  Use copy_rtx to create the
	replacement value.

2009-10-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_type_name): Do not handle special
	anonymous names.

2009-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
	(*setcc_si_1_and): Ditto.
	(*setcc_si_1_movzbl): Ditto.
	(*setcc_<mode>_2): Ditto.
	(*setcc_qi): Rename from *setcc_1.
	(*setcc_qi_slp): Rename from *setcc_2.

	(*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
	(*zero_extendqisi2_movzbw_and splitter): Ditto.

	* config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
	"if" condition, there is already assert with reload_completed present.

2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* plugin.c (try_init_one_plugin): Improve constness of variable err.

2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Final install): Refer to
	http://gcc.gnu.org/bugs/ for bug reporting.

2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>

	* configure.ac: Add test for dci instruction.
	* configure: Regenerate.
	* config.in: Likewise.
	* config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
	* doc/invoke.texi: Add cpu_type 476 and 476fp.
	(-mmulhw): Add 476 to description.
	(-mdlmzb): Likewise.
	* config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
	* config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
	(processor_target_table): Add 476 and 476fp entries.
	(rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
	(rs6000_issue_rate): Add CPU_PPC476.
	* config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
	(ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
	(processor_type): Add PROCESSOR_PPC476.
	(EXTRA_SPECS): Add asm_cpu_476 string.
	* config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
	(define_attr "cpu"): Add ppc476.
	Include 476.md.
	Update comments for 476.
	(isel_signed, isel_unsigned): Change to use "isel" type attribute.
	* config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
	Update copyright year.
	* config/rs6000/476.md: New file.
	* config/rs6000/40x.md: Add description for "isel" attribute.
	Update copyright year.
	* config/rs6000/440.md: Likewise.
	* config/rs6000/603.md: Likewise.
	* config/rs6000/6xx.md: Likewise.
	* config/rs6000/7450.md: Likewise.
	* config/rs6000/7xx.md: Likewise.
	* config/rs6000/8540.md: Likewise.
	* config/rs6000/cell.md: Likewise.
	* config/rs6000/e300c2c3.md: Likewise.
	* config/rs6000/e500mc.md: Likewise.
	* config/rs6000/mpc.md: Likewise.
	* config/rs6000/power4.md: Likewise.
	* config/rs6000/power5.md: Likewise.
	* config/rs6000/power6.md: Likewise.
	* config/rs6000/power7.md: Likewise.
	* config/rs6000/rios1.md: Likewise.
	* config/rs6000/rios2.md: Likewise.
	* config/rs6000/rs64.md: Likewise.

2009-10-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41654
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
	a cond expr before calling gimple_cond_set_condition_from_tree.
	(ifcombine_iforif): Likewise.

2009-10-09  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Use AC_SEARCH_LIBS to find dlopen.
	* configure: Rebuild.

2009-10-09  Neil Vachharajani <nvachhar@google.com>

	* doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
	deprecated.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	PR lto/41638
	* target-def.h (TARGET_BUILTIN_DECL): Define.
	(TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
	* target.h (struct gcc_target): Add builtin_decl target hook.
	* doc/tm.texi (TARGET_BUILTIN_DECL): Document.
	* lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
	target builtins.
	* lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
	not gcc_unreachable.
	(lto_output_builtin_tree): Sorry if the target does not support
	streaming target builtins.
	* config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
	(rs6000_builtin_decl): New function.
	* config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
	(ix86_builtin_decl): New function.

2009-10-09  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/41445
	* c-ppoutput.c (do_line_change): New function.
	(cb_line_change): Use it.
	(scan_translation_unit): Call do_line_change if
	avoid_paste or PREV_WHITE and token location is on a different line
	than print.src_line.

	PR debug/40521
	* dwarf2out.c (dwarf2out_init): Test whether
	HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
	it is defined.

	PR rtl-optimization/41646
	* calls.c (expand_call): For BLKmode types returned in registers
	avoid likely spilled hard regs in copy_blkmode_from_reg generated
	insns.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41634
	* tree-ssa-dom.c (remove_local_expressions_from_table): Assert
	we remove the correct elements.
	(optimize_stmt): Make sure to update stmt operands before
	optimizing redundancies.

2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	PR driver/41637
	* lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
	globals.
	(lto_wrapper_exit): New function.
	(fatal): Use it.
	(fatal_perror): Likewise.
	(fork_execute): Use global args_name, do not free it.
	(run_gcc): Use global ltrans_output_file, flto_out, do not free them.
	* lto-streamer.h: Remove duplicate prototypes.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	* cgraph.c (cgraph_create_edge): Check for NULL call_stmt
	before calling stmt_can_throw_external.

2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/40071
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
	pointer if the original data reference doesn't conflict with the
	created vector data reference.  Fix long line.

2009-10-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_div): New code iterator.
	(u): Handle div and udiv.
	(sgnprefix): Ditto.
	(<u>divqi3): Macroize insn from {,u}divqi3  using any_div
	code iterator.
	(lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
	lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
	(lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
	lceil<mode>{si,di}2 patterns using SWI48 mode iterator.

2009-10-08  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (main): Remove trailing "." from diagnostics.

2009-10-08  Cary Coutant  <ccoutant@google.com>

	Add support for debugging with ICF (Identical Code Folding).
	* calls.c (debug.h): New #include.
	(emit_call_1): Call virtual_call_token debug hook.
	* common.opt (-fenable-icf-debug): New option.
	* dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
	locations in the source).
	(poc_label_num): New variable.
	(dcall_entry, vcall_entry): New typedefs.
	(dcall_table, vcall_table): New variables.
	(struct vcall_insn): New type.
	(vcall_insn_table): New variable.
	(DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
	(size_of_dcall_table): New function.
	(output_dcall_table): New function.
	(size_of_vcall_table): New function.
	(output_vcall_table): New function.
	(dwarf2out_direct_call): New function.
	(vcall_insn_table_hash): New function.
	(vcall_insn_table_eq): New function.
	(dwarf2out_virtual_call_token): New function.
	(dwarf2out_virtual_call): New function.
	(dwarf2out_init): Allocate new tables and sections.
	(prune_unused_types): Mark DIEs referenced from direct call table.
	(dwarf2out_finish): Output direct and virtual call tables.
	* final.c (final_scan_insn): Call direct_call and virtual_call
	debug hooks.
	* debug.h (struct gcc_debug_hooks): Add direct_call,
	virtual_call_token, virtual_call hooks.
	(debug_nothing_uid): New function.
	* debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
	(debug_nothing_uid): New function.
	* dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
	(xcoff_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* doc/invoke.texi (-fenable-icf-debug): New option.

2009-10-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41353
	* regmove.c (regmove_backward_pass): Replace src with dst in the
	debug insn, and check for dst before rather than after.

2009-10-08  Janis Johnson <janis187@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
	(TARGET_DELEGITIMIZE_ADDRESS): Likewise.

2009-10-08  Jan Hubicka  <jh@suse.cz>

	PR middle-end/41626
	* cgraphbuild.c (record_reference): When parameter DATA is NULL,
	do not mark cgraph nodes as needed.
	(record_references_in_initializer): Add new only_vars parameter.
	* cgraph.h (record_references_in_initializer): New parameter.
	* varasm.c (assemble_variable): Update call.
	* varpool.c (varpool_analyze_pending_decls): Always look for
	referenced vars.

2009-10-08  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (last_insn_address) Remove variable.
	(expand_prologue): Don't initialise last_insn_address variable.
	(final_prescan_insn): Don't output insn size.
	* config/avr/avr.opt (msize): Remove switch.
	* doc/invoke.texi (AVR Options): Remove documentation of -msize
	switch.

2009-10-08  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (label_tick_ebb_start): Fix comment.
	(combine_instructions): Set label_tick and label_tick_ebb_start before
	calling setup_incoming_promotions.  Start them from 1.  Increment
	label_tick instead of deriving it from the BB index.  Rather than
	comparing ticks use the block from the previous iteration to decide
	whether to start a new EBB.  Remove empty lines before function.

2009-10-08  Michael Matz  <matz@suse.de>

	PR middle-end/41573
	* builtins.c (fold_builtin_isascii): Use fold_build2.
	(fold_builtin_isdigit): Ditto.
	* except.c (duplicate_eh_regions_1): Tolerate NULL labels.
	* tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
	remove_useless_stmts_cond, remove_useless_stmts_tf,
	remove_useless_stmts_tc, remove_useless_stmts_bind,
	remove_useless_stmts_goto, remove_useless_stmts_label,
	remove_useless_stmts_1, remove_useless_stmts,
	pass_remove_useless_stmts): Remove.
	* tree-pass.h (pass_remove_useless_stmts): Don't declare.
	* passes.c (init_optimization_passes): Don't add
	pass_remove_useless_stmts.
	* tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
	* tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
	static constants.
	* lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
	for static constants.
	* lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
	* lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.

2009-10-08  Richard Guenther  <rguenther@suse.de>

	* gimple.c (free_gimple_type_tables): New function.
	* gimple.h (free_gimple_type_tables): Declare.

2009-10-07  Mark Heffernan  <meheff@google.com>

	* ipa-prop.c (ipa_print_node_params) Only print
	names of named arguments.

2009-10-08  Rafael Avila de Espindola  <espindola@google.com>

	* gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
	being statically linked.

2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.

2009-10-08  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/41620
	* ipa.c (cgraph_externally_visible_p,
	function_and_variable_visibility,
	whole_program_function_and_variable_visibility): Skip non-finalized
	nodes.

2009-10-08  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
	CONST_DOUBLEs.

2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>

	PR bootstrap/37739
	* config.host: Use config/x-cflags-O1 for powerpc FreeBSD.

2009-10-07  Joseph Myers  <joseph@codesourcery.com>

	PR c/41182
	* c-common.c (c_fully_fold_internal): Strip nops from the result
	of recursive calls to c_fully_fold_internal.
	(c_wrap_maybe_const): New.
	(c_save_expr): Use c_wrap_maybe_const.
	* c-common.h (c_wrap_maybe_const): Declare.
	* c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
	build_binary_op): Use c_wrap_maybe_const.

2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* real.c: Fix comment to reflect actual exponent size.

2009-10-08  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/a2.md: Add FSF comment header.

2009-10-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_extend): New code iterator.
	(u, s): New code attributes.
	(sgnprefix): Ditto.
	(DWIH): Rewrite as code iterator for SI and DI modes.
	(DWI): Rewrite as mode attribute.
	(dwi): New mode attribute.
	(di): Depend on SI mode and DI mode.
	(doubleint_general_operand): Remove mode attribute.

	(*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
	DWIH mode iterator.

	(*add<mode>3_doubleword): Use DWIH as the base mode iterator.
	(*sub<mode>3_doubleword): Ditto.

	(mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
	using SWIM248 mode iterator.
	(*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
	using SWI48 mode iterator.
	(<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
	patterns using DWIH mode iterator and any_extend code iterator.
	(<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
	using any_extend code iterator.
	(*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
	patterns using DWIH mode iterator and any_extend code iterator.
	(*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
	using any_extend code iterator.
	(<s>mul<mode>3_highpart): Macroize expander from
	{s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
	and any_extend code iterator.
	(*<s>muldi3_highpart_1): Macroize insn from
	*{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
	(*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
	patterns using any_extend code iterator.
	(*<s>mulsi3_highpart_zext): Macroize insn from
	*{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.

2009-10-07  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
	DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
	refering to a DIE with DW_AT_const_value.

2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/22072
	* ira-lives.c (check_and_make_def_conflict): Process all operands.

2009-10-06  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
	correctly.

2009-10-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
	*lea_2_rex64): Move before *add<mode>_1 pattern.

2009-10-07  Jan Hubicka  <jh@suse.cz>

	* collect2.c (main): Add -fno-whole-program.
	* gcc.c (set_collect_gcc_options): Do not remove whole program here.

2009-10-07  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
	has no address taken.
	* cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
	never needed.
	(cgraph_clone_node): Clear externally_visible flag for clones.
	* cgraph.h (cgraph_only_called_directly_p,
	cgraph_can_remove_if_no_direct_calls_p): New predicates.
	* tree-pass.h (pass_ipa_whole_program_visibility): Declare.
	* ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
	(ipcp_initialize_node_lattices, ipcp_estimate_growth,
	ipcp_insert_stage): Likwise.
	* cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
	externally_visible flag.
	(verify_cgraph_node): Verify that inline clones look right.
	(process_function_and_variable_attributes): Do not set
	externally_visible flags.
	(ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
	been already run.
	* lto-cgraph.c (lto_output_node): Assert that inline clones are not
	boundaries.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
	clear externally_visible when turning into inline clones
	(cgraph_mark_inline_edge): Use new predicates.
	(cgraph_estimate_growth): Likewise.
	(cgraph_decide_inlining): Likewise.
	* ipa.c (cgraph_postorder): Likewise.
	(cgraph_remove_unreachable_nodes): Likewise; sanity check
	that inline clones are not needed.
	(cgraph_externally_visible_p): New predicate.
	(function_and_variable_visibility): Add whole_program parameter;
	always set externally_visible flag; handle COMDAT function
	privatization.
	(local_function_and_variable_visibility): New function.
	(gate_whole_program_function_and_variable_visibility): New function.
	(whole_program_function_and_variable_visibility): New function.
	(pass_ipa_whole_program_visibility): New function.
	* passes.c  (init_optimization_passes): Add whole program visibility
	pass.
	(do_per_function_toporder, function_called_by_processed_nodes_p): Do
	not care about needed/reachable flags.
	* varpool.c: Include flags.h
	(decide_is_variable_needed): When doing LTO assume whole-program mode.
	(varpool_finalize_decl): When we are in LTO read-back, all variables
	are analyzed.
	(varpool_analyze_pending_decls): Skip analyzis of analyzed vars.

2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
	add MASK_HARD_DFP.

2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config.gcc: Don't include the makefile fragments intended for
	libgcc.
	* config/s390/fixdfdi.h: File removed.
	* config/s390/libgcc-glibc.ver: File removed.
	* config/s390/s390.h: Remove the fixdfdi.h hack.
	* config/s390/t-crtstuff: File moved to libgcc dir.
	* config/s390/t-linux: Likewise.
	* config/s390/t-tpf: libgcc specific parts removed.
	* config/s390/t-linux64: Likewise.

2009-10-06  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
	(lto-compress.o): Likewise.

2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/41512
	* config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
	dllexport to class members here.
	(i386_pe_determine_dllimport_p): Only check static class data for
	definition.
	(i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
	* config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
	functions for vague linkage.
	(i386_pe_type_dllexport_p): Fix formatting.
	(maybe_add_dllexport) New function.
	(i386_pe_adjust_class_at_definition): Use it to propagate dllexport
	to class members.

2009-10-07  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/a2.md: Remove duplicated lines.

2009-10-07  Ben Elliston  <bje@au.ibm.com>

	* config.gcc (powerpc*-*-*): Handle a2.
	* config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
	* config/rs6000/a2.md: New file.
	* config/rs6000/rs6000.opt (mno-update): New.
	(mupdate): Return to using a mask, not a var.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
	(enum processor_type): Add PROCESSOR_PPCA2.
	* config/rs6000/rs6000.c (ppca2_cost): New costs.
	(rs6000_override_options): Add "a2" to processor_target_table.
	Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.

2009-10-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
	Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
	reference to nonexistent gen_truncxfxf2 function.

2009-10-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
	(DWIH, g, di, doubleint_general_operand): New mode attributes.
	(general_operand): Handle TI mode.
	(add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
	using SDWIM mode iterator.
	(*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
	pattern from *add{di,ti}3_1 patterns and corresponding splitters
	using DWI mode iterator.
	(add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
	patterns using SWI mode iterator.
	(*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
	using SWI48 mode iterator.
	(*add<mode>_1): Ditto from add{si,di}_1 patterns.
	(*add<mode>_2): Ditto from add{si,di}_2 patterns.
	(*add<mode>_3): Ditto from add{si,di}_3 patterns.
	(*add<mode>_5): Ditto from add{si,di}_5 patterns.
	(sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
	using SDWIM mode iterator.
	(*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
	pattern from *sub{di,ti}3_1 patterns and corresponding splitters
	using DWI mode iterator.
	(sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
	patterns using SWI mode iterator.
	(*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
	(*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
	(*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
	(<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
	patterns using plusminus code iterator.
	(<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
	sub<mode>3 patterns using plusminus code iterator.
	* config/i386/i386.c (override_options): Update the call to
	gen_subdi_carry_rex64 for renamed function.
	(ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
	and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
	calls to instruction expanders.

2009-10-06  Martin Jambor  <mjambor@suse.cz>

	PR bootstrap/41395
	* opts.c (decode_options): Run IPA-SRA at -O2.

2009-10-06  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.

2009-10-06  Tobias Burnus  <burnus@net-b.de>

	PR lto/41591
	* doc/invoke.texi (-flto,-fwhole-program): Make clear that the
	-flto and -fwhole-program flags can be combined.

2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>

	PR driver/41217
	* gcc.c (process_command): Check that -o argument was specified.

2009-10-06  Jerry Quinn  <jlquinn@optonline.net>

	* gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.

2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
	* doc/invoke.texi (Warning Options): Annotate allowed languages
	for -Wunsuffixed-float-constants.

2009-10-05  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (modified_type_die): Don't add DW_AT_name to
	DW_TAG_{const,volatile}_type if its DW_AT_type already has the
	same name and isn't the main variant.

	PR debug/41558
	* dwarf2out.c (loc_by_reference): Removed.
	(dw_loc_list_1): New function.
	(dw_loc_list): Remove toplev argument, add want_address argument.
	Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
	(loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
	want_address == 2 to dw_loc_list.  For successful dw_loc_list
	set have_address to 1 only if want_address is not 0.

2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
	* config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
	a code block followed by two pointers.
	(TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
	* config/mips/mips.c (MIPS_LOAD_PTR): New macro.
	(MIPS_MOVE): Likewise.
	(MIPS_LUI): Likewise.
	(MIPS_JR): Likewise.
	(MIPS_BAL): Likewise.
	(MIPS_NOP): Likewise.
	(mips_asm_trampoline_template): Delete.
	(mips_trampoline_code_size): New function.
	(mips_trampoline_init): Add shorter sequences for all cases
	except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
	Calculate the opcodes directly, rather than copying from a template.
	Only flush the code part of the trampoline.
	(TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.

2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
	GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
	(INCOMING_RETURN_ADDR_RTX): Likewise.
	(FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
	with AT_REGNUM.
	* config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
	with RETURN_ADDR_REGNUM.
	(MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
	* config/mips/mips.c (mips16_build_call_stub): Replace
	GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
	with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
	(mips_print_operand_punctuation): Likewise.
	(mips_frame_set): Likewise.
	(mips16e_output_save_restore): Likewise.
	(mips_cfun_might_clobber_call_saved_reg_p): Likewise.
	(mips_save_reg_p): Likewise.
	(mips_return_addr): Likewise.
	(mips_set_return_address): Likewise.
	(mips_direct_save_slot_move_p): Likewise.
	(mips_output_function_prologue): Likewise.
	(mips_restore_reg): Likewise.
	(mips_expand_epilogue): Likewise.
	(mips_epilogue_uses): Likewise.
	* config/mips/mips.md (RETURN_ADD_REGNUM): Define.
	(*mov<mode>_ra): Use it instead of a hard-coded 31.
	(clear_hazard_<mode>): Likewise.
	(call_internal): Likewise.
	(call_internal_direct): Likewise.
	(call_direct_split): Likewise.
	(call_value_internal): Likewise.
	(call_value_split): Likewise.
	(call_value_internal_direct): Likewise.
	(call_value_direct_split): Likewise.
	(call_value_multiple_internal): Likewise.
	(call_value_multiple_split): Likewise.

2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/41511
	* combine.c (record_value_for_reg): Pass explicit values as argument
	to get_last_value_validate.
	(get_last_value_validate): Document INSN parameter.
	For non-readonly MEMs, assume they might have been modified if INSN
	was in another basic block.
	(get_last_value): Minor reformatting.

2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/40992
	* final.c (asm_str_count): Split out from asm_insn_count.
	* rtl.h (asm_str_count): New prototype.
	* tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
	asm_str_count.

2009-10-05  Sriraman Tallam  <tmsriram@google.com>

	* doc/plugins.texi: Change plugin_pass to register_pass_info.

2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Espindola  <espindola@google.com>

	* gengtype.c (write_types): Moved call to write_func_for_structure
	into seperate loops.

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

	PR lto/41281
	* lto-cgraph.c (output_cgraph): Output toplevel asms.
	(input_cgraph_1): Input toplevel asms.

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

	PR lto/40902
	* lto-symtab.c (lto_compatible_attributes_p): Remove.
	(external_aggregate_decl_p): Likewise.
	(lto_symtab_compatible): Re-structure.  Remove dead code.
	For variables ignore toplevel qualifiers when comparing types.
	Issue warnings, not errors for mismatched user-alignment.

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

	PR lto/41552
	PR lto/41487
	* lto-symtab.c (struct lto_symtab_base_def): Remove.
	(struct lto_symtab_identifier_def): Likewise.
	(struct lto_symtab_decl_def): Likewise.
	(struct lto_symtab_entry_def): New.
	(lto_symtab_identifier_t): Rename to ...
	(lto_symtab_entry_t): ... this.
	(lto_symtab_decls): Remove.
	(lto_symtab_base_hash): Rename to ...
	(lto_symtab_entry_hash): ... this.
	(lto_symtab_base_eq): Rename to ...
	(lto_symtab_entry_eq): ... this.
	(lto_symtab_base_marked_p): Rename to ...
	(lto_symtab_entry_marked_p): ... this.
	(lto_symtab_identifier_marked_p): Remove.
	(lto_symtab_decl_marked_p): Likewise.
	(lto_symtab_maybe_init_hash_tables): Rename to ...
	(lto_symtab_maybe_init_hash_table): ... this.
	(lto_symtab_set_resolution_and_file_data): Remove.
	(lto_symtab_register_decl): New function.
	(lto_symtab_get_identifier): Remove.
	(lto_symtab_get): New function.
	(lto_symtab_get_resolution): Adjust.
	(lto_symtab_get_identifier_decl): Remove.
	(lto_symtab_set_identifier_decl): Likewise.
	(lto_symtab_merge_decl): Rename to ...
	(lto_symtab_merge): ... this.  Rewrite.
	(lto_symtab_merge_var): Remove.
	(lto_symtab_merge_fn): Likewise.
	(lto_symtab_prevailing_decl): Adjust.
	(lto_cgraph_replace_node): New function.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	(lto_symtab_fixup_var_decls): Likewise.
	(lto_symtab_resolve_symbols): Likewise.
	(lto_symtab_merge_decls): Likewise.
	(lto_symtab_prevailing_decl): Adjust.
	(lto_symtab_get_symtab_def): Remove.
	(lto_symtab_get_file_data): Likewise.
	(lto_symtab_clear_resolution): Adjust.
	(lto_symtab_clear_resolution): Likewise.
	* lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
	(input_cgraph_1): Likewise.
	* lto-streamer-in.c (get_resolution): Do not provide fake
	symbol resolutions here.
	(deferred_global_decls): Remove.
	(lto_register_deferred_decls_in_symtab): Likewise.
	(lto_register_var_decl_in_symtab): Change signature, register
	variable via lto_symtab_register_decl.
	(lto_register_function_decl_in_symtab): Likewise.
	(lto_read_tree): Adjust.
	* lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
	(lto_symtab_merge_var): Likewise.
	(lto_symtab_merge_fn): Likewise.
	(lto_symtab_register_decl): Declare.
	(lto_symtab_merge_decls): Likewise.

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

	PR tree-optimization/23821
	* tree-vrp.c (vrp_finalize): Do not perform copy propagation.
	* tree-ssa-dom.c (cprop_operand): Do not propagate copies into
	simple IV increments.

2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_override_options): Really initialize
	flag_dwarf2_cfi_asm to 0.

2009-10-05  Doug Kwan  <dougkwan@google.com>

	PR rtl-optimization/41574
	* combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
	floating point and we are not doing unsafe math optimizations.

2009-10-03  Simon Baldwin  <simonb@google.com>
	    Cary Coutant  <ccoutant@google.com>
	    Rafael Espindola  <espindola@google.com>
	    Richard Guenther  <rguenther@suse.de>
	    Jan Hubicka  <jh@suse.cz>
	    Doug Kwan <dougkwan@google.com>
	    H.J. Lu  <hongjiu.lu@intel.com>
	    Bill Maddox  <maddox@google.com>
	    Ryan Mansfield  <rmansfield@qnx.com>
	    Diego Novillo  <dnovillo@google.com>
	    Ollie Wild  <aaw@google.com>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* lto-cgraph.c: New file.
	* lto-compress.c: New file.
	* lto-compress.h: New file.
	* lto-opts.c: New file.
	* lto-section-in.c: New file.
	* lto-section-out.c: New file.
	* lto-streamer-in.c: New file.
	* lto-streamer-out.c: New file.
	* lto-streamer.c: New file.
	* lto-streamer.h: New file.
	* lto-symtab.c: New file.
	* lto-wpa-fixup.c: New file.
	* lto-wrapper.c: New file.

2009-10-03  Simon Baldwin  <baldwin@google.com>
	    Ben Elliston  <bje@au.ibm.com>
	    Rafael Espindola  <espindola@google.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Jan Hubicka  <jh@suse.cz>
	    Doug Kwan  <dougkwan@google.com>
	    Diego Novillo  <dnovillo@google.com>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* Makefile.in (enable_lto): New.
	(site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
	(LINKER_PLUGIN_API_H): Define.
	(LTO_SYMTAB_H): Define.
	(LTO_STREAMER_H): Define.
	(TREE_VECTORIZER_H): Define.
	(INCLUDES): Add LIBELFINC.
	(OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
	lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
	lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
	(MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
	(native): Add lto-wrapper$(exeext)
	(lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
	lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
	lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
	(gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
	(varasm.o): Add dependency on tree-iterator.h.
	(cgraph.o): Add dependency on cif-code.def.
	(ipa-reference.o): Add dependency on LTO_STREAMER_H.
	(ipa-pure-const.o): Likewise.
	(GTFILES): Add lto-symtab.c.
	(install-lto-wrapper): New.
	* configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
	and enable_lto.  If LIBELFLIBS is set, define HAVE_libelf.
	* config.in: Regenerate.

2009-10-03  Rafael Espindola  <espindola@google.com>
	    Diego Novillo  <dnovillo@google.com>

	* cgraphunit.c (ipa_passes): Prevent lto1 from calling
	ipa_write_summaries.
	Call execute_ipa_summary_passes for all_regular_ipa_passes and
	all_lto_gen_passes.
	(cgraph_optimize): Make extern.

2009-10-03  Nathan Froyd  <froydnj@codesourcery.com>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* toplev.c (in_lto_p): Declare.
	* collect2.c (scan_prog_file): Read all the output when reading
	information for LTO.
	(enum lto_mode_d): Declare.

2009-10-03  Richard Guenther  <rguenther@suse.de>
	    Diego Novillo  <dnovillo@google.com>

	* gimple.c: Include target.h and alias.h.
	(gimple_types): Declare.
	(type_hash_cache): Declare.
	(gimple_alloc_stat): Make extern.
	(gimple_build_eh_must_not_throw): Call
	gimple_eh_must_not_throw_set_fndecl.
	(struct type_pair_d): Declare.
	(type_pair_t): Declare.
	(type_pair_hash): New.
	(type_pair_eq): New.
	(lookup_type_pair): New.
	(gimple_force_type_merge): New.
	(compare_type_names_p): New.
	(compare_field_offset): New.
	(gimple_types_compatible_p): New.
	(struct sccs): Declare.
	(next_dfs_num): Declare.
	(iterative_hash_gimple_type): New.
	(visit): New.
	(iterative_hash_type_name): New.
	(iterative_hash_gimple_type): New.
	(gimple_type_hash): New.
	(gimple_type_eq): New.
	(gimple_register_type): New.
	(print_gimple_types_stats): New.
	(gimple_signed_or_unsigned_type): New.
	(gimple_unsigned_type): New.
	(gimple_signed_type): New.
	(gimple_get_alias_set): New.
	(gimple_decl_printable_name): Do not use DMGL_TYPES.
	* gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
	(gimple_force_type_merge): Declare.
	(gimple_types_compatible_p): Declare.
	(gimple_register_type): Declare.
	(print_gimple_types_stats): Declare.
	(gimple_unsigned_type): Declare.
	(gimple_signed_type): Declare.
	(gimple_get_alias_set): Declare.
	(gimple_eh_must_not_throw_set_fndecl): New.

2009-10-03  Jan Hubicka  <jh@suse.cz>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* ipa-pure-const.c: Include lto-streamer.h.
	(register_hooks): Factor out of ...
	(generate_summary): ... here.
	(pure_const_write_summary): New.
	(pure_const_read_summary): New.
	(pass_ipa_pure_const): Add pure_const_write_summary and
	pure_const_read_summary.
	* ipa-reference.c: Include lto-streamer.h.
	(add_new_function): New.
	(remove_node_data): New.
	(duplicate_node_data): New.
	(ipa_init): Guard against multiple calls.
	Move hook setup from analyze_function.
	(write_node_summary_p): New.
	(ipa_reference_write_summary): New.
	(ipa_reference_read_summary): New.
	(pass_ipa_reference): Add ipa_reference_write_summary and
	ipa_reference_read_summary.
	* cgraph.h (cgraph_local_info): Add field lto_file_data.
	(struct cgraph_edge): Add fields lto_stmt_uid and
	call_stmt_cannot_inline_p.
	(cgraph_optimize): Declare.
	(cgraph_decide_is_function_needed): Declare.
	(reset_inline_failed): Declare.
	(enum LTO_cgraph_tags): Declare.
	(LTO_cgraph_tag_names): Declare.
	(LCC_NOT_FOUND): Define.

2009-10-03  Doug Kwan  <dougkwan@google.com>
	    Rafael Espindola  <espindola@google.com>
	    Jan Hubicka  <jh@suse.cz>
	    Diego Novillo  <dnovillo@google.com>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* passes.c (all_regular_ipa_passes): New.
	(all_ipa_passes): Rename to all_small_ipa_passes.
	(init_optimization_passes): Init all_regular_ipa_passes.
	* tree-pass.h (all_regular_ipa_passes): New.
	(all_ipa_passes): Rename to all_small_ipa_passes.
	* passes.c (all_lto_gen_passes): New.
	(init_optimization_passes): Initialize all_lto_gen_passes.
	(execute_ipa_summary_passes): Make non-static.
	(ipa_write_summaries_1): New.
	(ipa_write_summaries_2): New.
	(ipa_write_summaries): New.
	(ipa_write_summaries_of_cgraph_node_set): New.
	(ipa_read_summaries_1): New.
	(ipa_read_summaries): New.
	(execute_ipa_pass_list): Call cgraph_process_new_functions.
	(execute_regular_ipa_pass_list): Remove.
	(init_optimization_passes): Schedule
	pass_rebuild_cgraph_edges and pass_early_inline outside
	of pass_all_early_optimizations.  Document reason.
	(pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
	pass_ipa_lto_finish_out): New pass.
	(pass_ipa_summary_passes): Start and stop timers if the pass has them.
	(execute_all_ipa_transforms): New.
	(execute_one_pass): Don't call execute_one_ipa_transform_pass.
	(dump_properties, debug_properties): New.
	* tree-optimize.c (gate_all_early_local_passes): Return
	false if we are in lto1.
	(tree_rest_of_compilation): Call execute_all_ipa_transforms.
	* tree-pass.h (execute_all_ipa_transforms): Declare.
	(pass_ipa_function_and_variable_visibility): Declare.
	(pass_ipa_early_inline): Declare.
	(pass_ipa_lto_gimple_out): Declare.
	(pass_ipa_lto_wpa_fixup): Declare.
	(pass_ipa_lto_finish_out): Declare.
	(all_small_ipa_passes, all_regular_ipa_passes,
	all_lto_gen_passes): Declare.
	(execute_ipa_summary_passes): Declare.
	(execute_all_ipa_transforms): Declare.
	(ipa_write_summaries): Declare
	(ipa_write_summaries_of_cgraph_node_set): Declare.
	(ipa_read_summaries): Declare.

2009-10-03  Doug Kwan  <dougkwan@google.com>
	    Ollie Wild  <aaw@google.com>

	* ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.

	* collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
	(lto_mode): New variable.
	(maybe_run_lto_and_relink): Handle the -fwpa option.
	(main): Handle the -fwpa option.
	(maybe_unlink_list): New function.
	* gcc.c (link_lto_options): Replace -flto with -fwpa.
	* common.opt (flto): New flag.
	* toplev.c (flag_generate_lto): Declare.

2009-10-03  Simon Baldwin  <simonb@google.com>

	* common.opt (flto-compression-level): New flag.

	* opts.c: Include lto-opts.h.
	(handle_option): Call lto_register_user_option for each
	valid option handled.
	(decode_options): Clear registered options before the options
	handling loop.

2009-10-03  Cary Coutant  <ccoutant@google.com>

	* collect2.c (is_elf): New function.
	(scan_prog_file): Require LTO object to be in ELF format.

2009-10-03  Rafael Espindola  <espindola@google.com>

	* gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
	libgcc to the linker.

	* ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.

	* collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
	(collect_execute): Add flags argument. Pass flags to pex_run. Update
	all callers.
	* collect2.h (collect_execute): Add flags argument.
	* tlink.c (tlink_execute): Update call to collect_execute.
	* gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
	(use_linker_plugin): New.
	(use_linker_plugin_spec_function): New.
	(LINK_COMMAND_SPEC): Pass plugin options to the linker.
	(linker_plugin_file_spec): New.
	(lto_wrapper_spec): New.
	(lto_gcc_spec): New.
	(static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
	(static_spec_functions): Add use-linker-plugin.
	(process_command): Handle -use-linker-plugin.
	(main): Use lto_wrapper_spec instead of lto_wrapper. Set
	linker_plugin_file_spec and lto_gcc_spec.
	(use_linker_plugin_spec_function): New.

2009-10-03  Richard Guenther  <rguenther@suse.de>

	PR lto/41547
	PR lto/41548
	* tree.h (is_lang_specific): Include LANG_TYPE.
	* tree.c (find_decls_types_r): Manually add interesting parts
	of TYPE_FIELDS.  Walk BINFO_VIRTUALS.  Do not walk TYPE_METHODS.

	* gimple.c (type_pair_hash): Make symmetric.
	(type_pair_eq): Likewise.
	(lookup_type_pair): Increase initial hashtable size.
	(gimple_force_type_merge): Rely on type-pair symmetry.
	(visit): Remove excessive checking code.
	(iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
	(gimple_register_type): Remove getenv calls, shrink initial
	hashtable size.

	PR middle-end/41502
	* cgraphunit.c (ipa_passes): Do not remove bodies of extern
	inline functions if not generating lto output.

	PR lto/41379
	* toplev.c (finalize): In WPA mode remove the asm file.

2009-10-03  Doug Kwan  <dougkwan@google.com>

	* ipa-inline.c (cgraph_mark_inline): Check
	edge->call_stmt_cannot_inline_p instead of calling
	gimple_call_cannot_inline_p.
	(cgraph_decide_inlining): Do nothing in WPA and LTRANS.
	(cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
	(inline_generate_summary): Do nothing in LTRANS.
	* cgraph.c (initialize_inline_failed): Make sure e->call_stmt
	exists before calling gimple_call_cannot_inline_p.
	(cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
	(cgraph_clone_edge): Add argument STMT_UID.  Modify all callers.
	Update new_edge->lto_stmt_uid.
	* cgraphbuild.c (reset_inline_failed): New.

	* common.opt (fwpa): New flag.
	(fltrans): New option.
	* gcc.c (gcc_lto_option_t): New type.
	(current_lto_option): New variable.
	(lto_single_spec_function): Remove and is replaced by ..
	(lto_option_spec_function): New function.
	(LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
	passing the -flto flag.
	(cc1_options): Separate non-LTO related parts into ..
	(cc1_non_lto_options): Non-LTO related options shared by all FEs.
	(lto1_options): New spec for lto FE.
	(link_lto_options): New spec for handling LTO flags in linker.
	(invoke_lto_single): Re-format to fit in 80 column.  Replace
	lto-single with lto-option.
	(static_specs): Add cc1_non_lto_options, lto1_options and
	link_lto_options.
	(static_spec_function): Replace lto-single with lto-option.
	(process_command): Handle -flto, -fwpa and -fltran by setting
	current_lto_option and not passing it to subprocess unconditionally.

2009-10-03  Bill Maddox  <maddox@google.com>

	Add `gcc' driver support for link-time code generation (LTO).

	* collect2.c (enum pass): Add new literal PASS_LTOINFO.
	(lto_flag, lto_objects, lto_o_file): New variables.
	(struct lto_object, struct lto_object_list): New structures.
	(collect_exit, handler): Remove LTO temporary output file on exit.
	(add_lto_object): New function.
	(maybe_run_lto_and_relink): New function. Perform link time code
	generation and relinking for object files containing LTO information.
	(main): Invoke maybe_run_lto_and_relink().
	(dump_argv): New function.  For debugging, currently disabled.
	(scan_prog_file): Add LTO information pass.
	* gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
	collect2.
	* toplev.c (compile_file): Emit assembler directive to create
	the `gnu_lto_v1' marker symbol when compiling with `-flto'.

2009-10-03  Diego Novillo  <dnovillo@google.com>

	* c.opt: Add LTO to warn_abi and warn_psabi.

	* tree.c (fld_worklist_push): Rename from PUSH.  Convert to static
	inline function.  Ignore language-specific nodes.  Update all users.
	(find_decls_types_r): Do not traverse the subtrees of
	language-specific nodes.  Do not traverse DECL_INITIAL for TYPE_DECLs.
	* tree.h (is_lang_specific): New.
	* langhooks.h (struct lang_hooks_for_decls): Remove
	may_need_assembler_name_p.  Update all users.

	* c-common.c (set_builtin_user_assembler_name): Move ...
	* builtins.c (set_builtin_user_assembler_name): ... here.
	(is_builtin_name): Add comment
	(is_builtin_fn): New.
	* except.c (output_ttype): Only call
	lookup_type_for_runtime if TYPE is not a runtime type.

	* passes.c (register_pass): Call position_pass on
	all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
	* timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
	(TV_IPA_LTO_DECL_IO): Define.
	(TV_IPA_LTO_CGRAPH_IO): Define.
	(TV_LTO): Define.
	(TV_WHOPR_WPA): Define.
	(TV_WHOPR_WPA_IO): Define.
	(TV_WHOPR_LTRANS): Define.
	(TV_WHOPR_WPA_FIXUP): Define.
	(TV_WHOPR_WPA_LTRANS_EXEC): Define.
	* tree-cfg.c (tree_node_can_be_shared): Make extern.
	* tree-flow.h (tree_node_can_be_shared): Declare.
	* tree-inline.c (tree_can_inline_p): Check that E has a
	statement associated with it.
	* tree.c (free_lang_data_in_binf): Factor out of ...
	(free_lang_data_in_type): ... here.
	Call RECORD_OR_UNION_TYPE_P.
	(need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
	set.  Call lang_hooks.decls.may_need_assembler_name_p if set.
	(free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
	(free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE.  Set
	write_symbols to NO_DEBUG.  Set debug_hooks to do_nothing_debug_hooks.
	(gate_free_lang_data): Return true if flag_generate_lto is set.
	(walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
	* c-common.h (set_builtin_user_assembler_name): Move ...
	* tree.h (set_builtin_user_assembler_name): ... here.

	* common.opt (flto-report): New flag.
	* opts.c (complain_wrong_lang): Do not complain if running lto1.
	* collect2.c (scan_prog_file): Send the error output of
	'nm' to HOST_BIT_BUCKET.

2009-10-03  Ollie Wild  <aaw@google.com>

	* langhooks-def.h (lhd_begin_section): New function declaration.
	(lhd_write_section): New function declaration.
	(lhd_end_section): New function declaration.
	(LANG_HOOKS_BEGIN_SECTION): New macro.
	(LANG_HOOKS_WRITE_SECTION_DATA): New macro.
	(LANG_HOOKS_END_SECTION): New macro.
	(LANG_HOOKS_LTO): New macro.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
	* langhooks.c (output.h): Add include.
	(saved_section): New static variable.
	(lhd_begin_section): New function.
	(lhd_write_section_data): New function.
	(lhd_end_section): New function.
	* langhooks.h (struct lang_hooks_for_lto): New structure.
	(struct lang_hooks): Add member lto.
	* Makefile.in (langhooks.o): Add dependency on output.h.

	* c-opts.c (c_common_post_options): Handle -flto and -fwhopr.

2009-10-03  Richard Guenther  <rguenther@suse.de>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Handle LTO.

2009-10-03  Simon Baldwin  <simonb@google.com>
	    Richard Guenther  <rguenther@suse.de>
	    Janis Johnson  <janis187@us.ibm.com>
	    Doug Kwan  <dougkwan@google.com>
	    Diego Novillo  <dnovillo@google.com>
	    Ramana Radhakrishnan  <ramana.r@gmail.com>
	    Ollie Wild  <aaw@google.com>

	* doc/install.texi: Add documentation for libelf and --enable-lto.
	* doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
	-flto-report, -flto-compression-level and -use-linker-plugin.
	* doc/sourcebuild.texi: Document use of zlib.  Document lto-plugin.
	Add section for LTO Testing.

2009-10-02  Cary Coutant  <ccoutant@google.com>

	Add support for comdat type sections for DWARF v4.
	Merge from dwarf4 branch.

	* dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
	(dw_die_ref): Define vector type.
	(enum dw_val_class): Add dw_val_class_data8.
	(struct dw_val_struct): Add v.val_data8.
	(comdat_type_node_ref): New type.
	(struct die_struct): Move die_symbol into a union; add new field
	die_type_node.  Change all uses.
	(comdat_type_node): New type.
	(skeleton_chain_node): New type.
	(DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
	(comdat_type_list): New variable.
	(dwarf_tag_name): Add DW_TAG_type_unit.
	(dwarf_attr_name): Add DW_AT_signature.
	(add_AT_data8): New function.
	(replace_child): New function.
	(move_all_children): New function.
	(print_signature): New function.
	(print_die): Print signature information; add dw_val_class_data8.
	(attr_checksum): Support dw_val_class_data8.
	(CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
	(CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
	(checksum_sleb128, checksum_uleb128): New functions.
	(checksum_die_context): New function.
	(loc_checksum_ordered): New function.
	(attr_checksum_ordered): New function.
	(struct checksum_attributes): New structure.
	(collect_checksum_attributes): New function.
	(die_checksum_ordered): New function.
	(generate_type_signature): New function.
	(same_dw_val_p): Add dw_val_class_data8.
	(is_symbol_die): Use new is_declaration_die function.
	(is_declaration_die): New function.
	(should_move_die_to_comdat): New function.
	(clone_die): New function.
	(clone_tree): New function.
	(clone_as_declaration): New function.
	(copy_declaration_context): New function.
	(generate_skeleton_ancestor_tree): New function.
	(generate_skeleton_bottom_up): New function.
	(generate_skeleton): New function.
	(remove_child_or_replace_with_skeleton): New function.
	(break_out_comdat_types): New function.
	(struct decl_table_entry): New type.
	(htab_decl_hash): New function.
	(htab_decl_eq): New function.
	(htab_decl_del): New function.
	(copy_ancestor_tree): New function.
	(copy_decls_walk): New function.
	(copy_decls_for_unworthy_types): New function.
	(build_abbrev_table): Don't assert on missing die_symbol when doing
	comdat type sections.
	(size_of_die): Use DW_FORM_sig8 for external references.  Add
	dw_val_class_data8.
	(unmark_dies): Don't assert for unmarked dies when doing comdat
	type sections.
	(value_format): Support DW_FORM_sig8 and dw_val_class_data8.
	(output_signature): New function.
	(output_die): Likewise.
	(output_compilation_unit_header): Mark output as DWARF version 3
	even if generating DWARF 4.
	(output_comdat_type_unit): New function.
	(output_line_info): Mark output as DWARF version 3 even if generating
	DWARF 4.
	(dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
	DWARF-4.
	(dwarf2out_end_source_file): Likewise.
	(prune_unused_types_walk_attribs): Don't follow references into
	comdat type sections.
	(prune_unused_types_mark): When generating type units, do not mark
	children of non-defining declarations of types; do mark children of
	type entries.
	(prune_unused_types): Process comdat type sections.
	(htab_ct_hash): New function.
	(htab_ct_eq): New function.
	(dwarf2out_finish): Move types to comdat sections when using DWARF-4.
	Add a pointer to the line table from type unit entries so
	DW_AT_decl_file has meaning.
	* varasm.c (default_elf_asm_named_section): Use identifier name as
	comdat key instead of lang hook.

2009-10-02  Neil Vachharajani  <nvachhar@google.com>

	* gcov-io.c (gcov_open): Open files read-only when MODE < 0.

2009-10-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SWIM248): New mode iterator.
	(divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
	divmodhi4 patterns using SWIM248 macro.
	(*divmod<mode>4): Macroize insn_and_split pattern from
	*divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
	and their corresponding splitters usign SWIM248 macro.  Split SImode
	insn to generate cltd and DImode insn to generate cqto instead of
	move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
	(*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
	(*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
	*divmodsi_noext patterns using SWIM248 macro.
	(udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
	udivmodhi4 patterns using SWIM248 macro.
	(*udivmod<mode>4): Macroize insn_and_split pattern from
	*udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
	corresponding splitters using SWIM248 macro.
	(*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
	*udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.

2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
	of zero-sized element is zero-sized regardless of its extent.

2009-10-02  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40521
	* configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
	* configure: Regenerated.
	* config.in: Regenerated.
	* dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
	!HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
	(dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
	not emitting .eh_frame, emit .cfi_sections .debug_frame
	directive.

	PR debug/41404
	PR debug/41353
	* cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
	CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
	with '\0'.
	(expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
	vars use DECL_RTL with resetting it back to NULL afterwards.
	* dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
	rtx_equal_p instead of asserting it is a SYMBOL_REF.
	(value_format): For dw_val_class_addr only use DW_FORM_addr if
	the attribute type allows it, otherwise use DW_FORM_dataN.
	(mem_loc_descriptor): Handle CONST_STRING.
	(add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
	Handle MEM with CONST_STRING address using add_AT_string.
	(rtl_for_decl_init): Return MEM with CONST_STRING address instead of
	CONST_STRING for const arrays initialized with a string literal.
	(resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
	(dwarf2out_finish): Call resolve_addr.

2009-10-02  Andreas Schwab  <schwab@linux-m68k.org>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.

2009-10-02  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
	(ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.

2009-10-01  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
	(cgraph_create_virtual_clone): Just pass redirect_callers
	around.
	* cgraph.h (cgraph_clone_node): Update prototype.
	* ipa-pure-const.c (self_recursive_p): New function.
	(propagate): Use it.
	* ipa-inline.c (cgraph_clone_inlined_nodes,
	cgraph_decide_recursive_inlining): Update.

2009-10-01  David Daney  <ddaney@caviumnetworks.com>

	* gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
	instructions for TARGET_OCTEON.

2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_override_options): Turn off
	flag_dwarf2_cfi_asm for AAPCS variants.

2009-10-01  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/12392
	* tree-sra.c (convert_callers): Do not call
	compute_inline_parameters on one caller more than once.

2009-10-01  Nick Clifton  <nickc@redhat.com>

	* config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
	an empty string if not already defined.

2009-10-01  Martin Jambor  <mjambor@suse.cz>

	PR bootstrap/41395
	* tree-sra.c (is_va_list_type): New function.
	(find_var_candidates): Call is_va_list_type.
	(find_param_candidates): Check that the type or the type pointed
	to are not va_list types.

2009-10-01  Martin Jambor  <mjambor@suse.cz>

	PR c++/41503
	* cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
	DECL_ARTIFICIAL (param_decl) is true.

2009-09-30  Gabriel Dos Reis  <gdr@cs.tamu.edu>

	* tree.h (tree_decl_common::lang_flag_8): New.
	* c-common.c (c_common_reswords): Include "constexpr" as C++0x
	keyword.
	* c-common.h (RID_CONSTEXPR): New.

2009-09-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_gimplify_va_arg_1):
	Use ref-all pointers.
	(alpha_gimplify_va_arg): Ditto.

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

	PR target/41279
	* cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
	before insn counting loop now that BB_END (bb) is counted.  Ensure
	the return value isn't zero.

2009-09-30  Nick Clifton  <nickc@redhat.com>

	* config.gcc (sh-symbianelf): Replace definition of extra_objs
	with separate definitions of c_target_objs and cxx_target_objs.
	* config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
	and symbian-base.o.
	* config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
	sh_symbian_import_export_class.
	* config/sh/sh-protos.h: Fix names of exported symbian functions.
	* config/sh/symbian.c: Delete, moving code into...
	* config/sh/symbian-base.c: ... here
	* config/sh/symbian-c.c: ... and here
	* config/sh/symbian-cxx.c: ... and here.

2009-09-30  Uros Bizjak  <ubizjak@gmail.com>

	PR target/22093
	* config/alpha/alpha.md (unaligned_storehi_be): Force operand
	of plus RTX into register.

2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/install.texi: Linguistic and markup fixes.
	(Configuration) <--disable-cpp>: Remove description.
	<--enable-maintainer-mode>: Autotools files are affected, too.
	<--with-sysroot>: Improve description.
	(Building): Bump required GNU make version.

2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc (i[34567]86-*-*): Include fma4intrin.h.
	(x86_64-*-*): Ditto.

	* config/i386/fma4intrin.h: New file, provide common x86 compiler
	intrinisics for FMA4.
	* config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
	* config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
	Add FMA4 check and fma4intrin.h.
	* config/i386/i386-c.c(ix86_target_macros_internal): Check
	ISA_FLAG for FMA4.
	* config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
	* config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
	constant for FMA4 support.
	(UNSPEC_FMA4_FMADDSUB): Ditto.
	(UNSPEC_FMA4_FMSUBADD): Ditto.
	* config/i386/i386.opt (-mfma4): New switch for FMA4 support.
	* config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
	(ix86_expand_fma4_multiple_memory): Ditto.
	* config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
	(OPTION_MASK_ISA_FMA4_UNSET): New.
	(OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
	(OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
	(ix86_handle_option): Handle -mfma4.
	(isa_opts): Handle -mfma4.
	(enum pta_flags): Add PTA_FMA4.
	(override_options): Add FMA4 support.
	(IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
	(IX86_BUILTIN_VFMADDSD): Ditto.
	(IX86_BUILTIN_VFMADDPS): Ditto.
	(IX86_BUILTIN_VFMADDPD): Ditto.
	(IX86_BUILTIN_VFMSUBSS): Ditto.
	(IX86_BUILTIN_VFMSUBSD): Ditto.
	(IX86_BUILTIN_VFMSUBPS): Ditto.
	(IX86_BUILTIN_VFMSUBPD): Ditto.
	(IX86_BUILTIN_VFMADDSUBPS): Ditto.
	(IX86_BUILTIN_VFMADDSUBPD): Ditto.
	(IX86_BUILTIN_VFMSUBADDPS): Ditto.
	(IX86_BUILTIN_VFMSUBADDPD): Ditto.
	(IX86_BUILTIN_VFNMADDSS): Ditto.
	(IX86_BUILTIN_VFNMADDSD): Ditto.
	(IX86_BUILTIN_VFNMADDPS): Ditto.
	(IX86_BUILTIN_VFNMADDPD): Ditto.
	(IX86_BUILTIN_VFNMSUBSS): Ditto.
	(IX86_BUILTIN_VFNMSUBSD): Ditto.
	(IX86_BUILTIN_VFNMSUBPS): Ditto.
	(IX86_BUILTIN_VFNMSUBPD): Ditto.
	(IX86_BUILTIN_VFMADDPS256): Ditto.
	(IX86_BUILTIN_VFMADDPD256): Ditto.
	(IX86_BUILTIN_VFMSUBPS256): Ditto.
	(IX86_BUILTIN_VFMSUBPD256): Ditto.
	(IX86_BUILTIN_VFMADDSUBPS256): Ditto.
	(IX86_BUILTIN_VFMADDSUBPD256): Ditto.
	(IX86_BUILTIN_VFMSUBADDPS256): Ditto.
	(IX86_BUILTIN_VFMSUBADDPD256): Ditto.
	(IX86_BUILTIN_VFNMADDPS256): Ditto.
	(IX86_BUILTIN_VFNMADDPD256): Ditto.
	(IX86_BUILTIN_VFNMSUBPS256): Ditto.
	(IX86_BUILTIN_VFNMSUBPD256): Ditto.
	(enum multi_arg_type): New enum for describing the various FMA4
	intrinsic argument types.
	(bdesc_multi_arg): New table for FMA4 intrinsics.
	(ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating FMA4
	intrinsics.
	(ix86_expand_builtin): Add FMA4 intrinsic support.
	(ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
	operand instructions.
	(ix86_expand_fma4_multiple_memory): New function to split the
	second memory reference from FMA4 instructions.
	* config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
	(ssemodesuffixf2s): Ditto.
	(fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
	instructions.
	(fma4_fmsub<mode>4): Ditto.
	(fma4_fnmadd<mode>4): Ditto.
	(fma4_fnmsub<mode>4): Ditto.
	(fma4_vmfmadd<mode>4): Ditto.
	(fma4_vmfmsub<mode>4): Ditto.
	(fma4_vmfnmadd<mode>4): Ditto.
	(fma4_vmfnmsub<mode>4): Ditto.
	(fma4_fmadd<mode>4256): Ditto.
	(fma4_fmsub<mode>4256): Ditto.
	(fma4_fnmadd<mode>4256): Ditto.
	(fma4_fnmsub<mode>4256): Ditto.
	(fma4_fmaddsubv8sf4): Ditto.
	(fma4_fmaddsubv4sf4): Ditto.
	(fma4_fmaddsubv4df4): Ditto.
	(fma4_fmaddsubv2df4): Ditto.
	(fma4_fmsubaddv8sf4): Ditto.
	(fma4_fmsubaddv4sf4): Ditto.
	(fma4_fmsubaddv4df4): Ditto.
	(fma4_fmsubaddv2df4): Ditto.
	(fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
	instructions for intrinsics.
	(fma4i_fmsub<mode>4): Ditto.
	(fma4i_fnmadd<mode>4): Ditto.
	(fma4i_fnmsub<mode>4): Ditto.
	(fma4i_vmfmadd<mode>4): Ditto.
	(fma4i_vmfmsub<mode>4): Ditto.
	(fma4i_vmfnmadd<mode>4): Ditto.
	(fma4i_vmfnmsub<mode>4): Ditto.
	(fma4i_fmadd<mode>4256): Ditto.
	(fma4i_fmsub<mode>4256): Ditto.
	(fma4i_fnmadd<mode>4256): Ditto.
	(fma4i_fnmsub<mode>4256): Ditto.
	(fma4i_fmaddsubv8sf4): Ditto.
	(fma4i_fmaddsubv4sf4): Ditto.
	(fma4i_fmaddsubv4df4): Ditto.
	(fma4i_fmaddsubv2df4): Ditto.
	(fma4i_fmsubaddv8sf4): Ditto.
	(fma4i_fmsubaddv4sf4): Ditto.
	(fma4i_fmsubaddv4df4): Ditto.
	(fma4i_fmsubaddv2df4): Ditto.

	* doc/invoke.texi (-mfma4): Add documentation.
	* doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.

2009-09-29  Richard Henderson  <rth@redhat.com>

	* tree-eh.c (unsplit_eh): Do not unsplit if there's already
	an edge to the new destination block.

2009-09-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/41393
	* pa.c (hppa_profile_hook): Use
	make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.

2009-09-29  Steve Ellcey  <sje@cup.hp.com>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR target/41365
	* config/ia64/predicates.md (not_postinc_destination_operand): New.
	(not_postinc_memory_operand): New.
	(not_postinc_move_operand): New.
	* config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
	(*cmovsi_internal): Ditto.

2009-09-29  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
	restrict issue_rate in first pass when scheduling for register
	pressure.

2009-09-29  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (plugin_output): New.
	(get_output_file_with_visibility): Return plugin_output for plugins.
	(main): Parse and use the -P option.
	* gty.texi: Update the command line format.

2009-09-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41438
	* dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
	functions.
	(mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
	out if !const_ok_for_output.

	PR debug/41474
	* dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
	case VAR_LOCATION>: Remove gcc_unreachable ().

2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
	(x86_64-*-*): Ditto.
	* config/i386/smmintrin.h: Move instructions in mmintrin-common.h
	back to smmintrin.h.
	* config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
	* config/i386/x86intrin.h: Remove SSE5.
	* config/i386/mmintrin-common.h: Delete file.
	* doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.

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

	* alias.c (ao_ref_from_mem): Properly deal with off decl accesses
	resulting from stack temporaries on STRICT_ALIGNMENT targets.

2009-09-29  Nick Clifton  <nickc@redhat.com>

	* function.c (current_function_name): If there is no current
	function just return "<none>".

2009-09-28  Sriraman Tallam  <tmsriram@google.com>

	* tree-pass.h (register_pass_info): New structure.
	(pass_positioning_ops): Move enum from gcc-plugin.h.
	(register_pass): New function.
	* gcc-plugin.h (plugin_pass): Delete structure.
	(pass_positioning_ops): Delete enum.
	* plugin.c (regsiter_pass): Delete function.
	(position_pass): Delete function.
	(added_pass_nodes): Delete variable.
	(prev_added_pass_nodes): Delete variable.
	(pass_list_node): Delete structure.
	* passes.c (make_pass_instance): New function.
	(next_pass_1): Change to call make_pass_instance.
	(pass_list_node): Move structure from gcc-plugin.h.
	(added_pass_nodes): Move variable from plugin.c.
	(prev_added_pass_nodes): Move variable from plugin.c.
	(position_pass): New function.
	(register_pass): New function.

2009-09-28  Easwaran Raman  <eraman@google.com>

	* ifcvt.c (noce_try_abs): Recognize pattern and call
	expand_one_cmpl_abs_nojump.
	* optabs.c (expand_one_cmpl_abs_nojump): New function.
	* optabs.h (expand_one_cmpl_abs_nojump): Declare.

2009-09-28  Ian Lance Taylor  <iant@google.com>

	PR middle-end/40500
	* c-opts.c (c_common_handle_option): Don't set
	warn_jump_misses_init for -Wall.
	* doc/invoke.texi (Warning Options): Update documentation.

2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in ($(out_object_file)): Depend on
	gt-$(basename $(notdir $(out_file))).h.

2009-09-28  Richard Henderson  <rth@redhat.com>

	* except.h (struct eh_region_d): Add use_cxa_end_cleanup.
	* except.c (gen_eh_region): Set it.
	(duplicate_eh_regions_1): Copy it.
	* tree-eh.c (lower_resx): Use it to determine which function
	to call to resume.

	* langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
	* langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
	* builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
	* tree.c (build_common_builtin_nodes): Remove parameter.  Build
	BUILT_IN_CXA_END_CLEANUP if necessary.

	* c-common.c (c_define_builtins): Update call to
	build_common_builtin_nodes.

2009-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.

2009-09-28  Michael Matz  <matz@suse.de>

	* builtins.c (interclass_mathfn_icode): New helper.
	(expand_builtin_interclass_mathfn): Use it here, and split folding
	into ...
	(fold_builtin_interclass_mathfn): ... this new folder.
	(build_call_nofold_loc): New static helper.
	(build_call_nofold): New wrapper macro for above.
	(expand_builtin_int_roundingfn): Use it instead of build_call_expr.
	(expand_builtin_pow): Ditto.
	(expand_builtin_memset_args): Ditto.
	(expand_builtin_printf): Ditto.
	(expand_builtin_fprintf): Ditto.
	(expand_builtin_sprintf): Ditto.
	(expand_builtin_memory_chk): Ditto.
	(expand_builtin_mempcpy_args): Ditto and don't call folders.
	(expand_builtin_stpcpy): Ditto.
	(expand_builtin_strcmp): Ditto.
	(expand_builtin_strncmp): Ditto.
	(expand_builtin_strcpy): Remove FNDECL and MODE arguments.
	(expand_builtin_strcpy_args): Don't call folders.
	(expand_builtin_memcmp): Ditto.
	(expand_builtin_strncpy): Ditto, and use target.
	(expand_builtin_memcpy): Ditto.
	(expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
	expand_builtin_strpbrk, expand_builtin_memmove,
	expand_builtin_memmove_args, expand_builtin_bcopy,
	expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
	expand_builtin_strspn, expand_builtin_strcspn,
	expand_builtin_fputs): Remove these.
	(expand_builtin): Don't call the above, change calls to other
	expanders that changed prototype.
	(fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
	(fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
	fold_builtin_interclass_mathfn.
	(fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
	(fold_builtin_strcat): Add folding split from expand_builtin_strcat.

	* fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
	* passes.c (init_optimization_passes): Move pass_fold_builtins
	after last phiopt pass.
	* tree-inline.c (fold_marked_statements): When folding builtins
	iterate over all instruction potentially generated.
	* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
	earlier.
	(fold_gimple_call): Use it to always fold calls (into potentially
	multiple instructions).
	* tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
	calls into zero at this time.
	* tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
	statements generated by builtin folding.

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

	* config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.

2009-09-28  Duncan Sands  <baldrick@free.fr>

	* gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
	* plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
	(register_callback): Dispatch it.
	(invoke_plugin_callbacks): Incorporate in sanity check.
	* ggc.h (ggc_register_cache_tab): Add declaration.
	* ggc-common.c (ggc_register_root_tab): Simplify.
	(const_ggc_cache_tab_t): New typedef.
	(extra_cache_vec): New vector of dynamically added cache tables.
	(ggc_register_cache_tab): New function.
	(ggc_scan_cache_tab): New function.
	(ggc_mark_roots): Simplify dynamic roots.  Handle dynamic caches.
	* doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.

2009-09-27  Richard Henderson  <rth@redhat.com>

	* tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
	which we remove __builtin_stack_restore.

2009-09-27  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
	to test for GRD_INVARIANT.
	(simple_rhs_p): Anything that's function_invariant_p is fine.

2009-09-27  Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (main): Use plunge_files instead of plugin_output.

2009-09-27  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (write_root, write_roots): Add a emit_pch argument.
	Don't print pch related info if it is false.
	(main): Don't print pch info in plugin mode.

2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
	with dw_val_class_const_double.
	(struct dw_val_struct): Replace val_long_long with val_double and
	adjust for above change.
	(output_loc_operands): Likewise.
	(add_AT_long_long): Rename into...
	(add_AT_double): ...this.
	(print_die): Replace dw_val_class_long_long with
	dw_val_class_const_double and adjust.
	(attr_checksum): Likewise.
	(same_dw_val_p): Likewise.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(output_die): Likewise.
	(loc_descriptor) <CONST_DOUBLE>: Likewise.
	(add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
	instead of add_AT_long_long.
	(add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
	value with the precision of its type.

2009-09-27  Andreas Schwab  <schwab@linux-m68k.org>

	PR c/41476
	* c-typeck.c (build_conditional_expr): Use the readonly and
	volatile flags of the operand types, not of the operands itself.

2009-09-27  Peter O'Gorman  <pogma@thewrittenword.com>

	* collect2.c (main): Look for -brtl before adding libraries.

2009-09-27  Jonathan Gray  <jsg@openbsd.org>

	* config.gcc: Update OpenBSD targets.
	* config/openbsd-stdint.h: New file.
	* config/openbsd-libpthread.h: New file.
	* config/openbsd.h: Update and break out LIB_SPEC definition.
	* config/alpha/openbsd.h: Overhaul to reflect ELF migration.
	* config/i386/openbsdelf.h: Correct types.
	* config/m68k/openbsd.h: Likewise.
	* config/mips/openbsd.h: Likewise.
	* config/vax/openbsd.h: Likewise.

2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
	(extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
	* stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
	of the length and zero.

2009-09-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
	(FLAGS_H): Add options.h $(REAL_H).
	(SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
	(TREE_VECTORIZER_H): New.
	(EBITMAP_H): Renamed from EBIMAP_H.
	(c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
	(gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
	(tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
	(tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
	(gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
	(graphite-clast-to-gimple.o, graphite-dependences.o)
	(graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
	(graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
	(tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
	(tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
	(targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
	(gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
	(ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
	(haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
	(sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
	updated and fixed as per above changes and per
	check_makefile_deps.sh output.

	PR bootstrap/40928
	* configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
	* configure: Regenerate.

2009-09-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Update minimum MPC version to 0.7.

2009-09-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Binaries): Remove reference to the binary
	distribution CD-ROM from the FSF.

2009-09-26  Michael Matz  <matz@suse.de>

	PR lto/40758
	PR middle-end/41470
	* tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
	that are mentioned in the body.

2009-09-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/41454
	* tree-ssa-dom (stmts_to_rescan): Remove variable.
	(tree_ssa_dominator_optimize): Don't allocate and free it.
	(dom_opt_leave_block): Don't iterate over it.
	(eliminate_redundant_computations): Don't return a value.
	(cprop_operand, cprop_into_stmt): Ditto.
	(optimize_stmt): Don't defer updating stmts.

2009-09-25  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
	generic_parameter_die, template_parameter_pack_die,
	gen_formal_parameter_die, gen_subprogram_die): Adjust after
	renaming DW_TAG_formal_parameter_pack and
	DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
	and DW_TAG_GNU_template_parameter_pack.

2009-09-25  Anatoly Sokolov  <aesok@post.ru>

	* config/v850/v850.h (FUNCTION_VALUE): Remove.
	* config/v850/v850.c (v850_function_value): New function.
	(TARGET_FUNCTION_VALUE): Define.

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

	* tree-vect-stmts.c (vectorizable_call): Call
	mark_symbols_for_renaming after vect_finish_stmt_generation.

	* dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
	to loc_descriptor_from_tree.
	(add_location_or_const_value_attribute): Pass 0 instead of 2
	for decl_by_reference_p decls.

2009-09-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41463
	* tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
	arrays again.

2009-09-25  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
	after `power7'.

2009-09-25  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
	form of instruction.

2009-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/41435
	* fold-const.c (const_binop): Handle complex int division.
	* tree-complex.c (expand_complex_div_straight,
	expand_complex_div_wide): Update comments.

2009-09-24  DJ Delorie  <dj@redhat.com>

	PR target/41456
	* config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
	(reg_class): Likewise.
	(REG_CLASS_NAMES): Likewise.
	* config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
	(m32c_override_options): Disable -fivopts for M32C.

2009-09-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (indexed_or_indirect_operand):
	Delete VSX load/store with update support.
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
	* config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
	(vsx_movti): Ditto.
	(VSX_U): Delete.
	(VSbit): Ditto.
	(VStype_load_update): Ditto.
	(VStype_store_update): Ditto.
	(vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
	(vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.

	* config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
	load/store with update builtins.

2009-09-24  Kai Tietz  <kai.tietz@onevision.com>

	* libgcc2.c (L_trampoline): Prototype for getpagesize
	and mprotect in WINNT case.

2009-09-24  Anatoly Sokolov  <aesok@post.ru>

	* config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
	* config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
	* config/rs6000/rs6000.c (rs6000_function_value): Make static, add
	'outgoing' argument.
	(TARGET_FUNCTION_VALUE): Define.

2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>

	* config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.

2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>

	PR bootstrap/41405
	* common.opt: Initialize dwarf_strict to -1.
	* toplev.c (process_options): Catch unset dwarf_strict
	and set to 0 for all targets not overriding.
	* config/darwin.c (darwin_override_options): Catch unset
	dwarf_strict and override to 1.

2009-09-24  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.

2009-09-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36143
	PR tree-optimization/38747
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
	create VIEW_CONVERT_EXPRs for TBAA compatible accesses.

2009-09-24  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/41457
	* dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
	return false instead of gcc_unreachable ().  For CONST return the
	value returned by recursive call instead of always returning true.
	(tree_add_const_value_attribute): Return the value returned by
	add_const_value_attribute instead of always returning true if rtl
	is non-NULL.

2009-09-23  Justin Seyster  <jrseys@gmail.com>

	* Makefile.in (PLUGIN_HEADERS): Include real.h.

2009-09-24  Jakub Jelinek  <jakub@redhat.com>

	* cgraphunit.c (cgraph_lower_function): Revert last change.
	* targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
	instead of DECL_NO_STATIC_CHAIN.
	* tree-cfg.c (verify_gimple_call): Likewise.
	* tree-nested.c (get_chain_decl, get_chain_field,
	convert_tramp_reference_op, convert_gimple_call): Likewise.
	(convert_all_function_calls): Likewise.  Always set or clear
	DECL_STATIC_CHAIN initially, for !n->outer clear it.
	(lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
	* c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
	if nested.
	* print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
	DECL_NO_STATIC_CHAIN.
	* config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
	instead of DECL_NO_STATIC_CHAIN.
	(ix86_function_regparm, find_drap_reg): Likewise.  Don't test
	decl_function_context.
	* varasm.c (initializer_constant_valid_p): Likewise.
	* tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
	(DECL_STATIC_CHAIN): ... this.
	* config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
	instead of DECL_NO_STATIC_CHAIN.

2009-09-23  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (nb_plugin_files): Make it unsigned to match
	num_gt_files. Adjust other variables to avoid warnings.
	(main): Allocate an all zero lang_bitmap before each plugin file name
	to match regular file names.

2009-09-23  Richard Henderson  <rth@redhat.com>

	* doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
	(TARGET_STATIC_CHAIN): Mention that this hook must be used for
	static chain passed in memory.
	* system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
	* targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
	STATIC_CHAIN_INCOMING.  Issue a sorry if there's no
	STATIC_CHAIN_REGNUM defined.

	* config/picochip/picochip-protos.h: s/class/klass/.
	* config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
	(picochip_static_chain): New.
	* config/picochip/picochip.h (STATIC_CHAIN): Remove.
	(STATIC_CHAIN_INCOMING): Remove.

	* config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
	(xtensa_static_chain): New.
	* config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
	(STATIC_CHAIN_INCOMING): Remove.

2009-09-23  Anatoly Sokolov  <aesok@post.ru>

	* config/pa/pa.h (FUNCTION_VALUE): Remove macro.
	* config/pa/pa-protos.h (function_value): Remove.
	* config/pa/pa.c (pa_function_value): Rename from function_value.
	Make static, add 'outgoing' argument.
	(TARGET_FUNCTION_VALUE): Define.

2009-09-23  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
	instead of cfun->machine->is_leaf.
	* config/avr/avr.h (machine_function): Remove is_leaf field.

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

	PR debug/41439
	* dwarf2out.c (address_of_int_loc_descriptor): Don't emit
	DW_OP_piece after DW_OP_stack_value, adjust size calculations
	for it, when DW_OP_stack_value and DW_OP_implicit_value has
	the same size, prefer DW_OP_stack_value.
	(loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
	loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.

2009-09-23  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41353
	* var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.

2009-09-23  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41248
	* cfgexpand.c (convert_debug_memory_address): New.
	(expand_debug_expr): Convert base address and offset to the same
	mode.  Use it to convert addresses to other modes.  Accept
	ptr_mode addresses.

2009-09-23  Dodji Seketeli <dodji@redhat.com>

	PR debug/41065
	* function.h (types_used_by_vars_hash): Declare new hash table.
	(types_used_by_vars_eq, types_used_by_var_decl_insert): Declare
	equality and hash function for the hash table.
	(types_used_by_cur_var_decl): Declare a new global chained list.
	(types_used_by_var_decl_insert): Declare new function.
	* function.c (types_used_by_vars_hash): Define the hashtable ...
	(types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as
	its equality and hash functions.
	(hash_types_used_by_vars_entry): New hash helper.
	(types_used_by_cur_var_decl): Define the global chained list.
	(used_types_insert): Update the list of types used by the global
	variable being parsed.
	(types_used_by_var_decl_insert): Define new function.
	* c-common.h (record_types_used_by_current_var_decl): Declare ...
	* c-common.c (record_types_used_by_current_var_decl): ... new
	function.
	* c-decl.c (finish_decl): Record the types used by the global
	variable declaration we've just parsed.
	* dwarf2out.c (premark_used_types): Insert a new line between
	comment and function.
	(premark_used_types_helper): Fix comment.
	(premark_types_used_by_global_vars_helper,
	premark_types_used_by_global_vars): New functions.
	(prune_unused_types): Do not prune types used by global variables.

2009-09-23  Richard Guenther  <rguenther@suse.de>

	* alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
	produced for bigendian targets with promoted subregs.

2009-09-23  Richard Guenther  <rguenther@suse.de>

	* value-prof.c (gimple_ic): Purge old EH edges only after building
	the new ones.

2009-09-23  Nick Clifton  <nickc@redhat.com>

	* config/arc/arc.c (arc_trampoline_init): Fix typo.

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

	PR bootstrap/41405
	* doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.

	PR bootstrap/41436
	* cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
	on non-nested functions.

2009-09-23  Jakub Jelinek  <jakub@redhat.com>
	    Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c (loc_list_plus_const): Only define if
	DWARF2_DEBUGGING_INFO.
	(address_of_int_loc_descriptor): Likewise.

	PR debug/41411
	* dwarf2out.c (mem_loc_descriptor): Handle HIGH.

2009-09-23  Uros Bizjak  <ubizjak@gmail.com>

	PR c/39779
	* c-typeck.c (build_binary_op) <short_shift>: Check that integer
	constant is more than zero.

2009-09-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/40473
	* config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
	call final to emit non-scheduled prologue, instead insert at entry.

2009-09-22  Loren J. Rittle  <ljrittle@acm.org>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* doc/install.texi (*-*-freebsd*): Add proper format codes.

2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (is_file_equal): New function.
	(close_output_files): Use is_file_equal. Free of->buf.

2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (write_types, write_local): Add the output_header
	argument. Update all callers.

2009-09-22  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2out.c (template_parameter_pack_die,
	gen_formal_parameter_pack_die ): New functions.
	(make_ith_pack_parameter_name): Remove this function.
	(dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
	DW_TAG_formal_parameter_pack.
	(gen_generic_params_dies): Represent each template parameter pack
	by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
	represented by usual DW_TAG_template_*_parameter DIEs that are
	children of the DW_TAG_template_parameter_pack element DIE.
	(generic_parameter_die): This doesn't deal with parameter pack
	names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
	of parameter pack DIEs.
	(gen_formal_parameter_die): Add a flag to not emit DW_AT_name
	in certain cases, e.g. for pack elements.
	(gen_formal_types_die, gen_decl_die): Adjust usage of
	gen_formal_parameter_die.
	(gen_subprogram_die): Represent each function parameter pack by a
	DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
	represented by usual DW_TAG_formal_parameter DIEs that are children
	of the DW_TAG_formal_parameter_pack DIE. Remove references to
	____builtin_va_alist decls as no part of the compiler uses those
	anymore.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_parm_expanded_from_pack_p, get_generic_function_decl
	and function_parameter_pack_p hooks.  Fix comment for
	get_innermost_generic_parms hook.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
	LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
	macros and use them to initialize lang_hook.

2009-09-22  Richard Henderson  <rth@redhat.com>

	* system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
	(TRAMPOLINE_ADJUST_ADDRESS): Poison.
	* target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
	on TRAMPOLINE_TEMPLATE.
	(TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
	TRAMPOLINE_ADJUST_ADDRESS.
	* targhooks.c (default_asm_trampoline_template): Remove.
	(default_trampoline_adjust_address): Remove.
	(default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
	* targhooks.h: Update decls.

2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
	* config/i386/cygwin.h (LIBGCJ_SONAME): Define.
	* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.

2009-09-22  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41295
	* reload1.c (reload): Reset debug insns with pseudos without
	equivalences.

2009-09-22  Janis Johnson  <janis187@us.ibm.com>

	* config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
	unconditional true for decimal float modes.
	* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
	* config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.

2009-09-22  Loren J. Rittle  <ljrittle@acm.org>

	* unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
	Enable a new case for __FreeBSD__ >= 7.
	* crtstuff.c:  Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
	* config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
	* config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
	and USE_LD_AS_NEEDED.

	* doc/install.texi (*-*-freebsd*): Update target information.

2009-09-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41395
	* tree-dfa.c (get_ref_base_and_extent): Handle trailing
	arrays really properly.

2009-09-22  Richard Henderson  <rth@redhat.com>

	PR target/41246
	* target.h (struct gcc_target): Add asm_out.trampoline_template,
	calls.static_chain, calls.trampoline_init,
	calls.trampoline_adjust_address.
	* target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
	(TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
	* builtins.c (expand_builtin_setjmp_receiver): Use
	targetm.calls.static_chain; only clobber registers.
	(expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
	set up memory attributes properly for the trampoline block.
	(expand_builtin_adjust_trampoline): Use
	targetm.calls.trampoline_adjust_address.
	* calls.c (prepare_call_address): Add fndecl argument.  Use
	targetm.calls.static_chain.
	* df-scan.c (df_need_static_chain_reg): Remove.
	(df_get_entry_block_def_set): Use targetm.calls.static_chain;
	consolodate static chain handling.
	* doc/tm.texi: Document new hooks.
	* emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
	(init_emit_regs): Don't initialize them.
	* expr.h (prepare_call_address): Update decl.
	* final.c (profile_function): Use targetm.calls.static_chain.
	* function.c (expand_function_start): Likewise.
	* rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
	* stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
	only clobber registers.
	* targhooks.c (default_static_chain): New.
	(default_asm_trampoline_template, default_trampoline_init): New.
	(default_trampoline_adjust_address): New.
	* targhooks.h: Declare them.
	* varasm.c (assemble_trampoline_template): Use
	targetm.asm_out.trampoline_template.  Make the memory block const
	and set its size.

	* config/alpha/alpha.c (alpha_trampoline_init): Rename from
	alpha_initialize_trampoline.  Make static.  Merge VMS parameter
	differences into the TARGET_ABI_OPEN_VMS code block.
	(TARGET_TRAMPOLINE_INIT): New.
	* config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
	(TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
	* config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
	(INITIALIZE_TRAMPOLINE): Remove.

	* config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
	(TRAMPOLINE_TEMPLATE): Merge with ...
	(INITIALIZE_TRAMPOLINE): ... this and move ...
	* config/arc/arc.c (arc_trampoline_init): ... here.
	(TARGET_TRAMPOLINE_INIT): New.

	* config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
	(arm_asm_trampoline_template): New.
	(arm_trampoline_init, arm_trampoline_adjust_address): New.
	* config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
	THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
	code to arm_asm_trampoline_template.
	(TRAMPOLINE_ADJUST_ADDRESS): Move code to
	arm_trampoline_adjust_address.
	(INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
	adjust for target hook parameters.

	* config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
	Remove.

	* config/bfin/bfin-protos.h (initialize_trampoline): Remove.
	* config/bfin/bfin.c (bfin_asm_trampoline_template): New.
	(bfin_trampoline_init): Rename from initialize_trampoline;
	make static; update for target hook parameters.
	(TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
	* config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
	bfin_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Remove.

	* config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
	TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
	cris_trampoline_init): New.
	* config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
	cris_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
	adjust for target hook parameters.

	* config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
	TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
	fr30_trampoline_init): New.
	* config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
	fr30_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
	adjust for target hook parameters.

	* config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
	(frv_trampoline_init): Rename from frv_initialize_trampoline;
	make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
	* config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/frv/frv-protos.h (frv_initialize_trampoline): Remove.

	* config/h8300/h8300.c (h8300_trampoline_init): New.
	(TARGET_TRAMPOLINE_INIT): New.
	* config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
	to h8300_trampoline_init and adjust for hook parameters.

	* config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
	* config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
	(ia64_trampoline_init): Rename from ia64_initialize_trampoline;
	make static; adjust for hook parameters.
	* config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
	* config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
	iq2000_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
	(TRAMPOLINE_CODE_SIZE): New.
	(TRAMPOLINE_SIZE): Use it.
	(TRAMPOLINE_ALIGNMENT): Follow Pmode.

	* config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
	* config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
	(m32c_trampoline_init): Rename from m32c_initialize_trampoline;
	adjust for hook parameters.
	* config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
	(m32r_trampoline_init): New.
	* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
	m32r_trampoline_init.

	* config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
	(m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
	make static; update for hook parameters.
	* config/m68hc11/m68hc11-protos.h: Update.
	* config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(mcore_function_value): Fix typo.
	(mcore_asm_trampoline_template, mcore_trampoline_init): New.
	* config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
	to mcore_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.

	* config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
	(mep_trampoline_init): Rename from mep_init_trampoline; make static;
	update for hook parameters.
	* config/mep/mep-protos.h (mep_init_trampoline): Remove.

	* config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
	mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
	mips_trampoline_init): New.
	* config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
	mips_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
	update for hook parameters.

	* gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(mmix_trampoline_size): Remove.
	(mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
	make static.  Remove out-of-date tetra vs octa comment.
	(mmix_trampoline_init): Rename from mmix_initialize_trampoline;
	make static; update for hook parameters.
	* config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
	(INITIALIZE_TRAMPOLINE): Remove.
	(TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
	(TRAMPOLINE_ALIGNMENT): New.
	* gcc/config/mmix/mmix-protos.h: Update.

	* config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
	mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
	mn10300_trampoline_init): New.
	* config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
	mn10300_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.

	* config/moxie/moxie.c (moxie_static_chain,
	moxie_asm_trampoline_template, moxie_trampoline_init,
	TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
	TARGET_TRAMPOLINE_INIT): New.
	* config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
	moxie_trampoline_init.
	(TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
	(STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.

	* gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
	pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
	pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
	pa_trampoline_adjust_address): New.
	* config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
	pa_asm_trampoline_template.
	(TRAMPOLINE_ALIGNMENT): New.
	(TRAMPOLINE_CODE_SIZE): Move to pa.c.
	(INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
	adjust for hook parameters.
	(TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.

	* config/pdp11/pdp11.c (pdp11_trampoline_init): New.
	(TARGET_TRAMPOLINE_INIT): New.
	* config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
	(INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.

	* config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
	* config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
	(rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
	make static; adjust parameters for the hook.
	* config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/s390/s390.c (s390_asm_trampoline_template): Rename from
	s390_trampoline_template; make static.
	(s390_trampoline_init): Rename from s390_initialize_trampoline;
	make static; adjust for target hook.
	(TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
	* config/s390/s390-protos.h: Remove trampoline decls.
	* config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
	(TRAMPOLINE_TEMPLATE): Remove.
	(TRAMPOLINE_ALIGNMENT): New.

	* config/score/score-protos.h (score_initialize_trampoline): Remove.
	* config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(score_asm_trampoline_template): New.
	(score_trampoline_init): Rename from score_initialize_trampoline;
	make static; adjust for hook parameters.
	* config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
	score[37]_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Remove.
	* config/score/score3.c (score3_asm_trampoline_template): New.
	(score3_trampoline_init): Rename from score3_initialize_trampoline;
	adjust for target hook.
	* config/score/score7.c (score7_asm_trampoline_template): New.
	(score7_trampoline_init): Rename from score7_initialize_trampoline;
	adjust for target hook.
	* config/score/score3.h, config/score/score7.h: Update.

	* config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
	* config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
	(TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
	(sh_trampoline_init): Rename from sh_initialize_trampoline;
	make static; adjust for target hook parameters.
	(sh_trampoline_adjust_address): New.
	* config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
	(TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.

	* config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
	(sparc32_initialize_trampoline): Rename from
	sparc_initialize_trampoline; make static; replace tramp parameter
	with m_tramp and update memory accesses.
	(sparc64_initialize_trampoline): Similarly.
	(sparc_trampoline_init): New.
	* config/sparc/sparc-protos.h: Remove trampoline decls.
	* config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.

	* config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
	(array_to_constant): Make ARR parameter const.
	(spu_trampoline_init): Rename from spu_initialize_trampoline;
	make static; update for hook parameters.
	* config/spu/spu-protos.h: Update decls.
	* config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
	from xstormy16_initialize_trampoline; make static; update for
	hook parameters.
	(TARGET_TRAMPOLINE_INIT): New.
	* config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.

	* config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(v850_can_eliminate): Make static.
	(v850_asm_trampoline_template, v850_trampoline_init): New.
	* config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
	v850_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
	and adjust for target hook parameters.

	* config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(vax_asm_trampoline_template, vax_trampoline_init): New.
	* config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
	vax_asm_trampoline_template.
	(INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.

	* config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
	(TARGET_TRAMPOLINE_INIT): New.
	(xtensa_asm_trampoline_template): Rename from
	xtensa_trampoline_template; make static.
	(xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
	make static; update for hook parameters.
	* config/xtensa/xtensa-protos.h: Remove trampoline decls.
	* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
	(INITIALIZE_TRAMPOLINE): Remove.

	* config/i386/i386.c (ix86_function_regparm): Do not issue an
	error for nested functions with regparm=3.
	(ix86_compute_frame_layout): Adjust frame pointer offset for
	ix86_static_chain_on_stack.
	(ix86_expand_prologue): Handle ix86_static_chain_on_stack.
	(ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
	don't reset to UNITS_PER_WORD.
	(ix86_emit_leave): Adjust ix86_cfa_state.
	(ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
	(ix86_static_chain): New.
	(ix86_trampoline_init): Rename from x86_initialize_trampoline;
	make static; update for target hook parameters; use ix86_static_chain.
	(TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
	* config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
	(INITIALIZE_TRAMPOLINE): Remove.
	(TRAMPOLINE_SIZE): Use 24 for 64-bit.
	(struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
	to the end.  Add static_chain_on_stack.
	(ix86_static_chain_on_stack): New.

	* config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
	(m68k_output_mi_thunk): Don't use static_chain_rtx.
	(m68k_trampoline_init): New.
	* config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
	m68k_trampoline_init and adjust for hook parameters.
	* config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
	(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.

2009-09-22  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
	for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.

	* reload1.c (reload): Call wrap_constant when substituting
	reg for equiv inside of DEBUG_INSNs.

	PR bootstrap/41405
	* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
	add_call_src_coords_attributes, add_high_low_attributes,
	gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
	gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
	dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
	when -gdwarf-2 -gstrict-dwarf.
	(loc_list_from_tree): Likewise.  Avoid using DWARF4 additions when
	-gdwarf-[23] -gstrict-dwarf.
	(address_of_int_loc_descriptor, loc_descriptor,
	loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
	DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
	* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.

2009-09-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41428
	* tree-ssa-ccp.c (ccp_fold_stmt): New function.
	(ccp_finalize): Pass it to substitute_and_fold.

2009-09-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
	(substitute_and_fold): Adjust prototype.
	* tree-vrp.c (vrp_evaluate_conditional): Make static.
	(simplify_stmt_using_ranges): Likewise.
	(fold_predicate_in): Move here from tree-ssa-propagate.c.
	(vrp_fold_stmt): New function.
	(vrp_finalize): Pass it to substitute_and_fold.
	* tree-flow.h (vrp_evaluate_conditional): Remove.
	(simplify_stmt_using_ranges): Likewise.
	* tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
	* tree-ssa-copy.c (fini_copy_prop): Likewise.
	* tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
	member.
	(fold_predicate_in): Move to tree-vrp.c.
	(substitute_and_fold): Use the callback instead of calling into
	tree-vrp.c functions directly.

2009-09-22  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
	comparison warning on rs6000.

	PR middle-end/41429
	* tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
	GIMPLE_EH_MUST_NOT_THROW cleanup.
	(verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.

2009-09-22  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR middle-end/41260
	* gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
	* gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
	LIB_SPEC for darwin10 and later since it always uses the unwinder in
	libSystem which is derived from the gcc 4.2.1 unwinder.

2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR middle-end/41357
	* varasm.c (default_encode_section_info): Copy TLS model into
	sym_ref flags regardless of backend support for TLS, for all
	model types except TLS_MODEL_EMULATED.

2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR bootstrap/41404
	* dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
	we can handle it correctly.

2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (os2): Remove section.

2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/standards.texi (Objective-C): Adjust two URLs.

2009-09-21  Giuseppe Scrivano <gscrivano@gnu.org>

	* tree-tailcall.c (process_assignment): Don't check if a
	multiplication or an addition are already present.
	(find_tail_calls): Combine multiple additions and multiplications.
	(adjust_accumulator_values): Emit accumulators.

2009-09-21  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
	xmm register restore.

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

	* dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
	(dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
	restore at the end.

2009-09-21  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (layout_type): Remove obsolete code.

2009-09-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/41395
	* opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.

2009-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/30789
	* builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
	(do_mpc_ckconv): Accept FORCE_CONVERT parameter.
	(fold_builtin_2, do_mpc_arg1): Update accordingly.
	* fold-const.c (const_binop): Likewise.
	* real.h (do_mpc_arg2): Update prototype.

2009-09-20  Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c (add_const_value_attribute): Return true if successful.
	(add_location_or_const_value_attribute): Rewrite using
	loc_list_from_tree.
	(tree_add_const_value_attribute): Return true if successful.
	(tree_add_const_value_attribute_for_decl): Likewise.

	* dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
	(loc_descriptor): ... here;
	(loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
	(cst_pool_loc_descr): Break out from ...; do not reffer constant
	pool items that was not marked for output.
	(loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
	(loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
	(loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
	handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
	IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
	CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
	DW_OP_stack_value to get address of items that are not available
	as addresses.
	(dw_loc_list): Handle single element lists correctly.

2009-09-20  Kai Tietz  <kai.tietz@onevision.com>
	    Pascal Obry  <obry@adacore.com>

	* unwind-dw2-fde.c (classify_object_over_fdes):
	Cast the constant 1 to _Unwind_Ptr.
	(add_fdes): Likewise.
	(linear_search_fdes): Likewise.

2009-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (set_sizetype): Avoid useless type copy.

2009-09-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* configure.ac (gcc_cv_ld_mips_personality_relaxation): New
	feature check.
	(HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
	* configure, config.in: Regenerate.
	* dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
	DW_EH_PE_absptr.
	* config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.  Use MIPS_EH_INDIRECT
	for global data if the output could be used in a shared library.
	* config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
	to 0 if TARGET_WRITABLE_EH_FRAME.

2009-09-20  Paolo Bonzini <bonzini@gnu.org>

	PR rtl-optimization/39886
	* combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
	just when insn is equal to BB_END (bb).

2009-09-19  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.opt (mrelax-pic-calls): New option.
	* config/mips/mips.c (mips_strip_unspec_address): Move it up in
	the file.
	(mips_unspec_call): Change "unspec_call" expander into this.
	(mips_strip_unspec_call): New function.
	(mips_got_load): Call mips_unspec_call instead of
	gen_unspec_call<mode>.
	(mips16_build_call_stub): Fix comment for fp_code.  Adjust call to
	MIPS_CALL.
	(mips_cfg_in_reorg): New function.
	(mips16_lay_out_constants): Use it to decide whether to call
	CFG-aware insn splitting.
	(r10k_insert_cache_barriers): Move CFG set-up code from here to
	mips_reorg.  Move DF set-up code from here ...
	(mips_df_reorg): ... to here.  Call r10k_insert_cache_barriers
	from here.
	(mips_reorg): Call mips_df_reorg instead of
	r10k_insert_cache_barriers.  Move CFG set-up code here from
	r10k_insert_cache_barriers.
	(mips_call_expr_from_insn): New function.
	(mips_pic_call_symbol_from_set): Likewise.
	(mips_find_pic_call_symbol): Likewise.
	(mips_annotate_pic_call_expr): Likewise.
	(mips_get_pic_call_symbol): Likewise.
	(mips_annotate_pic_calls): Likewise.
	(mips_override_options): Disable -mrelax-pic-calls unless PIC
	calls are used.
	(mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
	* config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
	* config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
	directive.
	* config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
	(unspec_call<mode>): Remove it.
	(sibcall_internal, sibcall_value_internal,
	sibcall_value_multiple_internal, call_internal, call_split,
	call_value_internal, call_value_split,
	call_value_multiple_internal, call_value_multiple_split): Pass
	SIZE_OPNO to MIPS_CALL.
	(call_internal_direct, call_direct_split,
	call_value_internal_direct, call_value_direct_split): Pass -1 as
	SIZE_OPNO to MIPS_CALL.
	* configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
	* configure: Regenerate.
	* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
	and -mno-relax-pic-calls.
	(MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.

2009-09-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/35619
	* Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
	in the directory this rule is called from, rather than the
	toplevel 'gcc' directory, to fix in-tree build.

2009-09-19  Chris Demetriou  <cgd@google.com>

	PR preprocessor/28435:
	* c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
	to cpplib that the preprocessor output is needed.

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

	* config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
	*restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
	*return_and_restore_fpregs_<mode>,
	*return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.

	PR bootstrap/41397
	* dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
	instead of assuming it has always a REG inside of it.

2009-09-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/freebsd.h: Update comment on types.
	(WINT_TYPE): Define.

2009-09-18  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -fno-deduce-init-list.

2009-09-18  Neil Vachharajani  <nvachhar@google.com>

	* value-prof.c (interesting_stringop_to_profile_p): Added output
	argument to indicate which parameter is the size parameter.
	* value-prof.c (gimple_stringop_fixed_value): Use
	INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
	* value-prof.c (gimple_stringops_transform): Update call sites to
	INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.

2009-09-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38288
	From David Binderman <dcb314@hotmail.com>:
	* gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
	local variable f.  Remove stale comments.
	(ix86_compute_frame_layout): Remove useless local variable total_size.
	Remove #if 0'd code.
	(legitimate_address_p): Remove useless local variables
	reason_rtx and reason.
	(ix86_split_copysign_const): Remove useless local variable op1.
	(scale_counter): Remove useless local variable piece_size_mask.

2009-09-18  Jakub Jelinek  <jakub@redhat.com>

	* stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
	output decl.

2009-09-17  Michael Haubenwallner  <michael.haubenwallner@salomon.at>

	PR target/40913
	* config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.

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

	* c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
	TYPE_STUB_DECL.

2009-09-17  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
	DW_OP_implicit_value even without dwarf_version 4.

2009-09-17  Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c: Include tree-pass.h and gimple.h.
	(loc_list_plus_const): New function.
	(loc_descriptor_from_tree_1): Rename to ...
	(loc_descriptor_from_tree): ... remove original.
	(loc_list_from_tree): New function.
	(add_AT_location_description): Accept location list.
	(tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
	(concatn_mem_loc_descriptor): Remove.
	(mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
	returning NULL.
	(secname_for_decl): Move up.
	(hidden_reference_p): New function; break out from ...
	(loc_by_refernece): ... here; move up.
	(dw_loc_list): New function.
	(single_element_loc_list): New function.
	(single_element_loc_list_p): New function.
	(add_loc_descr_to_each): New function.
	(add_loc_list): New function.
	(loc_descr_from_tree): Make wraper of loc_list_from_tree.
	(loc_list_from_tree): Reroganized from loc_descr_from_tree;
	add diagnostics why expansion failed.
	(add_location_or_const_value_attribute): Support location lists.
	(add_bound_info): Likewise.
	(descr_info_loc): Update call of loc_descriptor_from_tree.
	(gen_variable_die): Work on location lists.
	* final.c (pass_final): Add dump file.
	* Makefile.in (dwarf2out.o): Add new dependencies.

2009-09-17  Janis Johnson  <janis187@us.ibm.com>

	PR c/41049
	* real.c decimal_from_integer, decimal_integer_string): New.
	(real_from_integer): Use them as special case for decimal float.
	* config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
	(_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
	Do not append zero after the decimal point in string to convert.

2009-09-17  Alexander Monakov  <amonakov@ispras.ru>

	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
	for ARRAY_REFs.  Use array_ref_{low,up}_bound to determine bounds.

2009-09-17  Martin Jambor  <mjambor@suse.cz>

	* common.opt (fipa-sra): New switch.
	* opts.c (decode_options): Turn flag_ipa_sra on for opt2.
	* timevar.def (TV_IPA_SRA): New timevar.
	* params.def (ipa-sra-ptr-growth-factor): New parameter.
	* doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
	* tree-sra.c: Include cgraph.c.
	(enum sra_mode): Added SRA_MODE_EARLY_IPA.
	(struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
	and grp_not_necessarilly_dereferenced.
	(func_param_count): New variable.
	(encountered_apply_args): New variable.
	(bb_dereferences): New variable.
	(final_bbs): New variable.
	(no_accesses_representant): New variable.
	(no_accesses_p): New function.
	(dump_access): Dump the new fields.
	(sra_initialize): Set encountered_apply_args to false.
	(get_ssa_base_param): New function.
	(mark_parm_dereference): New function.
	(create_access): Caring for INIDRECT_REFs and different handling of
	varialble length accesses in early IPA SRA.  Store the stmt - a new
	parameter - to the new access.
	(build_access_from_expr_1): New parameter stmt, passed to
	create_access.  Handle INDIRECT_REFs.
	(build_access_from_expr): Pass the current statement to
	build_access_from_expr_1.
	(disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
	passes.
	(build_accesses_from_assign): Pass the current statement to
	build_access_from_expr_1.  Do not create assign links in IPA-SRA.
	(scan_function): Call handle_ssa_defs on phi nodes.  Set bits in
	final_bbs when necessary.  Check for calls to __builtin_apply_args.
	Fixup EH info if anythng was changed.
	(is_unused_scalar_param): New function.
	(ptr_parm_has_direct_uses): New function.
	(find_param_candidates): New function.
	(mark_maybe_modified): New function.
	(analyze_modified_params): New function.
	(propagate_dereference_distances): New function.
	(dump_dereferences_table): New function.
	(analyze_caller_dereference_legality): New function.
	(unmodified_by_ref_scalar_representative): New function.
	(splice_param_accesses): New function.
	(decide_one_param_reduction): New function.
	(enum ipa_splicing_result): New type.
	(splice_all_param_accesses): New function.
	(get_param_index): New function.
	(turn_representatives_into_adjustments): New function.
	(analyze_all_param_acesses): New function.
	(get_replaced_param_substitute): New function.
	(get_adjustment_for_base): New function.
	(replace_removed_params_ssa_names): New function.
	(sra_ipa_reset_debug_stmts): New function.
	(sra_ipa_modify_expr): New function.
	(sra_ipa_modify_assign): New function.
	(convert_callers): New function.
	(modify_function): New function.
	(ipa_sra_preliminary_function_checks): New function.
	(ipa_early_sra): New function.
	(ipa_early_sra_gate): New function.
	(pass_early_ipa_sra): New variable.
	* Makefile.in (tree-sra.o): Add cgraph.h to dependencies.

2009-09-17  Michael Matz  <matz@suse.de>

	PR middle-end/41347
	* tree.c (build_type_attribute_qual_variant): Export.
	* tree.h (build_type_attribute_qual_variant): Declare.
	* tree-inline.c (remap_type_1): Use it to build variants with
	the original qualifiers and attributes.

2009-09-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* cfglayout.c (fixup_reorder_chain): Accept conditional jumps
	without a fallthrough edge.

2009-09-16  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
	chip and ignore the "fast_interrupt" attribute if so.

2009-09-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/41360
	* cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
	barrier fix.

2009-09-16  Richard Henderson  <rth@redhat.com>

	PR target/41246
	* tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
	is set only if DECL_NO_STATIC_CHAIN is unset.
	* tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
	(FOR_EACH_NEST_INFO): New.
	(walk_all_functions): Use it.
	(finalize_nesting_tree): Likewise.
	(unnest_nesting_tree): Likewise.
	(free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
	(get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
	(convert_gimple_call): Early out if gimple_call_chain already set.
	(convert_all_function_calls): Iterate until no new functions
	require a static chain.
	(finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
	when building a trampoline.  Use dump_function_to_file instead
	of dump_function.
	(lower_nested_functions): Open dump_file.  Validate that decls
	that have DECL_NO_STATIC_CHAIN from the front end don't have that
	bit reset by this pass.

2009-09-16  Michael Matz  <matz@suse.de>

	PR fortran/41212
	* tree.h (struct tree_decl_common): Add decl_restricted_flag,
	shorten decl_common_unused.
	(DECL_RESTRICTED_P): New accessor.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
	to disambiguate marked decls and restrict pointers.

2009-09-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/41360
	* cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.

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

	* integrate.c (set_block_abstract_flags): Call
	set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.

2009-09-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34011
	* tree-flow-inline.h (may_be_aliased): Compute readonly variables
	as non-aliased.

2009-09-16  DJ Delorie  <dj@redhat.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
	(sh_expand_prologue): Update calls to output_stack_adjust.
	(sh_expand_epilogue): Likewise.

2009-09-15  Adam Nemet  <anemet@caviumnetworks.com>

	PR bootstrap/41349
	* reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
	trying to limit the extent of searches in the insn stream.

2009-09-15  Nathan Froyd  <froydnj@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/41175
	PR target/40677
	* config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
	problem.
	(SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
	SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
	(rs6000_savres_strategy): Always save FP registers inline if the
	target doesn't support hardware double-precision.  Set the above
	bits in return value when needed.
	(rs6000_savres_routine_sym): Fix computation for cache selector.
	Mark the generated symbol as a function.  Rename exitp argument to
	lr.  Move code for determining the name of the symbol...
	(rs6000_savres_routine_name): ...here.  New function.  Add cases for
	getting the names right on AIX and 64-bit Linux.
	(savres_routine_name): New variable.
	(rs6000_make_savres_rtx): Rename exitp argument to lr.  Don't assert
	lr isn't set when savep.  Use r12 resp. r1 instead of r11 depending
	on what the target routine uses as a base register.  If savep && lr
	describe saving of r0 into memory slot.
	(rs6000_emit_prologue): Correct use of call_used_regs.  Fix out of
	line calls for AIX ABI.
	(rs6000_output_function_prologue): Use rs6000_savres_routine_name to
	determine FP save/restore functions.
	(rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
	frame_reg_rtx != sp_reg_rtx.  Use gen_add3_insn instead of
	gen_addsi3.
	(rs6000_emit_epilogue): Adjust computation of restore_lr.
	Duplicate restoration of LR and execute the appropriate one
	depending on whether GPRs are being restored inline.  Set r11 from
	offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
	r11, adjust sp_offset.  Use gen_add3_insn instead of gen_addsi3.
	Fix out of line calls for AIX ABI.
	* config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
	New insn.
	* config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
	register 11.
	(*restore_gpregs_spe): Likewise.
	(*return_and_restore_gpregs_spe): Likewise.
	* config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
	Define to empty string unconditionally.
	* config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
	Define to empty string unconditionally.
	(GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
	!TARGET_64BIT.

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

	* doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
	* params.def (inline-insns-auto): Likewise.

2009-09-15  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline.c (estimate_function_body_sizes): Dump info about
	individual statements only at TDF_DETAILS dump level.  Format
	source for 80 characters per line.

2009-09-15  Christian Bruel  <christian.bruel@st.com>

	* regrename.c (do_replace): Update REG_DEAD notes.

2009-09-15  Revital Eres  <eres@il.ibm.com>

	* doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
	* targhooks.c (default_builtin_support_vector_misalignment):
	New builtin function.
	* targhooks.h (default_builtin_support_vector_misalignment):
	Declare.
	* target.h (builtin_support_vector_misalignment):
	New field in struct gcc_target.
	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
	new builtin function.
	* target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
	Define.
	* config/rs6000/rs6000.c
	(rs6000_builtin_support_vector_misalignment): New function.
	(TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.

2009-09-15  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P
	instead of INSN_P.
	(bfin_optimize_loop): Likewise.
	(bfin_gen_bundles): Likewise.
	(workaround_speculation): Likewise.
	(find_load): Return NULL_RTX for debug_insn.

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

	* config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
	(sminsf3): Ditto.

2009-09-14  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
	* config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in
	VLIW mode.

2009-09-14  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec.
	* cfgbuild.c (make_edges): Handle asm goto.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* cfgrtl.c (patch_jump_insn): Likewise.
	* gimple-pretty-print.c (dump_gimple_asm): Likewise.
	* gimple.c (gimple_build_asm_1): Add and use nlabels parameter.
	(gimple_build_asm_vec): Add and use labels parameter.
	(gimple_build_asm): Remove.
	(walk_gimple_asm): Walk labels too.
	* gimple.def (GIMPLE_ASM): Update docs.
	* gimple.h: Update decls.
	(struct gimple_statement_asm): Change nc to use unsigned char;
	add nl member.
	(gimple_asm_nlabels): New.
	(gimple_asm_label_op, gimple_asm_set_label_op): New.
	* gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR
	into gimple_build_asm_vec.
	* jump.c (mark_jump_label_asm): New.
	(mark_jump_label): Use it.
	(redirect_jump_1): Handle asm goto.
	(invert_jump_1): Soft fail if X is null.
	* recog.c (extract_asm_operands): New.
	(asm_noperands): Use it; handle asm labels.
	(decode_asm_operands): Use extract_asm_operands.
	(asm_operand_ok): Properly handle empty string.
	* reg-stack.c (get_asm_operands_in_out): Rename from
	get_asm_operand_n_inputs; use extract_asm_operands; return both
	inputs and outputs by reference; update all callers.
	* rtl.def (ASM_OPERANDS): Add label vector as operand 6.
	* rtl.h (ASM_OPERANDS_LABEL_VEC): New.
	(ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New.
	(ASM_OPERANDS_SOURCE_LOCATION): Renumber.
	(extract_asm_operands): Declare.
	* stmt.c (expand_asm_operands): Add and use labels parameter.
	(check_unique_operand_names): Likewise.
	(resolve_asm_operand_names, resolve_operand_name_1): Likewise.
	(expand_asm_stmt): Handle asm labels.
	* tree-cfg.c (make_gimple_asm_edges): New.
	(make_edges): Use it.
	(cleanup_dead_labels): Handle asm labels.
	(is_ctrl_altering_stmt): Likewise.
	(gimple_redirect_edge_and_branch): Likewise.
	* tree.def (ASM_EXPR): Add 5th operand.
	* tree.h (ASM_LABELS): New.
	(resolve_asm_operand_names): Update decl.

	* c-parser.c (c_parser_asm_statement): Parse asm goto.
	(c_parser_asm_goto_operands): New.
	* c-tree.h (build_asm_expr): Update decl.
	* c-typeck.c (build_asm_expr): Add and use labels parameter.
	* doc/extend.texi: Document asm goto.

2009-09-14  Richard Henderson  <rth@redhat.com>

	* except.h: Update declarations.
	(struct pointer_map_t): Forward declare.
	(ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove.
	(struct eh_landing_pad_d, eh_landing_pad): New.
	(struct eh_catch_d, eh_catch): New.
	(struct eh_region_d): Remove next_region_sharing_label, aka,
	label, tree_label, landing_pad, post_landing_pad, resume,
	may_contain_throw.  Rename region_number to index.  Remove
	u.eh_catch, u.eh_throw.  Rename u.eh_try.eh_catch to first_catch.
	Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg.
	(VEC(eh_landing_pad,gc)): New.
	(struct eh_status): Remove last_region_number.  Add lp_array,
	throw_stmt_table, ttype_data, ehspec_data.
	(ehr_next, FOR_ALL_EH_REGION_AT): New.
	(FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New.
	* except.c (lang_protect_cleanup_actions): Return tree.
	(struct ehl_map_entry): Remove.
	(init_eh_for_function): Push zero entries for region and lp_array.
	(gen_eh_region): Add to region_array immediately.
	(gen_eh_region_catch): Operate on eh_catch objects.
	(gen_eh_landing_pad): New.
	(get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove.
	(get_eh_region_no_tree_label, set_eh_region_tree_label): Remove.
	(get_eh_region_from_number, get_eh_region_from_number_fn): New.
	(get_eh_landing_pad_from_number_fn): New.
	(get_eh_landing_pad_from_number): New.
	(get_eh_region_from_lp_number_fn): New.
	(get_eh_region_from_lp_number): New.
	(expand_resx_stmt, note_eh_region_may_contain_throw): Remove.
	(get_exception_pointer, get_exception_filter): Remove.
	(collect_eh_region_array, can_be_reached_by_runtime): Remove.
	(current_function_has_exception_handlers): Simplify.
	(bring_to_root, eh_region_replaceable_by_p): Remove.
	(replace_region, hash_type_list, hash_eh_region): Remove.
	(eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove.
	(label_to_region_map, num_eh_regions): Remove.
	(get_next_region_sharing_label, must_not_throw_labels): Remove.
	(find_exception_handler_labels): Remove.
	(duplicate_eh_regions_0, find_prev_try): Remove.
	(struct duplicate_eh_regions_data): New.
	(duplicate_eh_regions_1): Rewrite.
	(duplicate_eh_regions): Return a pointer map instead of an
	integer offset.
	(copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove.
	(redirect_eh_edge_to_label): Remove.
	(eh_region_outermost): Rewrite using eh_region pointers
	instead of integers.
	(add_ttypes_entry): Update for ttype_data move to eh_status.
	(add_ehspec_entry): Rewrite with VEC instead of varray.
	(assign_filter_values): Likewise.  Export.
	(build_post_landing_pads, connect_post_landing_pads): Remove.
	(dw2_build_landing_pads): Rewrite to use lp_array.
	(struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove.
	(sjlj_assign_call_site_values): Rewrite to use lp_array.
	(sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise.
	(sjlj_mark_call_sites): Update for landing pad numbers.
	(finish_eh_generation): Rewrite.
	(gate_handle_eh): Do nothing for no eh tree.
	(pass_rtl_eh): Move up near finish_eh_generation.
	(remove_eh_landing_pad): New.
	(remove_eh_handler): Export.
	(remove_eh_region, remove_eh_handler_and_replace): Remove.
	(for_each_eh_label): Rewrite to use lp_array.
	(make_reg_eh_region_note): New.
	(make_reg_eh_region_note_nothrow_nononlocal): New.
	(insn_could_throw_p): New.
	(copy_reg_eh_region_note_forward): New.
	(copy_reg_eh_region_note_backward): New.
	(check_handled, add_reachable_handler): Remove.
	(reachable_next_level, foreach_reachable_handler): Remove.
	(arh_to_landing_pad, arh_to_label, reachable_handlers): Remove.
	(get_eh_region_and_lp_from_rtx): New.
	(get_eh_region_from_rtx): New.
	(can_throw_internal_1, can_throw_external_1): Remove.
	(can_throw_internal): Use get_eh_region_from_rtx.
	(can_throw_external): Use get_eh_region_and_lp_from_rtx.
	(insn_nothrow_p, can_nonlocal_goto): New.
	(expand_builtin_eh_common, expand_builtin_eh_pointer): New.
	(expand_builtin_eh_filter, expand_builtin_eh_copy_values): New.
	(add_action_record): Use VEC not varray.
	(collect_one_action_chain): Update for eh_region changes.
	(convert_to_eh_region_ranges): Make static.  Use VEC not varray.
	Use get_eh_region_and_lp_from_rtx.
	(gate_convert_to_eh_region_ranges): New.
	(pass_convert_to_eh_region_ranges): Use it.
	(push_uleb128, push_sleb128): Use VEC not varray.
	(output_one_function_exception_table): Likewise.
	(dump_eh_tree): Update for eh_region changes.
	(verify_eh_tree): Likewise.
	(verify_eh_region, default_init_unwind_resume_libfunc): Remove.
	* tree-eh.c: Include target.h.
	(add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn.
	Don't disallow GIMPLE_RESX; adjust argument check.
	(add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region.
	(record_stmt_eh_region): Update for landing pad numbers;
	generate a landing pad if necessary.
	(remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region.
	(remove_stmt_from_eh_lp_fn): Similarly.
	(lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn.
	Update for lp numbers; don't special case missing throw_stmt_table.
	(lookup_expr_eh_lp): Similarly.
	(lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region.
	(eh_seq, eh_region_may_contain_throw): New.
	(struct leh_state): Add ehp_region.
	(struct leh_tf_state): Remove eh_label.
	(emit_post_landing_pad): New.
	(emit_resx, emit_eh_dispatch): New.
	(note_eh_region_may_contain_throw): New.
	(frob_into_branch_around): Take eh_region not eh label;
	emit eh code into eh_seq.
	(honor_protect_cleanup_actions): Early exit for no actions.  Don't
	handle EXC_PTR_EXPR, FILTER_EXPR.  Use gimple_build_eh_must_not_throw,
	lower_eh_must_not_throw.  Emit code to eh_seq.
	(lower_try_finally_nofallthru): Emit eh code to eh_seq.
	(lower_try_finally_onedest): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.
	(lower_try_finally): Initialize ehp_region.
	(lower_catch): Update for eh_catch objects.
	(lower_eh_filter): Don't handle must_not_throw.
	(lower_eh_must_not_throw): New.
	(lower_cleanup): Don't set eh_label.
	(lower_eh_constructs_2): Resolve eh builtins.
	Handle GIMPLE_EH_MUST_NOT_THROW.
	(lower_eh_constructs): Initialize eh_region_may_contain_throw.
	Add eh_seq to the end of the function body.
	(make_eh_dispatch_edges): New.
	(make_eh_edge): Remove.
	(make_eh_edges): Simplify for landing pads.
	(redirect_eh_edge_1): New.
	(redirect_eh_edge): Use it.
	(redirect_eh_dispatch_edge): New.
	(stmt_could_throw_p): Use a switch.  Allow RESX.
	(stmt_can_throw_external): Use lookup_stmt_eh_lp.
	(stmt_can_throw_internal): Likewise.
	(maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New.
	(maybe_clean_or_replace_eh_stmt): Update for landing pads.
	(maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New.
	(gate_refactor_eh): New.
	(pass_refactor_eh): Use it.
	(lower_resx, execute_lower_resx, pass_lower_resx): New.
	(lower_eh_dispatch, execute_lower_eh_dispatch): New.
	(gate_lower_ehcontrol, pass_lower_eh_dispatch): New.
	(remove_unreachable_handlers): Rename from
	tree_remove_unreachable_handlers; rewrite for landing pads;
	call remove_eh_handler directly.
	(remove_unreachable_handlers_no_lp): New.
	(unsplit_eh, unsplit_all_eh): New.
	(tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove.
	(cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New.
	(cleanup_empty_eh_unsplit): New.
	(cleanup_empty_eh): Rewrite.
	(cleanup_all_empty_eh): New.
	(execute_cleanup_eh): Rename from cleanup_eh.  Remove unreachable
	handlers first.  Use unsplit_all_eh, cleanup_all_empty_eh.
	(gate_cleanup_eh): New.
	(pass_cleanup_eh): Use it.
	(verify_eh_edges): Move later in file.  Expect one EH edge.
	(verify_eh_dispatch_edge): New.

	* Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h.
	(gtype-desc.o): Add TARGET_H.
	(tree.o): Use EXCEPT_H, not except.h.
	(cfgbuild.o): Add EXPR_H.
	(GTFILES): Add vecprim.h.
	* builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER,
	BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES.
	* builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER,
	BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New.
	* calls.c (emit_call_1): Use make_reg_eh_region_note.
	* cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy
	calls to can_throw_internal.
	(rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx.
	(make_edges): Don't handle RESX; use can_nonlocal_goto.
	* cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX.
	(expand_gimple_stmt): Use make_reg_eh_region_note.
	(expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR.
	(gimple_expand_cfg): Don't call convert_from_eh_region_ranges,
	or find_exception_handler_labels.
	* cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX.  Assert
	there is exacly one EH edge.  Use can_nonlocal_goto and
	can_throw_internal.
	* cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn.
	(cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt.
	* combine.c (can_combine_p, try_combine): Use insn_nothrow_p.
	* cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p.
	* dce.c (deletable_insn_p_1): Don't test may_trap_p.
	(deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test.
	* dse.c (scan_insn): Use insn_could_throw_p.
	* emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward.
	* expr.c (expand_expr_real): Use make_reg_eh_region_note.
	(expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR.
	* fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle
	EXC_PTR_EXPR or FILTER_EXPR.
	(tree_expr_nonzero_warnv_p): Likewise.
	* function.h: Include vecprim.h, not varray.h
	(struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members;
	move ttype_data and ehspec_data members to struct eh_status; change
	action_record_data member to a VEC.
	* gcse.c (hash_scan_set): Use can_throw_internal.
	* gengtype.c (open_base_files): Add target.h to gtype-desc.c.
	* gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt.
	* gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
	(block_may_fallthru): Don't handle RESX_EXPR.
	* gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR.
	(dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New.
	(dump_gimple_stmt): Dump landing pad information with TDF_EH;
	handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH.
	* gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW,
	GIMPLE_EH_DISPATCH, GIMPLE_RESX.
	(gimple_size): Likewise.
	(gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New.
	(gimple_build_resx): Use gimple_build_with_ops.
	(DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR.
	(is_gimple_val): Likewise.
	(is_gimple_stmt): Remove RESX_EXPR.
	* gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New.
	(GIMPLE_RESX): Reorder with other EH constructs.
	* gimple.h (struct gimple_statement_eh_mnt): New.
	(struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx.
	(gimple_eh_filter_must_not_throw): Remove.
	(gimple_eh_filter_set_must_not_throw): Remove.
	(gimple_eh_must_not_throw_fndecl): New.
	(gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New.
	(is_gimple_resx): New.
	* gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR.
	Don't copy EH_FILTER_MUST_NOT_THROW.
	* gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New.
	* ipa-inline.c (estimate_function_body_sizes): Don't try to
	handle must_not_throw_labels specially.
	* ipa-pure-const.c (check_call): Update debug statement for LP.
	* ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER.
	* ipa-utils.c (get_base_var): Likewise.
	* libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove.
	* lower-subreg.c (move_eh_region_note): Remove.
	(resolve_simple_move): Use copy_reg_eh_region_note_forward.
	* omp-low.c (new_omp_context): Update for eh_lp_nr.
	(create_task_copyfn): Likewise.
	(maybe_catch_exception): Use gimple_build_eh_filter.
	* optabs.c (emit_libcall_block): Update test for no-nonlocal-goto
	REG_EH_REGION.  Use make_reg_eh_region_note_nothrow_nononlocal.
	* passes.c (init_optimization_passes): Add pass_lower_eh_dispatch
	and pass_lower_resx.
	* print-tree.c (print_node): Dump EH_LANDING_PAD_NR.
	* recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward,
	can_throw_internal, can_nonlocal_goto.
	* reload1.c (fixup_eh_region_note): Use insn_could_throw_p,
	copy_reg_eh_region_note_forward.
	(emit_input_reload_insns): Use copy_reg_eh_region_note_forward.
	(emit_output_reload_insns): Likewise.
	(copy_eh_notes): Remove.
	* rtl.def (RESX): Remove.
	* rtl.h: Update declarations.
	* sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt.
	* tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH.
	(update_eh_label): Remove.
	(cleanup_dead_labels_eh): New.
	(cleanup_deal_labels): Use it instead of update_eh_label.
	(gimple_merge_blocks): Update landing pad data structure when
	removing a landing pad label.
	(remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw
	test; handle GIMPLE_EH_MUST_NOT_THROW.
	(is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH.
	(verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR.
	(verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH.
	(verify_stmt): Likewise.  Verify landing pads.
	(gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH.
	(gimple_duplicate_bb): Use maybe_duplicate_eh_stmt.
	(struct move_stmt_d): Add eh_map.
	(move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New.
	(move_stmt_r): Remap eh region numbers in builtin calls,
	resx and eh_dispatch.
	(move_block_to_fn): Remove eh_offset parameter.  Use
	maybe_duplicate_eh_stmt_fn.
	(find_outermost_region_in_block): Operate on eh_region pointers
	instead of region numbers.
	(move_sese_region_to_fn): Expect eh_map instead of eh_offset from
	duplicate_eh_regions.
	* tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge
	test earlier.  Disallow EH landing pads.
	* tree-cfa.c (create_tree_common_ann): Don't set ann->rn.
	* tree-flow.h: Update declarations.
	(struct tree_ann_common_d): Replace rn with lp_nr.
	* tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR.
	(remap_eh_region_nr, remap_eh_region_tree_nr): New.
	(remap_gimple_stmt): Remap eh region numbers in builtin calls,
	resx and eh_dispatch.
	(copy_bb): Use maybe_duplicate_eh_stmt_fn.
	(copy_edges_for_bb): Use make_eh_dispatch_edges.
	(copy_cfg_body): Expect eh_map instead of eh_region_offset
	from duplicate_eh_regions.
	(estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR;
	update RESX; handle EH_DISPATCH.
	(expand_call_inline): Set eh_lp_nr, not eh_region.
	(maybe_inline_call_in_expr): Likewise.
	* tree-inline.h (struct copy_body_data): Replace eh_region with
	eh_lp_nr, eh_region_offset with eh_map.
	* tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt.
	* tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New.
	* tree-pretty-print.c (dump_generic_node): Don't handle
	EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR.
	* tree-sra.c (scan_function): Use maybe_clean_eh_stmt.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle
	EXC_PTR_EXPR, FILTER_EXPR.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
	(ao_ref_init_from_vn_reference): Likewise.
	* tree-ssa-sink.c (statement_sink_location): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	(mark_virtual_phi_result_for_renaming): Export.  Tidy.
	* tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle
	EXC_PTR_EXPR, FILTER_EXPR.
	(is_exception_related): Remove.
	(compute_avail): Don't call it.
	* tree-ssa-structalias.c: Remove VEC definitions for int and unsigned.
	* tree.c (find_decls_types_in_eh_region): Update for eh_region changes.
	(find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN.
	(build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter.
	Build EH builtins.
	(build_resx): Remove.
	* tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove.
	* tree.h: Update declarations.
	(EH_FILTER_MUST_NOT_THROW): Remove.
	(struct tree_label_decl): Add eh_landing_pad_nr.
	(EH_LANDING_PAD_NR): New.
	* value-prof.c (gimple_ic): Tidy variable names.  Update for
	landing pad numbers.
	(gimple_stringop_fixed_value): Tidy variable names.  Assert
	that neither call stmt can throw.
	* vecprim.h (uchar): New.
	(VEC(uchar,heap), VEC(uchar,gc)): New.

	* c-common.c (c_define_builtins): Update call to
	build_common_builtin_nodes.
	* c-parser.c (c_parse_file): Don't call
	default_init_unwind_resume_libfunc.

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

	* config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare.
	(mips_cprestore_address_p): Likewise.
	(mips_save_gp_to_cprestore_slot): Likewise.
	(mips_restore_gp): Rename to...
	(mips_restore_gp_from_cprestore_slot): ...this.
	(mips_must_initialize_gp_p): Declare.
	(mips_emit_save_slot_move): Likewise.
	(mips_output_load_label): Return nothing.
	(mips_eh_uses): Declare.
	* config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed.
	(TARGET_CPRESTORE_DIRECTIVE): New macro.
	(TARGET_ABSOLUTE_JUMPS): Likewise.
	(EH_USES): Likewise.
	(FIRST_PSEUDO_REGISTER): Update comment.
	(MIPS_ABSOLUTE_JUMP): New macro, extracted from...
	(MIPS_CALL): ...here.
	(REGISTER_NAMES): Add $cprestore.
	* config/mips/mips.c (machine_function): Remove has_gp_insn_p.
	Add load_label_length, has_inflexible_gp_insn_p,
	has_flexible_gp_insn_p, must_initialize_gp_p and
	must_restore_gp_when_clobbered_p.
	(mips_expand_call): Don't generate split instructions here.
	(mips_split_call): Update the call to mips_restore_gp after
	the above name change.
	(mips16_cfun_returns_in_fpr_p): Move earlier in file.
	(mips_find_gp_ref): New function.
	(mips_insn_has_inflexible_gp_ref_p): Likewise.
	(mips_cfun_has_inflexible_gp_ref_p): Likewise.
	(mips_insn_has_flexible_gp_ref_p): Likewise.
	(mips_cfun_has_flexible_gp_ref_p): Likewise.
	(mips_function_has_gp_insn): Delete.
	(mips_global_pointer): Drop the df_regs_ever_live_p check.
	Use the new functions above.  Only return INVALID_REGNUM
	for TARGET_ABSOLUTE_JUMPS.
	(mips_must_initialize_gp_p): New function.
	(mips_get_cprestore_base_and_offset): New function, extracted from...
	(mips_cprestore_slot): ...here.  Take a bool parameter.
	(mips_cfun_has_cprestore_slot_p): New function.
	(mips_cprestore_address_p): Likewise.
	(mips_save_gp_to_cprestore_slot): Likewise.
	(mips_restore_gp): Rename to...
	(mips_restore_gp_from_cprestore_slot): ...this.  Assert
	epilogue_completed.  Update the call to mips_cprestore_slot.
	Test cfun->machine->must_restore_gp_when_clobbered_p.
	(mips_direct_save_slot_move_p): New function.
	(mips_emit_save_slot_move): Likewise.
	(mips_output_cplocal): Test mips_must_initialize_gp_p () instead
	of cfun->machine->global_pointer.
	(mips_output_function_prologue): Check mips_must_initialize_gp_p ().
	(mips_save_reg): Use mips_emit_save_slot_move.
	(mips_expand_prologue): Set must_initialize_gp_p.
	Use mips_cfun_has_cprestore_slot_p.  Use gen_potential_cprestore
	for all cprestore saves.  Emit a use_cprestore instruction after
	setting up the cprestore slot.
	(mips_restore_reg): Use mips_emit_save_slot_move.
	(mips_process_load_label): New function.
	(mips_load_label_length): Likewise.
	(mips_output_load_label): Don't return asm: output it here instead.
	Use mips_process_load_label.
	(mips_adjust_insn_length): Adjust the length of branch instructions
	that have length MAX_PIC_BRANCH_LENGTH.
	(mips_output_conditional_branch): Update the call to
	mips_output_load_label.  Assume the branch target is OPERANDS[0]
	rather than OPERANDS[1].  Use MIPS_ABSOLUTE_JUMP for absolute jumps.
	(mips_output_order_conditional_branch): Swap the meaning of
	OPERANDS[0] and OPERANDS[1].
	(mips_variable_issue): Don't count ghost instructions.
	(mips_expand_ghost_gp_insns): New function.
	(mips_reorg): Rerun mips_reorg_process_insns if it returns true.
	(mips_output_mi_thunk): Set must_initialize_gp_p.
	(mips_eh_uses): New function.
	* config/mips/predicates.md (cprestore_save_slot_operand)
	(cprestore_load_slot_operand): New predicates.
	* config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec.
	(UNSPEC_MOVE_GP): Likewise.
	(UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN)
	(UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room.
	(CPRESTORE_SLOT_REGNUM): New register.
	(MAX_PIC_BRANCH_LENGTH): New constant.
	(jal_macro): Use MIPS_ABSOLUTE_JUMPS.
	(length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long
	branches.  Fix commentary.
	(loadgp_newabi_<mode>): Change from unspec_volatile to unspec.
	Only split if mips_must_initialize_gp_p; expand to nothing otherwise.
	Change type to "ghost".
	(loadgp_absolute_<mode>): Likewise.
	(loadgp_rtp_<mode>): Likewise.
	(copygp_mips16): Likewise.
	(loadgp_blockage): Remove redundant mode attribute.
	(potential_cprestore): New instruction.
	(cprestore): Turn into an unspec set.
	(use_cprestore): New instruction.
	(*branch_fp): Swap operands 0 and 1.  Remove redundant mode attribute.
	(*branch_fp_inverted): Likewise.
	(*branch_order<mode>): Likewise.
	(*branch_order<mode>_inverted): Likewise.
	(*branch_equality<mode>): Likewise.
	(*branch_equality<mode>_inverted): Likewise.
	(*branch_bit<bbv><mode>): Likewise.
	(*branch_bit<bbv><mode>_inverted): Likewise.
	(*branch_equality<mode>_mips16): Remove redundant mode.
	(jump): Turn into a define_expand.
	(*jump_absolute): New instruction.
	(*jump_pic): Likewise.
	(*jump_mips16): Rename previously-unnamed pattern.  Remove
	redundant mode attribute.
	(restore_gp): Split on epilogue_completed rather than
	reload_completed.  Change type to "ghost".
	(move_gp<mode>): New instruction.
	* config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1.
	Remove redundant mode attribute.
	* config/mips/mips-ps-3d.md (bc1any4t): Likewise.
	(bc1any4f, bc1any2t, bc1any2f): Likewise.
	(*branch_upper_lower, *branch_upper_lower_inverted): Likewise.

2009-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/41210
	* config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI
	are returned in the same register (vs34 or v2) that Altivec vector
	types are returned in.
	(rs6000_libcall_value): Ditto.

	PR target/41331
	* config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn
	instead of explicit addsi3/adddi3 calls.
	(rs6000_split_multireg_move): Ditto.
	(rs6000_emit_allocate_stack): Ditto.
	(rs6000_emit_prologue): Ditto.
	(rs6000_output_mi_thunk): Ditto.

	* config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer
	size is 64 bits if we can use 64-bit registers.

2009-09-14  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak
	symbols.

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to
	save FP and RETS with saveall attribute.
	(bfin_expand_epilogue): Ask do_unlink to restore FP and RETS
	with saveall attribute.

	* config/bfin/bfin.c (bfin_expand_builtin,
	case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the
	operands.

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes
	before use in two places.
	* config/bfin/bfin.md (AREG): Define mode iterator.
	(reload_in, reload_out): Use mode iterator AREG.

2009-09-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41350
	* dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm
	EH personality path.

2009-09-13  Richard Guenther  <rguenther@suse.de>
	    Rafael Avila de Espindola  <espindola@google.com>

	* langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
	(LANG_HOOKS_EH_PERSONALITY): Likewise.
	(LANG_HOOKS_INITIALIZER): Adjust.
	(lhd_pass_through_t): Declare.
	* langhooks.h (struct lang_hooks): Add eh_runtime_type and
	eh_personality.
	* langhooks.c (lhd_pass_through_t): New function.
	* dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc,
	dwarf2out_begin_prologue): Use personality from current_function_decl.
	* expr.h (get_personality_function): Declare.
	* expr.c (get_personality_function): New function.
	(build_personality_function): Likewise.
	* libfuncs.h (libfunc_index): Remove LTI_eh_personality.
	(eh_personality_libfunc): Remove.
	* optabs.c (build_libfunc_function): New function split out from ...
	(init_one_libfunc): ... here.
	* tree.h (DECL_FUNCTION_PERSONALITY): New.
	(tree_function_decl): Add personality.
	(lhd_gcc_personality): Declare.
	(build_personality_function): Likewise.
	* tree.c (gcc_eh_personality_decl): New.
	(lhd_gcc_personality): New function.
	* except.h (lang_eh_runtime_type): Remove.
	(enum eh_personality_kind): New.
	(build_personality_function): Declare.
	(function_needs_eh_personality): Declare.
	* except.c (lang_eh_runtime_type): Remove.
	(function_needs_eh_personality): New function.
	(add_type_for_runtime): Call lang_hooks.type_for_runtime instead.
	(sjlj_emit_function_enter, output_function_exception_table):
	Use personality from current_function_decl.
	* tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY.
	* tree-inline.c (tree_can_inline_p): Do not inline across different
	EH personalities.
	(expand_call_inline): Likewise.  Adjust the callers EH personality.
	(tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY.
	* cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY.
	* Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency.
	(c-parser.o): Likewise
	* c-tree.h (c_eh_initialized_p): Remove.
	(c_maybe_initialize_eh): Likewise.
	* c-decl.c (finish_decl): Don't call c_maybe_initialize_eh.
	(finish_decl): Don't call c_maybe_initialize_eh.
	(c_eh_initialized_p): Remove.
	(c_maybe_initialize_eh): Likewise.
	* c-parser.c (c_parser_omp_construct): Likewise.
	(c_parse_file): Initialize exception handling.

2009-09-13  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc (tm_file): Remove i386/biarch32.h
	for i?86-w64-mingw* case.
	(i?86-*-mingw* andx86_64-*-mingw*): Add multilib
	support.
	* config.host: Set for x64 mingw the option
	use_long_long_for_widest_fast_int to yes.

2009-09-13  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
	* dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
	(dbxout_begin_function): Likewise.
	* final.c (dwarf2_debug_info_emitted_p): New predicate.
	(final_start_function): Do not emit debug info if DECL_IGNORED_P is
	set on the function.
	(final_end_function): Likewise.
	(final_scan_insn): Likewise.
	(rest_of_handle_final): Likewise.
	* varasm.c (assemble_start_function): Likewise.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.

2009-09-12  Jason Merrill  <jason@redhat.com>

	* dbgcnt.c (dbg_cnt_process_single_pair): constify.
	* opts.c (common_handle_option): constify.

2009-09-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (avr): Remove obsolete reference site.

2009-09-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Binaries): Adjust AIX link.

2009-09-12  Akim Demaille  <demaille@gostai.com>

	* doc/invoke.texi (-fstrict-aliasing): Correct two examples.
	Use an imperative sentence.

2009-09-11  Richard Henderson  <rth@redhat.com>

	* gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
	structure-name and has-tree-operands arguments; update all entries.
	* gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
	update all entries.
	* gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
	(gsstruct_code_size): New.
	(gss_for_code_): New.
	(gss_for_code): Remove.
	(gimple_size): Rewrite using gsstruct_code_size.
	(gimple_statement_structure): Move to gimple.h.
	* gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
	(gss_for_code, gimple_statement_structure): New.
	(gimple_ops): Use new arrays; tidy.

2009-09-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
	operand to be a PLUS expression.
	* config/pa/pa.c (pa_secondary_reload): Likewise.

2009-09-11  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (propagate_for_debug_subst): Call wrap_constant on top.

	* print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
	XEXP (in_rtx, 8).

2009-09-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Jie Zhang <jie.zhang@analog.com>:
	* doc/extend.texi (node Function Attributes): Document l2
	function attribute.
	(node Blackfin Variable Attributes): Document l2 variable attributes.

2009-09-11  Loren J. Rittle  <ljrittle@acm.org>

	* config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
	to match the system compiler's configuration at inflection point.
	Add comment to remark a remaining difference with system compiler.

	* configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
	* configure: Regenerate.

2009-09-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
	(bfin_handle_l2_attribute): New.
	(bfin_attribute_table): Add l2 attribute.

2009-09-11  Michael Matz  <matz@suse.de>

	PR middle-end/41275
	* tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
	on the local_decls list.

2009-09-11  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41276
	PR debug/41307
	* cselib.c (cselib_expand_value_rtx_cb): Document callback
	interface.
	(cselib_expand_value_rtx_1): Use callback for SUBREGs.  Adjust
	for VALUEs, to implement the documented interface.
	* var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
	Adjust for VALUEs and anything else, to implement the
	documented interface.

2009-09-10  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
	with actual SPE/paired vector modes before using 64-bit alignment.
	Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.

2009-09-10  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.md (eh_epilogue): Defer until after epilogue is
	emitted.

	* config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
	* config/mep/mep.c (mep_legitimate_constant_p): New.
	* config/mep/mep-protos.h: Prototype it.

2009-09-10  Richard Henderson  <rth@redhat.com>

	* print-rtl.c (print_rtx): Fix JUMP_LABEL index.

2009-09-10  Jason Merrill  <jason@redhat.com>

	* tree.c (chain_index): New fn.
	* tree.h: Declare it.

2009-09-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2-c.c (cmn_err_length_specs): Initialize
	scalar_identity_flag.

2009-09-10  Richard Henderson  <rth@redhat.com>

	* tree.h (struct tree_decl_common): Move align member earlier;
	move label_decl_uid member ...
	(struct tree_label_decl): ... here.
	(LABEL_DECL_UID): Update to match.

	* tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
	not TDF_DETAILS.

	* tree-cfg.c (gimple_redirect_edge_and_branch): Do
	gimple_try_redirect_by_replacing_jump test after no-op and EH tests.

	* tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
	dest_prev if the edge is complex.

	* tree-cfg.c (is_ctrl_stmt): Use a switch.

	* tree-cfg.c (gimple_can_merge_blocks_p): Move label and
	loop latch tests earlier.

	* gimple-iterator.c (gimple_find_edge_insert_loc): Insert
	before GIMPLE_RETURN, not after its predecessor; insert
	before GIMPLE_RESX.

	* gimple-iterator.c (gimple_find_edge_insert_loc): Use
	gimple_seq_empty_p to test for no PHI nodes.
	* tree-cfg.c (split_critical_edges): Likewise.

	* c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.

2009-09-10  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
	introduced by the VTA branch merge.

2009-09-10  Uros Bizjak  <ubizjak@gmail.com>

	* ira-conflicts.c: Use fputs or putc instead of fprintf
	where appropriate.
	* cfg.c: Ditto.
	* toplev.c: Ditto.
	* tree-switch-conversion.c: Ditto.

2009-09-10  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
	introduced by the VTA branch merge.

2009-09-10  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2009-09-09  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/39779
	* expr.c (convert_modes): Return when mode == oldmode after
	CONST_INTs are processed.

2009-09-10  Nick Clifton  <nickc@redhat.com>

	* config/mep/mep.c (mep_encode_section_info): Copy weakness
	attribute and referring decl when creating renamed symbol.

2009-09-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41257
	* cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
	reachable nodes.
	(cgraph_finalize_compilation_unit): Compute reachability
	before emitting thunks.  Properly process aliases before
	possibly removing unreachable nodes.

2009-09-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41254
	* tree.c (struct free_lang_data_d): Add worklist member.
	(find_decls_types_r): Push onto the worklist instead of recursing.
	Handle TREE_BINFOs properly.
	(find_decls_types): New function wrapped around find_decls_types_r
	to process the worklist.
	(find_decls_types_in_eh_region): Use it.
	(find_decls_types_in_node): Likewise.
	(find_decls_types_in_var): Likewise.
	(free_lang_data_in_cgraph): Likewise.  Free the worklist.
	* tree.h (RECORD_OR_UNION_TYPE_P): New.
	(AGGREGATE_TYPE_P): Adjust.

2009-09-09  Jason Merrill  <jason@redhat.com>

	* configure.ac: Check glibc version even if we have an in-tree
	assembler.

2009-09-09  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
	the constant 0 when appropriate.
	* config/moxie/constraints.md: Add constraint O.

	* config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
	to pass up to 6 32-bit argument values in registers.
	(moxie_function_arg): Ditto.
	(moxie_arg_partial_bytes): Ditto.
	* config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
	(REG_PARM_STACK_SPACE): Ditto.
	(FUNCTION_ARG_REGNO_P): Ditto.

	* config/moxie/moxie.c (moxie_expand_prologue): Use dec
	instruction to allocate stack space.

2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (bswapdi2_64bit): Fix
	unnecessarily stringent constraints.  Fix address
	calculation in the splitters.

2009-09-09  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/39779
	* expr.c (convert_modes): Return when mode == oldmode after
	CONST_INTs are processed.

2009-09-09  Kai Tietz  <kai.tietz@onevision.com>

	PR/41315
	* config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
	(ix86_expand_prologue): Take frame.padding0 into logic of
	to_allocate checks.
	(ix86_expand_epilogue): Likewise.

2009-09-09  Jakub Jelinek  <jakub@redhat.com>

	* config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
	New variables.
	(SHLIB_LINK, SHLIB_INSTALL): Use them.
	* config/t-slibgcc-libgcc: New file.
	* config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.

2009-09-09  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41089
	* tree-sra.c (find_var_candidates): Do not consider va_lists in
	early SRA.

2009-09-09  Richard Henderson  <rth@redhat.com>

	* gimple.h (CASE_GIMPLE_OMP): New.
	(is_gimple_omp): Use it.
	* tree-cfg.c (is_ctrl_altering_stmt): Likewise.
	(verify_gimple_debug): Likewise.

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

	PR tree-optimization/41101
	* tree-ssa-pre.c (maximal_set): Remove.
	(compute_antic_aux): Treat the maximal set as implicitly all ones.
	Defer all blocks we didn't visit at least one successor.
	(add_to_exp_gen): Do not add to the maximal set.
	(make_values_for_phi): Likewise.
	(compute_avail): Likewise.
	(init_pre): Do not allocate the maximal set.
	(execute_pre): Do not dump it.

2009-09-09  Martin Jambor  <mjambor@suse.cz>

	* tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
	an SSA_NAME rather than a is_gimple_variable.

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

	PR middle-end/41317
	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
	code dealing with plain pointer bases.
	(maybe_fold_offset_to_reference): Likewise.
	(maybe_fold_stmt_addition): Adjust.

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

	* tree.c (free_lang_data_in_type): Do not free the type variant
	chains.
	(free_lang_data): Merge char_type_node with its properly signed
	variant.
	(pass_ipa_free): Collect after freeing language specific data.

2009-09-09  Michael Matz  <matz@suse.de>

	PR middle-end/41268
	* cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
	SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
	* rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
	to reflect reality.

2009-09-08  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (conversions[]): Add "ml" pattern.

2009-09-04  Jason Merrill  <jason@redhat.com>

	* tree.c (tree_find_value): Remove.
	* tree.h: Remove prototype.
	* varasm.c (assemble_external): Use value_member instead.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	* toplev.c (process_options): Choose default debugging type when
	gtoggle enables debug info and type is unset.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41276
	PR debug/41307
	* cselib.c (cselib_expand_value_rtx_1): Don't return copy of
	invalid subreg.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with modified libtool.m4.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41229
	PR debug/41291
	PR debug/41300
	* tree-ssa.c (execute_update_addresses_taken): Update debug insns.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
	(remove_statement): Likewise.
	(rewrite_use_nonlinear_expr): Adjust.
	(remove_unused_ivs): Collect SSA NAMEs to remove and call...
	* tree-ssa.c (release_defs_bitset): ... this.  New.
	* tree-flow.h (release_defs_bitset): Declare.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41232
	* tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
	in the middle block.

2009-09-08  Kai Tietz  <kai.tietz@onevision.com>

	* tree-ssa-reassoc.c (find_operand_rank): Cast pointer
	via intptr_t to long type.
	(insert_operand_rank): Cast long type via intptr_t to
	pointer type.
	* genattrtab.c (RTL_HASH): Use intptr_t to cast from
	pointer to scalar.
	* c-pretty-print.c (pp_c_tree_decl_identifier): Cast
	from pointer to unsigned via uintptr_t.

	* configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
	uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
	and HAVE_INTPTR_T.
	* configure: Regenerated.
	* config.in: Regenerated
	* system.h (stdint.h): Add include.
	(inttypes.h): Likewise.
	* Makefile.in (aclocal): Add config/stdint.m4.
	* aclocal.m4: Regenerated.

2009-09-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (np_check_regno, np_after_branch): New static
	variables.
	(note_np_check_stores): New function.
	(harmless_null_pointer_p): New function.
	(trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH.  Callers
	changed.  Take into account whether we're in the shadow of a condjump
	that tested NP_REG for NULL.
	Lose all code that tested for SEQUENCEs.
	(workaround_speculation): Avoid inserting NOPs for loads that are
	either always executed or a NULL pointer.

2009-09-08  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
	* params.def (early-inlining-insns): Likewise.

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

	PR rtl-optimization/41239
	* sched-int.h (struct deps): Add last_function_call_may_noreturn field.
	* sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
	lists.
	* sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
	across calls, as the calls might not always return normally.
	(call_may_noreturn_p): New function.
	(deps_analyze_insn): Update last_function_call_may_noreturn list.
	(init_deps): Initialize it.
	(remove_from_deps): Also remove calls from
	last_function_call_may_noreturn list.

2009-09-07  Richard Henderson  <rth@redhat.com>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
	more VR->OPERANDS than LHS operands.  Free LHS before returning.

2009-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
	(attr "addrtype"): New member "spreg".
	Use it if mem_spfp_address_operand is true for the address.
	(attr "type"): New entry "stall".
	(cpu_unit "load"): New.
	(insn_reservations "load32", "loadp", "loadi"): Add reservation of
	"load".
	(insn_reservation "loadsp"): New.
	(insn_reservation "load_stall1"): New.
	(insn_reservation "load_stall3"): New.
	(stall): New insn.
	* config/bfin/predicates.md (const1_operand, const3_operand): New.
	(mem_p_address_operand): Exclude stack and frame pointer based
	addresses.
	(mem_spfp_address_operand): New; match them here.
	* config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
	(bfin_reorg): Call it if scheduling insns.
	(bfin_gen_bundles): Remove dummy insns created by
	add_sched_insns_for_speculation.

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
	bfin_si_revision, bfin_workarounds): Move these ...
	* config/bfin/bfin.h: ... here.

	From Mike Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
	BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
	* config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
	bf547m, bf548m, and bf549m.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
	for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
	__ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
	BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
	* config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
	bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
	* config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
	* config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
	* doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
	bf542m, bf544m, bf547m, bf548m, and bf549m.

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/predicates.md (p_register_operand): New predicate.
	(dp_register_operand): New predicate.
	* config/bfin/bfin-protos.h (WA_05000074): Define.
	(ENABLE_WA_05000074): Define.
	* config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
	(bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
	* config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
	(define_attr addrtype): Allow load/store register to be P register.
	(define_attr storereg): New.
	(define_cpu_unit anomaly_05000074): New.
	(define_insn_reservation dsp32shiftimm): New.
	(define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
	(define_insn_reservation loadp): Cannot use slot2.
	(define_insn_reservation loadsp): Cannot use slot2.
	(define_insn_reservation storep): Cannot use slot2. Does not
	apply when working around 05000074.
	(define_insn_reservation storep_anomaly_05000074): New.
	(define_insn_reservation storei): Does not apply when working
	around 05000074.
	(define_insn_reservation storei_anomaly_05000074): New.
	(define_attr length): Add dsp32shiftimm case.
	(define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
	ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
	movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
	ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
	Set type as dsp32shiftimm for dsp32shiftimm alternatives.

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

	PR middle-end/41282
	* tree-sra.c (create_artificial_child_access): Return NULL if
	build_ref_for_offset fails.
	(propagate_subacesses_accross_link): Allow build_ref_for_offset
	and create_artificial_child_access to fail.

2009-09-06  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	PR c++/41214
	* unwind-dw2.c (uw_init_context_1): Mark noinline.
	* config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
	* config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.

2009-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
	block, ensure it has an exit edge.  Emit a barrier after a jump.

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

	* gcc.c (this_is_linker_script): New variable.  Like
	this_is_library_file but for the %T constructor.
	(end_going_arg): If this_is_linker_script is set then locate the
	script and insert a --script switch before it
	(do_spec_2): Initialise this_is_linker_script.
	(do_spec_1): Likewise.  Handle %T construct.
	(eval_spec_function): Preserve this_is_linker_script.
	* doc/invoke.texi: Document %T construct in spec files.
	* config/m32c/m32c.h (LIB_SPEC): Use it.

2009-09-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
	* sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
	when volatile flag is set.
	* doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.

2009-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/41241
	* combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
	(combine_stack_adjustments_for_block): Allow insns between stack
	adjustments and stores with corresponding pre-(dec|inc)rement or
	pre-modify operation.

2009-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/41241
	* combine-stack-adj.c (struct csa_memlist): Rename to...
	(struct csa_reflist): ... this.  Rename mem field to ref.
	(free_csa_memlist): Rename to...
	(free_csa_reflist): ... this.
	(record_one_stack_memref): Rename to...
	(record_one_stack_ref): ... this.  Handle also REG_P.
	(try_apply_stack_adjustment): Handle also REG_P.
	(struct record_stack_memrefs_data): Rename to...
	(struct record_stack_refs_data): ... this.  Rename memlist field to
	reflist.
	(record_stack_memrefs): Rename to...
	(record_stack_refs): ... this.  For DEBUG_INSNs keep traversing
	subexpressions instead of failing when a MEM contains SP references.
	For SP itself in DEBUG_INSNs queue it also onto reflist chain.
	(combine_stack_adjustments_for_block): Adjust for mem to ref renaming.

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

	PR middle-end/41144
	* tree.c (build_array_type): Do not record types marked
	with structural equality in the canonical type hashtable.

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

	PR middle-end/41261
	* tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.

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

	PR middle-end/41181
	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.

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

	PR debug/41273
	* tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.

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

	PR middle-end/41271
	* tree-ssa.c (useless_type_conversion_p): Drop qualifiers
	before comparing function argument types.

2009-09-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/41024
	* config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
	the assembler.

2009-09-04  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2009-08-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
	locators before emit_insn is called.

2009-09-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/41241
	* ira.c (update_equiv_reg): Revert my previous patch for the PR.
	* reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
	(reginfo_init): Don't call allocate_reg_info.

2009-09-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41262
	* config/alpha/alpha.c (alpha_does_function_need_gp): Use
	NONDEBUG_INSN_P instead of INSN_P.

2009-09-04  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41225
	* tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.

2009-09-04  Alexandre Oliva  <aoliva@redhat.com>

	PR target/41252
	* config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
	pattern of the split.

2009-09-04  Alexandre Oliva  <aoliva@redhat.com>

	* toplev.c (process_options): Move setter of flag_var_tracking
	before other tests that depend on it.  Move down setter of
	flag_rename_registers.  Don't enable var-tracking-assignments
	by default if selective scheduling is enabled.  Warn if both
	are enabled.

2009-09-04  Alexandre Oliva  <aoliva@redhat.com>

	* var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
	comment.  Use switch statement to catch overlaps between rtx
	and tree codes.  Accept FUNCTION_DECLs in addition to those in...
	(IS_DECL_CODE): ... here. Remove.
	(check_value_is_not_decl): Remove.
	(dv_from_decl, dv_from_value): Check after conversion.

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

	PR middle-end/41257
	* (cgraph_finalize_compilation_unit): Move finalizing aliases
	after emitting tunks.  Move emitting thunks and ctors from ...
	(cgraph_optimize): ... here.  Remove redundant
	cgraph_analyze_functions.
	* varasm.c (find_decl_and_mark_needed): Remove no longer
	necessary check.
	(finish_aliases_1): Adjust check for thunk aliases.

2009-09-04  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/arm.md (ctzsi2): Added braces
	to avoid warning that broke booststrap.

2009-09-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41112
	* tree-sra.c (build_ref_for_offset_1): Signal that we cannot
	handle variable-bounded arrays.
	(expr_with_var_bounded_array_refs_p): New function.
	(analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.

2009-09-04  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/2097.md: Removed two incorrect bypasses.
	(z10_fsimpdf): Fixed latency.
	(z10_fhex): New insn_reservation.
	(z10_floaddf): Fixed latency.
	(z10_floadsf): Fixed latency.
	(z10_ftrunctf): Fixed latency.
	(z10_ftruncdf): Fixed latency.
	* config/s390/s390.c (z10_cost): Fixed values.
	(s390_adjust_priority): Added z10 path.
	* config/s390/s390.md (type): Added fhex.
	(*mov<mode>_64dfp): Updated type attribute.
	(*mov<mode>_64): Updated type attribute.
	(*mov<mode>_31): Updated type attribute.
	(*mov<mode>"): Likewise.
	* config/s390/2084.md (x_fsimpdf): Updated condition.

2009-09-04  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
	RTXs in the predicate for operand 1.

2009-09-03  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/arm.md (UNSPEC_RBIT): New constant.
	(rbitsi2): New insn.
	(ctzsi2): New expand.
	* config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.

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

	* tree-sra.c (duplicate_expr_for_different_base): Removed.
	(create_artificial_child_access): Use build_ref_for_offset instead
	of duplicate_expr_for_different_base.
	(propagate_subacesses_accross_link): Likewise.

2009-09-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
	of INSN_P.
	(mips16e_collect_argument_saves): Skip debug instructions.
	(mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
	(mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
	(r10k_insert_cache_barriers): Likewise.
	(mips_reorg_process_insns): Likewise.

2009-09-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/41241
	* ira.c (update_equiv_reg): Remove check on class likely spill.

2009-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41236
	* dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
	SIGN_EXTEND or ZERO_EXTEND.  Don't assume there is a REG inside of
	it or SUBREG.

	PR debug/41238
	* function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
	the stack slot if it is passed by invisible reference.
	* var-tracking.c (vt_add_function_parameters): Handle arguments passed
	by invisible reference.

2009-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
	* config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
	* config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
	0.
	* config/bfin/sync.md: New file.
	* config/bfin/bfin.md: Include it.
	(UNSPEC_ATOMIC): New.
	(UNSPEC_ONES): Provide a unique number.

	From Jie Zhang <jie.zhang@analog.com>:
	* config/bfin/bfin.c (ret_regs): New.
	(must_save_fp_p): Don't return true because of frame_pointer_needed.
	(must_save_rets_p): New.
	(n_regs_saved_by_prologue): Use must_save_rets_p instead of
	current_function_is_leaf.
	(do_link): Likewise.
	(do_unlink): Likewise.
	(expand_interrupt_handler_prologue): Use ret_regs array.
	(expand_interrupt_handler_epilogue): Use ret_regs array and
	pass return register to gen_return_internal.
	(bfin_expand_epilogue): Pass return register to
	gen_return_internal.
	(bfin_expand_call): Explicitly clobber RETS.
	* config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
	* config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
	call_insn_fdpic, call_value_insn_fdpic, call_symbol,
	call_value_symbol, call_insn, call_value_insn): Explicitly clobber
	RETS.
	(return_internal): Take a reg rtx rather than the register number.

2009-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
	when comparing against estimated_loop_iterations_int return.

2009-09-03  Richard Guenther  <rguenther@suse.de>

	* dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
	eh_personality_libfunc.

2009-09-03  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c (separate_decls_in_region): Add space.

2009-09-03  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c (separate_decls_in_region): Change the condition
	checking if there are reductions in the loop.

2009-09-03  Razya Ladelsky  <razya@il.ibm.com>

	PR tree-optimization/38275
	* tree-parloops.c (parallelize_loops): Replace profitability condition
	for expected number of iterations.

2009-09-03  Alexandre Oliva  <aoliva@redhat.com>

	* doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
	(bootstrap-debug): Explain conditions in which it becomes default.
	(bootstrap-debug-big): Rather than duplicate bootstrap-debug,
	make it add to it.

2009-09-03  Namhyung Kim  <namhyung@gmail.com>

	* doc/invoke.texi (Optimize Options): Move
	-finline-small-functions to the -O2 list.

2009-09-03  Alexandre Oliva  <aoliva@redhat.com>

	* toplev.c (process_options): Enable var-tracking-assignments
	by default if var-tracking is enabled.

2009-09-02  David Daney  <ddaney@caviumnetworks.com>

	* cfgbuild.c (find_bb_boundaries): Split blocks containing a
	barrier.
	* emit-rtl.c (prev_nonnote_insn_bb): New function.
	* rtl.h (prev_nonnote_insn_bb): Declare it.

2009-09-03  Diego Novillo  <dnovillo@google.com>

	* cgraph.c (cgraph_node_for_decl): New.
	* cgraph.h (cgraph_node_for_decl): Declare.
	* tree.c (host_integerp): Return 0 if T is NULL.

2009-09-03  Diego Novillo  <dnovillo@google.com>

	* tree.h (struct alias_pair): Move from varasm.c.
	(alias_pairs): Likewise.
	(TYPE_MAXVAL): Define.
	(TYPE_MINVAL): Define.
	(iterative_hash_host_wide_int): Declare.
	(remove_unreachable_alias_pairs): Declare.
	* tree-pass.h (pass_ipa_free_lang_data): Declare.
	* diagnostic.c (default_diagnostic_starter): Make extern.
	(default_diagnostic_finalizer): Make extern.
	* diagnostic.h (default_diagnostic_starter): Declare.
	(default_diagnostic_finalizer): Declare.
	(default_tree_printer): Declare.
	* toplev.c (default_tree_printer): Make extern.

2009-09-03  Richard Guenther  <rguenther@suse.de>
	    Diego Novillo  <dnovillo@google.com>

	* cgraph.c (cgraph_add_new_function): Remove gimplification.
	* cgraphunit.c (cgraph_expand_function): Do not emit
	associated thunks from here.
	(cgraph_emit_thunks): New.
	(cgraph_optimize): Call it.
	Return if any IPA pass finds an error.
	* varasm.c (finish_aliases_1): Ignore errorneous aliases used
	by thunks.

2009-09-03  Simon Baldwin  <simonb@google.com>
	    Rafael Espindola  <espindola@google.com>
	    Richard Guenther  <rguenther@suse.de>
	    Doug Kwan  <dougkwan@google.com>
	    Diego Novillo  <dnovillo@google.com>

	* tree.c: Include tree-pass.h, langhooks-def.h,
	diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
	(free_lang_data_in_type): New.
	(need_assembler_name_p): New.
	(free_lang_data_in_block): New.
	(free_lang_data_in_decl): New.
	(struct free_lang_data_d): New.
	(add_tree_to_fld_list): New.
	(find_decls_types_r): New.
	(get_eh_types_for_runtime): New.
	(find_decls_types_in_eh_region): New.
	(find_decls_types_in_node): New.
	(find_decls_types_in_var): New.
	(free_lang_data_in_cgraph): New.
	(free_lang_data): New.
	(gate_free_lang_data): New.
	(pass_ipa_free_lang_data): New.

2009-09-03  Diego Novillo  <dnovillo@google.com>

	* timevar.def (TV_IPA_FREE_LANG_DATA): Define.
	* langhooks.h (struct lang_hooks): Add field free_lang_data.
	(lang_hooks): Remove const qualifier.
	* ipa.c (cgraph_remove_unreachable_nodes): Call
	remove_unreachable_alias_pairs.
	* except.c (add_type_for_runtime): Check if TYPE has
	already been converted.
	(lookup_type_for_runtime): Likewise.
	(check_handled): Handle converted types.
	* varasm.c (remove_unreachable_alias_pairs): New.
	* gimple.c: Include demangle.h.
	(gimple_decl_printable_name): New.
	(gimple_fold_obj_type_ref): New.
	* gimple.h (gimple_decl_printable_name): Declare.
	(gimple_fold_obj_type_ref): Declare.
	* passes.c (init_optimization_passes): Add pass
	pass_ipa_free_lang_data.
	* langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.

2009-09-03  Diego Novillo  <dnovillo@google.com>

	* c-lang.c (lang_hooks): Remove const qualifier.

2009-09-02  Loren James Rittle  <ljrittle@acm.org>

	* doc/install.texi (*-*-freebsd*): Update target information.

2009-09-02  Anatoly Sokolov  <aesok@post.ru>

	* hard-reg-set.h (call_fixed_regs): Remove.
	* reginfo.c (call_fixed_regs): Remove.
	(init_reg_sets_1): Remove initialization of call_fixed_regs.
	(globalize_reg): Don't use call_fixed_regs.
	* caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
	call_fixed_regs.

2009-09-01  Michael Matz  <matz@suse.de>

	* expr.h (emit_storent_insn, expand_expr_real_1,
	expand_expr_real_2): Declare.
	* expr.c (emit_storent_insn, expand_expr_real_1,
	expand_expr_real_2): Export.
	(store_expr): Setting and evaluating dont_return_target is useless.
	(expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
	LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
	* except.c (expand_resx_expr): Rename to ...
	(expand_resx_stmt): ... this.  Rewrite to take gimple statement.
	* except.h (expand_resx_stmt): Declare.
	* stmt.c: Add include gimple.h
	(expand_asm_expr): Rename to ...
	(expand_asm_stmt): ... this. Rewrite to take gimple statement.
	(expand_case): Rewrite to take gimple statement.
	* tree.h (expand_asm_stmt): Declare.
	(expand_case): Change prototype.
	* Makefile.in (stmt.o): Depend on gimple.h.
	* builtins.c (expand_builtin_synchronize): Build gimple asm
	statement, not an ASM_EXPR.
	* cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
	gimple_to_tree, release_stmt_tree): Remove.
	(expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
	ggc_free, but hold comparison code and operands separately.
	Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
	(expand_call_stmt, expand_gimple_stmt_1,
	expand_gimple_stmt): New helpers.
	(expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
	release_stmt_tree.  Call expand_gimple_stmt instead.
	(expand_gimple_basic_block): Ditto.

	* calls.c (emit_call_1): Don't look at EH regions here, make
	fntree parameter useless.
	(expand_call): New local rettype for TREE_TYPE(exp), use it
	throughout.  Remove local p, use addr instead.
	Don't look at EH regions here.

2009-09-02  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/invoke.texi (-fsched-pressure): Document it.
	(-fsched-reg-pressure-heuristic): Remove it.

	* reload.c (ira.h): Include.
	(find_reloads): Add choosing reload on number of small spilled
	classes.

	* haifa-sched.c (ira.h): Include.
	(sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
	saved_reg_pressure, curr_reg_live, saved_reg_live,
	region_ref_regs): New variables.
	(sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
	initiate_reg_pressure_info, setup_ref_regs,
	initiate_bb_reg_pressure_info, save_reg_pressure,
	restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
	functions.
	(setup_insn_reg_pressure_info): New function.
	(rank_for_schedule): Add pressure checking and insn issue time.
	Remove comparison of insn reg weights.
	(ready_sort): Set insn reg pressure info.
	(update_register_pressure, setup_insn_max_reg_pressure,
	update_reg_and_insn_max_reg_pressure,
	sched_setup_bb_reg_pressure_info): New functions.
	(schedule_insn): Add code for printing and updating reg pressure info.
	(find_set_reg_weight, find_insn_reg_weight): Remove.
	(ok_for_early_queue_removal): Do nothing if pressure_only_p.
	(debug_ready_list): Print reg pressure info.
	(schedule_block): Ditto.  Check insn issue time.
	(sched_init): Set up sched_pressure_p.  Allocate and set up some
	reg pressure related info.
	(sched_finish): Free some reg pressure related info.
	(fix_tick_ready): Make insn always ready if pressure_p.
	(init_h_i_d): Don't call find_insn_reg_weight.
	(haifa_finish_h_i_d): Free insn reg pressure info.

	* ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
	ira_memory_move_cost, ira_class_hard_regs,
	ira_class_hard_regs_num, ira_no_alloc_regs,
	ira_available_class_regs, ira_reg_class_cover_size,
	ira_reg_class_cover, ira_class_translate): Move to ira.h.

	* ira-lives.c (single_reg_class): Check mode to find how many
	registers are necessary for operand.
	(ira_implicitly_set_insn_hard_regs): New.

	* common.opt (fsched-pressure): New options.
	(fsched-reg-pressure-heuristic): Remove.

	* ira.c (setup_eliminable_regset): Rename to
	ira_setup_eliminable_regset.  Make it external.
	(expand_reg_info): Pass cover class to setup_reg_classes.
	(ira): Call resize_reg_info instead of allocate_reg_info.

	* sched-deps.c: Include ira.h.
	(implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
	(create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
	reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
	mark_insn_hard_regno_birth, mark_insn_reg_birth,
	mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
	mark_insn_reg_store, mark_insn_reg_clobber,
	setup_insn_reg_pressure_info): New.
	(sched_analyze_1): Update implicit_reg_pending_uses.
	(sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
	Use them to create dependencies.  Set insn reg uses and pressure
	info.  Process reg_pending_uses in one place.
	(free_deps): Free implicit sets.
	(remove_from_deps): Remove implicit sets if necessary.  Check
	implicit sets when clearing reg_last_in_use.
	(init_deps_global): Clear implicit_reg_pending_clobbers and
	implicit_reg_pending_uses.

	* ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
	ira_memory_move_cost, ira_class_hard_regs,
	ira_class_hard_regs_num, ira_no_alloc_regs,
	ira_available_class_regs, ira_reg_class_cover_size,
	ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
	(ira_setup_eliminable_regset, ira_set_pseudo_classes,
	ira_implicitly_set_insn_hard_regs): New prototypes.

	* ira-costs.c (pseudo_classes_defined_p, allocno_p,
	cost_elements_num): New variables.
	(allocno_costs, total_costs): Rename to costs and
	total_allocno_costs.
	(COSTS_OF_ALLOCNO): Rename to COSTS.
	(allocno_pref): Rename to pref.
	(allocno_pref_buffer): Rename to pref_buffer.
	(common_classes): Rename to regno_cover_class.
	(COST_INDEX): New.
	(record_reg_classes): Set allocno attributes only if allocno_p.
	(record_address_regs): Ditto.  Use COST_INDEX instead of ALLOCNO_NUM.
	(scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
	and COSTS_OF_ALLOCNO.
	(print_costs): Rename to print_allocno_costs.
	(print_pseudo_costs): New.
	(process_bb_node_for_costs): Split into 2 functions with new
	function process_bb_for_costs.  Pass BB to process_bb_for_costs.
	(find_allocno_class_costs): Rename to find_costs_and_classes.  Add
	new parameter dump_file.  Use cost_elements_num instead of
	ira_allocnos_num.  Make one iteration if preferred classes were
	already calculated for scheduler.  Make 2 versions of code
	depending on allocno_p.
	(setup_allocno_cover_class_and_costs): Check allocno_p.  Use
	regno_cover_class and COSTS instead of common_classes and
	COSTS_OF_ALLOCNO.
	(init_costs, finish_costs): New.
	(ira_costs): Set up allocno_p and cost_elements_num.  Call
	init_costs and finish_costs.
	(ira_set_pseudo_classes): New.

	* rtl.h (allocate_reg_info): Remove.
	(resize_reg_info): Change return type.
	(reg_cover_class): New.
	(setup_reg_classes): Add new parameter.

	* sched-int.h (struct deps_reg): New member implicit_sets.
	(sched_pressure_p, sched_regno_cover_class): New external definitions.
	(INCREASE_BITS): New macro.
	(struct reg_pressure_data, struct reg_use_data): New.
	(struct _haifa_insn_data): Remove reg_weight.  Add members
	reg_pressure, reg_use_list, reg_set_list, and
	reg_pressure_excess_cost_change.
	(struct deps): New member implicit_sets.
	(pressure_p): New variable.
	(COVER_CLASS_BITS, INCREASE_BITS): New macros.
	(struct reg_pressure_data, struct reg_use_data): New.
	(INSN_REG_WEIGHT): Remove.
	(INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
	INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
	(sched_init_region_reg_pressure_info,
	sched_setup_bb_reg_pressure_info): New prototypes.

	* reginfo.c (struct reg_pref): New member coverclass.
	(reg_cover_class): New function.
	(reginfo_init, pass_reginfo_init): Move after free_reg_info.
	(reg_info_size): New variable.
	(allocate_reg_info): Make static.  Setup reg_info_size.
	(resize_reg_info): Use reg_info_size.  Return flag of resizing.
	(setup_reg_classes): Add a new parameter.  Setup cover class too.

	* Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
	the dependencies.

	* sched-rgn.c (deps_join): Set up implicit_sets.
	(schedule_region): Set up region and basic blocks pressure
	relative info.

	* passes.c (init_optimization_passes): Move
	pass_subregs_of_mode_init before pass_sched.

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

	* tree-sra.c (struct access): New field grp_hint.
	(dump_access): Dump grp_hint.
	(sort_and_splice_var_accesses): Set grp_hint if a group is read
	multiple times.
	(analyze_access_subtree): Only scalarize accesses with grp_hint set or
	those which have been specifically read and somehow written to.
	(propagate_subacesses_accross_link): Set grp_hint of right child and
	also possibly of the left child.

2009-09-02  Jakub Jelinek  <jakub@redhat.com>

	* tree-object-size.c (addr_object_size): Always use object_size_type
	0 or 2 when determining the pointer pointed object size.

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

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

	* builtins.c (fold_builtin_memory_op): Use the alias oracle
	to query if the memory regions for memmove overlap.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
	asserts on pointers, instead deal with odd trees.
	(ptr_derefs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Constructor bases also never alias.

2009-08-01  Christian Bruel  <christian.bruel@st.com>

	Revert:
	2009-07-31  Christian Bruel  <christian.bruel@st.com>
	* gcc/config.gcc (sh*-*-elf): test with_libgloss.

2009-09-01  Alexandre Oliva  <aoliva@redhat.com>

	* doc/invoke.texi (-fvar-tracking-assignments): New.
	(-fvar-tracking-assignments-toggle): New.
	(-fdump-final-insns=file): Mark filename as optional.
	(--param min-nondebug-insn-uid): New.
	(-gdwarf-@{version}): Mention version 4.
	* opts.c (common_handle_option): Accept it.
	* tree-vrp.c (find_assert_locations_1): Skip debug stmts.
	* regrename.c (regrename_optimize): Drop last.  Don't count debug
	insns as uses.  Don't reject change because of debug insn.
	(do_replace): Reject DEBUG_INSN as chain starter.  Take base_regno
	from the chain starter, and check for inexact matches in DEBUG_INSNS.
	(scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
	(build_def_use): Simplify and fix the marking of DEBUG_INSNs.
	* sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
	* fwprop.c (forward_propagate_and_simplify): ...into debug insns.
	* doc/gimple.texi (is_gimple_debug): New.
	(gimple_debug_bind_p): New.
	(is_gimple_call, gimple_assign_cast_p): End sentence with period.
	* doc/install.texi (bootstrap-debug): More details.
	(bootstrap-debug-big, bootstrap-debug-lean): Document.
	(bootstrap-debug-lib): More details.
	(bootstrap-debug-ckovw): Update.
	(bootstrap-time): New.
	* tree-into-ssa.c (mark_def_sites): Skip debug stmts.
	(insert_phi_nodes_for): Insert debug stmts.
	(rewrite_stmt): Take iterator.  Insert debug stmts.
	(rewrite_enter_block): Adjust.
	(maybe_replace_use_in_debug_stmt): New.
	(rewrite_update_stmt): Use it.
	(mark_use_interesting): Return early for debug stmts.
	* tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
	stmts before replacing stmt.
	(move_computations_stmt): Likewise.
	* ira-conflicts.c (add_copies): Skip debug insns.
	* regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
	(regstat_bb_compute_ri): Skip debug insns.
	* tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
	check_loop_closed_ssa_stmt): Skip debug stmts.
	* tree-tailcall.c (find_tail_calls): Likewise.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
	* tree.h (MAY_HAVE_DEBUG_STMTS): New.
	(build_var_debug_value_stat): Declare.
	(build_var_debug_value): Define.
	(target_for_debug_bind): Declare.
	* reload.c (find_equiv_reg): Skip debug insns.
	* rtlanal.c (reg_used_between_p): Skip debug insns.
	(side_effects_p): Likewise.
	(canonicalize_condition): Likewise.
	* ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
	insns never depend on debug insns.
	(create_ddg_dep_no_link): Likewise.
	(add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
	Don't add inter-loop dependencies for debug insns.
	(build_intra_loop_deps): Likewise.
	(create_ddg): Count debug insns.
	* ddg.h (struct ddg::num_debug): New.
	(num_backargs): Pair up with previous int field.
	* diagnostic.c (diagnostic_report_diagnostic): Skip notes on
	-fcompare-debug-second.
	* final.c (get_attr_length_1): Skip debug insns.
	(rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
	* gcc.c (invoke_as): Call compare-debug-dump-opt.
	(driver_self_specs): Map -fdump-final-insns to
	-fdump-final-insns=..
	(get_local_tick): New.
	(compare_debug_dump_opt_spec_function): Test for . argument and
	compute output name.  Compute temp output spec without flag name.
	Compute -frandom-seed.
	(OPT): Undef after use.
	* cfgloopanal.c (num_loop_insns): Skip debug insns.
	(average_num_loop_insns): Likewise.
	* params.h (MIN_NONDEBUG_INSN_UID): New.
	* gimple.def (GIMPLE_DEBUG): New.
	* ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
	* auto-inc-dec.c (merge_in_block): Skip debug insns.
	(merge_in_block): Fix whitespace.
	* toplev.c (flag_var_tracking): Update comment.
	(flag_var_tracking_assignments): New.
	(flag_var_tracking_assignments_toggle): New.
	(process_options): Don't open final insns dump file if we're not
	going to write to it.  Compute defaults for var_tracking.
	* df-scan.c (df_insn_rescan_debug_internal): New.
	(df_uses_record): Handle debug insns.
	* haifa-sched.c (ready): Initialize n_debug.
	(contributes_to_priority): Skip debug insns.
	(dep_list_size): New.
	(priority): Use it.
	(rank_for_schedule): Likewise.  Schedule debug insns as soon as
	they're ready.  Disregard previous debug insns to make decisions.
	(queue_insn): Never queue debug insns.
	(ready_add, ready_remove_first, ready_remove): Count debug insns.
	(schedule_insn): Don't reject debug insns because of issue rate.
	(get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
	(queue_to_ready): Skip and discount debug insns.
	(choose_ready): Let debug insns through.
	(schedule_block): Check boundary debug insns.  Discount debug
	insns, schedule them early.  Adjust whitespace.
	(set_priorities): Check for boundary debug insns.
	(add_jump_dependencies): Use dep_list_size.
	(prev_non_location_insn): New.
	(check_cfg): Use it.
	* tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
	stmts.
	(remove_unused_ivs): Reset debug stmts.
	* modulo-sched.c (const_iteration_count): Skip debug insns.
	(res_MII): Discount debug insns.
	(loop_single_full_bb_p): Skip debug insns.
	(sms_schedule): Likewise.
	(sms_schedule_by_order): Likewise.
	(ps_has_conflicts): Likewise.
	* caller-save.c (refmarker_fn): New.
	(save_call_clobbered_regs): Replace regs with saved mem in
	debug insns.
	(mark_referenced_regs): Take pointer, mark and arg.  Adjust.
	Call refmarker_fn mark for hardregnos.
	(mark_reg_as_referenced): New.
	(replace_reg_with_saved_mem): New.
	* ipa-pure-const.c (check_stmt): Skip debug stmts.
	* cse.c (cse_insn): Canonicalize debug insns.  Skip them when
	searching back.
	(cse_extended_basic_block): Skip debug insns.
	(count_reg_usage): Likewise.
	(is_dead_reg): New, split out of...
	(set_live_p): ... here.
	(insn_live_p): Use it for debug insns.
	* tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
	(execute_optimize_stdarg): Likewise.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Don't regard
	changes in debug stmts as changes.
	* sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
	(moveup_expr): Don't move across debug insns.  Don't move
	debug insn if it would create a bookkeeping block.
	(moveup_expr_cached): Don't use cache for debug insns that
	are heads of blocks.
	(compute_av_set_inside_bb): Skip debug insns.
	(sel_rank_for_schedule): Schedule debug insns first.  Remove
	dead code.
	(block_valid_for_bookkeeping_p); Support lax searches.
	(create_block_for_bookkeeping): Adjust block numbers when
	encountering debug-only blocks.
	(find_place_for_bookkeeping): Deal with debug-only blocks.
	(generate_bookkeeping_insn): Accept no place to insert.
	(remove_temp_moveop_nops): New argument full_tidying.
	(prepare_place_to_insert): Deal with debug insns.
	(advance_state_on_fence): Debug insns don't start cycles.
	(update_boundaries): Take fence as argument.  Deal with
	debug insns.
	(schedule_expr_on_boundary): No full_tidying on debug insns.
	(fill_insns): Deal with debug insns.
	(track_scheduled_insns_and_blocks): Don't count debug insns.
	(need_nop_to_preserve_insn_bb): New, split out of...
	(remove_insn_from_stream): ... this.
	(fur_orig_expr_not_found): Skip debug insns.
	* rtl.def (VALUE): Move up.
	(DEBUG_INSN): New.
	* tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
	(nearest_common_dominator_of_uses): Take debug_stmts argument.
	Set it if debug stmts are found.
	(statement_sink_location): Skip debug stmts.  Propagate
	moving defs into debug stmts.
	* ifcvt.c (first_active_insn): Skip debug insns.
	(last_active_insns): Likewise.
	(cond_exec_process_insns): Likewise.
	(noce_process_if_block): Likewise.
	(check_cond_move_block): Likewise.
	(cond_move_convert_if_block): Likewise.
	(block_jumps_and_fallthru_p): Likewise.
	(dead_or_predicable): Likewise.
	* dwarf2out.c (debug_str_hash_forced): New.
	(find_AT_string): Add comment.
	(gen_label_for_indirect_string): New.
	(get_debug_string_label): New.
	(AT_string_form): Use it.
	(mem_loc_descriptor): Handle non-TLS symbols.  Handle MINUS , DIV,
	MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING.  Accept but
	discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
	several operations that cannot be represented with DWARF opcodes.
	(loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND.  Require
	dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
	(dwarf2out_var_location): Take during-call mark into account.
	(output_indirect_string): Update comment.  Output if there are
	label and references.
	(prune_indirect_string): New.
	(prune_unused_types): Call it if debug_str_hash_forced.
	More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
	(dw_long_long_const): Remove.
	(struct dw_val_struct): Change val_long_long type to rtx.
	(print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
	val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
	(output_die): Likewise.  Use HOST_BITS_PER_WIDE_INT size of each
	component instead of HOST_BITS_PER_LONG.
	(output_loc_operands): Likewise.  For const8* assert
	HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
	(output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
	rather than HOST_BITS_PER_LONG is >= 64.
	(add_AT_long_long): Remove val_hi and val_lo arguments, add
	val_const_double.
	(size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
	HOST_BITS_PER_LONG for dw_val_class_long_long.
	(add_const_value_attribute): Adjust add_AT_long_long caller.  Don't
	handle TLS SYMBOL_REFs.  If CONST wraps a constant, tail recurse.
	(dwarf_stack_op_name): Handle DW_OP_implicit_value and
	DW_OP_stack_value.
	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
	Handle DW_OP_implicit_value.
	(extract_int): Move prototype earlier.
	(mem_loc_descriptor): For SUBREG punt if inner
	mode size is wider than DWARF2_ADDR_SIZE.  Handle SIGN_EXTEND
	and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}.  Handle
	EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
	UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
	(loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
	instead of Pmode size.
	(loc_descriptor): Add MODE argument.  Handle CONST_INT, CONST_DOUBLE,
	CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
	attempt to handle other expressions.  Don't handle TLS SYMBOL_REFs.
	(concat_loc_descriptor, concatn_loc_descriptor,
	loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
	(add_location_or_const_value_attribute): Likewise.  For single
	location loc_lists attempt to use add_const_value_attribute
	for constant decls.  Add DW_AT_const_value even if
	NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
	in its expression.
	* cfgbuild.c (inside_basic_block_p): Handle debug insns.
	(control_flow_insn_p): Likewise.
	* tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
	(separate_decls_in_region_debug_bind): New.
	(separate_decls_in_region): Process debug bind stmts afterwards.
	* recog.c (verify_changes): Handle debug insns.
	(extract_insn): Likewise.
	(peephole2_optimize): Skip debug insns.
	* dse.c (scan_insn): Skip debug insns.
	* sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
	Pass it on.
	(setup_id_for_insn): Handle debug insns.
	(maybe_tidy_empty_bb): Adjust whitespace.
	(tidy_control_flow): Skip debug insns.
	(sel_remove_insn): Adjust for debug insns.
	(sel_estimate_number_of_insns): Skip debug insns.
	(create_insn_rtx_from_pattern): Handle debug insns.
	(create_copy_of_insn_rtx): Likewise.
	* sel-sched-.h (sel_bb_end): Declare.
	(sel_bb_empty_or_nop_p): New.
	(get_all_loop_exits): Use it.
	(_eligible_successor_edge_p): Likewise.
	(return_nop_to_pool): Adjust.
	* tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
	* ira-lives.c (process_bb_node_lives): Skip debug insns.
	* gimple-pretty-print.c (dump_gimple_debug): New.
	(dump_gimple_stmt): Use it.
	(dump_bb_header): Skip gimple debug stmts.
	* regmove.c (optimize_reg_copy_1): Discount debug insns.
	(fixup_match_2): Likewise.
	(regmove_backward_pass): Likewise.  Simplify combined
	replacement.  Handle debug insns.
	* function.c (instantiate_virtual_regs): Handle debug insns.
	* function.h (struct emit_status): Add x_cur_debug_insn_uid.
	* print-rtl.h: Include cselib.h.
	(print_rtx): Print VALUEs.  Split out and recurse for VAR_LOCATIONs.
	* df.h (df_inns_rescan_debug_internal): Declare.
	* gcse.c (alloc_hash_table): Estimate n_insns.
	(cprop_insn): Don't regard debug insns as changes.
	(bypass_conditional_jumps): Skip debug insns.
	(one_pre_gcse_pass): Adjust.
	(one_code_hoisting_pass): Likewise.
	(compute_ld_motion_mems): Skip debug insns.
	(one_cprop_pass): Adjust.
	* tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
	(if_convertible_stmt_p): Handle debug stmts.
	* init-regs.c (initialize_uninitialized_regs): Skip debug insns.
	* tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
	* ira-build.c (create_bb_allocnos): Skip debug insns.
	* tree-flow-inline.h (has_zero_uses): Discount debug stmts.
	(has_single_use): Likewise.
	(single_imm_use): Likewise.
	(num_imm_uses): Likewise.
	* tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
	(create_outofssa_var_map): Likewise.
	* lower-subreg.c (adjust_decomposed_uses): New.
	(resolve_debug): New.
	(decompose_multiword_subregs): Use it.
	* tree-dfa.c (find_referenced_vars): Skip debug stmts.
	* emit-rtl.c: Include params.h.
	(cur_debug_insn_uid): Define.
	(set_new_first_and_last_insn): Set cur_debug_insn_uid too.
	(copy_rtx_if_shared_1): Handle debug insns.
	(reset_used_flags): Likewise.
	(set_used_flags): LIkewise.
	(get_max_insn_count): New.
	(next_nondebug_insn): New.
	(prev_nondebug_insn): New.
	(make_debug_insn_raw): New.
	(emit_insn_before_noloc): Handle debug insns.
	(emit_jump_insn_before_noloc): Likewise.
	(emit_call_insn_before_noloc): Likewise.
	(emit_debug_insn_before_noloc): New.
	(emit_insn_after_noloc): Handle debug insns.
	(emit_jump_insn_after_noloc): Likewise.
	(emit_call_insn_after_noloc): Likewise.
	(emit_debug_insn_after_noloc): Likewise.
	(emit_insn_after): Take loc from earlier non-debug insn.
	(emit_jump_insn_after): Likewise.
	(emit_call_insn_after): Likewise.
	(emit_debug_insn_after_setloc): New.
	(emit_debug_insn_after): New.
	(emit_insn_before): Take loc from later non-debug insn.
	(emit_jump_insn_before): Likewise.
	(emit_call_insn_before): Likewise.
	(emit_debug_insn_before_setloc): New.
	(emit_debug_insn_before): New.
	(emit_insn): Handle debug insns.
	(emit_debug_insn): New.
	(emit_jump_insn): Handle debug insns.
	(emit_call_insn): Likewise.
	(emit): Likewise.
	(init_emit): Take min-nondebug-insn-uid into account.
	Initialize cur_debug_insn_uid.
	(emit_copy_of_insn_after): Handle debug insns.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
	location of single rhs in place.
	(maybe_dump_rtl_for_gimple_stmt): Dump lineno.
	(floor_sdiv_adjust): New.
	(cell_sdiv_adjust): New.
	(cell_udiv_adjust): New.
	(round_sdiv_adjust): New.
	(round_udiv_adjust): New.
	(wrap_constant): Moved from cselib.
	(unwrap_constant): New.
	(expand_debug_expr): New.
	(expand_debug_locations): New.
	(expand_gimple_basic_block): Drop hiding redeclaration.  Expand
	debug bind stmts.
	(gimple_expand_cfg): Expand debug locations.
	* cselib.c: Include tree-pass.h.
	(struct expand_value_data): New.
	(cselib_record_sets_hook): New.
	(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
	(cselib_clear_table): Move, and implemnet in terms of...
	(cselib_reset_table_with_next_value): ... this.
	(cselib_get_next_unknown_value): New.
	(discard_useless_locs): Don't discard preserved values.
	(cselib_preserve_value): New.
	(cselib_preserved_value_p): New.
	(cselib_preserve_definitely): New.
	(cselib_clear_preserve): New.
	(cselib_preserve_only_values): New.
	(new_cselib_val): Take rtx argument.  Dump it in details.
	(cselib_lookup_mem): Adjust.
	(expand_loc): Take regs_active in struct.  Adjust.  Silence
	dumps unless details are requested.
	(cselib_expand_value_rtx_cb): New.
	(cselib_expand_value_rtx): Rename and reimplment in terms of...
	(cselib_expand_value_rtx_1): ... this.  Adjust.  Silence dumps
	without details.  Copy more subregs.  Try to resolve values
	using a callback.  Wrap constants.
	(cselib_subst_to_values): Adjust.
	(cselib_log_lookup): New.
	(cselib_lookup): Call it.
	(cselib_invalidate_regno): Don't count preserved values as useless.
	(cselib_invalidate_mem): Likewise.
	(cselib_record_set): Likewise.
	(struct set): Renamed to cselib_set, moved to cselib.h.
	(cselib_record_sets): Adjust.  Call hook.
	(cselib_process_insn): Reset table when it would be cleared.
	(dump_cselib_val): New.
	(dump_cselib_table): New.
	* tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
	(remove_forwarder_block): Support moving debug stmts.
	* cselib.h (cselib_record_sets_hook): Declare.
	(cselib_expand_callback): New type.
	(cselib_expand_value_rtx_cb): Declare.
	(cselib_reset_table_with_next_value): Declare.
	(cselib_get_next_unknown_value): Declare.
	(cselib_preserve_value): Declare.
	(cselib_preserved_value_p): Declare.
	(cselib_preserve_only_values): Declare.
	(dump_cselib_table): Declare.
	* cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
	(try_crossjump_to_edge): Likewise.
	(delete_unreachable_blocks): Remove dominant GIMPLE blocks after
	dominated blocks when debug stmts are present.
	* simplify-rtx.c (delegitimize_mem_from_attrs): New.
	* tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
	(set_var_live_on_entry): Likewise.
	* loop-invariant.c (find_invariants_bb): Skip debug insns.
	* cfglayout.c (curr_location, last_location): Make static.
	(set_curr_insn_source_location): Don't avoid bouncing.
	(get_curr_insn_source_location): New.
	(get_curr_insn_block): New.
	(duplicate_insn_chain): Handle debug insns.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
	into debug stmts.
	* common.opt (fcompare-debug): Move to sort order.
	(fdump-unnumbered-links): Likewise.
	(fvar-tracking-assignments): New.
	(fvar-tracking-assignments-toggle): New.
	* tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
	because of debug stmts.
	(mark_stmt_if_obviously_necessary): Mark debug stmts.
	(eliminate_unnecessary_stmts): Walk dominated blocks before
	dominators.
	* tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
	* ira.c (memref_used_between_p): Skip debug insns.
	(update_equiv_regs): Likewise.
	* sched-deps.c (sd_lists_size): Accept empty list.
	(sd_init_insn): Mark debug insns.
	(sd_finish_insn): Unmark them.
	(sd_add_dep): Reject non-debug deps on debug insns.
	(fixup_sched_groups): Give debug insns group treatment.
	Skip debug insns.
	(sched_analyze_reg): Don't mark debug insns for sched before call.
	(sched_analyze_2): Handle debug insns.
	(sched_analyze_insn): Compute next non-debug insn.  Handle debug
	insns.
	(deps_analyze_insn): Handle debug insns.
	(deps_start_bb): Skip debug insns.
	(init_deps): Initialize last_debug_insn.
	* tree-ssa.c (target_for_debug_bind): New.
	(find_released_ssa_name): New.
	(propagate_var_def_into_debug_stmts): New.
	(propagate_defs_into_debug_stmts): New.
	(verify_ssa): Skip debug bind stmts without values.
	(warn_uninialized_vars): Skip debug stmts.
	* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
	* rtl.c (rtx_equal_p_cb): Handle VALUEs.
	(rtx_equal_p): Likewise.
	* ira-costs.c (scan_one_insn): Skip debug insns.
	(process_bb_node_for_hard_reg_moves): Likewise.
	* rtl.h (DEBUG_INSN_P): New.
	(NONDEBUG_INSN_P): New.
	(MAY_HAVE_DEBUG_INSNS): New.
	(INSN_P): Accept debug insns.
	(RTX_FRAME_RELATED_P): Likewise.
	(INSN_DELETED_P): Likewise
	(PAT_VAR_LOCATION_DECL): New.
	(PAT_VAR_LOCATION_LOC): New.
	(PAT_VAR_OCATION_STATUS): New.
	(NOTE_VAR_LOCATION_DECL): Reimplement.
	(NOTE_VAR_LOCATION_LOC): Likewise.
	(NOTE_VAR_LOCATION_STATUS): Likewise.
	(INSN_VAR_LOCATION): New.
	(INSN_VAR_LOCATION_DECL): New.
	(INSN_VAR_LOCATION_LOC): New.
	(INSN_VAR_LOCATION_STATUS): New.
	(gen_rtx_UNKNOWN_VAR_LOC): New.
	(VAR_LOC_UNKNOWN_P): New.
	(NOTE_DURING_CALL_P): New.
	(SCHED_GROUP_P): Accept debug insns.
	(emit_debug_insn_before): Declare.
	(emit_debug_insn_before_noloc): Declare.
	(emit_debug_insn_beore_setloc): Declare.
	(emit_debug_insn_after): Declare.
	(emit_debug_insn_after_noloc): Declare.
	(emit_debug_insn_after_setloc): Declare.
	(emit_debug_insn): Declare.
	(make_debug_insn_raw): Declare.
	(prev_nondebug_insn): Declare.
	(next_nondebug_insn): Declare.
	(delegitimize_mem_from_attrs): Declare.
	(get_max_insn_count): Declare.
	(wrap_constant): Declare.
	(unwrap_constant): Declare.
	(get_curr_insn_source_location): Declare.
	(get_curr_insn_block): Declare.
	* tree-inline.c (insert_debug_decl_map): New.
	(processing_debug_stmt): New.
	(remap_decl): Don't create new mappings in debug stmts.
	(remap_gimple_op_r): Don't add references in debug stmts.
	(copy_tree_body_r): Likewise.
	(remap_gimple_stmt): Handle debug bind stmts.
	(copy_bb): Skip debug stmts.
	(copy_edges_for_bb): Likewise.
	(copy_debug_stmt): New.
	(copy_debug_stmts): New.
	(copy_body): Copy debug stmts at the end.
	(insert_init_debug_bind): New.
	(insert_init_stmt): Take id.  Skip and emit debug stmts.
	(setup_one_parameter): Remap variable earlier, register debug mapping.
	(estimate_num_insns): Skip debug stmts.
	(expand_call_inline): Preserve debug_map.
	(optimize_inline_calls): Check for no debug_stmts left-overs.
	(unsave_expr_now): Preserve debug_map.
	(copy_gimple_seq_and_replace_locals): Likewise.
	(tree_function_versioning): Check for no debug_stmts left-overs.
	Init and destroy debug_map as needed.  Split edges unconditionally.
	(build_duplicate_type): Init and destroy debug_map as needed.
	* tree-inline.h: Include gimple.h instead of pointer-set.h.
	(struct copy_body_data): Add debug_stmts and debug_map.
	* sched-int.h (struct ready_list): Add n_debug.
	(struct deps): Add last_debug_insn.
	(DEBUG_INSN_SCHED_P): New.
	(BOUNDARY_DEBUG_INSN_P): New.
	(SCHEDULE_DEBUG_INSN_P): New.
	(sd_iterator_cond): Accept empty list.
	* combine.c (create_log_links): Skip debug insns.
	(combine_instructions): Likewise.
	(cleanup_auto_inc_dec): New.  From Jakub Jelinek: Make sure the
	return value is always unshared.
	(struct rtx_subst_pair): New.
	(auto_adjust_pair): New.
	(propagate_for_debug_subst): New.
	(propagate_for_debug): New.
	(try_combine): Skip debug insns.  Propagate removed defs into
	debug insns.
	(next_nonnote_nondebug_insn): New.
	(distribute_notes): Use it.  Skip debug insns.
	(distribute_links): Skip debug insns.
	* tree-outof-ssa.c (set_location_for_edge): Likewise.
	* resource.c (mark_target_live_regs): Likewise.
	* var-tracking.c: Include cselib.h and target.h.
	(enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
	MO_VAL_SET.
	(micro_operation_type_name): New.
	(enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
	(struct micro_operation_def): Update comments.
	(decl_or_value): New type.  Use instead of decls.
	(struct emit_note_data_def): Add vars.
	(struct attrs_def): Use decl_or_value.
	(struct variable_tracking_info_def): Add permp, flooded.
	(struct location_chain_def): Update comment.
	(struct variable_part_def): Use decl_or_value.
	(struct variable_def): Make var_part a variable length array.
	(valvar_pool): New.
	(scratch_regs): New.
	(cselib_hook_called): New.
	(dv_is_decl_p): New.
	(dv_is_value_p): New.
	(dv_as_decl): New.
	(dv_as_value): New.
	(dv_as_opaque): New.
	(dv_onepart_p): New.
	(dv_pool): New.
	(IS_DECL_CODE): New.
	(check_value_is_not_decl): New.
	(dv_from_decl): New.
	(dv_from_value): New.
	(dv_htab_hash): New.
	(variable_htab_hash): Use it.
	(variable_htab_eq): Support values.
	(variable_htab_free): Free from the right pool.
	(attrs_list_member, attrs_list_insert): Use decl_or_value.
	(attrs_list_union): Adjust.
	(attrs_list_mpdv_union): New.
	(tie_break_pointers): New.
	(canon_value_cmp): New.
	(unshare_variable): Return possibly-modified slot.
	(vars_copy_1): Adjust.
	(var_reg_decl_set): Adjust.  Split out of...
	(var_reg_set): ... this.
	(get_init_value): Adjust.
	(var_reg_delete_and_set): Adjust.
	(var_reg_delete): Adjust.
	(var_regno_delete): Adjust.
	(var_mem_decl_set): Split out of...
	(var_mem_set): ... this.
	(var_mem_delete_and_set): Adjust.
	(var_mem_delete): Adjust.
	(val_store): New.
	(val_reset): New.
	(val_resolve): New.
	(variable_union): Adjust.  Speed up merge of 1-part vars.
	(variable_canonicalize): Use unshared slot.
	(VALUED_RECURSED_INTO): New.
	(find_loc_in_1pdv): New.
	(struct dfset_merge): New.
	(insert_into_intersection): New.
	(intersect_loc_chains): New.
	(loc_cmp): New.
	(canonicalize_loc_order_check): New.
	(canonicalize_values_mark): New.
	(canonicalize_values_star): New.
	(variable_merge_over_cur): New.
	(variable_merge_over_src): New.
	(dataflow_set_merge): New.
	(dataflow_set_equiv_regs): New.
	(remove_duplicate_values): New.
	(struct dfset_post_merge): New.
	(variable_post_merge_new_vals): New.
	(variable_post_merge_perm_vals): New.
	(dataflow_post_merge_adjust): New.
	(find_mem_expr_in_1pdv): New.
	(dataflow_set_preserve_mem_locs): New.
	(dataflow_set_remove_mem_locs): New.
	(dataflow_set_clear_at_call): New.
	(onepart_variable_different_p): New.
	(variable_different_p): Use it.
	(dataflow_set_different_1): Adjust.  Make detailed dump more verbose.
	(track_expr_p): Add need_rtl parameter.  Don't generate rtl
	if not needed.
	(track_loc_p): Pass it true.
	(struct count_use_info): New.
	(find_use_val): New.
	(replace_expr_with_values): New.
	(log_op_type): New.
	(use_type): New, partially split out of...
	(count_uses): ... this.  Count new micro-ops.
	(count_uses_1): Adjust.
	(count_stores): Adjust.
	(count_with_sets): New.
	(VAL_NEEDS_RESOLUTION): New.
	(VAL_HOLDS_TRACK_EXPR): New.
	(VAL_EXPR_IS_COPIED): New.
	(VAL_EXPR_IS_CLOBBERED): New.
	(add_uses): Adjust.  Generate new micro-ops.
	(add_uses_1): Adjust.
	(add_stores): Generate new micro-ops.
	(add_with_sets): New.
	(find_src_status): Adjust.
	(find_src_set_src): Adjust.
	(compute_bb_dataflow): Use dataflow_set_clear_at_call.
	Handle new micro-ops.  Canonicalize value equivalances.
	(vt_find_locations): Compute total size of hash tables for
	dumping.  Perform merge for var-tracking-assignments.  Don't
	disregard single-block loops.
	(dump_attrs_list): Handle decl_or_value.
	(dump_variable): Take variable.  Deal with decl_or_value.
	(dump_variable_slot): New.
	(dump_vars): Use it.
	(dump_dataflow_sets): Adjust.
	(set_slot_part): New, extended to support one-part variables
	after splitting out of...
	(set_variable_part): ... this.
	(clobber_slot_part): New, split out of...
	(clobber_variable_part): ... this.
	(delete_slot_part): New, split out of...
	(delete_variable_part): .... this.
	(check_wrap_constant): New.
	(vt_expand_loc_callback): New.
	(vt_expand_loc): New.
	(emit_note_insn_var_location): Adjust.  Handle values.  Handle
	EMIT_NOTE_AFTER_CALL_INSN.
	(emit_notes_for_differences_1): Adjust.  Handle values.
	(emit_notes_for_differences_2): Likewise.
	(emit_notes_for_differences): Adjust.
	(emit_notes_in_bb): Take pointer to set.  Emit AFTER_CALL_INSN notes.
	Adjust.  Handle new micro-ops.
	(vt_add_function_parameters): Adjust.  Create and bind values.
	(vt_initialize): Adjust.  Initialize scratch_regs and
	valvar_pool, flooded and perm..  Initialize and use cselib.  Log
	operations.  Move some code to count_with_sets and add_with_sets.
	(delete_debug_insns): New.
	(vt_debug_insns_local): New.
	(vt_finalize): Release permp, valvar_pool, scratch_regs.  Finish
	cselib.
	(var_tracking_main): If var-tracking-assignments is enabled
	but var-tracking isn't, delete debug insns and leave.  Likewise
	if we exceed limits or fail the stack adjustments tests, and
	after all var-tracking processing.
	More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
	(dataflow_set): Add traversed_vars.
	(value_chain, const_value_chain): New typedefs.
	(value_chain_pool, value_chains): New variables.
	(value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
	add_value_chains, add_cselib_value_chains, remove_value_chain,
	remove_value_chains, remove_cselib_value_chains): New functions.
	(shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
	shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
	static inlines.
	(shared_hash_find_slot_unshare, shared_hash_find_slot,
	shared_hash_find_slot_noinsert, shared_hash_find): Update.
	(dst_can_be_shared): New variable.
	(unshare_variable): Unshare set->vars if shared, use shared_hash_*.
	Clear dst_can_be_shared.  If set->traversed_vars is non-NULL and
	different from set->vars, look up slot again instead of using the
	passed in slot.
	(dataflow_set_init): Initialize traversed_vars.
	(variable_union): Use shared_hash_*.  Use initially NO_INSERT
	lookup if set->vars is shared.  Don't keep slot cleared before
	calling unshare_variable.  Unshare set->vars if needed.  Adjust
	unshare_variable callers.  Clear dst_can_be_shared if needed.
	Even ->refcount == 1 vars must be unshared if set->vars is shared
	and var needs to be modified.
	(dataflow_set_union): Set traversed_vars during canonicalization.
	(VALUE_CHANGED, DECL_CHANGED): Define.
	(set_dv_changed, dv_changed_p): New static inlines.
	(track_expr_p): Clear DECL_CHANGED.
	(dump_dataflow_sets): Set it.
	(variable_was_changed): Call set_dv_changed.
	(emit_note_insn_var_location): Likewise.
	(changed_variables_stack): New variable.
	(check_changed_vars_1, check_changed_vars_2): New functions.
	(emit_notes_for_changes): Do nothing if changed_variables is
	empty.  Traverse changed_variables with check_changed_vars_1,
	call check_changed_vars_2 on each changed_variables_stack entry.
	(emit_notes_in_bb): Add SET argument.  Just clear it at the
	beginning, use it instead of local &set, don't destroy it at the end.
	(vt_emit_notes): Call dataflow_set_clear early on all
	VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
	computed set, dataflow_set_clear also VTI(bb)->in when we are
	done with the basic block.  Initialize changed_variables_stack,
	free it afterwards.  If ENABLE_CHECKING verify that after noting
	differences to an empty set value_chains hash table is empty.
	(vt_initialize): Initialize value_chains and value_chain_pool.
	(vt_finalize): Delete value_chains htab, free value_chain_pool.
	(variable_tracking_main): Call dump_dataflow_sets before calling
	vt_emit_notes, not after it.
	* tree-flow.h (propagate_defs_into_debug_stmts): Declare.
	(propagate_var_def_into_debug_stmts): Declare.
	* df-problems.c (df_lr_bb_local_compute): Skip debug insns.
	(df_set_note): Reject debug insns.
	(df_whole_mw_reg_dead_p): Take added_notes_p argument.  Don't
	add notes to debug insns.
	(df_note_bb_compute): Adjust.  Likewise.
	(df_simulate_uses): Skip debug insns.
	(df_simulate_initialize_backwards): Likewise.
	* reg-stack.c (subst_stack_regs_in_debug_insn): New.
	(subst_stack_regs_pat): Reject debug insns.
	(convert_regs_1): Handle debug insns.
	* Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
	(print-rtl.o): Depend on cselib.h.
	(cselib.o): Depend on TREE_PASS_H.
	(var-tracking.o): Depend on cselib.h and TARGET_H.
	* sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
	(init_ready_list): Skip boundary debug insns.
	(add_branch_dependences): Skip debug insns.
	(free_block_dependencies): Check for blocks with only debug insns.
	(compute_priorities): Likewise.
	* gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
	(gimple_build_with_ops_stat): Take subcode as unsigned.  Adjust
	all callers.
	(gimple_build_debug_bind_stat): New.
	(empty_body_p): Skip debug stmts.
	(gimple_has_side_effects): Likewise.
	(gimple_rhs_has_side_effects): Likewise.
	* gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
	(gimple_build_debug_bind_stat): Declare.
	(gimple_build_debug_bind): Define.
	(is_gimple_debug): New.
	(gimple_debug_bind_p): New.
	(gimple_debug_bind_get_var): New.
	(gimple_debug_bind_get_value): New.
	(gimple_debug_bind_get_value_ptr): New.
	(gimple_debug_bind_set_var): New.
	(gimple_debug_bind_set_value): New.
	(GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
	(gimple_debug_bind_reset_value): New.
	(gimple_debug_bind_has_value_p): New.
	(gsi_next_nondebug): New.
	(gsi_prev_nondebug): New.
	(gsi_start_nondebug_bb): New.
	(gsi_last_nondebug_bb): New.
	* sched-vis.c (print_pattern): Handle VAR_LOCATION.
	(print_insn): Handle DEBUG_INSN.
	* tree-cfg.c (remove_bb): Walk stmts backwards.  Let loc
	of first insn prevail.
	(first_stmt): Skip debug stmts.
	(first_non_label_stmt): Likewise.
	(last_stmt): Likewise.
	(has_zero_uses_1): New.
	(single_imm_use_1): New.
	(verify_gimple_debug): New.
	(verify_types_in_gimple_stmt): Handle debug stmts.
	(verify_stmt): Likewise.
	(debug_loop_num): Skip debug stmts.
	(remove_edge_and_dominated_blocks): Remove dominators last.
	* tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
	(linearize_expr): Likewise.
	* config/i386/i386.c (ix86_delegitimize_address): Call
	default implementation.
	* config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
	(group_barrier_needed): Skip debug insns.
	(emit_insn_group_barriers): Likewise.
	(emit_all_insn_group_barriers): Likewise.
	(ia64_variable_issue): Handle debug insns.
	(ia64_dfa_new_cycle): Likewise.
	(final_emit_insn_group_barriers): Skip debug insns.
	(ia64_dwarf2out_def_steady_cfa): Take frame argument.  Don't
	def cfa without frame.
	(process_set): Likewise.
	(process_for_unwind_directive): Pass frame on.
	* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
	(rs6000_delegitimize_address): New.
	(rs6000_debug_adjust_cost): Handle debug insns.
	(is_microcoded_insn): Likewise.
	(is_cracked_insn): Likewise.
	(is_nonpipeline_insn): Likewise.
	(insn_must_be_first_in_group): Likewise.
	(insn_must_be_last_in_group): Likewise.
	(force_new_group): Likewise.
	* cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
	contains only debug insns.
	(rtl_merge_blocks): Skip debug insns.
	(purge_dead_edges): Likewise.
	(rtl_block_ends_with_call_p): Skip debug insns.
	* dce.c (deletable_insn_p): Handle VAR_LOCATION.
	(mark_reg_dependencies): Skip debug insns.
	* params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
	* tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts): Skip debug stmts.
	* regcprop.c (replace_oldest_value_addr): Skip debug insns.
	(replace_oldest_value_mem): Use ALL_REGS for debug insns.
	(copyprop_hardreg_forward_1): Handle debug insns.
	* reload1.c (reload): Skip debug insns.  Replace unassigned
	pseudos in debug insns with their equivalences.
	(eliminate_regs_in_insn): Skip debug insns.
	(emit_input_reload_insns): Skip debug insns at first, adjust
	them later.
	* tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
	(get_indirect_ref_operands): Pass opf_no_vops on.
	(get_expr_operands): Likewise.  Skip debug stmts.
	(parse_ssa_operands): Scan debug insns with opf_no_vops.

2009-09-01  Richard Henderson  <rth@redhat.com>

	* tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
	stmt_ends_pp_p statements at least once.
	* tree-vrp.c (vrp_initialize): Likewise.
	(vrp_visit_stmt): Be prepared for non-interesting stmts.

2009-09-01  Dodji Seketeli  <dodji@redhat.com>

	PR bootstrap/41205
	Fix AIX bootstrap after PR debug/30161
	* dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
	that is a GNU extension.
	(tmpl_value_parm_die_table): Move the definition of this global
	outside #ifdef DWARF2_DEBUGGING_INFO region.

2009-09-01  Richard Guenther  <rguenther@suse.de>

	* tree.c (tree_expr_size): New function.
	* tree.h (tree_expr_size): Declare.
	* rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
	* builtins.c (fold_builtin_memory_op): Use tree_expr_size.
	* langhooks.c (lhd_expr_size): Remove.
	* langhooks.h (struct lang_hooks): Remove expr_size.
	* explow.c (expr_size): Use tree_expr_size.
	(int_expr_size): Likewise.
	* langhooks-def.h (lhd_expr_size): Remove.
	(LANG_HOOKS_EXPR_SIZE): Likewise.
	(LANG_HOOKS_INITIALIZER): Adjust.

2009-09-01  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (mark_addressable): Move declaration ...
	* tree.h (mark_addressable): ... here.
	* stmt.c (expand_asm_operands): Use mark_addressable, not
	lang_hooks.mark_addressable.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
	LANG_HOOKS_MARK_ADDRESSABLE.
	* langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
	* c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.

2009-08-31  Chris Demetriou  <cgd@google.com>

	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
	vectorize if not TARGET_SSE2.

2009-08-31  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
	registers if no coprocessor is enabled.

2009-08-31  Dodji Seketeli  <dodji@redhat.com>

	PR debug/30161
	* cgraph.h (cgraph_get_node): Declare ...
	* cgraph.c (cgraph_get_node): ... new function.
	* dwarf2out.c (gen_generic_params_dies,
	generic_parameter_die, tree_add_const_value_attribute_for_decl,
	make_ith_pack_parameter_name,
	append_entry_to_tmpl_value_parm_die_table,
	gen_remaining_tmpl_value_param_die_attribute): New functions.
	(gen_subprogram_die): Generate debug info for template parameters
	if debug info level is higher than DINFO_LEVEL_TERSE.
	Use tree_add_const_value_attribute_for_decl instead of
	tree_add_const_value_attribute.
	(gen_const_die): Use tree_add_const_value_attribute_for_decl
	instead of tree_add_const_value_attribute.
	(gen_struct_or_union_type_die): Generate debug
	info for template parameters if debug info level is higher than
	DINFO_LEVEL_TERSE.
	(tree_add_const_value_attribute): Handle integral and pointer
	constants. Update comment.
	(dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
	(dwarf_attr_name): Support DW_AT_GNU_template_name.
	(reference_to_unused): Fix thinko. Remove redundant predicates from
	tests.
	(tree_add_const_value_attribute): Make this work for constant
	expressions only.
	tree_add_const_value_attribute_for_decl is to be used for variable
	DECLs now.
	(add_location_or_const_value_attribute): Use
	tree_add_const_value_attribute_for_decl now.
	(dwarf2out_finish): Emit the DW_AT_const_value attribute of
	DW_TAG_template_value_param DIEs after function DIEs have been
	emitted.
	* langhooks.h (lang_hooks_for_types): Add
	get_argument_pack_elems.
	(lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
	(lang_hooks): Added get_innermost_generic_parms,
	get_innermost_generic_args.
	* langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
	LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
	LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
	LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.

2009-08-31  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (machine_function): Add frame_locked flag.  Set
	it once we start generating the prologue or epilogue.
	(mep_call_saves_register): If the frame is locked, re-use
	cached values.
	(mep_assign_save_slots): New, broken out from mep_expand_prologue.
	(mep_expand_prologue): Call it.
	(mep_expand_epilogue): Likewise.
	(mep_start_function): Use the same logic as mep_expand_prologue.
	(mep_pass_by_reference): Make logic more readable.
	(mep_return_in_memory): Zero-sized objects are passed in memory.
	(mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.

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

	* builtins.c (fold_builtin_memory_op): Use the alias oracle
	to query if the memory regions for memmove overlap.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
	asserts on pointers, instead deal with odd trees.
	(ptr_derefs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Constructor bases also never alias.

2009-08-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Final install): Adjust reference on where to
	order printed manuals.

2009-08-30  Olivier Hainque  <hainque@adacore.com>

	* dwarf2out.c (switch_to_frame_table_section): Move
	definition prior to first use.

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

	PR tree-optimization/41186
	* tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
	(ao_ref_init_from_ptr_and_size): New function.
	(ref_maybe_used_by_call_p_1): Be more precise tracking
	used ranges for builtin functions.
	(ref_maybe_used_by_call_p): Adjust.
	(call_may_clobber_ref_p_1): Be more precise tracking clobbered
	ranges for builtin functions.
	* tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.

2009-08-30  Alan Modra  <amodra@bigpond.net.au>

	PR target/41081
	* fwprop.c (get_reg_use_in): Delete.
	(free_load_extend): New function.
	(forward_propagate_subreg): Use it.

2009-08-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.

2009-08-29  Kai Tietz<kai.tietz@onevision.com>

	PR/41184
	* config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
	padding.

2009-08-29  Douglas B Rupp  <rupp@gnat.com>

	* crtstuff.c (__do_global_dtors_aux): Use atexit if no
	fini or fini_array section.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_bb): Call
	pbb_remove_duplicate_pdrs.
	* graphite-poly.c (can_collapse_pdr): Removed.
	(pdr_find_duplicate): Removed.
	(can_collapse_pdrs): New.
	(pbb_remove_duplicate_pdrs): New.
	(new_poly_dr): Do not look for duplicates.
	* graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
	(PBB_PDR_DUPLICATES_REMOVED): New.
	(pbb_remove_duplicate_pdrs): Declared.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (pbb_interchange_profitable_p): Adjust
	the strides by multiplying by PDR_NB_REFS.
	* graphite-poly.c (can_collapse_pdr): New.
	(pdr_find_duplicate): New.
	(new_poly_dr): Call pdr_find_duplicate.  Collapse duplicate PDRs.
	Initialize PDR_NB_REFS.
	* graphite-poly.h (struct poly_dr): Add field nb_refs.
	(PDR_NB_REFS): New.
	(new_poly_dr): Number of subscripts is a graphite_dim_t.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40965
	* graphite-poly.c (apply_poly_transforms): Remove legality test before
	any transform.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (pddr_original_scattering): Return NULL
	for read-read dependence relations.
	* graphite-poly.h (enum poly_dr_type): Fix comment.
	(pdr_read_p): New.
	(pdr_write_p): New.
	(pdr_may_write_p): New.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
	(struct poly_dr): Same.
	(new_poly_dr): Same.
	* graphite-poly.c (new_poly_dr): Same.
	* graphite-dependences.c (dot_deps): Disable call to system.

2009-08-28  Cary Coutant  <ccoutant@google.com>

	PR debug/41063
	* dwarf2out.c (gen_type_die_with_usage): Use proper context for
	struct/union/enum types local to a function.

2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
	pbb_strip_mine_time_depth.  Changed the implementation so that
	transformation is expressed as a transformation on
	time (scatttering) dimensions.  Also, ensures that the 2d+1
	scheduling format is preserved.
	(pbb_strip_mine_profitable_p): Profitability is based on the
	iteration number of a given time (scattering) dimension,
	and not on a original loop depth dimension.
	(pbb_strip_mine): Call pbb_number_of_iterations_at_time.
	(pbb_do_strip_mine): Call psct_dynamic_dim.
	* graphite-poly.c (pbb_number_of_iterations_at_time): New.
	* graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
	(pbb_nb_dynamic_scattering_transform): New.
	(psct_dynamic_dim): New.

2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>

	* graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
	* graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
	* graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
	* graphite-interchange.c (build_linearized_memory_access): Same.
	(memory_stride_in_loop): Same.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (pddr_original_scattering): New.
	(graphite_legal_transform_dr): Call pddr_original_scattering.
	(dot_deps_1): New.
	(dot_deps): New.
	* graphite-dependences.h (dot_deps): Declared.
	* graphite-poly.c (new_poly_dr): Initialize PDR_ID.
	(print_pdr): Print PDR_ID.
	* graphite-poly.h (struct poly_dr): Add field id.
	(PDR_ID): New.
	(pbb_index): New.
	* graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_carried_dependence_level_k): Do
	not delete the original dependence relation.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
	(eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
	(hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
	(free_poly_ddr): New.
	(pddr_is_empty): New.
	(dependence_polyhedron_1): Now returns a poly_ddr_p.
	(dependence_polyhedron): Same.  Remove useless gcc_assert.
	Remove fprintfs.
	(graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
	(graphite_carried_dependence_level_k): Call pddr_is_empty.
	* graphite-dependences.h (enum poly_dependence_kind): New.
	(poly_dr_pair): Renamed poly_ddr.  Added a field kind.
	(PDRP_SOURCE): Renamed PDDR_SOURCE.
	(PDRP_SINK): Renamed PDDR_SINK.
	(PDRP_DDP): Renamed PDDR_DDP.
	(PDDR_KIND): New.
	(free_poly_ddr): Declared.
	* graphite-poly.c (new_scop): Use the new hash function names.
	* graphite-poly.h (struct scop): Renamed field original_pdr_pairs
	into original_pddrs.
	(SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
	bounds with LT_EXPR to make niter analysis more precise on code
	generated by Graphite.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
	(graphite_legal_transform_bb): Same.
	(poly_drs_may_alias_p): Same.

2009-08-28  Richard Guenther  <rguenther@suse.de>

	* tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.

2009-08-28  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware.c: Include langhooks.h.
	(i386_nlm_encode_section_info): Simplify.
	(netware_override_options): Delete.
	* config/i386/netware.h (netware_override_options): Delete
	declaration.
	(OVERRIDE_OPTIONS): Delete definition.
	(SUBTARGET_OVERRIDE_OPTIONS): Define.
	(ASM_COMMENT_START): Define.
	* config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.

2009-08-28  Jan Beulich  <jbeulich@novell.com>

	* configure.ac: For in-tree ld, do a plain version check to
	determine whether comdat groups are supported.
	* configure: Regenerate.

2009-08-28  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
	always defined.  Reflect definition or absence of such for
	COLLECT_EXPORT_LIST.  Readability helper.
	(scanfilter): New enum, to help control what symbols
	are to be considered or ignored by scan_prog_file.
	(enum pass): Rename as "scanpass", moved together with scanfilter
	prior to scan_prog_file's prototype.
	(scan_prog_file): Accept and honor scanpass and scanfilter arguments.
	Group prototype with the scanpass/scanfilter definitions, factorize
	head comments for the several implementations at the prototype.
	(main): Reorganize the first pass link control to let AIX
	drag only the needed frame tables in executables.  Prevent
	frame tables collection during the scan aimed at static ctors.
	Pre-link and scan for frame tables later to compensate.
	* doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
	A C statement to issue assembly directives that create a reference
	to the given DWARF table identifier label from the current function
	section.
	* dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
	to differentiate first time section entry.  Only emit a .data
	tables start identifier label the first time around.
	(switch_to_frame_table_section): New function.  Helper for
	output_call_frame_info to switch possibly BACK into the eh_frame
	or the debug_frame section depending on FOR_EH.
	(output_call_frame_info): Use helper to first enter the proper
	frame section.
	(output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
	emit a link to the frame table start label from each function
	section.
	* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
	New function.  Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
	* config/rs6000/rs6000-protos.h: Declare it.
	* config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.

2009-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (split_branches): Check the result of
	next_active_insn.

2009-08-27  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
	using -pthread -fopenmp

2009-08-27  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/service.texi (service directory): Update URL.

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

	PR rtl-optimization/40861
	* simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
	extract word from a multi-word subreg for negative byte positions.

2009-08-27  Tristan Gingold  <gingold@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
	(SECTION_VMS_OVERLAY): Define.
	(ia64_vms_common_object_attribute): Added.  Handle the "common_object"
	attribute.
	(ia64_vms_elf_asm_named_section): Added.  Generate .section pseudo-op
	for common_object.
	(ia64_vms_output_aligned_decl_common): Added.  Generate pseudo-op for
	common_object declarations.
	(ia64_section_type_flags): Set section flag for common_object.
	* config/ia64/ia64-protos.h
	(ia64_vms_output_aligned_decl_common): Declare.
	(ia64_vms_elf_asm_named_section): Declare.

2009-08-27  Michael Matz  <matz@suse.de>

	* expr.c (expand_expr_real_2): New function taking exploded
	unary or binary expression, split out from ...
	(expand_expr_real_1): ... here.  Move over all unary/binary
	switch parts to above function, in particular these codes:
	PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
	MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
	ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
	FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
	FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
	BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
	BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
	LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
	NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
	UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
	WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
	VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
	VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
	VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
	VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
	VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
	VEC_PACK_FIX_TRUNC_EXPR.
	(<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
	full expression.

2009-08-27  Richard Guenther  <rguenther@suse.de>

	* gengtype.c (main): Handle uint64_t.
	* ipa-utils.c (get_base_var): Indent properly.
	* tree-ssa-live.c (debug_scope_block): New function.
	* tree-flow.h (debug_scope_block): Declare.
	* tree-ssa-copy.c (replace_exp_1): Add vertical space.
	* basic-block.h (enum profile_status): Rename to
	enum profile_status_d.
	(x_profile_status): Adjust type.

2009-08-27  Dodji Seketeli  <dodji@redhat.com>

	PR debug/41170
	* dwarf2out.c (get_context_die): Declare this static function.
	(gen_type_die_with_usage): Make sure a DIE is a generated for
	the context of a typedef.

2009-08-26  Anatoly Sokolov  <aesok@post.ru>

	* doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
	switch.

2009-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_output_sync): Declare.
	(mips_sync_loop_insns): Likewise.
	(mips_output_sync_loop): Replace first two parameters with an rtx.
	* config/mips/mips.c (mips_multi_member): New structure.
	(mips_multi_members): New variable.
	(mips_multi_start): New function.
	(mips_multi_add): Likewise.
	(mips_multi_add_insn): Likewise.
	(mips_multi_add_label): Likewise.
	(mips_multi_last_index): Likewise.
	(mips_multi_copy_insn): Likewise.
	(mips_multi_set_operand): Likewise.
	(mips_multi_write): Likewise.
	(mips_print_operand_punctuation): Remove '%|' and '%-'.
	(mips_init_print_operand_punct): Update accordingly.
	(mips_start_ll_sc_sync_block): New function.
	(mips_end_ll_sc_sync_block): Likewise.
	(mips_output_sync): Likewise.
	(mips_sync_insn1_template): Likewise.
	(mips_sync_insn2_template): Likewise.
	(mips_get_sync_operand): Likewise.
	(mips_process_sync_loop): Likewise.
	(mips_output_sync_loop): Use mips_process_sync_loop.
	(mips_sync_loop_insns): New function.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
	(MIPS_COMPARE_AND_SWAP_12): Likewise.
	(MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
	(MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
	(MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
	(MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
	(MIPS_SYNC_OLD_OP_12): Likewise.
	(MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
	(MIPS_SYNC_NEW_OP_12): Likewise.
	(MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
	(MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
	(MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
	(MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
	(MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
	(MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
	* config/mips/mips.md (sync_mem): New attribute.
	(sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
	(sync_exclusive_mask, sync_required_oldval): Likewise.
	(sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
	(sync_release_barrier): Likewise.
	(length): Handle sync loops.
	(sync): Use mips_output_sync.
	* config/mips/sync.md (*memory_barrier): Use mips_output_sync.
	(sync_compare_and_swap<mode>): Set the new sync_* attributes
	and use mips_output_sync_loop.
	(compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
	(sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
	(sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
	(sync_old_add<mode>, sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>, sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>, sync_nand<mode>): Likewise.
	(sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>, test_and_set_12): Likewise.

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

	PR middle-end/41163
	* gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
	the types to not match.
	* tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
	verification.
	* tree-ssa.c (useless_type_conversion_p): Conversions to
	pointers to unprototyped functions are useless.

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

	* tree-ssa-structalias.c (create_variable_info_for): Remove strange
	whole-program condition, prepare to be called for non-globals.
	(intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
	params build a representative with known type and track its fields.

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

	* config/alpha/sync.md: Update comment about unpredictable LL/SC lock
	clearing by a taken branch.
	(sync_<fetchop_name><mode>): Split when epilogue_completed is set,
	effectively after bbro pass.
	(sync_nand<mode>): Ditto.
	(sync_old_<fetchop_name><mode>): Ditto.
	(sync_old_nand<mode>): Ditto.
	(sync_new_<fetchop_name><mode>): Dito.
	(sync_new_nand<mode>): Ditto.
	(sync_compare_and_swap<mode>_1): Ditto.
	(*sync_compare_and_swap<mode>): Ditto.
	(sync_lock_test_and_set<mode>_1): Ditto.
	("sync_lock_test_and_set<mode>): Ditto.

2009-08-25  Douglas B Rupp  <rupp@gnat.com>

	* hwint.h (HOST_LONG_FORMAT): New macro
	* bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
	Use HOST_PTR_PRINTF.
	* system.h (HOST_PTR_PRINTF): Resurrect old macro
	* doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
	(HOST_PTR_PRINTF): Document.

2009-08-25 Jan Hubicka  <jh@suse.cz>

	* config/i386/bmmintrin.h: Replace by #error.

	Revert:
	Michael Meissner  <michael.meissner@amd.com>
	Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	Tony Linthicum  <tony.linthicum@amd.com>

	* config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
	(TARGET_ROUND): New macro for the round/ptest instructions which
	are shared between SSE4.1 and SSE5.
	(OPTION_MASK_ISA_ROUND): Ditto.
	(OPTION_ISA_ROUND): Ditto.
	(TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
	(TARGET_CPU_CPP_BUILTINS): Add SSE5 support.

	* config/i386/i386.opt (-msse5): New switch for SSE5 support.
	(-mfused-madd): New switch to give users control over whether the
	compiler optimizes to use the multiply/add SSE5 instructions.

	* config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
	(ix86_handle_option): Turn off 3dnow if -msse5.
	(override_options): Add SSE5 support.
	(print_operand): %Y prints comparison codes for SSE5 com/pcom
	instructions.
	(ix86_expand_sse_movcc): Add SSE5 support.
	(ix86_expand_sse5_unpack): New function to use pperm to unpack a
	vector type to the next largest size.
	(ix86_expand_sse5_pack): New function to use pperm to pack a
	vector type to the next smallest size.
	(IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
	(IX86_BUILTIN_FMADDSD): Ditto.
	(IX86_BUILTIN_FMADDPS): Ditto.
	(IX86_BUILTIN_FMADDPD): Ditto.
	(IX86_BUILTIN_FMSUBSS): Ditto.
	(IX86_BUILTIN_FMSUBSD): Ditto.
	(IX86_BUILTIN_FMSUBPS): Ditto.
	(IX86_BUILTIN_FMSUBPD): Ditto.
	(IX86_BUILTIN_FNMADDSS): Ditto.
	(IX86_BUILTIN_FNMADDSD): Ditto.
	(IX86_BUILTIN_FNMADDPS): Ditto.
	(IX86_BUILTIN_FNMADDPD): Ditto.
	(IX86_BUILTIN_FNMSUBSS): Ditto.
	(IX86_BUILTIN_FNMSUBSD): Ditto.
	(IX86_BUILTIN_FNMSUBPS): Ditto.
	(IX86_BUILTIN_FNMSUBPD): Ditto.
	(IX86_BUILTIN_PCMOV_V2DI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SI): Ditto.
	(IX86_BUILTIN_PCMOV_V8HI): Ditto.
	(IX86_BUILTIN_PCMOV_V16QI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SF): Ditto.
	(IX86_BUILTIN_PCMOV_V2DF): Ditto.
	(IX86_BUILTIN_PPERM): Ditto.
	(IX86_BUILTIN_PERMPS): Ditto.
	(IX86_BUILTIN_PERMPD): Ditto.
	(IX86_BUILTIN_PMACSSWW): Ditto.
	(IX86_BUILTIN_PMACSWW): Ditto.
	(IX86_BUILTIN_PMACSSWD): Ditto.
	(IX86_BUILTIN_PMACSWD): Ditto.
	(IX86_BUILTIN_PMACSSDD): Ditto.
	(IX86_BUILTIN_PMACSDD): Ditto.
	(IX86_BUILTIN_PMACSSDQL): Ditto.
	(IX86_BUILTIN_PMACSSDQH): Ditto.
	(IX86_BUILTIN_PMACSDQL): Ditto.
	(IX86_BUILTIN_PMACSDQH): Ditto.
	(IX86_BUILTIN_PMADCSSWD): Ditto.
	(IX86_BUILTIN_PMADCSWD): Ditto.
	(IX86_BUILTIN_PHADDBW): Ditto.
	(IX86_BUILTIN_PHADDBD): Ditto.
	(IX86_BUILTIN_PHADDBQ): Ditto.
	(IX86_BUILTIN_PHADDWD): Ditto.
	(IX86_BUILTIN_PHADDWQ): Ditto.
	(IX86_BUILTIN_PHADDDQ): Ditto.
	(IX86_BUILTIN_PHADDUBW): Ditto.
	(IX86_BUILTIN_PHADDUBD): Ditto.
	(IX86_BUILTIN_PHADDUBQ): Ditto.
	(IX86_BUILTIN_PHADDUWD): Ditto.
	(IX86_BUILTIN_PHADDUWQ): Ditto.
	(IX86_BUILTIN_PHADDUDQ): Ditto.
	(IX86_BUILTIN_PHSUBBW): Ditto.
	(IX86_BUILTIN_PHSUBWD): Ditto.
	(IX86_BUILTIN_PHSUBDQ): Ditto.
	(IX86_BUILTIN_PROTB): Ditto.
	(IX86_BUILTIN_PROTW): Ditto.
	(IX86_BUILTIN_PROTD): Ditto.
	(IX86_BUILTIN_PROTQ): Ditto.
	(IX86_BUILTIN_PROTB_IMM): Ditto.
	(IX86_BUILTIN_PROTW_IMM): Ditto.
	(IX86_BUILTIN_PROTD_IMM): Ditto.
	(IX86_BUILTIN_PROTQ_IMM): Ditto.
	(IX86_BUILTIN_PSHLB): Ditto.
	(IX86_BUILTIN_PSHLW): Ditto.
	(IX86_BUILTIN_PSHLD): Ditto.
	(IX86_BUILTIN_PSHLQ): Ditto.
	(IX86_BUILTIN_PSHAB): Ditto.
	(IX86_BUILTIN_PSHAW): Ditto.
	(IX86_BUILTIN_PSHAD): Ditto.
	(IX86_BUILTIN_PSHAQ): Ditto.
	(IX86_BUILTIN_FRCZSS): Ditto.
	(IX86_BUILTIN_FRCZSD): Ditto.
	(IX86_BUILTIN_FRCZPS): Ditto.
	(IX86_BUILTIN_FRCZPD): Ditto.
	(IX86_BUILTIN_CVTPH2PS): Ditto.
	(IX86_BUILTIN_CVTPS2PH): Ditto.
	(IX86_BUILTIN_COMEQSS): Ditto.
	(IX86_BUILTIN_COMNESS): Ditto.
	(IX86_BUILTIN_COMLTSS): Ditto.
	(IX86_BUILTIN_COMLESS): Ditto.
	(IX86_BUILTIN_COMGTSS): Ditto.
	(IX86_BUILTIN_COMGESS): Ditto.
	(IX86_BUILTIN_COMUEQSS): Ditto.
	(IX86_BUILTIN_COMUNESS): Ditto.
	(IX86_BUILTIN_COMULTSS): Ditto.
	(IX86_BUILTIN_COMULESS): Ditto.
	(IX86_BUILTIN_COMUGTSS): Ditto.
	(IX86_BUILTIN_COMUGESS): Ditto.
	(IX86_BUILTIN_COMORDSS): Ditto.
	(IX86_BUILTIN_COMUNORDSS): Ditto.
	(IX86_BUILTIN_COMFALSESS): Ditto.
	(IX86_BUILTIN_COMTRUESS): Ditto.
	(IX86_BUILTIN_COMEQSD): Ditto.
	(IX86_BUILTIN_COMNESD): Ditto.
	(IX86_BUILTIN_COMLTSD): Ditto.
	(IX86_BUILTIN_COMLESD): Ditto.
	(IX86_BUILTIN_COMGTSD): Ditto.
	(IX86_BUILTIN_COMGESD): Ditto.
	(IX86_BUILTIN_COMUEQSD): Ditto.
	(IX86_BUILTIN_COMUNESD): Ditto.
	(IX86_BUILTIN_COMULTSD): Ditto.
	(IX86_BUILTIN_COMULESD): Ditto.
	(IX86_BUILTIN_COMUGTSD): Ditto.
	(IX86_BUILTIN_COMUGESD): Ditto.
	(IX86_BUILTIN_COMORDSD): Ditto.
	(IX86_BUILTIN_COMUNORDSD): Ditto.
	(IX86_BUILTIN_COMFALSESD): Ditto.
	(IX86_BUILTIN_COMTRUESD): Ditto.
	(IX86_BUILTIN_COMEQPS): Ditto.
	(IX86_BUILTIN_COMNEPS): Ditto.
	(IX86_BUILTIN_COMLTPS): Ditto.
	(IX86_BUILTIN_COMLEPS): Ditto.
	(IX86_BUILTIN_COMGTPS): Ditto.
	(IX86_BUILTIN_COMGEPS): Ditto.
	(IX86_BUILTIN_COMUEQPS): Ditto.
	(IX86_BUILTIN_COMUNEPS): Ditto.
	(IX86_BUILTIN_COMULTPS): Ditto.
	(IX86_BUILTIN_COMULEPS): Ditto.
	(IX86_BUILTIN_COMUGTPS): Ditto.
	(IX86_BUILTIN_COMUGEPS): Ditto.
	(IX86_BUILTIN_COMORDPS): Ditto.
	(IX86_BUILTIN_COMUNORDPS): Ditto.
	(IX86_BUILTIN_COMFALSEPS): Ditto.
	(IX86_BUILTIN_COMTRUEPS): Ditto.
	(IX86_BUILTIN_COMEQPD): Ditto.
	(IX86_BUILTIN_COMNEPD): Ditto.
	(IX86_BUILTIN_COMLTPD): Ditto.
	(IX86_BUILTIN_COMLEPD): Ditto.
	(IX86_BUILTIN_COMGTPD): Ditto.
	(IX86_BUILTIN_COMGEPD): Ditto.
	(IX86_BUILTIN_COMUEQPD): Ditto.
	(IX86_BUILTIN_COMUNEPD): Ditto.
	(IX86_BUILTIN_COMULTPD): Ditto.
	(IX86_BUILTIN_COMULEPD): Ditto.
	(IX86_BUILTIN_COMUGTPD): Ditto.
	(IX86_BUILTIN_COMUGEPD): Ditto.
	(IX86_BUILTIN_COMORDPD): Ditto.
	(IX86_BUILTIN_COMUNORDPD): Ditto.
	(IX86_BUILTIN_COMFALSEPD): Ditto.
	(IX86_BUILTIN_COMTRUEPD): Ditto.
	(IX86_BUILTIN_PCOMEQUB): Ditto.
	(IX86_BUILTIN_PCOMNEUB): Ditto.
	(IX86_BUILTIN_PCOMLTUB): Ditto.
	(IX86_BUILTIN_PCOMLEUB): Ditto.
	(IX86_BUILTIN_PCOMGTUB): Ditto.
	(IX86_BUILTIN_PCOMGEUB): Ditto.
	(IX86_BUILTIN_PCOMFALSEUB): Ditto.
	(IX86_BUILTIN_PCOMTRUEUB): Ditto.
	(IX86_BUILTIN_PCOMEQUW): Ditto.
	(IX86_BUILTIN_PCOMNEUW): Ditto.
	(IX86_BUILTIN_PCOMLTUW): Ditto.
	(IX86_BUILTIN_PCOMLEUW): Ditto.
	(IX86_BUILTIN_PCOMGTUW): Ditto.
	(IX86_BUILTIN_PCOMGEUW): Ditto.
	(IX86_BUILTIN_PCOMFALSEUW): Ditto.
	(IX86_BUILTIN_PCOMTRUEUW): Ditto.
	(IX86_BUILTIN_PCOMEQUD): Ditto.
	(IX86_BUILTIN_PCOMNEUD): Ditto.
	(IX86_BUILTIN_PCOMLTUD): Ditto.
	(IX86_BUILTIN_PCOMLEUD): Ditto.
	(IX86_BUILTIN_PCOMGTUD): Ditto.
	(IX86_BUILTIN_PCOMGEUD): Ditto.
	(IX86_BUILTIN_PCOMFALSEUD): Ditto.
	(IX86_BUILTIN_PCOMTRUEUD): Ditto.
	(IX86_BUILTIN_PCOMEQUQ): Ditto.
	(IX86_BUILTIN_PCOMNEUQ): Ditto.
	(IX86_BUILTIN_PCOMLTUQ): Ditto.
	(IX86_BUILTIN_PCOMLEUQ): Ditto.
	(IX86_BUILTIN_PCOMGTUQ): Ditto.
	(IX86_BUILTIN_PCOMGEUQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEUQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEUQ): Ditto.
	(IX86_BUILTIN_PCOMEQB): Ditto.
	(IX86_BUILTIN_PCOMNEB): Ditto.
	(IX86_BUILTIN_PCOMLTB): Ditto.
	(IX86_BUILTIN_PCOMLEB): Ditto.
	(IX86_BUILTIN_PCOMGTB): Ditto.
	(IX86_BUILTIN_PCOMGEB): Ditto.
	(IX86_BUILTIN_PCOMFALSEB): Ditto.
	(IX86_BUILTIN_PCOMTRUEB): Ditto.
	(IX86_BUILTIN_PCOMEQW): Ditto.
	(IX86_BUILTIN_PCOMNEW): Ditto.
	(IX86_BUILTIN_PCOMLTW): Ditto.
	(IX86_BUILTIN_PCOMLEW): Ditto.
	(IX86_BUILTIN_PCOMGTW): Ditto.
	(IX86_BUILTIN_PCOMGEW): Ditto.
	(IX86_BUILTIN_PCOMFALSEW): Ditto.
	(IX86_BUILTIN_PCOMTRUEW): Ditto.
	(IX86_BUILTIN_PCOMEQD): Ditto.
	(IX86_BUILTIN_PCOMNED): Ditto.
	(IX86_BUILTIN_PCOMLTD): Ditto.
	(IX86_BUILTIN_PCOMLED): Ditto.
	(IX86_BUILTIN_PCOMGTD): Ditto.
	(IX86_BUILTIN_PCOMGED): Ditto.
	(IX86_BUILTIN_PCOMFALSED): Ditto.
	(IX86_BUILTIN_PCOMTRUED): Ditto.
	(IX86_BUILTIN_PCOMEQQ): Ditto.
	(IX86_BUILTIN_PCOMNEQ): Ditto.
	(IX86_BUILTIN_PCOMLTQ): Ditto.
	(IX86_BUILTIN_PCOMLEQ): Ditto.
	(IX86_BUILTIN_PCOMGTQ): Ditto.
	(IX86_BUILTIN_PCOMGEQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEQ): Ditto.
	(enum multi_arg_type): New enum for describing the various SSE5
	intrinsic argument types.
	(bdesc_multi_arg): New table for SSE5 intrinsics.
	(ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating SSE5
	intrinsics.
	(ix86_expand_builtin): Add SSE5 intrinsic support.
	(ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
	operand instructions.
	(ix86_expand_sse5_multiple_memory): New function to split the
	second memory reference from SSE5 instructions.
	(type_has_variadic_args_p): Delete in favor of stdarg_p.
	(ix86_return_pops_args): Use stdarg_p to determine if the function
	has variable arguments.
	(ix86_setup_incoming_varargs): Ditto.
	(x86_this_parameter): Ditto.

	* config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
	declaration.
	(ix86_expand_sse5_pack): Ditto.
	(ix86_sse5_valid_op_p): Ditto.
	(ix86_expand_sse5_multiple_memory): Ditto.

	* config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
	constant for SSE5 support.
	(UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
	(UNSPEC_SSE5_TRUEFALSE): Ditto.
	(UNSPEC_SSE5_PERMUTE): Ditto.
	(UNSPEC_SSE5_ASHIFT): Ditto.
	(UNSPEC_SSE5_LSHIFT): Ditto.
	(UNSPEC_FRCZ): Ditto.
	(UNSPEC_CVTPH2PS): Ditto.
	(UNSPEC_CVTPS2PH): Ditto.
	(PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
	(PCOM_TRUE): Ditto.
	(COM_FALSE_S): Ditto.
	(COM_FALSE_P): Ditto.
	(COM_TRUE_S): Ditto.
	(COM_TRUE_P): Ditto.
	(type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
	(unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
	types.
	(memory attribute): Ditto.
	(sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	Use SSE4_1_ROUND_* constants instead of hard coded numbers.
	(rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(floor<mode>2): Ditto.
	(ceil<mode>2): Ditto.
	(btrunc<mode>2): Ditto.
	(nearbyintdf2): Ditto.
	(nearbyintsf2): Ditto.
	(sse_setccsf): Disable if SSE5.
	(sse_setccdf): Ditto.
	(sse5_setcc<mode>): New support for SSE5 conditional move.
	(sse5_pcmov_<mode>): Ditto.

	* config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
	(SSEMODEF4): Ditto.
	(SSEMODEF2P): Ditto.
	(ssemodesuffixf4): New mode attribute for SSE5.
	(ssemodesuffixf2s): Ditto.
	(ssemodesuffixf2c): Ditto.
	(sserotatemax): Ditto.
	(ssescalarmode): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5.
	(sse_maskcmpv2df3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
	(sse5_vmfmadd<mode>4): Ditto.
	(sse5_fmsub<mode>4): Ditto.
	(sse5_vmfmsub<mode>4): Ditto.
	(sse5_fnmadd<mode>4): Ditto.
	(sse5_vmfnmadd<mode>4): Ditto.
	(sse5_fnmsub<mode>4): Ditto.
	(sse5_vmfnmsub<mode>4): Ditto.
	(sse5i_fmadd<mode>4): Ditto.
	(sse5i_fmsub<mode>4): Ditto.
	(sse5i_fnmadd<mode>4): Ditto.
	(sse5i_fnmsub<mode>4): Ditto.
	(sse5i_vmfmadd<mode>4): Ditto.
	(sse5i_vmfmsub<mode>4): Ditto.
	(sse5i_vmfnmadd<mode>4): Ditto.
	(sse5i_vmfnmsub<mode>4): Ditto.
	(mulv16qi3): Add SSE5 support.
	(mulv4si3): Ditto.
	(sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
	(sse2_mulv4si3): Disable if SSE5.
	(sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(sse4_1_roundps): Ditto.
	(sse4_1_roundsd): Ditto.
	(sse4_1_roundss): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
	be generated.
	(sse_maskcmpsf3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse2_maskcmpv2df3): Ditto.
	(sse2_maskcmpdf3): Ditto.
	(sse2_vmmaskcmpv2df3): Ditto.
	(sse2_eq<mode>3): Ditto.
	(sse2_gt<mode>3): Ditto.
	(sse5_pcmov_<mode>): Add SSE5 support.
	(vec_unpacku_hi_v16qi): Ditto.
	(vec_unpacks_hi_v16qi): Ditto.
	(vec_unpacku_lo_v16qi): Ditto.
	(vec_unpacks_lo_v16qi): Ditto.
	(vec_unpacku_hi_v8hi): Ditto.
	(vec_unpacks_hi_v8hi): Ditto.
	(vec_unpacku_lo_v8hi): Ditto.
	(vec_unpacks_lo_v8hi): Ditto.
	(vec_unpacku_hi_v4si): Ditto.
	(vec_unpacks_hi_v4si): Ditto.
	(vec_unpacku_lo_v4si): Ditto.
	(vec_unpacks_lo_v4si): Ditto.
	(sse5_pmacsww): New SSE5 intrinsic insn.
	(sse5_pmacssww): Ditto.
	(sse5_pmacsdd): Ditto.
	(sse5_pmacssdd): Ditto.
	(sse5_pmacssdql): Ditto.
	(sse5_pmacssdqh): Ditto.
	(sse5_pmacsdqh): Ditto.
	(sse5_pmacsswd): Ditto.
	(sse5_pmacswd): Ditto.
	(sse5_pmadcsswd): Ditto.
	(sse5_pmadcswd): Ditto.
	(sse5_pcmov_<move>): Conditional move support on SSE5.
	(sse5_phaddbw): New SSE5 intrinsic insn.
	(sse5_phaddbd): Ditto.
	(sse5_phaddbq): Ditto.
	(sse5_phaddwd): Ditto.
	(sse5_phaddwq): Ditto.
	(sse5_phadddq): Ditto.
	(sse5_phaddubw): Ditto.
	(sse5_phaddubd): Ditto.
	(sse5_phaddubq): Ditto.
	(sse5_phadduwd): Ditto.
	(sse5_phadduwq): Ditto.
	(sse5_phaddudq): Ditto.
	(sse5_phsubbw): Ditto.
	(sse5_phsubwd): Ditto.
	(sse5_phsubdq): Ditto.
	(sse5_pperm): Ditto.
	(sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
	(sse5_pperm_zero_v16qi_v8hi): Ditto.
	(sse5_pperm_sign_v8hi_v4si): Ditto.
	(sse5_pperm_zero_v8hi_v4si): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_pack_v2di_v4si): Ditto.
	(sse5_pperm_pack_v4si_v8hi): Ditto.
	(sse5_pperm_pack_v8hi_v16qi): Ditto.
	(sse5_perm<mode>): New SSE5 intrinsic insn.
	(rotl<mode>3): Ditto.
	(sse5_rotl<mode>3): Ditto.
	(sse5_ashl<mode>3): Ditto.
	(sse5_lshl<mode>3): Ditto.
	(sse5_frcz<mode>2): Ditto.
	(sse5s_frcz<mode>2): Ditto.
	(sse5_cvtph2ps): Ditto.
	(sse5_cvtps2ph): Ditto.
	(sse5_vmmaskcmp<mode>3): Ditto.
	(sse5_com_tf<mode>3): Ditto.
	(sse5_maskcmp<mode>3): Ditto.
	(sse5_maskcmp_uns<mode>3): Ditto.
	(sse5_maskcmp_uns2<mode>3): Ditto.
	(sse5_pcom_tf<mode>3): Ditto.

	* config/i386/predicates.md (sse5_comparison_float_operator):
	New predicate to match the comparison operators supported by
	the SSE5 com instruction.
	(ix86_comparison_int_operator): New predicate to match just the
	signed int comparisons.
	(ix86_comparison_uns_operator): New predicate to match just the
	unsigned int comparisons.

	* doc/invoke.texi (-msse5): Add documentation.
	(-mfused-madd): Ditto.

	* doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.

	* config.gcc (i[34567]86-*-*): Include bmmintrin.h and
	mmintrin-common.h.
	(x86_64-*-*): Ditto.

	* config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.

	* config/i386/bmmintrin.h: New file, provide common x86 compiler
	intrinisics for SSE5.

	* config/i386/smmintrin.h: Move instructions shared with SSE5 to
	mmintrin-common.h.

	* config/i386/mmintrin-common.h: New file, to contain common
	instructions between SSE4.1 and SSE5.

	* config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.
	(gen_regparm_prefix): Ditto.

	* config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
	prototype_p to determine if a function is prototyped.

2009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>

	* c-common.c (c_common_reswords) add the alignof keyword,
	with same RID as __alignof and __alignof__

2009-08-25  Anatoly Sokolov  <aesok@post.ru>

	* hooks.h (hook_bool_const_int_const_int_true): Declare.
	* hooks.c (hook_bool_const_int_const_int_true): New function.
	* target.h (struct gcc_target): Add can_eliminate field.
	* target-def.h (TARGET_CAN_ELIMINATE): Define.
	(TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
	* ira.c (setup_eliminable_regset): Use can_eliminate target hook.
	* reload1.c (update_eliminables, init_elim_table): (Ditto.).
	(elim_table): Revise comment.
	* system.h (CAN_ELIMINATE): Poison.
	* defaults.h (CAN_ELIMINATE): Remove.
	* doc/tm.texi (CAN_ELIMINATE): Revise documentation.

	* config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
	* config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
	Define macro.
	(alpha_vms_can_eliminate): Declare as static, change return type to
	bool.
	* config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.

	* config/arm/arm.h (CAN_ELIMINATE): Remove macro.
	* config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
	(arm_can_eliminate): New function.

	* config/avr/avr.h (CAN_ELIMINATE): Remove macro.
	* config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
	(avr_can_eliminate): Declare as static.
	* config/avr/avr-protos.h (avr_can_eliminate): Remove.

	* config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
	* config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
	(bfin_can_eliminate): New function.

	* config/crx/crx.h (CAN_ELIMINATE): Remove macro.
	* config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
	(crx_can_eliminate): New function.

	* config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
	* config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
	(fr30_can_eliminate): New function.

	* config/frv/frv.h (CAN_ELIMINATE): Remove macro.
	* config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
	(frv_can_eliminate): New function.

	* config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
	* config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
	(h8300_can_eliminate): New function.

	* config/i386/i386.h (CAN_ELIMINATE): Remove macro.
	* config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
	(i386_can_eliminate): Declare as static, change return type to bool.
	* config/i386/i386-protos.h (i386_can_eliminate): Remove.

	* config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
	* config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
	(ia64_can_eliminate): New function.

	* config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
	* config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
	(iq2000_can_eliminate): New function.

	* config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
	* config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
	(m32r_can_eliminate): New function.

	* config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
	* config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68hc11_can_eliminate): New function.

	* config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
	* config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68k_can_eliminate): New function.

	* config/mep/mep.h (CAN_ELIMINATE): Remove macro.
	* config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
	(mep_can_eliminate): New function.

	* config/mips/mips.h (CAN_ELIMINATE): Remove macro.
	* config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
	(mips_can_eliminate): New function.

	* config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
	* config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
	(rs6000_can_eliminate): New function.

	* config/s390/s390.h (CAN_ELIMINATE): Remove macro.
	* config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
	(s390_can_eliminate): Declare as static.
	* config/s390/s390-protos.h (sparc_can_eliminate): Remove.

	* config/score/score.h (CAN_ELIMINATE): Remove macro.
	* config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
	(score_can_eliminate): New function.

	* config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
	* config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
	(sparc_can_eliminate): Declare as static.
	* config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.

	* config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
	* config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
	(xstormy16_can_eliminate): New function.

	* config/v850/v850.h (CAN_ELIMINATE): Remove macro.
	* config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
	(v850_can_eliminate): New function.

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

	* config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
	(*cmpdf_internal): Enable for all ALPHA_FPTM levels.
	(*movdfcc_ext[1234]): Disable for IEEE mode.

2009-08-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (prepare_gimple_addressable): New static function.
	(gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
	it addressable.
	(gimplify_addr_expr): Invoke it similarly on the operand instead of
	manually fiddling with it.

2009-08-25  Michael Matz  <matz@suse.de>

	* expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
	* dojump.c (do_jump_by_parts_greater): Take two operands instead of
	full expression.
	(do_jump_by_parts_equality, do_compare_and_jump): Ditto.
	(jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
	(do_jump): Split out code for simple binary comparisons into ...
	(do_jump_1): ... this, taking the individual operands and code.
	Change callers to helper function above accordingly.
	* expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
	comparisons.

2009-08-25  Michael Matz  <matz@suse.de>

	* expr.h (struct separate_ops, sepops): New type for passing
	around an exploded simple expression.
	* optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
	Use this structure instead of expression tree.
	(get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
	expression, only its type.
	(expand_vec_cond_expr): Take type and individual operands instead
	of full expression.
	* optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
	expand_vec_shift_expr): Change prototype accordingly.
	* tree-vect-stmts.c (vectorizable_condition): Change call of
	expand_vec_cond_expr_p to pass only type.
	* expr.c (do_store_flags): Change prototype and implementation
	to take an exploded expression.
	(expand_expr_real_1): New local ops initialized with details
	of the full expression.  Use it instead of full
	expression in calls to do_store_flags, expand_vec_cond_expr,
	expand_widen_pattern_expr and expand_vec_shift_expr.

2009-08-25  Michael Matz  <matz@suse.de>

	* expr.c (expand_expr_real_1): New local treeop0, treeop1,
	treeop2 initialized with first three operands of the full expression.
	Substitute all TREE_OPERAND (exp, [012]) calls with them.

2009-08-25  Kai Tietz  <kai.tietz@onevision.com>

	* gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
	(__gthread_objc_condition_allocate): Mark arguments as unused.
	(__gthread_objc_condition_deallocate): Likewise.
	(__gthread_objc_condition_wait): Likewise.
	(__gthread_objc_condition_broadcast): Likewise.
	(__gthread_objc_condition_signal): Likewise.
	(__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
	(__gthread_objc_thread_id): Likewise.

2009-08-25  Janus Weil  <janus@gcc.gnu.org>

	PR middle-end/41149
	* tree-pretty-print.c (print_call_name): Print the correct call name
	for procedure pointer components.

2009-08-24  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_promote_function_mode): Call
	default_promote_function_mode when not VMS.

2009-08-24  Olivier Hainque  <hainque@adacore.com>

	* convert.c (convert_to_integer): Don't assume an input pointer is
	POINTER_SIZE wide.  Fetch from the type instead.

2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (AC_PREREQ): Bump to 2.64.

2009-08-24  Rafael Avila de Espindola  <espindola@google.com>

	* gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
	(process_command): Don't search standard_exec_prefix_1 and
	standard_exec_prefix_2.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (output_return_instruction): Handle for
	unified syntax.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_select_cc_mode): Handle subreg.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
	(*arm_movdf_vfp): Likewise.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
	(vashr<mode>3): Rename from ashr<mode>3.
	(vlshr<mode>3): Rename from lshr<mode>3.

2009-08-24  Kai Tietz  <kai.tietz@onevision.com>

	PR/40786
	* c-format.c (format_wanted_type): Add new member scalar_identity_flag.
	(check_format_info_main): Use scalar_identify_flag.
	(check_format_types): Check for scalar size identity if
	scalar_identify_flag is set.
	(printf_length_specs): Extend by new field.
	(asm_fprintf_length_specs): Likewise.
	(gcc_diag_length_specs): Likewise.
	(scanf_length_specs): Likewise.
	(strfmon_length_specs): Likewise.
	(gcc_gfc_length_specs): Likewise.
	* config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
	(ms_printf_flag_specs): Likewise.
	* c-format.h (format_length_info): Add new member scalar_identity_flag.

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

	PR target/40718
	* config/i386/i386.c (*call_pop_1): Disable for sibling calls.
	(*call_value_pop_1): Ditto.
	(*sibcall_pop_1): New insn pattern.
	(*sibcall_value_pop_1): Ditto.

2009-08-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/41081
	* config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
	ashrsi3_64): New.

2009-08-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/41081
	* fwprop.c (try_fwprop_subst): Allow multiple sets.
	(get_reg_use_in): New function.
	(forward_propagate_subreg): Propagate through subreg of zero_extend
	or sign_extend.

2009-08-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
	* config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Remove --with-datarootdir, --with-docdir,
	--with-htmldir switches.  No need to call AC_SUBST for
	datarootdir, docdir, htmldir any more.
	* configure: Regenerate.
	* doc/install.texi (Configuration): Document --datarootdir,
	--docdir, --htmldir, --pdfdir; update documentation for
	--infodir, --mandir.
	(Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
	M4 to 1.4.6.

	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2009-08-21  Douglas B Rupp  <rupp@gnat.com>
	    Olivier Hainque  <hainque@adacore.com>

	* config/ia64/ia64.c: Include libfuncs.h.
	(TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
	(ia64_expand_call): Use reg 25 on VMS.
	(ia64_initialize_trampoline): Fix for VMS ABI.
	(ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
	(ia64_function_arg): Initialize reg 25 on VMS.
	Fix OpenVMS ABI issues for varargs.
	For OpenVMS, emit the Argument Information register set in the
	incoming/sibcall case as well.
	(ia64_arg_type): New function.
	(ia64_function_arg_advance): Keep track of cum->words.
	Fix OpenVMS ABI issues for varargs.
	(ia64_function_value): On VMS, promote mode of non-aggregate types.
	(ia64_override_options): Set flag_no_common on VMS.
	(ia64_init_builtins): Disable FWRITE builtin.
	(ia64_asm_output_external): Call DO_CRTL_NAMES.
	(ia64_vms_init_libfuncs): Add decc$ routines.
	(ia64_vms_valid_pointer_mode): New function.
	(ia64_struct_value_rtx): Allways NULL_RTX on VMS.
	(ia64_promote_function_mode): New function
	* config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
	(LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
	(LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
	(INIT_CUMULATIVE_ARGS): Add atypes for VMS.
	(INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
	(ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
	Suppress trailing '#' if VALUE is numeric.
	* config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
	ia64_promote_function_mode.
	(TARGET_VALID_POINTER_MODE): Define.

2009-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/40671
	* config/rs6000/rs6000.c (rs6000_override_options): Use
	TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.

	PR target/41145
	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
	reporting of vector + decimal/boolean/complex error.

2009-08-21  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
	__vector double TYPE_DECL.

2009-08-21  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (MACHMODE): New define.  Include insn-modes.h if available.
	(CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
	* arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
	to pointer to enum machine_mode.  Update all callers as needed.

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

	* config/alpha/alpha.md (exception_receiver): Emit alternative
	GP load sequence if flag_reorder_blocks_and_partition is set.
	(*exception_receiver_2): Also enable when
	flag_reorder_blocks_and_partition is set.

2009-08-20  Matt Rice  <ratmice@gmail.com>
	    Diego Novillo  <dnovillo@google.com>

	* Makefile.in (PLUGIN_HEADERS): Include incpath.h and
	tree-ssa-sccvn.h.

2009-08-20  Richard Guenther  <rguenther@suse.de>

	* c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
	* c-tree.h (c_dup_lang_specific_decl): Remove.
	(struct lang_decl, struct lang_type): Move definitions ...
	* c-lang.h: ... here.  New file.
	* c-decl.c: Include c-lang.h.
	(c_dup_lang_specific_decl): Remove.
	* c-typeck.c: Include c-lang.h.
	* Makefile.in (c-decl.o): Add c-lang.h dependency.
	(c-typeck.o): Likewise.
	* c-config-lang.in (gtfiles): Add c-lang.h.
	* gengtype.c (get_output_file_with_visibility): Handle c-lang.h
	like c-tree.h.

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

	* config/alpha/alpha.c (alpha_end_function): Do not clear
	crtl->emit structure and free insn locators if cfun->is_thunk is true,
	this is now handled in generic code.

2009-08-20  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
	(s390_z10_fix_long_loop_prediction): New function.
	(s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
	(s390_reorg): Walk over the INSNs and invoke
	s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.

2009-08-20  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
	"*brx_64bit", "*brx_31bit"): New patterns.
	* config/s390/s390.c ('E'): New output modifier.

2009-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Richard Earnshaw  <richard.earnshaw@arm.com>

	* config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
	* config/arm/arm.md (*arm_movtas_ze): New pattern for movt.

2009-08-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
	patterns.
	* pa.c (emit_move_sequence): Check if address of operand1 is valid
	for mode mode of operand0 when doing secondary reload for SAR.

2009-08-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/41123
	* expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
	of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.

2009-08-19  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi (C++ Dialect Options): Note change of minimum
	supported template depth in C++0x.

2009-08-19  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
	free_after_compilation.
	* config/score/score7.c (score7_output_mi_thunk): Likewise.
	* config/score/score3.c (score3_output_mi_thunk): Likewise.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.

2009-08-19  Ian Lance Taylor  <iant@google.com>

	* doc/md.texi (Insn Canonicalizations): Correct canonicalization
	of (plus (mult (neg B) C) A).

2009-08-18  Michael Matz  <matz@suse.de>

	* omp-low.c (optimize_omp_library_calls): Use types_compatible_p
	instead of comparing TYPE_MAIN_VARIANT for equality.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern,
	vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
	* tree-vect-loop.c (vect_is_simple_reduction): Ditto.
	* gimplify.c (goa_lhs_expr_p): Ditto and use
	STRIP_USELESS_TYPE_CONVERSION.

2009-08-18  Michael Matz  <matz@suse.de>

	* tree-ssa-structalias.c (create_variable_info_for): Also mark
	first field in a struct.
	(intra_create_variable_infos): Don't deal with flag_argument_noalias.

2009-08-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
	locators before emit_insn is called.  Remove assert that
	cfun->is_thunk.
	(alpha_end_function): Clear crtl->emit structure and free insn
	locators if cfun->is_thunk is true.

2009-08-18  Jason Merrill  <jason@redhat.com>

	* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
	type if available.
	* configure.ac: Test for it.
	* configure, config.in: Regenerate.
	* doc/install.texi: Document --enable-gnu-unique-object.

2009-08-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41094
	* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
	pow(x,y*z) only if x is nonnegative.

2009-08-18  Jakub Jelinek  <jakub@redhat.com>

	* bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
	on jumps.

	PR target/40971
	* config/rs6000/rs6000.c (rs6000_legitimize_address): For
	[DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.

2009-08-17  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
	* config/m32c/prologue.md (epilogue_freit): New.
	(fset_b): New.
	* config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
	(bank_switch_p): Likewise.
	(fast_interrupt_p): Likewise.
	(interrupt_p): Likewise.
	(m32c_conditional_register_usage): Round memregs size up.
	(need_to_save): We only need to save $a0 when we use ENTER.
	(interrupt_p): Check for fast_interrupt too.
	(bank_switch_p): New.
	(fast_interrupt_p): New.
	(m32c_attribute_table): Add bank_switch and fast_interrupt.
	(m32c_emit_prolog): Support bank switching and fast interrupts.
	* doc/extend.texi (Function Attributes): Add bank_switch and
	fast_interrupt.

2009-08-17  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (vms_valid_pointer_mode): New function.
	* config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.

2009-08-16  Douglas B Rupp  <rupp@gnat.com>

	* doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
	(menu): Add IA-64/VMS Options.
	(IA-64/VMS Options): Likewise.

2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/38599
	* config/mips/mips.md (*lwxs): Use :P for pointer values.

2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_push_asm_switch): New function.
	(mips_pop_asm_switch): Likewise.
	* config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
	with...
	(mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
	(mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
	(mips_push_asm_switch, mips_pop_asm_switch): Likewise.
	(mips_print_operand_punctuation): Use them.  Check mips_noreorder
	instead of set_noreorder.
	(mips_output_function_prologue): Use the new functions.
	(mips_output_function_epilogue): Likewise.
	(mips_need_noat_wrapper_p): New function, split out from...
	(mips_final_prescan_insn, mips_final_postscan_insn): ...here.
	Use mips_push_asm_switch and mips_pop_asm_switch.
	* config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
	and mips_pop_asm_switch.
	(ASM_OUTPUT_REG_POP): Likewise.
	(DBR_OUTPUT_SEQEND): Remove boilerplate comment.
	Use mips_pop_asm_switch.
	(mips_asm_switch): New structure.
	(set_noreorder, set_nomacro): Replace with...
	(mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
	* config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
	instead of set_nomacro.
	(fix_truncsfsi2_macro): Likewise.
	(cprestore): Likewise.
	(hazard): Use mips_noreorder instead of set_noreorder.
	* config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.

2009-08-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
	from prev_active_insn.

2009-08-16  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
	* config/avr/avr.c (avr_override_options): Initialize
	avr_current_arch variable.
	(avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
	__AVR_HAVE_16BIT_SP__ according to the device type.
	(expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
	TARGET_TINY_STACK.
	(expand_epilogue): Use correct QI mode frame pointer for tiny stack.
	Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.

2009-08-16  Dodji Seketeli  <dodji@redhat.com>

	PR debug/37801
	* gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
	generating inlined subroutine die only. We shouldn't be
	called for anything else.
	(gen_block_die): Don't generate inline subroutine debug info for
	abstract blocks.

2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb): Print PBB index.

2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40981
	* graphite-interchange.c (ppl_max_for_le): Moved...
	* graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
	* graphite-ppl.c (ppl_max_for_le): ... here.  Correct the use of
	ppl_Pointset_Powerset_C_Polyhedron_maximize.
	* graphite-ppl.h (ppl_max_for_le): Declared.

2009-08-14  Olatunji Ruwase <tjruwase@google.com>

	* doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
	supported on all platforms.
	* target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
	* c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
	* c-pragma.c: Likewise.
	* target-def.h (TARGET_INITIALIZER): Remove
	TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
	* config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.

2009-08-14  Douglas B Rupp  <rupp@gnat.com>

	* config/ia64/fde-vms.c: New file.
	* config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
	* config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
	(MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
	(uw_frame_state_for): Only register a personality routine if it is
	known to be compatible with our expectations.
	(_Unwind_FindEnclosingFunction, uw_frame_state_for):
	Declare unw_table_entry stack variable and
	mod all calls to _Unwind_FindTableEntry to add arg.
	* config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
	(_Unwind_FindTableEntry): Add arg to prototype.

2009-08-14  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
	field 'signal_pfs_loc'.
	(uw_frame_state_for): Remove duplicate code dealing with leaf
	procedures without unwind info.
	If in the frame after unwinding through a signal handler, restore
	the AR.PFS register instead of the CFM if AR.PFS has not been saved.
	* config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
	'pfs_loc' to the AR.PFS location in the signal context; instead
	set 'signal_pfs_loc'.
	Manually generate the unwind info for the AR.PFS register.
	(ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
	ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
	(ia64_handle_unwabi): Test 'fs->unwabi' against them.
	Do not set 'pfs_loc' to the AR.PFS location in the signal context;
	instead set 'signal_pfs_loc'.
	Remove code preventing the AR.PFS register from being restored
	from the signal context.

2009-08-14  Douglas B Rupp  <rupp@gnat.com>
	    Tristan Gingold  <gingold@adacore.com>

	* config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
	* config/ia64/t-vms: New file.
	* config/ia64/vms64.h: New file.
	* config/ia64/vms.h: New file.
	* config/ia64/vms-crtinit.asm: New file.
	* config/ia64/vms_symvec_libgcc_s.opt: New file.
	* config/ia64/vms-unwind.h: New file.

2009-08-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_conditional_move): Handle
	TFmode compares.

2009-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/30789
	* builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
	Move declaration...
	* real.h (do_mpc_arg2): ... here.
	* fold-const.c (const_binop): Use MPC for complex MULT_EXPR
	and RDIV_EXPR.

2009-08-14  Rafael Avila de Espindola  <espindola@google.com>

	* final.c (add_debug_prefix_map): Don't use GC memory for
	old_prefix and new_prefix.

2009-08-14  Richard Guenther  <rguenther@suse.de>

	* ipa-prop.c (compute_complex_pass_through): If we cannot
	compute a non-varying offset for IPA_JF_ANCESTOR punt.

2009-08-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* c-lex.c (c_lex_with_flags): Increase size of local variable
	to avoid memory clobber.

2009-08-14  Paolo Bonzini  <bonzini@gnu.org>

	PR target/40934
	* config/i386/i386.c (ix86_fp_comparison_strategy):
	Only enable/disable sahf at function granularity.

2009-08-14  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/41064
	* reload1.c (reload_as_needed): Don't call extract_insn
	for known invalid replacements after calling
	validate_replace_rtx_group and verify_changes.

2009-08-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41019
	* config/i386/sse.md (SSEMODE124C8): New mode iterator.
	(vcond<SSEMODEF2P:mode>): Assert that operation is supported by
	ix86_expand_fp_vcond.
	(vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
	Assert that operation is supported by ix86_expand_int_vcond.
	(vcondu<SSEMODE124C8:mode>): Ditto.

2009-08-13  DJ Delorie  <dj@redhat.com>

	* config/i386/djgpp-stdint.h: New.
	* config.gcc (djgpp): Use it.

2009-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_override_options): When flag_exceptions or
	flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.

2009-08-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>

	* tree-ssa-loop-prefetch.c
	(prune_ref_by_group_reuse): Enhance probabilistic analysis
	for long-stride pruning.
	(compute_miss_rate): New function to compute the probability
	that two memory references access different cache lines.

2009-08-13  Dave Korn  <dave.korn.cygwin@gmail.com>

	* gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.

2009-08-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41047
	* tree-ssa-ccp.c (ccp_fold): When folding pointer additions
	use the constant pointer type.
	* gimplify.c (canonicalize_addr_expr): Canonicalize independent
	of CV qualifiers on the target pointer type.
	* tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
	conversion check before restrict check.

2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/41029
	* config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.

2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.

2009-08-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41011
	* ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
	and reference constructing.

2009-08-12  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/41012
	* tree-flow.h : New external interface.
	* gimple-low.c (check_call_arg): Change to public function.
	Remove argument mismatch check in lowering.
	* tree-inline.h (tree_can_inline_p): Interface change.
	* tree-inline.c (tree_can_inline_p): Fold argument mismatch check
	into this function.
	* ipa-inline.c (cgraph_decide_inlining_of_small_functions):
	Call change to tree_can_inline_p function.
	(cgraph_decide_inlining_incrementally): Ditto.

2009-08-12  Richard Sandiford  <rdsandiford@googlemail.com>

	PR tree-optimization/41031
	* tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
	on the partition variable rather than promote_mode on the source
	type.  Assert that the partition variable's type has the same
	mode as the source value's.

2009-08-12  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
	for for_return == 2.
	* function.c (assign_parm_setup_reg): Use for_return == 2, improve
	comments.
	* calls.c (expand_call): Fix typo.
	* explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
	and PARM_DECL.
	* stmt.c (expand_value_return): Use promote_function_mode to copy out
	of pseudo.
	* targhooks.c (default_promote_function_mode): Handle for_return == 2.
	* config/cris/cris.c (cris_promote_function_mode): Likewise.
	* config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
	* config/pa/pa.c (pa_promote_function_mode): Likewise.

2009-08-12  Andrew Haley  <aph@redhat.com>

	* config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/40103
	* graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".

2009-08-12  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
	* gimplify.c (gimplify_modify_expr): Do not use
	lang_hooks.types_compatible_p.
	* tree-ssa.c (useless_type_conversion_p): For aggregates
	just return false if the canonical types differ.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40980
	* sese.c (convert_for_phi_arg): New.
	(add_guard_exit_phis): Use convert_for_phi_arg.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
	unknown subscript upper bounds.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
	    Pranav Garg  <pranav.garg2107@gmail.com>

	* graphite-interchange.c (gather_access_strides): Removed.
	(ppl_max_for_le): New.
	(build_linearized_memory_access): New.
	(memory_stride_in_loop): New.
	(pbb_interchange_profitable_p): Reimplemented.
	* graphite-ppl.h (ppl_new_id_map): New.
	(ppl_interchange): New.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_subscript): Removed.
	(compute_array_size_cstr): Removed.
	(compute_array_size_poly): Removed.
	(compute_array_size): Removed.
	(gather_access_strides_poly): Removed.
	(gather_access_strides): Empty.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron_1): Replace
	pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.
	* graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
	Initialize PDR_NB_SUBSCRIPTS.
	(print_pdr_access_layout): Replace pdr_nb_subscripts with
	PDR_NB_SUBSCRIPTS.
	* graphite-poly.h (struct poly_dr): Add nb_subscripts field.
	(PDR_NB_SUBSCRIPTS): New.
	(pdr_nb_subscripts): Removed.
	(pdr_dim): Simplified.
	* graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
	with PDR_NB_SUBSCRIPTS.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_array_size): Remove use of
	PDR_DATA_CONTAINER.
	* graphite-poly.c (new_poly_dr): Remove argument data_container.
	Do not initialize PDR_DATA_CONTAINER.
	(print_pdr): Do not print PDR_DATA_CONTAINER.
	* graphite-poly.h (struct poly_dr): Remove data_container field.
	(PDR_DATA_CONTAINER): Removed.
	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
	PDR_DATA_CONTAINER.
	(build_poly_dr): Same.

2009-08-12  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_dr): Work on a
	copy of the dependence polyhedron.  Free the temporary objects.
	(graphite_carried_dependence_level_k): Free unused objects before
	returning.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
	Early return without analyzing the data dependences if no
	transform has been done.  Call restore_scattering if the transform
	is not legal.
	(graphite-interchange.c): Same.
	* graphite-poly.c (print_scattering_function): Test for
	PBB_TRANSFORMED.
	(graphite_read_transforms): Initialize PBB_TRANSFORMED.
	(apply_poly_transforms): Do not gcc_assert that
	the transform is legal.
	(new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
	Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
	PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
	(free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
	* graphite-poly.h (struct poly_scattering): New.
	(struct poly_bb): Add original, transformed, and saved fields.
	Remove transformed_scattering, original_scattering,
	nb_local_variables and nb_scattering_transform fields.
	(PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
	(poly_scattering_new): New.
	(poly_scattering_free): New.
	(poly_scattering_copy): New.
	(store_scattering_pbb): New.
	(store_scattering): New.
	(restore_scattering_pbb): New.
	(restore_scattering): New.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
	Initialize PBB_TRANSFORMED and PBB_ORIGINAL.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb): Add parentheses in the pretty print.
	(print_scop): Same.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Depends on PREDICT_H.
	* graphite.c: Include predict.h.
	(graphite_finalize): Call tree_estimate_probability.
	* predict.c (predict_loops): Do not call scev_initialize and
	scev_finalize.
	(tree_estimate_probability_bb): New.
	(tree_estimate_probability): Do not initialize loops: move that
	code to the driver.  Call tree_estimate_probability_bb.
	(tree_estimate_probability_driver): New.
	(pass_profile): Use tree_estimate_probability_driver.
	* predict.h (tree_estimate_probability): Declared.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
	* graphite-dependences.c (graphite_legal_transform): Add time to
	TV_GRAPHITE_DATA_DEPS.
	(dependency_between_pbbs_p): Same.
	* timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.

2009-08-12  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/41033
	* alias.c (nonoverlapping_component_refs_p): Punt when strict
	aliasing is disabled.

2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
	si_mask_operand, and_load_operand, low_bitmask_operand,
	and_reg_operand, and_operand): New predicates.
	* config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
	* config/mips/mips.c (and_operands_ok): New function.
	* config/mips/mips-protos.h (and_operands_ok): Declare it.
	* config/mips/mips.md (move_type): Add ext_ins and logical.
	(type): Handle them.
	(and<mode>3): Use and_reg_operand as the second operand's predicate.
	(*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
	shift_shift.  Remove commutative constraint modifier.
	(*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
	shift_shift.
	(*clear_upper32_dext): Remove define_insn_and_split.
	(*clear_upper32): Turn this define_insn_and_split ...
	(splitter for ANDing register with 0xffff_ffff): .. into this.

2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (try_widen_shift_mode): Factor out code to check if an
	integer constant is a low-order bitmask from here ...
	* rtlanal.c (low_bitmask_len): ... to here.
	* rtl.h (low_bitmask_len): Declare.

2009-08-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/8603
	* config/alpha/alpha.md (addsi3): Remove expander.
	(addsi3): Rename from *addsi3_internal insn pattern.
	(subsi3): Remove expander.
	(subsi3): Rename from *subsi3_internal insn pattern.

2009-08-11  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
	FWRITE_UNLOCKED.

2009-08-11  Vasiliy Fofanov  <fofanov@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
	that records that fit in 64 bits are returned by immediate value,
	as required by OpenVMS Calling Standard.
	(function_value): Adjust for above modification.
	(alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
	virtual_incoming_args_rtx as base object, not next_arg.
	* config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.

2009-08-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* reload.c (find_reloads_subreg_address): Check the original
	req_equiv_mem address to detect the case where an address is
	not valid in the outer mode.

2009-08-11  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/40788
	* builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.

2009-08-10  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
	(OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.

2009-08-10  Olivier Hainque  <hainqueu@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_sa_size): Force procedure type to
	PT_STACK when frame_pointer_needed on OpenVMS.
	(alpha_pv_save_size, alpha_using_fp): Remove.
	(alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
	with proper processing for PT_NULL.
	(alpha_vms_initial_elimination_offset): New function. Support for
	INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
	(alpha_sa_size): Force procedure type to PT_STACK when
	frame_pointer_needed on OpenVMS.
	* config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
	(alpha_using_fp): Likewise.
	(alpha_vms_can_eliminate): Add prototype.
	(alpha_vms_initial_elimination_offset): Likewise.
	* config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
	Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.

2009-08-10  Eric Botcazou  <botcazou@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (common_object_handler): New function.
	(vms_attribute_table): Declare a single attribute "common_object".
	(vms_output_aligned_decl_common): New global function.
	(SECTION_VMS_OVERLAY): Delete.
	(SECTION_VMS_GLOBAL): Likewise.
	(SECTION_VMS_INITIALIZE): Likewise.
	(vms_asm_named_section): Remove support for above flags.
	(vms_section_type_flags): Delete.
	(TARGET_SECTION_TYPE_FLAGS): Likewise.
	* config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
	* config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.

2009-08-10  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	PR target/41015
	* longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
	(sub_ddmmss): Likewise.

2009-08-10  Andreas Tobler  <a.tobler@schweiz.org>

	PR bootstrap/41018
	* config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
	year.

2009-08-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/37053
	* reload1.c (reload_as_needed): Use cancel_changes to completely
	undo a failed replacement attempt.

2009-08-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41006
	* tree-ssa.c (useless_type_conversion_p_1): Fold into ...
	(useless_type_conversion_p): ... here.  Require pointer targets
	to be compatible.

2009-08-10  Dodji Seketeli  <dodji@redhat.com>

	PR c++/40866
	* tree-inline.c (copy_statement_list): The resulting copy shouldn't
	loose the original type of the statement list.

2009-08-09  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c: Include libfuncs.h
	(avms_asm_output_extern): New function.
	(alpha_init_libfuncs): Init some decc libfuncs.
	* config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
	* config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
	(DO_CRTL_NAMES): Define.
	(LIB_SPEC): Remove.
	* config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef.
	(LONG_TYPE_SIZE): Define.
	(TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
	(SUBTARGET_SWITCHES): Define malloc64 switch.
	(TARGET_DEFAULT): Default MASK_MALLOC64 set.
	(MASK_RETURN_ADDR): Define.
	doc/invoke.texi (mmalloc64): Document switch.

2009-08-09  Olivier Hainque  <hainque@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (struct machine_function): New flag for VMS,
	uses_condition_handler.
	(alpha_expand_builtin_establish_vms_condition_handler): New expander.
	(alpha_expand_builtin_revert_vms_condition_handler): New expander.
	(enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
	and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
	(code_for_builtin): New insn codes for the new alpha_builtins.
	(alpha_init_builtins): Register the new functions as BUILT_IN_MD.
	(alpha_sa_size): Account for uses_condition_handler.
	(alpha_expand_prologue): Likewise.
	(alpha_start_function): Likewise.
	(alpha_expand_epilogue): Likewise.
	* config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
	establish/revert expanders.
	* config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
	* config/alpha/alpha.md	(builtin_establish_vms_condition_handler):
	New expander, resorting to the alpha.c associated function.
	(builtin_revert_vms_condition_handler): Likewise.
	* config/alpha/vms-gcc_shell_handler.c: New file. Implements
	__gcc_shell_handler, the static VMS condition handler used as
	an indirection wrapper to the current dynamically established
	handler.
	* config/alpha/vms-unwind.h: Complete rewrite.
	* config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
	* config/alpha/vms.h (MD_UNWIND_SUPPORT):

2009-08-09  Eric Botcazou  <botcazou@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_links): Add 'target' field.
	(alpha_need_linkage): Handle aliases.  Return function symbol.
	(alpha_use_linkage): Rename 'linkage' argument to 'func'.
	Use ultimate alias target for the linkage name.
	* config/alpha/alpha.md (movmemdi): Use the symbol returned
	by alpha_need_linkage for the function symbol.
	(setmemdi): Likewise.

2009-08-09  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
	* config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
	(ASM_WEAKEN_LABEL): Define.
	(CRT_CALL_STATIC_FUNCTION): Define.
	(STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
	(ENDFILE_SPEC): Define.
	(INIT_SECTION_ASM_OP): Define.
	* config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
	* config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
	crtend.o crtendS.o.
	(MULTILIB_OSDIRNAMES): Define.
	(shlib_version): Define.
	(SHLIB_EXT): Define.
	(SHLIB_OBJS): Define.
	(SHLIB_NAME): Define.
	(SHLIB_MULTILIB): Define.
	(SHLIB_INSTALL): Define.
	(SHLIB_SYMVEC): Define.
	(SHLIB_SYMVECX2): Define.
	(SHLIB_LINK): Define.

2009-08-09  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_initialize_trampoline):
	Initialize VMS trampoline IAW ABI for bounded procedure calls.
	(alpha_start_function): Emit transfer address on nested functions
	for VMS trampoline call.
	* config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
	since no longer used.
	* config/alpha/vms-tramp.asm: Remove.
	* config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
	since now only data initialized at runtime.

2009-08-09  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
	(LINK_GCC_C_SEQUENCE_SPEC): Define.
	(MD_EXEC_PREFIX): Remove, no longer used.
	(MD_STARTFILE_PREFIX): Likewise.
	(INCLUDE_DEFAULTS): Likewise.
	* config/alpha/t-vms:
	(vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.

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

	PR tree-optimization/41016
	* tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
	(operand_precision): Remove.
	(integral_operand_p): Likewise.
	(recognize_single_bit_test): Adjust.

2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-common.c (c_fully_fold_internal): Issue a warning if a binary
	operation overflows.  Likewise non-cast unary arithmetic.
	If one arm of a conditional expression is always taken,
	inhibit evaluation warnings for the other arm.  Likewise inhibit
	evaluation warnings for the second && or || operand if the first
	operand is enough to determine the result.
	* c-typeck.c (build_conditional_expr): Apply the same inhibition
	rules here.
	(build_binary_op): Prevent duplicate evaluation warnings.

2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
	and destination have different modes, Use promote_mode to
	determine the signedness of the conversion.  Assert that the
	promoted source mode matches the destination mode.  Don't pass
	the destination and destination mode to expand_expr if the source
	mode is different.  Simplify conversion logic.

2009-08-09  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/41008
	* tree-vect-loop.c (vect_is_simple_reduction): Get operands
	from condition only in case it's a comparison. Adjust checks.

2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
	* tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
	* tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
	(enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
	(dump_cand): Handle them.
	(struct iv_cand): New members COST_STEP and AINC_USE.
	(stmt_after_increment): Likewise.
	(stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
	callers changed.  Use gimple_uid comparison instead of scanning.
	(add_candidate_1): When looking for identical candidates, take
	AINC_USE into account.  Set it for new candidates.
	(force_expr_to_var_cost): Cast target_spill_cost to int.
	(get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
	All callers changed.  Check for availability of autoinc addressing
	modes, both in general for a given mode, and in the specific use case.
	(get_computation_cost_at): New argument CAN_AUTOINC.  All callers
	changed.
	(get_computation_cost): Likewise.
	(autoinc_possible_for_pair, set_autoinc_for_original_candidates,
	add_autoinc_candidates): New static functions.
	(add_candidate): Call add_autoinc_candidates for candidates based on
	a USE_ADDRESS use.
	(find_iv_candidates): Call set_autoinc_for_original_candidates.
	(determine_use_iv_cost_address): If we have an autoinc candidate at
	the matching use, verify autoinc is possible and subtract the cost
	of the candidate's step from the cost.
	(determine_iv_cost): Record the cost of the increment in the COST_STEP
	member of the candidate.
	(tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
	determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.

2009-08-09  Douglas B Rupp  <rupp@gnat.com>

	* config.build (ia64-hp-*vms*): New target.
	(alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
	with ia64-hp-*vms*.
	* config.gcc (ia64-hp-*vms*): New target.
	(alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
	with ia64-hp-*vms*.
	* config.host (ia64-hp-*vms*): New target.
	(alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
	with ia64-hp-*vms*.

2009-08-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40991
	* tree-ssa-pre.c (eliminate): Delay purging EH edges.

2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
	mode check.  Do truncations in an integer mode.
	(force_to_mode): Handle subregs for all mode types.  Only do
	arithmetic simplifications on integer modes.

2009-08-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40999
	* tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
	(maybe_fold_reference): Lookup constant initializers.
	(fold_gimple_assign): Likewise.

2009-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (useless_type_conversion_p_1): Only for types
	that require structural equality defer to the langhook.

2009-08-07  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
	comments.
	(struct ipa_pass_through_data): New type.
	(struct ipa_ancestor_jf_data): New type.
	(union jump_func_value): Removed field formal_id, added fields
	pass_through and ancestor.
	(struct ipa_param_call_note): Changed type of formal_id to int from
	unsigned.
	* ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
	operations jump functions and ancestor jump functions.
	(compute_complex_pass_through): New function.
	(compute_scalar_jump_functions): Call compute_complex_pass_through,
	reflect changes in the jump function strucutre.
	(update_jump_functions_after_inlining): Ignore complex pass-through
	and ancestor jump functions.
	* ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
	polynomial pass-through with operation jump functions.

2009-08-07  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_fde): When doing hot/cold partitioning, use
	fde->dw_fde_begin as begin label instead of hot/cold label.
	Use LLSDAC label instead of LLSDA for second section lsda.
	(dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
	label instead of LLSDA if it is true.
	(dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
	callers.
	* except.c (add_call_site, dw2_size_of_call_site_table): Add
	SECTION argument.  Use it as index into crtl->eh.call_site_record
	array.
	(dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
	use it to determine how to print table entries instead of using
	#ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
	label instead of normal begin label as base.
	(sjlj_assign_call_site_values): Adjust add_call_site caller.
	(convert_to_eh_region_ranges): When doing hot/cold partitioning,
	ensure no EH range spans between sections and that landing pads
	are always in the corresponding section.
	(sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
	for crtl->eh.call_site_record being an array rather than scalar.
	(output_one_function_exception_table): New function, copied
	from output_function_exception_table.  Adjust
	dw2_size_of_call_site_table, dw2_output_call_site_table
	callers.  For SECOND section use *C suffixed labels.
	(output_function_exception_table): Call
	output_one_function_exception_table and, when doing hot/cold
	partitioning, also another time for the second section.
	* opts.c: Include except.h.
	(decode_options): Allow -freorder-blocks-and-partition with
	exceptions, unless SJLJ or TARGET_UNWIND_INFO.
	* Makefile.in (opts.o): Depend on $(EXCEPT_H).
	* function.h (struct rtl_eh): Change call_site_record from
	scalar into array of 2 elements.

2009-08-07  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (count_formal_params_1): New function.
	(ipa_get_vector_of_formal_parms): New function.
	(get_vector_of_formal_parm_types): New function.
	(ipa_modify_formal_parameters): New function.
	(ipa_modify_call_arguments): New function.
	(index_in_adjustments_multiple_times_p): New function.
	(ipa_combine_adjustments): New function.
	(ipa_dump_param_adjustments): New function.
	* ipa-prop.h (struct ipa_parm_adjustment): New type.
	(ipa_get_vector_of_formal_parms): Declare.
	(ipa_modify_formal_parameters): Declare.
	(ipa_modify_call_arguments): Declare.
	(ipa_combine_adjustments): Declare.
	(ipa_dump_param_adjustments): Declare.
	(build_ref_for_offset): Declare.
	* Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
	* tree-sra.c: Include ipa-prop.c.
	(build_ref_for_offset): Make public.

2009-08-06  Neil Vachharajani  <nvachhar@gmail.com>

	* value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.

2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>

	* gcc/doc/extend.texi (__builtin_extract_return_address)
	(__builtin_frob_return_address): Document.

2009-08-06  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
	(udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
	implementation on ARMv6-M.

2009-08-06  Richard Earnshaw  <rearnsha@arm.com>

	* doc/extend.texi (pcs): Document new attribute for ARM.

2009-08-06  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (pcs_attribute_args): Comment out unsupported attribute
	variants.

2009-08-06  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_handle_pcs_attribute): Pass the entire name object to
	warning ().

2009-08-06  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_handle_pcs_attribute): Use %qE in warning.

2009-08-06  Richard Earnshaw  <rearnsha@arm.com>

	Merge ARM/hard_vfp_branch to trunk.

	2009-08-04  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (libcall_eq): New function.
	(libcall_hash): New function.
	(add_libcall): New function.
	(arm_libcall_uses_aapcs_base): New function.
	(arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
	libcalls using the base PCS.
	(arm_init_cumulative_args): Likewise.

	2009-07-20  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
	Use base ABI for conversion libfuncs between HFmode and SFmode.

	2009-05-12  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
	V4SImode as representatives of all 64-bit and 128-bit vector
	types.  Allow vector types without vector modes.
	(aapcs_vfp_is_call_or_return_candidate): Handle vector types
	without vector modes like BLKmode.
	(aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
	BLKmode.  Avoid unsupported vector modes or TImode moves for
	non-TARGET_NEON.
	(aapcs_vfp_allocate_return_reg): Likewise.
	(arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
	V8QImode if TARGET_NEON || TARGET_IWMMXT.

	2009-05-12  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_handle_pcs_attribute): New.
	(arm_get_pcs_model): Pass attribute arguments to
	arm_pcs_from_attribute.
	(arm_init_cumulative_args): Use base AAPCS for conversions from
	floating-point types to DImode.
	(arm_attribute_table): Add pcs attribute.
	(arm_handle_pcs_attribute): New.
	* config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
	conversions from floating-point types to DImode, also declare them
	to use base AAPCS and declare functions they call to use base
	AAPCS and their RTABI names.

	2009-05-12  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
	-mfloat-abi=hard not being supported for VFP.

	2009-05-11  Kazu Hirata  <kazu@codesourcery.com>

	* config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
	SYMBOL_REF to hard_libcall_value.

	2009-03-05  Joseph Myers  <joseph@codesourcery.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
	has been put on the stack, all remaining co-processory arguments for
	that co-processor also go on the stack.

	2009-03-05  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_return_in_memory): Handle returning
	vectors of suitable size in registers also for AAPCS case.

	2009-01-13  Richard Earnshaw <rearnsha@arm.com>

	* doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.

	2008-12-09  Richard Earnshaw <rearnsha@arm.com>

	ARM Hard-VFP calling convention
	* target-def.h (TARGET_LIBCALL_VALUE): New hook.
	* target.h (gcc_target): Add libcall_value to table of call hooks.
	* targhooks.h (default_libcall_value): Default implementation.
	* targhooks.c (default_libcall_value): Likewise.
	* doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
	* optabs.c (expand_unop): Use it.
	* expr.h (hard_libcall_value): Pass the function RTX through.
	* calls.c (emit_library_call_value_1): Update call to
	hard_libcall_value.
	* explow.c (hard_libcall_value): Use new target hook.
	* config/arm/arm.c: Include cgraph.h
	(TARGET_FUNCTION_VALUE): Override default hook.
	(arm_pcs_default): New variable.
	(arm_override_options): Don't fault hard calling convention with VFP.
	Add support for AAPCS variants.
	(arm_function_value): Make static.  Handle AAPCS variants.
	(arm_libcall_value): New function.
	(arm_apply_result_size): Handle VFP registers in results.
	(arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
	conventions.
	(pcs_attribute_args): New variable.
	(arm_pcs_from_attribute): New function.
	(arm_get_pcs_model): New function.
	(aapcs_vfp_cum_init): New function.
	(aapcs_vfp_sub_candidate): New function.
	(aapcs_vfp_is_return_candidate): New function.
	(aapcs_vfp_is_call_candidate): New function.
	(aapcs_vfp_allocate): New function.
	(aapcs_vfp_allocate_return_reg): New function.
	(aapcs_vfp_advance): New function.
	(aapcs_cp_arg_layout): New variable.
	(aapcs_select_call_coproc): New function.
	(aapcs_select_return_coproc): New function.
	(aapcs_allocate_return_reg): New function.
	(aapcs_libcall_value): New function.
	(aapcs_layout_arg): New function.
	(arm_init_cumulative_args): Initialize AAPCS args data.
	(arm_function_arg): Handle AAPCS variants using new interface.
	(arm_arg_partial_bytes): Likewise.
	(arm_function_arg_advance): New function.
	(arm_function_ok_for_sibcall): Ensure that sibling calls agree on
	calling conventions.
	(arm_setup_incoming_varargs): Handle new AAPCS args data.
	* arm.h (NUM_VFP_ARG_REGS): Define.
	(LIBCALL_VALUE): Update.
	(FUNCTION_VALUE): Delete.
	(FUNCTION_VALUE_REGNO_P): Add VFP regs.
	(arm_pcs): New enum.
	(CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
	(FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
	(FUNCTION_ARG_REGNO_P): Add VFP regs.
	* arm-protos.h (arm_function_arg_advance): Add.
	(aapcs_libcall_value): Add.
	(arm_function_value): Delete.

2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/40957
	* config/i386/i386.c (standard_sse_mode_p): Remove.
	(standard_sse_constant_p): Return 2 for integer mode
	vector_all_ones_operand when SSE2 is enabled.
	(standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
	(ix86_expand_vector_move): Do not check for negative values from
	standard_sse_constant_p.

2009-08-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (useless_type_conversion_p_1): Make function and
	array type comparisons frontend independent.
	* Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
	out array reference lower bound and element size operands.
	(ao_ref_init_from_vn_reference): Properly compute the offset
	for ARRAY_RANGE_REF.
	(vn_reference_fold_indirect): Fill out array reference lower
	bound and element size operands.
	* tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
	a non gimple valued reference operand which can happen for
	array reference lower bound or element size.
	(create_component_ref_by_pieces_1): Properly generate the
	element size operand for array references.

2009-08-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40964
	* tree.c (iterative_hash_host_wide_int): Export.
	* tree.h (iterative_hash_host_wide_int): Declare.
	* tree-ssa-structalias.c (heapvar_map): New struct.
	(heapvar_map_eq): New function.
	(heapvar_map_hash): Likewise.
	(heapvar_lookup): Adjust.
	(heapvar_insert): Likewise.
	(make_constraint_from_heapvar): Allow multiple heap variables
	per decl at different offsets.
	(init_alias_heapvars): Adjust.

2009-08-04  David Daney  <ddaney@caviumnetworks.com>

	* config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
	* mips_output_sync_loop (mips_output_sync_loop): Only emit
	trailing sync if TARGET_SYNC_AFTER_SC.

2009-08-05  David Daney  <ddaney@caviumnetworks.com>

	* gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
	compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
	sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
	sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
	sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
	sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
	sync_new_nand<mode>, sync_lock_test_and_set<mode>,
	test_and_set_12): Rewrite calls to mips_output_sync_loop.
	* gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
	the prototype declaration match the definition.
	* gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
	instructions explicitly.  Add barrier_before and operands
	parameters.
	* gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
	MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
	MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
	MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
	MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
	MIPS_SYNC_EXCHANGE_12): Remove sync instructions.

2009-08-05  Andrew Pinski  <pinskia@gmail.com>

	* tree-ssa-alias.c: Fix intervals to use [) syntax.

2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
	    Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>

	PR target/40906
	* config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
	source operand.

2009-08-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/40924
	* dse.c (canon_address): Before calling cselib_expand_value_rtx
	make sure canon_rtx (mem_address) isn't simpler than
	canon_rtx (expanded_mem_address).

2009-08-05  Li Feng  <nemokingdom@gmail.com>

	* graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
	for each poly_bb_p.
	(build_scop_drs): Build alias set for each SCoP.

2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (MIPS Options): Document new 1004K -march options.
	* config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
	(MIPS_ARCH_FLOAT_SPEC): Likewise.
	(BASE_DRIVER_SELF_SPECS): Likewise.

2009-08-04  Andrew Pinski  <pinskia@gmail.com>

	* tree-ssa-alias.c: Fix some comment typos.

2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
	ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.

2009-08-03  Janis Johnson  <janis187@us.ibm.com>

	PR c/39902
	* simplify-rtx.c (simplify_binary_operation_1): Disable
	simplifications for decimal float operations.

2009-08-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40943
	* tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
	operand of INDIRECT_REF.

2009-08-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
	constants referencing TLS symbols.

2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
	__sync_compare_and_swap_* to __sync_val_compare_and_swap_*.

2009-08-03  Richard Guenther  <rguenther@suse.de>

	* tree.c (make_vector_type): Build a main variant first,
	get the canonical one and then build the variant.
	* tree-ssa.c (useless_type_conversion_p_1): Handle
	fixed-point types.
	(useless_type_conversion_p): Conversions to pointers to
	incomplete record types are useless.

2009-08-03  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (pass_warn_unused_result): Mark name that no dump
	file will be created.
	* omp-low.c (pass_diagnose_omp_blocks): Likewise.
	* toplev.c (compile_file): Adjust comment.

2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_promote_function_mode): Remove.
	* config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS): Remove.
	(sh_promote_function_mode): Fix typo.

2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>

	* explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.

2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
	declaration arguments.

2009-08-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
	of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
	(ix86_split_ashl): Ditto.
	(ix86_expand_vector_init_one_nonzero): Ditto.
	(ix86_expand_vector_set): Ditto.
	(ix86_expand_reduc_v4sf): Ditto.

2009-08-02  Paolo Bonzini  <bonzini@gnu.org>

	* explow.c (promote_function_mode): Remove assert.
	* config/sh/sh.c (sh_promote_function_mode): Declare.

2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.c (pa_promote_function_mode): Declare.
	Change to static.  Fix promote_mode call.

	* gthr-dce.h (CONST_CAST2): Define if not defined.
	(__gthread_setspecific): Use CONST_CAST2 to fix warning.

	* config.gcc (hppa[12]*-*-hpux10*): Add stdint support.

2009-08-01  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (store_constructor): Use promote_decl_mode.  Remove
	now write-only variable unsignedp.
	(expand_expr_real_1): Use promote_decl_mode.
	* expr.h (promote_function_mode, promote_decl_mode): New.
	(promote_mode): Remove last argument.
	* function.c (assign_temp): Drop last argument of promote_mode.
	(assign_parm_find_data_types): Use promote_function_mode.
	(assign_parm_setup_reg): Likewise.
	(expand_function_end): Use promote_function_mode.
	* calls.c (initialize_argument_information): Use promote_function_mode.
	(precompute_arguments): Use promote_mode instead of checking if
	only PROMOTE_FUNCTION_MODE is defined.
	(expand_call): When making sibcall decisions, use promote_function_mode.
	Below, remove an if for targetm.calls.promote_function_return and
	and use promote_function_mode.
	(emit_library_call_value_1): Use promote_function_mode, fix bug
	where promote_mode was passed FOR_CALL == 0 for a return value in an
	assertion.
	* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
	* explow.c (promote_function_mode, promote_decl_mode): New.
	(promote_mode): Keep only the FOR_CALL == 0 case.
	* combine.c (setup_incoming_promotion): Remove test of
	promote_function_args.  Use promote_function_mode.
	* stmt.c (expand_value_return): Use promote_decl_mode.
	(expand_decl): Use promote_decl_mode.

	* expr.c (store_constructor): Use promote_decl_mode.  Remove
	now write-only variable unsignedp.
	(expand_expr_real_1): Use promote_decl_mode.
	* expr.h (promote_function_mode, promote_decl_mode): New.
	(promote_mode): Remove last argument.
	* function.c (assign_temp): Drop last argument of promote_mode.
	(assign_parm_find_data_types): Use promote_function_mode.
	(assign_parm_setup_reg): Likewise.
	(expand_function_end): Use promote_function_mode.
	* calls.c (initialize_argument_information): Use promote_function_mode.
	(precompute_arguments): Use promote_mode instead of checking if
	only PROMOTE_FUNCTION_MODE is defined.
	(expand_call): When making sibcall decisions, use promote_function_mode.
	Below, remove an if for targetm.calls.promote_function_return and
	and use promote_function_mode.
	(emit_library_call_value_1): Use promote_function_mode, fix bug
	where promote_mode was passed FOR_CALL == 0 for a return value in an
	assertion.
	* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
	* explow.c (promote_function_mode, promote_decl_mode): New.
	(promote_mode): Keep only the FOR_CALL == 0 case.
	* combine.c (setup_incoming_promotion): Remove test of
	promote_function_args.  Use promote_function_mode.
	* stmt.c (expand_value_return): Use promote_decl_mode.
	(expand_decl): Use promote_decl_mode.

	* explow.c (promote_function_mode): Just call the target hook.
	* targhooks.c (default_promote_function_mode,
	default_promote_function_mode_always_promote): New.
	* targhooks.h (default_promote_function_mode,
	default_promote_function_mode_always_promote): Declare.
	* target.h (promote_function_args, promote_function_return): Remove.
	(promote_function_mode): New.
	* target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN): Remove.
	(TARGET_PROMOTE_FUNCTION_MODE): New.
	(TARGET_CALLS): Adjust.
	* system.h (TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.

	* config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
	* config/s390/s390.c (s390_promote_function_mode): ... here,
	with pointer handling.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.

	* config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
	* config/sparc/sparc.c (sparc_promote_function_mode): ... here,
	with pointer handling.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.

	* config/sh/sh-protos.h (sh_promote_function_mode): New.
	* config/sh/sh.c (sh_promote_function_mode): New.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.

	* config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
	* config/cris/cris.c (cris_promote_function_mode): ... here.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS): Remove.

	* config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
	* config/mmix/mmix.c (mmix_promote_function_mode): ... here.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS): Remove.

	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
	* config/arm/arm.c (arm_promote_function_mode): ... here, without
	complex type handling.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.

	* config/pa/pa.c (pa_promote_function_mode): New.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.
	(TARGET_PROMOTE_FUNCTION_RETURN): Remove.

	* config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN): Remove.
	(TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
	* config/xtensa/xtensa.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/picochip/picochip.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/score/score.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/ia64/ia64.c: Likewise (disabled though).

	* config/frv/frv.h: Remove pointless remark.

	* doc/tm.texi (PROMOTE_FUNCTION_MODE,
	TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
	(TARGET_PROMOTE_FUNCTION_MODE): ... this.

2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-fgraphite-force-parallel): Renamed
	-floop-parallelize-all.
	* toplev.c (process_options): Rename flag_graphite_force_parallel to
	flag_loop_parallelize_all.
	* tree-ssa-loop.c (gate_graphite_transforms): Same.
	* graphite.c (graphite_transform_loops): Same.
	* common.opt: Same.
	* graphite-poly.c (apply_poly_transforms): Same.

2009-07-31  Richard Earnshaw  <rearnsha@arm.com>

	PR tree-optimization/40914
	* ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
	if set, then check the delta field of the PMF record.
	(ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
	(ipa_analyze_call_uses): Handle machines where the vbit for a PMF
	call is stored in the delta.

2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*clear_upper32_dext): New pattern.

2009-07-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/bsd.h (ASM_BYTE): New define.
	* config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
	* config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
	.byte.  Use fputs or putc instead of fprintf where appropriate.
	* config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
	fputs or putc instead of fprintf where appropriate.
	* config/i386/i386elf.h: Ditto.
	* config/i386/sysv4.h: Ditto.

	* config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
	* config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
	(*tls_global_dynamic_64): Ditto.

2009-07-31  Christian Bruel  <christian.bruel@st.com>

	* gcc/config.gcc (sh*-*-elf): test with_libgloss.

2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_arm_address_cost): Fix typo.
	Remove dead code for MINUS.

2009-07-31  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
	$r12 in prologue.
	(moxie_expand_epilogue): Ditto for epilogue.
	(moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
	incoming arguments.
	(moxie_function_arg): Ditto.
	(moxie_pass_by_reference): Ditto.
	(moxie_arg_partial_bytes): Ditto.
	* config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
	(FUNCTION_ARG_ADVANCE) Ditto.
	(REG_PARM_STACK_SPACE) Ditto.
	(FUNCTION_ARG_REGNO_P) Dito.

	* config.gcc: Add moxie linux config support.
	* gcc/config/moxie/uclinux.h: New file.

2009-07-31  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
	(UNSPECV_SP_SWITCH_E): New.
	(sp_switch_1): Change to an unspec.
	(sp_switch_2): Change to an unspec.  Don't use post-inc when we
	replace $r15.
	* config/sh/sh.c (sh_expand_prologue): Use the constant pool to
	reference the new stack's address

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
	graphite-clast-to-gimple.o, graphite-dependences.o,
	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
	(graphite-blocking.o,
	graphite-clast-to-gimple.o, graphite-dependences.o,
	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
	* cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
	* cfgloop.h (struct loop): Add can_be_parallel field.
	* common.opt (fgraphite-identity): Moved up.
	(fgraphite-force-parallel): New flag.
	* graphite.c: Rewrite.
	* graphite.h: Rewrite.
	* passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
	after Graphite.
	* toplev.c (graphite_out_file): New file descriptor.
	(graphite_in_file): New.
	(process_options): flag_graphite_force_parallel cannot be used without
	Graphite.
	* tree-ssa-loop.c: Include toplev.h.
	(gate_graphite_transforms): Enable flag_graphite for
	flag_graphite_force_parallel.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* ChangeLog.graphite: New.
	* graphite-blocking.c: New.
	* graphite-clast-to-gimple.c: New.
	* graphite-clast-to-gimple.h: New.
	* graphite-dependences.c: New.
	* graphite-dependences.h: New.
	* graphite-interchange.c: New.
	* graphite-poly.c: New.
	* graphite-poly.h: New.
	* graphite-ppl.c: New.
	* graphite-ppl.h: New.
	* graphite-scop-detection.c: New.
	* graphite-scop-detection.h: New.
	* graphite-sese-to-poly.c: New.
	* graphite-sese-to-poly.h: New.
	* sese.c: New.
	* sese.h: New.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.c (evolution_function_right_is_integer_cst): New.
	* tree-chrec.h (evolution_function_right_is_integer_cst): Declared.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
	(scev_is_linear_expression): Return false if the evolution is not
	affine multivariate.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (graphite_find_data_references_in_stmt): New.
	* tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (debug_data_references): New.
	(debug_data_reference): New.
	* tree-data-ref.h (debug_data_references): Declared.
	(debug_data_reference): Declared.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (stmt_simple_memref_p: Removed.
	* tree-data-ref.h (scop_p): Removed.
	(struct data_reference): Remove field scop.
	(DR_SCOP): Removed.
	(stmt_simple_memref_p): Removed.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
	* cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
	basic block empty.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-fgraphite-force-parallel): Documented.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-fgraphite-identity): Documented.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c: Fix comment.
	(instantiate_scev_1): Return unknow from scev instantiation if the
	result is not above instantiate_below.

2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
	static anymore.  Instantiate the symbols that may have been introduced
	by chrec_apply.
	* tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
	Declared.

2009-07-30  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_asm_init_sections): Add section flags and
	.vliw directive to VLIW sections.

2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
	New variables.
	($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
	(AUTOHEADER): New variable.
	($(srcdir)/cstamp-h.in): Use it.

2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Pat Haugen  <pthaugen@us.ibm.com>
	    Revital Eres <ERES@il.ibm.com>

	* config/rs6000/vector.md (VEC_F): Add VSX support.
	(VEC_A): Ditto.
	(VEC_N): Ditto.
	(mov<mode>): Ditto.
	(vector_load_<mode>): Ditto.
	(vector_store_<mode>): Ditto.
	(vector GPR move split): Ditto.
	(vec_reload_and_plus_<mptrsize>): Ditto.
	(vec_reload_and_reg_<mptrsize>): Ditto.
	(add<mode>3): Ditto.
	(sub<mode>3): Ditto.
	(mul<mode>3): Ditto.
	(neg<mode>2): Ditto.
	(abs<mode>2): Ditto.
	(smin<mode>3): Ditto.
	(smax<mode>3): Ditto.
	(vector_eq<mode>): Ditto.
	(vector_gt<mode>): Ditto.
	(vector_ge<mode>): Ditto.
	(vector_gtu<mode>): Ditto.
	(vector_select_<mode>_uns): Ditto.
	(vector_eq_<mode>_p): Ditto.
	(vector_gt_<mode>_p): Ditto.
	(vector_ge_<mode>_p): Ditto.
	(vector_gtu_<mode>_p): Ditto.
	(cr6_test_for_zero): Ditto.
	(cr6_test_for_zero_reverse): Ditto.
	(cr6_test_for_lt): Ditto.
	(cr6_test_for_lt_reverse): Ditto.
	(xor<mode>3): Ditto.
	(ior<mode>3): Ditto.
	(and<mode>3): Ditto.
	(one_cmpl<mode>2): Ditto.
	(nor<mode>2): Ditto.
	(andc<mode>2): Ditto.
	(float<VEC_int<mode>2): Ditto.
	(unsigned_float<VEC_int><mode>2): Ditto.
	(fix_trunc<mode><VEC_int>2): Ditto.
	(fixuns_trunc<mode><VEC_int>2): Ditto.
	(vec_init<mode>):
	(vec_set<mode>): Ditto.
	(vec_extract<mode>): Ditto.
	(vec_interleave_highv4sf): Ditto.
	(vec_interleave_lowv4sf): Ditto.
	(vec_realign_load_<mode>): Ditto.
	(vec_shl_<mode>): Ditto.
	(vec_shr_<mode>): Ditto.
	(div<mode>3): New patterns for VSX.
	(vec_interleave_highv2df): Ditto.
	(vec_interleave_lowv2df): Ditto.
	(vec_pack_trunc_v2df): Ditto.
	(vec_pack_sfix_trunc_v2df): Ditto.
	(vec_pack_ufix_trunc_v2df): Ditto.
	(vec_unpacks_hi_v4sf): Ditto.
	(vec_unpacks_lo_v4sf): Ditto.
	(vec_unpacks_float_hi_v4si): Ditto.
	(vec_unpacks_float_lo_v4si): Ditto.
	(vec_unpacku_float_hi_v4si): Ditto.
	(vec_unpacku_float_lo_v4si): Ditto.
	(movmisalign<mode>): Ditto.
	(vector_ceil<mode>2): New patterns for vectorizing math library.
	(vector_floor<mode>2): Ditto.
	(vector_btrunc<mode>2): Ditto.
	(vector_copysign<mode>3): Ditto.

	* config/rs6000/predicates.md (easy_vector_constant_msb): New
	predicate for setting the high bit in each word, used for copysign.

	* config/rs6000/ppc-asm.h (f19): Whitespace.
	(f32-f63): Define if VSX.
	(v0-v31): Define if Altivec.
	(vs0-vs63): Define if VSX.

	* config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.

	* config/rs6000/power7.md: New file, provide tuning parameters for
	-mcpu=power7.

	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
	(rs6000_cpu_cpp_builtins): Ditto.
	(altivec_overloaded_builtins): Ditto.
	(altivec_resolve_overloaded_builtin): Ditto.

	* config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
	debug switch to disable vectorizing simple math builtin
	functions.

	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
	Vectorize simple math builtin functions.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
	hook to vectorize math builtins.
	(rs6000_override_options): Enable -mvsx on -mcpu=power7.
	(rs6000_builtin_conversion): Add VSX/power7 support.
	(rs6000_builtin_vec_perm): Ditto.
	(vsplits_constant): Add support for loading up a vector constant
	with just the high bit set in each part.
	(rs6000_expand_vector_init): Add VSX/power7 support.
	(rs6000_expand_vector_set): Ditto.
	(rs6000_expand_vector_extract): Ditto.
	(rs6000_emit_move): Ditto.
	(bdesc_3arg): Ditto.
	(bdesc_2arg): Ditto.
	(bdesc_1arg): Ditto.
	(rs6000_expand_ternop_builtin): Ditto.
	(altivec_expand_builtin): Ditto.
	(rs6000_expand_unop_builtin): Ditto.
	(rs6000_init_builtins): Ditto.
	(altivec_init_builtins): Ditto.
	(builtin_function_type): Ditto.
	(rs6000_common_init_builtins): Ditto.
	(rs6000_handle_altivec_attribute); Ditto.
	(rs6000_mangle_type): Ditto.
	(rs6000_vector_mode_supported_p): Ditto.
	(rs6000_mode_dependent_address): Altivec addresses with AND -16
	are mode dependent.

	* config/rs6000/vsx.md: New file for VSX support.

	* config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
	identifing values with just the most significant bit set.
	(enum rs6000_builtins): Add builtins for VSX.  Add simple math
	vectorized builtins.

	* config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
	(UNSPEC_VRFIM): Delete.
	(splitter for loading up vector with most significant bit): New
	splitter for vectorizing copysign.
	(altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
	vectorizing simple math functions.
	(altivec_vrfip): Add support for vectorizing simple math functions.
	(altivec_vrfim): Ditto.
	(altivec_copysign_v4sf3): New insn for Altivec copysign support.

	* config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
	(power7.md, vsx.md): Include for power7 support.
	(copysigndf3): Use VSX instructions if -mvsx.
	(negdf2_fpr): Ditto.
	(absdf2_fpr): Ditto.
	(nabsdf2_fpr): Ditto.
	(adddf3_fpr): Ditto.
	(subdf3_fpr): Ditto.
	(muldf3_fpr): Ditto.
	(divdf3_fpr): Ditto.
	(fix_truncdfdi2_fpr): Ditto.
	(cmpdf_internal1): Ditto.
	(fred, fred_fpr): Convert into expander/insn to add VSX support.
	(btruncdf2, btruncdf2_fpr): Ditto.
	(ceildf2, ceildf2_fpr): Ditto.
	(floordf2, floordf2_fpr): Ditto.
	(floatdidf2, floatdidf2_fpr): Ditto.
	(fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
	(fmsubdf4_fpr): Ditto.
	(fnmadddf4_fpr_1): Ditto.
	(fnmadddf4_fpr_2): Ditto.
	(fnmsubdf4_fpr_1): Ditto.
	(fnmsubdf4_fpr_2): Ditto.
	(fixuns_truncdfdi2): Add expander for VSX support.
	(fix_truncdfdi2): Ditto.
	(fix_truncdfsi2): Ditto.
	(ftruncdf2): Ditto.
	(btruncsf2): Whitespace.
	(movdf_hardfloat32): Add support for VSX registers.
	(movdf_softfloat32): Ditto.
	(movdf_hardfloat64): Ditto.
	(movdf_hardfloat64_mfpgpr): Ditto.
	(movdf_softfloat64): Ditto.
	(movti splitters): Add check for vector registers supporting
	TImode in the future.
	(bpermd): Add power7 bpermd instruction.

	* config/rs6000/altivec.h (vec_div): Define if VSX.
	(vec_mul): Ditto.
	(vec_msub): Ditto.
	(vec_nmadd): Ditto.
	(vec_nearbyint): Ditto.
	(vec_rint): Ditto.
	(vec_sqrt): Ditto.
	(all predicates): Use the generic builtin function, and not the V4SF
	specific function so that the predicates will work with VSX's V2DF.
	(vec_all_*): Ditto.
	(vec_any_*): Ditto.

	* doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
	Document new VSX functions and types.

	* doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
	switches.

	* doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
	"wa", and "j" constraints.  Modify "v" to talk about Altivec
	instead of just vector.

2009-07-30  Andrew MacLeod  <amacleod@redhat.com>

	PR debug/26475
	* tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
	location for phi arguments.
	(rewrite_update_phi_arguments): Find locations for reaching defs.
	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
	Add location to add_phi_arg calls.
	* tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
	* tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
	split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
	* tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
	create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
	* tree.h (struct phi_arg_d): Add location_t to PHI arguments.
	* tree-phinodes.c (make_phi_node): Initialize location.
	(resize_phi_node): Initialize location to UNKNOWN_LOCATION.
	(add_phi_arg): Add location parameter.
	(remove_phi_arg_num): Move location when moving phi argument.
	* omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
	location.
	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
	slpeel_update_phi_nodes_for_guard1,
	slpeel_update_phi_nodes_for_guard2,
	slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
	vect_loop_versioning): Set locations.
	* tree-parloops.c (create_phi_for_local_result,
	transform_to_exit_first_loop, create_parallel_loop): Add locations.
	* gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
	* tree-vect-loop.c (get_initial_def_for_induction,
	vect_create_epilog_for_reduction, vect_finalize_reduction): Add
	locations.
	* tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
	(gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
	(gimple_phi_arg_set_location): New.  Set locus.
	(gimple_phi_arg_has_location): New.  Check for locus.
	(redirect_edge_var_map_location): New.  Return locus from var_map.
	* tree-vect-data-refs.c (vect_setup_realignment): Set location.
	* tree-ssa-phiopt.c (conditional_replacement): Set locus when
	combining PHI arguments.
	(cond_store_replacement): Set location.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
	* grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
	scop_add_exit_phis_edge): Add locations.
	* tree-cfgcleanup.c (remove_forwarder_block,
	remove_forwarder_block_with_phi): Add locations.
	* tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
	* tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
	locations.
	* tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
	* tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
	flush_pending_stmts): Add source location.
	* lambda-code.c (perfect_nestify): Maintain location stack with argument
	stack to preserve locations.
	* tree-vect-stmts.c (vectorizable_load): Add location.
	* tree-inline.c (copy_phis_for_bb): Copy locus.
	(setup_one_parameter): Add call locus to inlined parameter stmts.
	(initialize_inlined_parameters): Pass in call location as parameter
	assignment locus.
	(tree_function_versioning): Pass location to setup_one_parameter.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
	* tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
	copy and edge lists.
	(insert_partition_copy_on_edge, insert_value_copy_on_edge,
	insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
	locus parameter and override the stmt default if provided.
	(new_elim_graph, clear_elim_graph, delete_elim_graph,
	elim_graph_add_edge, elim_graph_remove_succ_edge,
	FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
	elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
	eliminate_phi):  Add locus info in elimination graph for each edge and
	value copy.
	(insert_backedge_copies): Copy locus if present.
	* tree-flow.h (struct _edge_var_map): Add locus field.
	* tree-switch_conversions.c (fix_phi_nodes): Add locations.
	* tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
	add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
	locations.
	* ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.

2009-07-30  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40570
	* ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
	use inlining loops.

2009-07-30  Razya Ladelsky <razya@il.ibm.com>

	* ssa-loop-manip.c: Include langhooks.h.
	(rewrite_phi_with_iv): New.
	(rewrite_all_phi_nodes_with_iv): New.
	(canonicalize_loop_ivs): Move here from tree-parloops.c.
	Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
	* tree-parloops.c (loop_parallel_p): Move out all conditions
	except dependency check.
	(canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
	(gen_parallel_loop): Call canonicalize_loop_ivs without
	reduction_list argument.
	(build_new_reduction): New.
	(gather_scalar_reductions): New.
	(try_get_loop_niter): New.
	(try_create_reduction_list): New.
	(parallleize_loops): Change the parallel conditions check.
	* tree-flow.h (canonicalize_loop_ivs): Remove one argument.
	* Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.

2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>

	* opt-functions.awk (opt_args): Allow argument to be enclosed in
	curly braces.
	* doc/options.texi (Option properties):  Mention new quoting syntax.

2009-07-29  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_start_function):
	Handle VMS_DEBUG_MAIN_POINTER
	* config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
	* doc/invoke.texi: Document -mdebug-main switch.

2009-07-29  Richard Henderson  <rth@redhat.com>

	* cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
	(cgraph_create_edge_including_clones): Likewise.
	* tree-inline.c (copy_bb): Operate on the correct edges
	when updating the callgraph.

2009-07-29  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms-cc.c: Deleted.
	* config/alpha/vms-ld.c: Deleted.
	* config/alpha/t-vms64: Moved to config/vms
	* config/alpha/vms-crt0-64.c: Moved to config/vms
	* config/alpha/vms-crt0.c: Moved to config/vms
	* config/alpha/vms-psxcrt0-64.c: Moved to config/vms
	* config/alpha/vms-psxcrt0.c: Moved to config/vms
	* config/alpha/xm-vms.h: Moved to config/vms
	* config/alpha/x-vms: Moved to config/vms
	* config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
	config/vms/t-vms.
	* config/vms/t-vms: Moved here from config/alpha. Alpha specific
	parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
	(version): Set.
	* config/vms/t-vms64: Moved here from config/alpha
	* config/vms/vms-crt0-64.c: Moved here from config/alpha.
	(argc,argv,envp): Enforce 32bit malloc'ing.
	* config/vms/vms-psxcrt0-64.c: Likewise.
	* config/vms/vms-crt0.c: Moved here from config/alpha.
	* config/vms/vms-psxcrt0.c: Likewise.
	* config/vms/vms-crtl-64.h: New file.
	* config/vms/vms-crtl.h: New file.
	* config/vms/vms.opt: New file.
	* config/vms/xm-vms64.h: New file.
	* config/vms/xm-vms.h: Moved here from config/alpha.
	(STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
	Set.
	* config/vms/x-vms: Moved here from config/alpha.
	(version, VMS_EXTRA_PARTS): Moved to t-vms.
	(vms-ld.o, vms-cc.o): Removed.
	(LN, LN_S, USE_COLLECT2, POD2MAN): Set.

2009-07-29  Douglas B Rupp  <rupp@gnat.com>

	* dwarf2out.c (add_name_and_src_coords_attributes): Push on the
	correct stack (obvious VMS fix).

2009-07-29  Douglas B Rupp  <rupp@gnat.com>

	* dwarf2out.c (output_file_names): Output VMS style file name, size,
	date, version info if VMS_DEBUGGING_INFO defined.
	* vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
	size, date calculating code moved here.

2009-07-29  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
	do_push/do_pop.

2009-07-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/40577
	* config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
	to DImode when generating insq_le insn.

2009-07-28  Douglas B Rupp  <rupp@gnat.com>

	* dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
	New macro set for VMS_DEBUGGGING_INFO.
	(AT_string_form): Use it.

2009-07-28  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (vtext_section): New.
	(vftext_section): New.
	(ftext_section): New.
	(mep_select_section): Add support for functions.
	(mep_unique_section): Likewise.
	(mep_asm_init_sections): Likewise.
	(mep_encode_section_info): Remove it from here.

	* config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.

2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>

	* tree.h (TREE_DEPRECATED): Document it is used for types too.
	(TYPE_VECTOR_OPAQUE): Use default_def_flag

2009-07-28  Douglas B Rupp  <rupp@gnat.com>

	* dwarf2out.c (output_file_names): Test new macro
	DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
	(add_comp_dir_attribute): Likewise.

2009-07-28  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-w64.h (LINK_SPEC): Add
	separating space between commands.

2009-07-28  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/40759
	* tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
	for renaming.

2009-07-27  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
	types are dword-aligned.
	(mep_expand_va_start): Likewise.

2009-07-27  Olivier Hainque  <hainque@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* convert.c (convert_to_pointer): Don't assume the target
	pointer type is POINTER_SIZE long. Fetch its precision instead.

2009-07-27  Douglas B Rupp  <rupp@gnat.com>

	* system.h (fopen): Undefine if macro.

2009-07-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_cfi_p): Removed.
	(output_cfis): New function.
	(output_fde): New function, split from output_call_frame_info.
	(output_call_frame_info): Use it.
	(dwarf2out_switch_text_section): Use output_cfis.

2009-07-24  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
	TARGET_BI_ARCH is specified without enabling SJLJ.
	* config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
	if TARGET_64BIT and TARGET_BI_ARCH aren't defined.

2009-07-26  Mikael Pettersson <mikpe@it.uu.se>

	* arm.md (negdi2): Use DImode if forcing a value into a register.

2009-07-26  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/40801
	* tree-vect-stmts.c (vectorizable_call): Get previous copy
	of vector operand from the previous copy of vector statement.
	Pass the correct definition type value to
	vect_get_vec_def_for_stmt_copy().

2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
	const char ** conversion.

2009-07-25 David Daney <ddaney@caviumnetworks.com>

	* system.h (gcc_assert): Invoke __builtin_unreachable() instead of
	fancy_abort() if !ENABLE_ASSERT_CHECKING.
	(gcc_unreachable): Invoke __builtin_unreachable() if
	!ENABLE_ASSERT_CHECKING.

2009-07-25  David Daney  <ddaney@caviumnetworks.com>

	PR rtl-optimization/40445
	* emit-rtl.c (next_nonnote_insn_bb): New function.
	* rtl.h (next_nonnote_insn_bb): Declare new function.
	* cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
	with no successors that is the successor of the ENTRY_BLOCK.
	Continue from the top after removing an empty fallthrough block.
	* cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
	of next_nonnote_insn.

2009-07-25  David Daney  <ddaney@caviumnetworks.com>

	* cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.

2009-07-25  Martin Jambor  <mjambor@suse.cz>

	* c-common.c (c_common_attribute_table): New element for noclone.
	(handle_noclone_attribute): New function. Forward-declare.
	* tree-inline.c (tree_versionable_function_p): Check for noclone
	attribute.
	* doc/extend.texi (Labels as Values): Document need for noclone.
	(Function Attributes): Document noclone attribute.

2009-07-25  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/34999
	* dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
	and dw_fde_switched_cold_to_hot fields.
	(output_cfi_p): New function.
	(output_call_frame_info): If fde->dw_fde_switched_sections,
	output 2 FDEs instead of one with corrupted header.
	(dwarf2out_do_cfi_startproc): New function.
	(dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
	and fde->dw_fde_switched_cold_to_hot.
	(dwarf2out_switch_text_section): Compute
	fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
	If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
	dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
	Otherwise, compute fde->dw_fde_switch_cfi.

2009-07-24  Cary Coutant  <ccoutant@google.com>

	* tree-cfg.c (assign_discriminator): Add explicit parentheses.

2009-07-24  Cary Coutant  <ccoutant@google.com>

	* cfghooks.c (split_block): Copy discriminator to new block.
	* tree-cfg.c (assign_discriminator): Check location of last
	instruction in block as well as first.

2009-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/linux.c: Use fputs or putc instead of fprintf
	where appropriate.
	* config/i386/gas.h: Ditto.
	* config/i386/x86-64.h: Ditto.
	* config/i386/att.h: Ditto.

2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* expmed.c (emit_store_flag): Use a recursive call to optimize the
	xor case.

2009-07-24  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_node_params): New flag node_enqued.
	(ipa_push_func_to_list_1): Declare.
	(ipa_push_func_to_list): New function.

	* ipa-prop.c (ipa_push_func_to_list_1): New function.
	(ipa_init_func_list): Call ipa_push_func_to_list_1.
	(ipa_push_func_to_list): Removed.
	(ipa_pop_func_from_list): Clear node_enqueued flag.

2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (override_options): Default
	max-unrolled-insns to 100 for z10 tuning.

2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
	tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
	tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
	tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
	tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
	tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
	lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.

2009-07-24  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
	use default set in mingw32.h header.
	* config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
	64-bit /mingw/include path.
	(STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
	path.

2009-07-23  Neil Vachharajani  <nvachhar@google.com>

	PR rtl-optimization/40209
	* loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.

2009-07-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
	ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
	with the rest of string where appropriate.  Use fputs or putc
	instead of fprintf where appropriate.

2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Pat Haugen  <pthaugen@us.ibm.com>
	    Revital Eres <ERES@il.ibm.com>

	* config/rs6000/vector.md: New file.  Move most of the vector
	expander support here from altivec.md to allow for the VSX vector
	unit in the future.  Add support for secondary_reload patterns.
	Rewrite the patterns for vector comparison, and vector comparison
	predicate instructions so that the RTL expresses the desired
	behavior, instead of using unspec.

	* config/rs6000/constraints.md ("f" constraint): Use
	rs6000_constraints to hold the precalculated register class.
	("d" constraint): Ditto.
	("wd" constraint): New constraint for VSX.
	("wf" constraint): Ditto.
	("ws" constraint): Ditto.
	("wa" constraint): Ditto.
	("wZ" constraint): Ditto.
	("j" constraint): Ditto.

	* config/rs6000/predicates.md (vsx_register_operand): New
	predicate for VSX.
	(vfloat_operand): New predicate for vector.md.
	(vint_operand): Ditto.
	(vlogical_operand): Ditto.
	(easy_fp_constant): If VSX, 0.0 is an easy constant.
	(easy_vector_constant): Add VSX support.
	(altivec_indexed_or_indirect_operand): New predicate for
	recognizing Altivec style memory references with AND -16.

	* config/rs6000/rs6000.c (rs6000_vector_reload): New static global
	for vector secondary reload support.
	(rs6000_vector_reg_class): Delete, replacing it with
	rs6000_constraints.
	(rs6000_vsx_reg_class): Ditto.
	(rs6000_constraints): New array to hold the register classes of
	each of the register constraints that can vary at runtime.
	(builtin_mode_to_type): New static array for builtin function type
	creation.
	(builtin_hash_table): New static hash table for builtin function
	type creation.
	(TARGET_SECONDARY_RELOAD): Define target hook.
	(TARGET_IRA_COVER_CLASSES): Ditto.
	(rs6000_hard_regno_nregs_internal): If -mvsx, floating point
	registers are 128 bits if VSX memory reference instructions are used.
	(rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
	unit is being used.
	(rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
	(rs6000_debug_reg_global): Move -mdebug=reg statements here.
	Print several of the scheduling related parameters.
	(rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
	rs6000_constraints instead of rs6000_vector_reg_class.  Move
	-mdebug=reg code to rs6000_debug_reg_global.  Add support for
	-mvsx-align-128 debug switch.  Drop testing float_p if VSX or
	Altivec.  Add VSX support.  Setup for secondary reload support on
	Altivec/VSX registers.
	(rs6000_override_options): Make power7 set the scheduling groups
	like the power5.  Add support for new debug switches to override
	the scheduling defaults.  Temporarily disable -mcpu=power7 from
	setting -mvsx.  Add support for debug switches -malways-hint,
	-msched-groups, and -malign-branch-targets.
	(rs6000_buitlin_conversion): Add support for returning unsigned
	vector conversion functions to fix regressions due to stricter
	type checking.
	(rs6000_builtin_mul_widen_even): Ditto.
	(rs6000_builtin_mul_widen_odd): Ditto.
	(rs6000_builtin_vec_perm): Ditto.
	(rs6000_vec_const_move): On VSX, use xxlxor to clear register.
	(rs6000_expand_vector_init): Initial VSX support for using xxlxor
	to zero a register.
	(rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
	generated upstream.
	(bdesc_3arg): Add builtins for unsigned types.  Add builtins for
	VSX types for bit operations.  Changes to accomidate vector.md.
	(bdesc_2arg): Ditto.
	(bdesc_1arg): Ditto.
	(struct builtin_description_predicates): Rewrite predicate
	handling so that RTL describes the operation, instead of passing
	the instruction to be used as a string argument.
	(bdesc_altivec_preds): Ditto.
	(altivec_expand_predicate_builtin): Ditto.
	(altivec_expand_builtin): Ditto.
	(rs6000_expand_ternop_builtin): Use a switch instead of an if
	statement for vsldoi support.
	(altivec_expand_ld_builtin): Change to use new names from vector.md.
	(altivec_expand_st_builtin): Ditto.
	(paired_expand_builtin): Whitespace changes.
	(rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
	builtin_mode_to_type table for secondary reload.  Call
	builtin_function_type to build random builtin functions.
	(altivec_init_builtins): Change to use builtin_function_type to
	create builtin function types dynamically as we need them.
	(builtin_hash_function): New support for hashing the tree types
	for builtin function as we need it, rather than trying to build
	all of the trees that we need.  Add initial preliminary VSX support.
	(builtin_function_type): Ditto.
	(builtin_function_eq): Ditto.
	(builtin_hash_struct): Ditto.
	(rs6000_init_builtins): Ditto.
	(rs6000_common_init_builtins): Ditto.
	(altivec_init_builtins): Ditto.
	(rs6000_common_init_builtins): Ditto.
	(enum reload_reg_type): New enum for simplifing reg classes.
	(rs6000_reload_register_type): Simplify register classes into GPR,
	Vector, and other registers.  Altivec and VSX addresses in reload.
	(rs6000_secondary_reload_inner): Ditto.
	(rs6000_ira_cover_classes): New target hook, that returns the
	appropriate cover classes, based on -mvsx being used or not.
	(rs6000_secondary_reload_class): Add VSX support.
	(get_vec_cmp_insn): Delete, rewrite vector conditionals.
	(get_vsel_insn): Ditto.
	(rs6000_emit_vector_compare): Rewrite vector conditional support
	so that where we can, we use RTL operators, instead of blindly use
	UNSPEC.
	(rs6000_emit_vector_select): Ditto.
	(rs6000_emit_vector_cond_expr): Ditto.
	(rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
	(create_TOC_reference): Add -mdebug=addr support.
	(emit_frame_save): VSX loads/stores need register indexed addressing.

	* config/rs6000/rs6000.md: Include vector.md.

	* config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	support for V2DI, V2DF in logical, permute, select operations.

	* config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
	switch for vsx/power7.
	(-mvsx-scalar-memory): Ditto.
	(-mvsx-align-128): Ditto.
	(-mallow-movmisalign): Ditto.
	(-mallow-df-permute): Ditto.
	(-msched-groups): Ditto.
	(-malways-hint): Ditto.
	(-malign-branch-targets): Ditto.

	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
	hook instead.
	(IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
	(IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
	(rs6000_vector_reg_class): Delete.
	(rs6000_vsx_reg_class): Ditto.
	(enum rs6000_reg_class_enum): New enum for the constraints that
	vary based on target switches.
	(rs6000_constraints): New array to hold the register class for all
	of the register constraints that vary based on the switches used.
	(ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
	(enum rs6000_builtins): Add unsigned varients for the builtin
	declarations returned by target hooks for expanding multiplies,
	select, and permute operations.  Add VSX builtins.
	(enum rs6000_builtin_type_index): Add entries for VSX.
	(V2DI_type_node): Ditto.
	(V2DF_type_node): Ditto.
	(unsigned_V2DI_type_node): Ditto.
	(bool_long_type_node): Ditto.
	(intDI_type_internal_node): Ditto.
	(uintDI_type_internal_node): Ditto.
	(double_type_internal_node): Ditto.

	* config/rs6000/altivec.md (whole file): Move all expanders to
	vector.md from altivec.md.  Rename insn matching functions to be
	altivec_foo.
	(UNSPEC_VCMP*): Delete, rewrite vector comparisons.
	(altivec_vcmp*): Ditto.
	(UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
	(VM): New iterator for moves that includes the VSX types.
	(altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
	(altivec_vperm_<mode>_uns): New, for unsigned types.
	(altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
	(altivec_eq<mode>): Ditto.
	(altivec_gt<mode>): Ditto.
	(altivec_gtu<mode>): Ditto.
	(altivec_eqv4sf): Ditto.
	(altivec_gev4sf): Ditto.
	(altivec_gtv4sf): Ditto.
	(altivec_vcmpbfp_p): Ditto.

2009-07-23  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
	unsigned HWI.

2009-07-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/40832
	* config/i386/i386.c (output_387_ffreep): Rewrite to use
	ASM_SHORT instead of .word.
	* config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
	instead of .word in asm template.

2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/37488
	* ira-lives.c (bb_has_abnormal_call_pred): New function.
	(process_bb_node_lives): Use it.

	* ira.c (setup_cover_and_important_classes): Don't setup
	ira_important_class_nums.  Add cover classes to the end of
	important classes.
	(cover_class_order, comp_reg_classes_func, reorder_important_classes):
	New.
	(find_reg_class_closure): Use reorder_important_classes.

	* config/i386/i386.h (IRA_COVER_CLASSES): Remove.

	* config/i386/i386.c (i386_ira_cover_classes): New function.
	(TARGET_IRA_COVER_CLASSES): Redefine.

	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
	importance of order of cover classes in the array.

2009-07-22  Diego Novillo  <dnovillo@google.com>

	* tree-pass.h (TDF_EH): Define.
	* gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
	contains TDF_EH, print the EH region number holding GS.
	* tree-dump.c (dump_options): Add "eh".
	* doc/invoke.texi: Document it.

2009-07-22  Doug Kwan  <dougkwan@google.com>

	* config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.

2009-07-22  Michael Matz  <matz@suse.de>

	PR tree-optimization/35229
	PR tree-optimization/39300

	* tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
	(inhibit_phi_insertion): New function.
	(insert_into_preds_of_block): Call it for REFERENCEs.
	(init_pre): Initialize and finalize scalar evolutions.
	* Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .

2009-07-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (zero_extended_scalar_load_operand):
	Use CONST_VECTOR_NUNITS to determine number of elements.

2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
	(U, W): Constraints are now deprecated and will be removed if we
	run out of letters.
	* config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
	the file.
	("prefetch"): Add the stcmh instruction for prefetching.
	* config/s390/s390.c (s390_symref_operand_p): Function moved. No
	changes.
	(s390_short_displacement): Return always true if compiling for
	machines not providing the long displacement facility.
	(s390_mem_constraint): Support the new constraint letter Z.
	(s390_check_qrst_address): New function.

2009-07-21  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_legitimize_arg): Leave control registers
	alone too.

2009-07-21  Jason Merrill  <jason@redhat.com>

	* c-common.c (max_tinst_depth): Increase default to 1024.

2009-07-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
	(vec_unpacku_float_lo_v4si): Ditto.

2009-07-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/40811
	* config/i386/sse.md (sse2_cvtudq2ps): New expander.
	(enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
	(builtin_description): Add __builtin_ia32_cvtudq2ps.
	(ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.

2009-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/40813
	* tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
	it.

2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
	with a NOP_EXPR if needed.

2009-07-21  Paul Brook <paul@codesourcery.com>

	* tree-vectorizer.c (increase_alignment): Handle nested arrays.
	Terminate debug dump with newline.

2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
	Cast "1" to unsigned HOST_WIDE_INT.
	(compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
	deposit length to the maximum length - lsb.  Extend length if
	HOST_BITS_PER_WIDE_INT is 32.

2009-07-20  Olatunji Ruwase <tjruwase@google.com>

	* cgraph.h (constant_pool_htab): New function.
	(constant_descriptor_tree): Move from varasm.c.
	* varasm.c (constant_pool_htab): New function.
	(constant_descriptor_tree): Move to cgraph.h.

2009-07-20  Olatunji Ruwase  <tjruwase@google.com>

	* toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().

2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>

	* Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
	$(VARRAY_H).

2009-07-20  Xinliang David Li  <davidxl@google.com>

	* dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.

2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (move_type): Add arith.
	(type): Handle arith.
	(zero_extendsidi2): Rename this into ...
	(*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
	(zero_extendsidi2): New expander.
	(*zero_extendsidi2_dext): New pattern.

2009-07-20  Nick Clifton  <nickc@redhat.com>

	* config.gcc (mips64-*-*): Add definition of tm_defines in order
	to set MIPS_ABI_DEFAULT.
	* config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.

2009-07-20  Jakub Jelinek  <jakub@redhat.com>

	* tree-object-size.c (addr_object_size): Handle unions with
	array in it as last field of structs in __bos (, 1) as __bos (, 0).

	PR tree-optimization/40792
	* tree.c (build_function_type_skip_args): Remove bogus assert.

2009-07-20  Jan Hubicka  <jh@suse.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (combined_args_to_skip): New field.
	* cgraph.c (cgraph_create_virtual_clone): Properly handle
	combined_args_to_skip and args_to_skip.
	* tree-inline.c (update_clone_info): New function.
	(tree_function_versioning): Call update_clone_info.
	* cgraphunit.c (cgraph_materialize_clone): Dump materialized
	functions.
	(cgraph_materialize_all_clones): More extensive dumping, working
	with combined_args_to_skip rather than args_to_skip.

2009-07-20  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (vectorizable_condition): Add parameters.
	* tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
	(get_initial_def_for_reduction): Likewise.
	(vectorizable_reduction): Skip the check of first operand in case
	of COND_EXPR. Add check that it is outer loop vectorization if
	nested cycle was detected. Call vectorizable_condition() for
	COND_EXPR. If reduction epilogue cannot be created do not fail for
	nested cycles (if it is not double reduction). Assert that there
	is only one type in the loop in case of COND_EXPR. Call
	vectorizable_condition() to vectorize COND_EXPR.
	* tree-vect-stmts.c (vectorizable_condition): Update comment.
	Add parameters. Allow nested cycles if called from
	vectorizable_reduction(). Use reduction vector variable if provided.
	(vect_analyze_stmt): Call vectorizable_reduction() before
	vectorizable_condition().
	(vect_transform_stmt): Update call to vectorizable_condition().

2009-07-20  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.opt (-mfmovd): Resurrect and document.
	* doc/invoke.texi (-mfmovd): Likewise.
	* config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.

2009-07-20  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
	when handling SSA name.

2009-07-19  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/40676
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
	virtual PHIs in empty BBs.

2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (make_compound_operation) <SUBREG>: If force_to_mode
	re-expanded the compound use gen_lowpart instead to convert to the
	desired mode.

2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
	OUTER_CONST arguments.
	<LSHIFTRT>: Use them to allow widening if the bits shifted in from
	the new wider mode will be masked off.
	(simplify_shift_const_1): Adjust calls to try_widen_shift_mode.

2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
	high-order bits are zero.

2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (simplify_shift_const_1): Split code to determine
	shift_mode into ...
	(try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
	new bits shifted in are identical to the old sign bit.

2009-07-18  Richard Guenther  <rguenther@suse.de>

	PR c/40787
	* gimplify.c (gimplify_call_expr): Reject code using results from
	functions returning void.

2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* doc/md.texi: Document the new PowerPC "es" constraint.
	Document that "m" can include automodified addresses on this target,
	and explain how %U must be used.  Extend the "Q" and "Z" documentation
	to suggest "es" as well as "m".
	* config/rs6000/constraints.md (es): New memory constraint.
	(Q, Z): Update strings to match new documentation.

2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
	offset from virtual_stack_vars_rtx and arg_pointer_rtx.
	* config/rs6000/predicates.md (volatile_mem_operand): Use
	offsettable_nonstrict_memref_p.
	* config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
	(*floatunssidf2_internal): Likewise.
	(*fix_truncdfsi2_internal): Likewise.
	(*fix_trunctfsi2_internal): Likewise.

2009-07-17  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
	atmega32u2 devices.
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2009-07-17  Richard Guenther  <rguenther@suse.de>

	PR c/40401
	* tree-pass.h (pass_diagnose_omp_blocks): Declare.
	(pass_warn_unused_result): Likewise.
	(TODO_set_props): Remove.
	* omp-low.c (diagnose_omp_structured_block_errors): Change to
	run as a pass.
	(pass_diagnose_omp_blocks): Define.
	* c-decl.c (pop_file_scope): Do not finalize the CU here.
	(c_gimple_diagnostics_recursively): Remove.
	(finish_function): Do not call it.
	(c_write_global_declarations): Continue after errors.
	Finalize the CU here.
	* c-gimplify.c (c_genericize): Do not gimplify here.
	* c-common.c (c_warn_unused_result): Move ...
	* tree-cfg.c (do_warn_unused_result): ... here.
	(run_warn_unused_result): New function.
	(gate_warn_unused_result): New function.
	(pass_warn_unused_result): New pass.
	* c-common.h (c_warn_unused_result): Remove.
	* flags.h (flag_warn_unused_result): Declare.
	* c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
	* opts.c (flag_warn_unused_result): Initialize to false.
	* toplev.c (compile_file): Add comment.
	* omp-low.c (create_omp_child_function): Do not register
	the function with the frontend.
	(diagnose_omp_structured_block_errors): Prepare to be
	called as optimization pass.
	(gate_diagnose_omp_blocks): New function.
	(pass_diagnose_omp_blocks): New pass.
	* cgraph.h (cgraph_optimize): Remove.
	(cgraph_analyze_function): Likewise.
	* cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
	* cgraphunit.c (cgraph_lower_function): Lower nested functions
	before their parents here.
	(cgraph_finalize_function): Not here.
	(cgraph_analyze_function): Gimplify functions here.
	(cgraph_finalize_compilation_unit): Continue after errors.
	Optimize the callgraph from here.
	(cgraph_optimize): Make static.
	* langhooks.c (write_global_declarations): Finalize the CU.
	* gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
	(gimplify_function_tree): Assert we gimplify only once.
	Set PROP_gimple_any property.
	* tree-nested.c (gimplify_all_functions): New function.
	(lower_nested_functions): Gimplify all nested functions.
	* gimple.h (diagnose_omp_structured_block_errors): Remove.
	* passes.c (init_optimization_passes): Add pass_warn_unused_result
	and pass_diagnose_omp_blocks after gimplification.  Do not
	set TODO_set_props on all_lowering_passes.
	(execute_one_pass): Do not handle TODO_set_props.
	* Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
	(gimplify.o): Add tree-pass.h dependency.
	* tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
	(copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
	(unsave_r): Likewise.
	* c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
	temporary variable.

2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/service.texi (Service): Restore previously removed link,
	which isn't broken after all.

2009-07-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40321
	* tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
	PHI nodes to the maximal set.
	(make_values_for_phi): Add PHI arguments to the maximal set.
	(execute_pre): Dump PHI_GEN and the maximal set.

2009-07-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/40780
	* gimplify.c (gimplify_conversion): Don't change non-conversions into
	VIEW_CONVERT_EXPR.

2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Nested Functions): Replace broken link with
	textual reference.
	* doc/service.texi (Service): Remove broken link.

2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/40781
	* builtins.c (expand_builtin_memcmp): Use loc instead of
	EXPR_LOCATION (exp).
	(expand_builtin_strncmp): Likewise.

2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 40435
	* tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
	builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
	tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
	c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
	calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
	tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
	tree-inline.c, c-common.c, c-common.h, gimple.c,
	tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
	convert.c: Add location argument to fold_{unary,binary,ternary},
	fold_build[123], build_call_expr, build_size_arg,
	build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
	fold_build1_initializer, fold_build2_initializer,
	fold_build3_initializer, fold_build_call_array,
	fold_build_call_array_initializer, fold_single_bit_test,
	omit_one_operand, omit_two_operands, invert_truthvalue,
	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
	combine_comparisons, fold_builtin_*, fold_call_expr,
	build_range_check, maybe_fold_offset_to_address, round_up,
	round_down.

2009-07-16  Jason Merrill  <jason@redhat.com>

	PR libstdc++/37907
	* c-common.c (c_common_reswords): Add __is_standard_layout
	and __is_trivial.
	* c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
	* doc/implement-cxx.texi: New.
	* doc/gcc.texi: Include it.

2009-07-16  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
	compares that may be indirectly affected by previous instructions.

2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (do_mpc_arg2): New.
	(fold_builtin_2): Fold builtin cpow.
	* real.h (HAVE_mpc_pow): New.

2009-07-16  Bingfeng Mei  <bmei@broadcom.com>

	* modulo-sched.c (sms_schedule): stage_count <= 1 as correct
	comparison to skip unprofitable schedule

2009-07-16  Simon Baldwin  <simonb@google.com>

	* gcc.c (option_map): New flag -no-canonical-prefixes.
	* (display_help): Print help text for new flag.
	* (process_command): Move options translation and language specifics
	and handle new flag early.  Use it to set a function pointer to a
	prefix builder.  Replace make_relative_prefix calls with calls to
	the function pointed to.  Ignore new flag in regular options handling.
	* doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.

2009-07-15  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.md (sibcall_internal): Change register to avoid
	argument registers.
	(sibcall_value_internal): Likewise.

2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/40710
	* resource.c (mark_target_live_regs): Reset DF problem to LR.

2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*extenddi_truncate<mode>,
	*extendsi_truncate<mode>): Change type attribute to move_type
	with shift_shift.  Split out code handling exts from here ...
	(*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
	pattern.
	(*extendhi_truncateqi): Change type attribute to move_type with
	shift_shift.  Split out code handling exts from here ...
	(*extendhi_truncateqi_exts): ... to this new pattern.

2009-07-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
	instead of "and" with inverted sign bit mask value.  Use
	"nonimmediate_operand" for operand 1 and operand 2 predicate.
	Allocate registers only for operand 4 and operand 5.

2009-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40747
	* fold-const.c (fold_cond_expr_with_comparison): When folding
	< and <= to MIN, make sure the MIN uses the same type as the
	comparison's operands.

2009-07-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (ior_xor): New code iterator.
	(split for ior/xor with shift and zero-extend): New split pattern.
	* arm/predicates.md (subreg_lowpart_operator): New special predicate.

2009-07-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
	offset member.

2009-07-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40753
	* alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.

2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
	handle 2.6.30 kernel.

2009-07-15  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.md (sibcall_internal): Change register to allow
	for 24-bit addresses.
	(sibcall_value_internal): Likewise.

2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>

	* doc/invoke.texi: Added descriptions of the  scheduling heuristics
	that are enabled/disabled by the flags introduced by a previous patch.

2009-07-14  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.md (sibcall_internal): Include non-toggling
	non-jmp case.
	(sibcall_value_internal): Likewise.

2009-07-14  Taras Glek  <tglek@mozilla.com>
	    Rafael Espindola  <espindola@google.com>

	* doc/sourcebuild.texi: Document install-plugin target.
	* configure.ac: Added install-plugin target to language makefiles.
	* configure: Regenerate.
	* Makefile.in (install-plugin): Install more headers,
	depend on lang.install-plugin.

2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-vrp.c (vrp_evaluate_conditional): Mark strings for
	translation.

2009-07-14  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_vliw_jmp_match): New function.
	* config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
	* config/mep/mep.md (sibcall_internal): Change test from
	mep_vliw_mode_match to mep_vliw_jmp_match.
	(sibcall_value_internal): Likewise.

2009-07-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (copysign<mode>3): New expander.
	* config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
	* config/i386/i386.c (ix86_build_signbit_mask): Make public.
	Use ix86_build_const_vector.
	(enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
	IX86_BUILTIN_CPYSGNPD.
	(builtin_description): Add __builtin_ia32_copysignps and
	__builtin_ia32_copysignpd.
	(ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
	and BUILT_IN_COPYSIGNF.

2009-07-13  Jason Merrill  <jason@redhat.com>

	* builtins.c (can_trust_pointer_alignment): New fn.
	(get_pointer_alignment): Factor it out from here.
	* tree.h: Declare it.

2009-07-14  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (offsettable_mem_operand): Test
	RTX_AUTOINC class.

2009-07-14  Dodji Seketeli  <dodji@redhat.com>

	PR debug/40705
	PR c++/403057
	* dwarf2.out.c (gen_type_die_with_usage): Added comment.

2009-07-14  Richard Guenther  <rguenther@suse.de>
	    Andrey Belevantsev <abel@ispras.ru>

	PR middle-end/40745
	* cfgexpand.c (partition_stack_vars): Do not bother to update
	alias information when not optimizing.

2009-07-14  Richard Guenther  <rguenther@suse.de>
	    Andrey Belevantsev <abel@ispras.ru>

	* tree-ssa-alias.h (refs_may_alias_p_1): Declare.
	(pt_solution_set): Likewise.
	* tree-ssa-alias.c (refs_may_alias_p_1): Export.
	* tree-ssa-structalias.c (pt_solution_set): New function.
	* final.c (rest_of_clean_state): Free SSA data structures.
	* print-rtl.c (print_decl_name): Remove.
	(print_mem_expr): Implement in terms of print_generic_expr.
	* alias.c (ao_ref_from_mem): New function.
	(rtx_refs_may_alias_p): Likewise.
	(true_dependence): Query alias-export info.
	(canon_true_dependence): Likewise.
	(write_dependence_p): Likewise.
	* tree-dfa.c (get_ref_base_and_extent): For void types leave
	size unknown.
	* emit-rtl.c (component_ref_for_mem_expr): Remove.
	(mem_expr_equal_p): Use operand_equal_p.
	(set_mem_attributes_minus_bitpos): Do not use
	component_ref_for_mem_expr.
	* cfgexpand.c (add_partitioned_vars_to_ptset): New function.
	(update_alias_info_with_stack_vars): Likewise.
	(partition_stack_vars): Call update_alias_info_with_stack_vars.
	* tree-ssa.c (delete_tree_ssa): Do not release SSA names
	explicitly nor clear stmt operands.
	Free the decl-to-pointer map.
	* tree-optimize.c (execute_free_datastructures): Do not free
	SSA data structures here.
	* tree-flow.h (struct gimple_df): Add decls_to_pointers member.
	* Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
	(alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
	dependencies.
	(print-rtl.o): Add $(DIAGNOSTIC_H) dependency.

2009-07-13  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
	unrolling at the right iteration count.

	* config/mep/mep.c (mep_expand_prologue): Fix frame pointer
	calculations.

2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>

	* haifa-sched.c (rank_for_schedule): Introduced flags to
	enable/disable individual scheduling heuristics.
	* common.opt: Introduced flags to enable/disable individual
	heuristics in the scheduler.
	* doc/invoke.texi: Introduced flags to enable/disable individual
	heuristics in the scheduler.

2009-07-13  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
	config/i386/mingw-tls.c.
	* config/i386/mingw-tls.c: Removed.

2009-07-13  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
	checks access only relevant statements.
	(vectorizable_reduction): Likewise.

2009-07-12  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
	just for 32-bit case.

2009-07-12  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/40585
	* except.c (expand_resx_expr): When there already is resume
	instruction, produce linked list.
	(build_post_landing_pads): Assert that resume is empty.
	(connect_post_landing_pads): Handle resume lists.
	(dump_eh_tree): Dump resume list.

2009-07-12  Ira Rosen  <irar@il.ibm.com>

	* tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
	with additional argument.
	* tree-vectorizer.h (enum vect_def_type): Add
	vect_double_reduction_def.
	(vect_is_simple_reduction): Add argument.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Fix
	indentation.
	(vect_analyze_scalar_cycles_1): Detect double reduction. Call
	vect_is_simple_reduction with additional argument.
	(vect_analyze_loop_operations): Handle exit phi nodes in case of
	double reduction.
	(reduction_code_for_scalar_code): Handle additional codes by
	returning ERROR_MARK for them. Fix comment and indentation.
	(vect_is_simple_reduction): Fix comment, add argument to specify
	double reduction. Detect double reduction.
	(get_initial_def_for_induction): Fix indentation.
	(get_initial_def_for_reduction): Fix comment and indentation.
	Handle double reduction. Create initial definitions that do not
	require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
	(vect_create_epilog_for_reduction): Fix comment, add argument to
	handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
	epilogue result extraction. Create double reduction phi node and
	replace relevant uses.
	(vectorizable_reduction): Call vect_is_simple_reduction with
	additional argument. Fix indentation. Update epilogue code treatment
	according to the changes in reduction_code_for_scalar_code. Check
	for double reduction. Call vect_create_epilog_for_reduction with
	additional argument.
	* tree-vect-stmts.c (process_use): Handle double reduction, update
	documentation.
	(vect_mark_stmts_to_be_vectorized): Handle double reduction.
	(vect_get_vec_def_for_operand): Likewise.

2009-07-12  Danny Smith  <dansmister@gmail.com>

	* config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
	dllexport if !TREE_PUBLIC.
	(i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.

2009-07-11  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
	(avr_extra_arch_macro) Remove declatation.
	* config/avr/avr.c (avr_cpu_cpp_builtins): New function.
	(avr_extra_arch_macro) Declare as static.
	* config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.

2009-07-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48388
	* except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.

2009-07-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40713
	* dwarf2out.c (dw_fde_struct): Add in_std_section and
	cold_in_std_section bits.
	(dwarf2out_begin_prologue): Initialize them.
	(dwarf2out_finish): Don't emit FDE range into .debug_ranges
	if already covered by text_section or cold_text_section range.

	PR rtl-optimization/40667
	* defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
	* doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
	* config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
	* config/i386/i386.c (ix86_minimum_alignment): New function.
	* config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
	* cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
	* emit-rtl.c (gen_reg_rtx): Likewise.
	* function.c (assign_parms): Likewise.  If nominal_type needs
	bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
	rather than passed_type's alignment.

	PR target/40668
	* function.c (assign_parm_setup_stack): Adjust
	MEM_OFFSET (data->stack_parm) if promoted_mode is different
	from nominal_mode on big endian.

2009-07-11  Paolo Bonzini  <bonzini@gnu.org>

	* expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.

2009-07-10  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.

2009-07-10  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/thumb2.md (thumb2_cbz): Correct computation of length
	attribute.
	(thumb2_cbnz): Likewise.

2009-07-10  David Daney  <ddaney@caviumnetworks.com>

	PR target/39079
	* config.gcc (supported_defaults): Add synci.
	(with_synci): Add validation.
	(all_defaults): Add synci.
	* config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
	ISA_HAS_SYNCI.
	(synci): Same.
	* config/mips/mips.opt (msynci): New option.
	* config/mips/mips.c (mips_override_options): Warn on use of
	-msynci for targets that do now support it.
	* gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
	msynci.
	* gcc/doc/invoke.texi (-msynci): Document the new option.
	* doc/install.texi (--with-synci): Document the new option.

2009-07-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40496
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
	the PHI result with a compatible type.

2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 25509
	PR 40614
	* c.opt (Wunused-result): New.
	* doc/invoke.texi: Document it.
	* c-common.c (c_warn_unused_result): Use it.

2009-07-09  DJ Delorie  <dj@redhat.com>

	* targhooks.c (default_target_can_inline_p): Rename from
	default_target_option_can_inline_p.
	* targhooks.h (default_target_can_inline_p): Likewise.
	* target-def.h (TARGET_CAN_INLINE_P): Rename from
	TARGET_OPTION_CAN_INLINE_P.
	* config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
	* config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
	(mep_target_can_inline_p): Rename from
	mep_target_option_can_inline_p.

	PR target/40626
	* config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
	registers used to pass vectors.

	* config/mep/mep.c (mep_option_can_inline_p): Remove error call.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* unwind-dw2-fde-darwin.c: Include dwarf2.h.
	* config/mmix/mmix.c: Include dwarf2.h.
	* config/rs6000/darwin-fallback.c: Include dwarf2.h.
	* config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
	* config/sh/sh.c: Include dwarf2.h.
	* config/i386/i386.c: Include dwarf2.h.
	* Makefile.in (DWARF2_H): Remove 'elf'.
	* except.c: Include dwarf2.h.
	* unwind-dw2.c: Include dwarf2.h.
	* dwarf2out.c: Include dwarf2.h.
	* unwind-dw2-fde-glibc.c: Include dwarf2.h.
	* unwind-dw2-fde.c: Include dwarf2.h.
	* dwarf2asm.c: Include dwarf2.h.

2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* haifa-sched.c (insn_finishes_cycle_p): New static function.
	(max_issue): Use it.
	* sched-int.h (struct sched_info: insn_finishes_block_p): New
	scheduler hook.
	* sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
	(region_sched_info): Update.
	* sched-ebb.c (ebb_sched_info): Update.
	* modulo-sched.c (sms_sched_info): Update.
	* sel-sched-ir.c (sched_sel_haifa_sched_info): Update.

2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* varasm.c (build_constant_desc): Don't share RTL in pool entries.

2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>

	* plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.

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

	PR middle-end/40692
	* fold-const.c (fold_cond_expr_with_comparison): Don't replace
	arg1 with arg01 if arg1 is already INTEGER_CST.

2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>

	* simplify-rtx.c (simplify_binary_operation_1) <AND>:
	Transform (and (truncate)) into (truncate (and)).

2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
	creating LHS paradoxical subregs.  Fix surrounding returns to
	use NULL_RTX rather than 0.

2009-07-08  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_option_can_inline_p): New.
	(TARGET_OPTION_CAN_INLINE_P): Define.

2009-07-08  Mark Wielaard  <mjw@redhat.com>

	PR debug/40659
	* dwarf2out.c (add_data_member_location_attribute): When we have
	only a constant offset don't emit a new location description using
	DW_OP_plus_uconst, but just add the constant with add_AT_int, when
	dwarf_version > 2.

2009-07-08  Richard Henderson  <rth@redhat.com>

	PR target/38900
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
	(enum reg_class): Add CLOBBERED_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
	* config/i386/i386.c (ix86_conditional_register_usage): Moved
	from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
	(ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
	(ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
	force 64-bit sibcalls into R11.
	* config/i386/constraints.md (U): New constraint.
	* config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
	(sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
	(sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.

2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>

	* basic-block.h (dump_regset, debug_regset): Remove duplicate
	prototypes.
	* c-objc-common.h (c_initialize_diagnostics): Ditto.
	* ebitmap.h (dump_ebitmap): Ditto.
	* optabs.h (optab_libfunc): Ditto.
	* tree.h (tree_expr_nonzero_warnv_p): Ditto.
	* tree-flow.h (vect_can_force_dr_alignment_p,
	get_vectype_for_scalar_type): Ditto.
	(vectorize_loops): Move prototype to ...
	* tree-vectorizer.h: ... here. Also, adjust comment.
	(vect_set_verbosity_level): Remove duplicate prototype.
	* tree-ssa-loop.c: Include tree-vectorizer.h.
	* Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.

2009-07-08  Nick Clifton  <nickc@redhat.com>

	* config/i386/unix.h (ASM_COMMENT_START): Add a space after the
	forward slash.

2009-07-08  DJ Delorie  <dj@redhat.com>

	* config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
	cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
	cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
	written to.
	* config/mep/intrinsics.md: Regenerated.
	* config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
	registers when asm() or calls are detected.

2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/31246
	* gimplify.c (gimplify_expr): Propagate no_warning flag when
	gimplifying.
	* gimple (gimple_build_call_from_tree): Likewise.
	* tree-cfg.c (remove_useless_stmts_warn_notreached): Check
	no_warning flag before warning.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree.c (set_expr_locus): Remove.
	* tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
	* c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
	EXPR_LOCATION.
	* gimplify.c (internal_get_tmp_var): Likewise.
	(gimplify_call_expr): Likewise.
	(gimplify_one_sizepos): Likewise.

2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/40666
	* dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
	to variables for debugging purposes.

2009-06-23  Mark Loeser  <mark@halcy0n.com>

	PR build/40010
	* Makefile.in (gcc.pod): Depend on gcc-vers.texi.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* pretty-print.c (pp_base_format): Remove %J.
	* c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
	gcc_cxxdiag_char_table): Likewise.
	(init_dynamic_diag_info): Likewise.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* pretty-print.c (pp_base_format): Remove %H.
	* c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
	gcc_cxxdiag_char_table): Likewise.
	(init_dynamic_diag_info): Likewise.
	* config/mep/mep.c (mep_select_section): Likewise.

2009-07-07  Duncan Sands  <baldrick@free.fr>

	* final.c (pass_clean_state): Give the pass a name.
	* passes.c (pass_rest_of_compilation): Likewise.
	* tree-optimize.c (pass_all_optimizations): Likewise.

2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/ia64/ia64.c (ia64_handle_model_attribute): Remove
	an extra 'decl' for error_at.

2009-07-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40669
	* tree-tailcall.c (adjust_return_value_with_ops,
	create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
	if it has complex or vector type.

2009-07-07  Olivier Hainque  <hainque@adacore.com>

	* config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
	pthread symbols.

2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>

	* Makefile.in: added more lists of includes to PLUGIN_HEADERS.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* cgraphunit.c: Replace %J by an explicit location.  Update all calls.
	* c-decl.c: Likewise.
	* function.c: Likewise.
	* varasm.c: Likewise.
	* tree-ssa.c: Likewise.
	* c-common.c: Likewise.
	* tree-cfg.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/v850/v850.c: Likewise.

2009-07-06  DJ Delorie  <dj@redhat.com>

	* config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
	* config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
	unspecified accesses to control registers.
	* config/mep/intrinsics.md: Regenerate.
	* config/mep/intrinsics.h: Regenerate.
	* config/mep/mep-intrin.h: Regenerate.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-lex.c: Replace %H by an explicit location. Update all calls.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-typeck.c: Likewise.
	* fold-const.c: Likewise.
	* gimplify.c: Likewise.
	* stmt.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-vrp.c: Likewise.
	* value-prof.c: Likewise.

2009-07-06  Diego Novillo  <dnovillo@google.com>

	* tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
	if it has one.  Handle cases where VAR does not have an
	annotation or cfun is NULL.

2009-07-06  Diego Novillo  <dnovillo@google.com>

	* tree.c: Include debug.h.
	(initialize_tree_contains_struct): New.
	(init_ttree): Call it.
	(tree_node_structure_for_code): Factor out of ...
	(tree_node_structure): ... here.
	* treestruct.def (TS_PHI_NODE): Remove.
	(TS_GIMPLE_STATEMENT): Remove.

2009-07-06  Diego Novillo  <dnovillo@google.com>

	* tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
	(debug_tree_chain): Handle cycles.

2009-07-06  Nick Clifton  <nickc@redhat.com>
	    DJ Delorie  <dj@redhat.com>

	* config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
	__FMOVD_ENABLED__ is defined.
	* config/sh/sh.h
	(TARGET_FMOVD): Provide a default definition.
	(MASK_FMOVD): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Define
	__FMOVD_ENABLED__ if TARGET_FMOVD is true.
	* config/sh/sh.md (movdf_i4): For alternative 0 use either one or
	two fmov instructions depending upon whether TARGET_FMOVD is enabled.
	(split for DF load from memory into register): Also handle
	MEMs which consist of REG+DISP addressing.
	(split for DF store from register to memory): Likewise.
	(movsf_ie): Always use single fp_mode.
	* config/sh/sh.c (sh_override_options): Do not automatically
	enable TARGET_MOVD for the SH2A when supporting doubles - leave
	that to the -mfmovd command line switch.
	(broken_move): Do not restrict fldi test to only the SH4 and SH4A.
	(fldi_ok): Always allow.
	* config/sh/sh.opt (mfmovd): Remove this switch.
	* doc/invoke.texi (-mfmovd): Remove documentation of this switch.

2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/30807
	* postreload.c (reload_combine): For every new use of REG_SUM,
	record the use of BASE.

2009-07-06  Jan Hubicka  <jh@suse.cz>

	* params.def: Revert my accidental commit at 2009-06-30.

2009-07-04  Ian Lance Taylor  <iant@google.com>

	PR target/40636
	* config/i386/msformat-c.c (mingw_format_attributes): Declare as
	EXPORTED_CONST.
	(mingw_format_attribute_overrides): Likewise.

2009-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40596
	* dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
	don't check cfa.reg.  Instead of cfa.indirect use
	fde && fde->drap_reg != INVALID_REGNUM test.

2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.

2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/40587
	* ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.

2009-07-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40640
	* tree-switch-conversion.c (build_arrays): Perform arithmetic
	in original type.

2009-07-03  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
	for size, reduce amount of inlining.

2009-07-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34163
	* tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
	if t +- x is known to not overflow and the conversion widens the
	operation.
	* Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.

2009-07-03  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (analyze): Update loop optimizer init.
	* tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
	try_remove_empty_loop, remove_empty_loops): Remove.
	* tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
	* tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
	to mark regular loops as neccesary.
	(degenerate_phi_p): New function.
	(propagate_necessity, remove_dead_phis): Use it.
	(forward_edge_to_pdom): Likewise.
	(eliminate_unnecessary_stmts): Take care to remove uses of results of
	virtual PHI nodes that became unreachable.
	(perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
	* tree-flow.h (remove_empty_loops): Remove.
	* passes.c (init_optimization_passes): Remove.

2009-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
	can_create_pseudo_p.
	(*fix_trunc<mode>_i387_1): Ditto.
	(*floathi<mode>2_1): Ditto.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
	(*fistdi2_1): Ditto.
	(*fist<mode>2_1): Ditto.
	(frndintxf2_floor): Ditto.
	(*fist<mode>2_floor_1): Ditto.
	(frndintxf2_ceil): Ditto.
	(*fist<mode>2_ceil_1): Ditto.
	(frndintxf2_trunc): Ditto.
	(frndintxf2_mask_pm): Ditto.
	(fxam<mode>2_i387_with_temp): Ditto.
	* config/i386/sse.md (mulv16qi3): Ditto.
	(*sse2_mulv4si3): Ditto.
	(mulv2di3): Ditto.
	(sse4_2_pcmpestr): Ditto.
	(sse4_2_pcmpistr): Ditto.

2009-07-03  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
	(mark_stmt_necessary): Set it.
	(mark_operand_necessary): Set it.
	(mark_control_dependent_edges_necessary): Set it.
	(mark_virtual_phi_result_for_renaming): New function.
	(get_live_post_dom): New function.
	(forward_edge_to_pdom): New function.
	(remove_dead_stmt): Fix handling of control dependences.
	(tree_dce_init): Init new bitmap.
	(tree_dce_done): Free it.

2009-07-02  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/40617
	* tree-ssa-structalias.c (new_var_info): Initialize
	is_restrict_var.

2009-07-02  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
	local.

2009-07-02  Paolo Bonzini  <bonzini@gnu.org>

	* expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
	instead of recomputing it.  Adjust calls.
	(emit_store_flag): Adjust recursive calls.

2009-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-live.c (remove_unused_locals): Do not remove
	heap variables.
	* tree-ssa-structalias.c (handle_lhs_call): Delay setting
	of DECL_EXTERNAL for HEAP variables.
	(compute_points_to_sets): Set DECL_EXTERNAL for escaped
	HEAP variables.  Do not adjust RESTRICT vars.
	(find_what_var_points_to): Nobody cares if something
	points to READONLY.

2009-07-02  Ben Elliston  <bje@au.ibm.com>

	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
	pc_low and pc_high declarations to the top of the function.

2009-07-01  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.c (mep_handle_option): Leave IVC2 control
	registers as fixed.
	(mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
	* config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
	unspecified accesses to control registers.
	* config/mep/intrinsics.md: Regenerate.
	* config/mep/intrinsics.h: Regenerate.
	* config/mep/mep-intrin.h: Regenerate.

2009-07-01  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_expand_prologue): Use dec
	instruction when possible.
	(moxie_expand_prologue): Ditto.  Also, save an instruction and
	some complexity by popping off of $r12 instead of $sp.
	* config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
	operands.

2009-07-01  Richard Henderson  <rth@redhat.com>

	PR bootstrap/40347
	* function.c (reposition_prologue_and_epilogue_notes): If epilogue
	contained no insns, reposition note before last insn.

2009-07-01  Richard Henderson  <rth@redhat.com>

	PR debug/40431
	* dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
	DW_CFA_def_cfa_offset and DW_CFA_def_cfa.

2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR bootstrap/40558
	* config/rs6000/rs6000.c (print_operand): Undo change that breaks
	darwin9 for printing reg addresses with %y.

2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (force_to_mode): Handle TRUNCATE.  Factor out
	truncation from operands in binary operations.

2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>

	Revert:
	2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
	* expmed.c (store_bit_field_1): Properly truncate the paradoxical
	subreg of op0 to the original op0.

	* expmed.c (store_bit_field_1): Use a temporary as the destination
	instead of a paradoxical subreg when we need to truncate the result.

2009-07-01  DJ Delorie  <dj@redhat.com>

	* config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
	names to VLIW variants.
	(ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
	* config/mep/intrinsics.md: Regenerate.
	* config/mep/intrinsics.h: Regenerate.
	* config/mep/mep-intrin.h: Regenerate.

2009-07-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40462
	* jump.c (returnjump_p): Revert last patch.
	* dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.

2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/40575
	* pa.md (casesi32p): Use jump table label to determine the offset
	of the jump table.
	(casesi64p): Likewise.

	* pa.c (forward_branch_p): Return bool type.  Use instruction
	addresses when available.  Assert that INSN has a jump label.
	(pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
	have a jump label.

2009-07-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* tree-ssa-dce.c (propagate_necessity): Calls to functions
	that only act as barriers do not make any previous stores necessary.
	* tree-ssa-structalias.c (handle_lhs_call): Delay making
	HEAP variables global, do not add a constraint from nonlocal.
	(find_func_aliases): Handle escapes through return statements.
	(compute_points_to_sets): Make escaped HEAP variables global.

2009-07-01  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/40597
	* expmed.c (emit_store_flag): Perform a conversion if necessary,
	after reducing a DImode cstore to SImode.

2009-07-01  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (expand_expr_real_1): Reinstate fallthrough to
	TRUTH_ANDIF_EXPR if do_store_flag returns NULL.

2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
	* config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
	to 0.
	* config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
	and umod_optab if TARGET_BSD_DIVMOD.
	* config/vax/lib1funcs.asm: New file.
	* config/vax/t-linux: New file.
	* config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.

2009-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/40566
	* convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
	to type arguments that have void type.

	PR debug/40573
	* dwarf2out.c (gen_formal_parameter_die): Call
	equate_decl_number_to_die if node is different from origin.

2009-06-30  Anthony Green  <green@moxielogic.com>

	Clean up moxie port for --enable-build-with-cxx.
	* config/moxie/moxie.c (moxie_function_value): First two
	parameters are const_tree, not tree.
	* config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
	(REG_CLASS_NAMES): Ditto.
	(REGNO_REG_CLASS): Ditto.
	* config/moxie/moxie-protos.h (moxie_override_options): Declare.
	(moxie_function_value): Fix constyness of arguments.

2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraphunit.c (cgraph_finalize_compilation_unit): Call
	finalize_size_functions before further processing.
	* stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
	(variable_size): Call self_referential_size on size expressions
	that contain a PLACEHOLDER_EXPR.
	(size_functions): New static variable.
	(copy_self_referential_tree_r): New static function.
	(self_referential_size): Likewise.
	(finalize_size_functions): New global function.
	* tree.c: Include tree-inline.h.
	(push_without_duplicates): New static function.
	(find_placeholder_in_expr): New global function.
	(substitute_in_expr) <tcc_declaration>: Return the replacement object
	on equality.
	<tcc_expression>: Likewise.
	<tcc_vl_exp>: If the replacement object is a constant, try to inline
	the call in the expression.
	* tree.h (finalize_size_functions): Declare.
	(find_placeholder_in_expr): Likewise.
	(FIND_PLACEHOLDER_IN_EXPR): New macro.
	(substitute_placeholder_in_expr): Update comment.
	* tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
	is true.
	(copy_tree_body_r): Likewise.
	(copy_tree_body): New static function.
	(maybe_inline_call_in_expr): New global function.
	* tree-inline.h (struct copy_body_data): Add do_not_unshare field.
	(maybe_inline_call_in_expr): Declare.
	* Makefile.in (tree.o): Depend on TREE_INLINE_H.
	(stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
	GIMPLE_H.

2009-06-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
	continue walking.
	(propagate_necessity): Do not mark reaching defs of stores
	as necessary.

2009-06-30  Jan Hubicka  <jh@suse.cz>

	* cfgloopanal.c (check_irred): Move into ...
	(mark_irreducible_loops): ... here; return true if ireducible
	loops was found.
	* ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
	(analyze_function): Try to prove loop finiteness.
	* cfgloop.h (mark_irreducible_loops): Update prototype.
	* Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.

2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>

	* Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.

2009-06-30  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/40542
	* tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
	types.

2009-06-30  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40582
	* tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
	than useless_type_conversion_p.
	(generate_subtree_copies): Increment sra_stats.subtree_copies at a
	proper place.

2009-06-30  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/40554
	* tree-sra.c (sra_modify_expr): Add access->offset to start_offset.

2009-06-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
	use ao_ref references.
	(walk_aliased_vdefs): Likewise.
	* tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
	* tree-ssa-dce.c (struct ref_data): Remove.
	(mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
	(mark_aliased_reaching_defs_necessary): Adjust.
	(mark_all_reaching_defs_necessary_1): Likewise.

2009-06-30  Paolo Bonzini  <bonzini@gnu.org>

	PR boostrap/40597
	* expmed.c (emit_cstore): New name of emit_store_flag_1.
	(emit_store_flag_1): Extract from emit_store_flag, adjust
	calls to (what now is) emit_cstore.
	(emit_store_flag): Call emit_store_flag_1 and also use it
	for what used to be recursive calls.

2009-06-30  Wei Guozhi  <carrot@google.com>

	PR/40416
	* tree-ssa-sink.c (statement_sink_location): Stop sinking expression
	if the target bb post dominates from bb.
	* config/i386/i386.c (memory_address_length): Check existence of base
	register before using it.

2009-06-30  Nick Clifton  <nickc@redhat.com>
	    DJ Delorie  <dj@redhat.com>

	* config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
	__FMOVD_ENABLED__ is defined.
	* config/sh/sh.h
	(TARGET_FMOVD): Provide a default definition.
	(MASK_FMOVD): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Define
	__FMOVD_ENABLED__ if TARGET_FMOVD is true.
	* config/sh/sh.md (movdf_i4): For alternative 0 use either one or
	two fmov instructions depending upon whether TARGET_FMOVD is
	enabled.
	(split for DF load from memory into register): Also handle
	MEMs which consist of REG+DISP addressing.
	(split for DF store from register to memory): Likewise.
	* config/sh/sh.opt (mfmovd): Remove this switch.
	* doc/invoke.texi (-mfmovd): Remove documentation of this switch.
	* config/sh/sh.c (sh_override_options): Do not automatically
	enable TARGET_MOVD for the SH2A when supporting doubles - leave
	that to the -mfmovd command line switch.

	* config/sh/sh.c (broken_move): Do not restrict fldi test to only
	the SH4 and SH4A.
	(fldi_ok): Always allow.
	* config/sh/sh.md (movsf_ie): Always use single fp_mode.

2009-06-29  DJ Delorie  <dj@redhat.com>

	* doc/install.texi (mep-x-elf): Correct chip's full name.

2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi: Fix typo.

2009-06-29  Tom Tromey  <tromey@redhat.com>

	* dwarf2.h: Remove.
	* Makefile.in (DWARF2_H): New variable.
	(except.o): Use it.
	(dwarf2out.o): Likewise.
	(dwarf2asm.o): Likewise.
	* config/i386/t-i386: Use DWARF2_H.
	* except.c: Include elf/dwarf2.h.
	* unwind-dw2.c: Include elf/dwarf2.h.
	* dwarf2out.c: Include elf/dwarf2.h.
	(dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
	<dtprel>: New field.
	(dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
	(size_of_loc_descr): Likewise.
	(output_loc_operands_raw): Likewise.
	(output_loc_operands): Handle new dtprel field.
	(loc_checksum): Update.
	(loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
	* unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
	* unwind-dw2-fde.c: Include elf/dwarf2.h.
	* dwarf2asm.c: Include elf/dwarf2.h.
	* unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
	* config/mmix/mmix.c: Include elf/dwarf2.h.
	* config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
	* config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
	* config/sh/sh.c: Include elf/dwarf2.h.
	* config/i386/i386.c: Include elf/dwarf2.h.

2009-06-29  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.h (CPP_SPEC): Remove __cop macro.

	* doc/extend.texi: Add MeP attributes and pragmas.
	* doc/invoke.text: Add MeP Options.
	* doc/contrib.texi: Add MeP contribution.
	* doc/md.texi: Add MeP constraints.
	* doc/install.texi: Add MeP target.

2009-06-30  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add frame_pointer_required field.
	* target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
	(TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
	* ira.c (setup_eliminable_regset): Use frame_pointer_required target
	hook.
	* reload1.c (update_eliminables): (Ditto.).
	* gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
	* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
	(INITIAL_FRAME_POINTER_OFFSET): (Ditto.).

	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(arm_frame_pointer_required): New function.

	* config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(avr_frame_pointer_required_p): Declare as static.
	* config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.

	* config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(bfin_frame_pointer_required): Make as static, change return type
	to bool.
	* config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.

	* config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(cris_frame_pointer_required): New function.

	* config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(fr30_frame_pointer_required): New function.

	* config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(frv_frame_pointer_required): Make as static, change return type
	to bool.
	* config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.

	* config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(ix86_frame_pointer_required): Make as static, change return type to
	bool.
	* config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.

	* config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.

	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.

	* config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(mips_frame_pointer_required): Make as static.
	* config/mips/mips-protos.h (mips_frame_pointer_required): Remove.

	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(mmix_frame_pointer_required): Mew function.

	* config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.

	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/sh/sh.h (CAN_ELIMINATE): Remove macro.

	* config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
	(CAN_ELIMINATE): Redefine.
	* config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(sparc_frame_pointer_required): New function.
	(sparc_can_eliminate): New function.
	* config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.

	* config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.

	* config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(xtensa_frame_pointer_required): Make as static, change return type
	to bool.
	* config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
	Remove.

2009-06-29  Olatunji Ruwase  <tjruwase@google.com>

	* doc/plugins.texi: Document PLUGIN_START_UNIT.
	* toplev.c (compile_file): Call PLUGIN_START_UNIT.
	* gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
	* plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
	(register_callback): Handle PLUGIN_START_UNIT.
	(invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.

2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (process_call_operands): Propagate TREE_READONLY from the
	operands.
	(PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
	(build3_stat): Propagate TREE_READONLY for COND_EXPR.

2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
	move cost.

2009-06-29  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (Additional Floating Types): __float128 is also
	supported on i386 targets.

2009-06-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/14187
	* tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
	flag.
	(pt_solutions_same_restrict_base): Declare.
	* tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
	flag.
	(new_var_info): Initialize is_global_var properly for SSA_NAMEs.
	(make_constraint_from, make_copy_constraint): Move earlier.
	(make_constraint_from_heapvar): New function.
	(make_constraint_from_restrict): Likewise.
	(handle_lhs_call): Use it.
	(find_func_aliases): Use it to track conversions to restrict
	qualified pointers.
	(struct fieldoff): Add only_restrict_pointers flag.
	(push_fields_onto_fieldstack): Initialize it.
	(create_variable_info_for): Track global restrict qualified pointers.
	(intra_create_variable_infos): Use make_constraint_from_heapvar.
	Track restrict qualified pointer arguments.
	(set_uids_in_ptset): Use varinfo is_global_var flag.
	(find_what_var_points_to): Set the vars_contains_restrict flag.
	Always create the points-to solution for sets including restrict tags.
	(pt_solutions_same_restrict_base): New function.
	* tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
	qualified pointers use pt_solutions_same_restrict_base as
	additional source for disambiguation.

2009-06-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38212
	* alias.c (find_base_decl): Remove.
	(get_deref_alias_set_1): Remove restrict handling.
	* c-common.c (c_apply_type_quals_to_decl): Do not set
	DECL_POINTER_ALIAS_SET.
	* gimplify.c (find_single_pointer_decl_1): Remove.
	(find_single_pointer_decl): Likewise.
	(internal_get_tmp_var): Remove restrict handling.
	(gimple_regimplify_operands): Likewise.
	* omp-low.c (expand_omp_atomic_pipeline): Do not set
	DECL_POINTER_ALIAS_SET. Use ref-all pointers.
	* print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
	* tree.c (restrict_base_for_decl): Remove.
	(init_ttree): Do not allocate it.
	(make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
	LABEL_DECL_UID for label decls.
	(copy_node_stat): Do not copy restrict information.
	(decl_restrict_base_lookup): Remove.
	(decl_restrict_base_insert): Likewise.
	(print_restrict_base_statistics): Likewise.
	(dump_tree_statistics): Do not call print_restrict_base_statistics.
	* tree.h (DECL_POINTER_ALIAS_SET): Remove.
	(DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
	(struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
	(LABEL_DECL_UID): Adjust.
	(DECL_BASED_ON_RESTRICT_P): Remove.
	(DECL_GET_RESTRICT_BASE): Likewise.
	(SET_DECL_RESTRICT_BASE): Likewise.
	(struct tree_decl_with_vis): Remove based_on_restrict_p flag.

	* config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
	instead of DECL_POINTER_ALIAS_SET.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
	* config/s390/s390.c (s390_gimplify_va_arg): Likewise.
	* config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.

2009-06-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40579
	* tree-vrp.c (vrp_evaluate_conditional): Bail out early if
	the IL to simplify has constants that overflowed.

2009-06-28  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/40550
	* tree-vect-generic.c (expand_vector_operations_1): Compute in
	vector_compute_type only when the size of vector_compute_type is
	less than the size of type.

2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (contains_label_1): Fix comments.
	(contains_label_p): Do not walk trees multiple time.

2009-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386.h (enum ix86_fpcmp_strategy): New.
	* config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
	cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
	ix86_fp_comparison_operator.
	(*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
	*fp_jcc_2_sse, *fp_jcc_2_387): Delete
	(*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
	*fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
	!ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
	to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
	(related splits): Change predicate to ix86_fp_comparison_operator.
	* config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
	instead of ix86_fp_comparison_codes.
	(ix86_trivial_fp_comparison_operator,
	ix86_fp_comparison_operator): New.
	* config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
	(ix86_expand_compare): Eliminate last two parameters.
	(ix86_fp_jump_nontrivial_p): Kill.
	* config/i386/i386.c (put_condition_code): Eliminate call to
	ix86_fp_comparison_codes and subsequent assertion.
	(ix86_fp_comparison_codes): Eliminate.
	(ix86_fp_swap_condition): New.
	(ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
	ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
	into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
	(ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
	and ix86_fp_swap_condition.
	(ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
	Use ix86_fp_comparison_strategy.
	(ix86_expand_compare): Likewise.  Eliminate last two arguments.
	(ix86_fp_jump_nontrivial_p): Eliminate.
	(ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
	call to ix86_expand_compare.
	(ix86_split_fp_branch, ix86_expand_setcc,
	ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
	ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.

2009-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/arm/arm.c (arm_final_prescan_ins): Eliminate code
	related to jump_clobbers.
	* config/arm/arm.md (conds): Remove jump_clob case.
	(addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
	splits): Change comparison_operator to arm_comparison_operator.
	(*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
	Eliminate.

2009-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* dojump.c (do_compare_rtx_and_jump): Try swapping the
	condition for floating point modes.
	* expmed.c (emit_store_flag_1): Move here a bigger part
	of emit_store_flag.
	(emit_store_flag): Try swapping the condition for floating point
	modes.
	* optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.

2009-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (expand_expr_real_1): Just use do_store_flag.
	(do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
	emit_store_flag_force.
	* expmed.c (emit_store_flag_force): Copy here trick
	previously in expand_expr_real_1.  Try reversing the comparison.
	(emit_store_flag_1): Work if target is NULL.
	(emit_store_flag): Work if target is NULL, using the result mode
	from the comparison.  Use split_comparison, restructure final part
	to simplify conditionals.

2009-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
	* dojump.c (do_jump): Change handling of floating-point
	ops to use just do_compare_and_jump.
	(split_comparison): New.
	(do_compare_rtx_and_jump): Add here logic coming previously
	in do_jump, using split_comparison.

2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/40489
	* config/ia64/ia64.c (ia64_reorg): Check NULL insn.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-alias.c: Fix unintentional commit.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* passes.c (execute_one_pass): Fix unintentional commit.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* df-problems.c (df_set_seen, df_unset_seen): Delete.
	(df_rd_local_compute, df_md_local_compute): Inline them.

	(df_md_scratch): New.
	(df_md_alloc, df_md_free): Allocate/free it.
	(df_md_local_compute): Only include live registers in init.
	(df_md_transfer_function): Prune the in-set computed by
	the confluence function, and the gen-set too.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/26854
	* timevar.def: Remove TV_DF_RU, add TV_DF_MD.
	* df-problems.c (df_rd_add_problem): Fix comment.
	(df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
	df_md_simulate_artificial_defs_at_top,
	df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
	df_md_bb_local_compute, df_md_local_compute, df_md_reset,
	df_md_transfer_function, df_md_init, df_md_confluence_0,
	df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
	problem_MD, df_md_add_problem): New.
	* df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
	df_md_get_bb_info): New.
	(DF_LAST_PROBLEM_PLUS1): Adjust.

	* Makefile.in (fwprop.o): Include domwalk.h.
	* fwprop.c: Include domwalk.h.
	(reg_defs, reg_defs_stack): New.
	(bitmap_only_bit_between): Remove.
	(process_defs): New.
	(process_uses): Use reg_defs and local_md instead of
	bitmap_only_bit_between and local_rd.
	(single_def_use_enter_block): New, from build_single_def_use_links.
	(single_def_use_leave_block): New.
	(build_single_def_use_links): Remove code moved to
	single_def_use_enter_block, invoke domwalk.
	(use_killed_between): Adjust comment.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* bitmap.h (bitmap_ior_and_into): New.
	* bitmap.c (bitmap_ior_and_into): New.

2009-06-27  Paolo Bonzini  <bonzini@gnu.org>

	* domwalk.h (struct dom_walk_data): Remove all callbacks except
	before_dom_children_before_stmts and after_dom_children_after_stmts.
	Rename the two remaining callbacks to just before_dom_children and
	after_dom_children. Remove other GIMPLE statement walking bits.
	* domwalk.c (walk_dominator_tree): Remove now unsupported features.
	* graphite.c: Do not include domwalk.h.
	* tree-into-ssa.c (interesting_blocks): New global.
	(struct mark_def_sites_global_data): Remove it and names_to_rename.
	(mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
	rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
	now that they're not domwalk callbacks.
	(rewrite_initialize_block): Rename to...
	(rewrite_enter_block): ... this, place after called functions.  Test
	interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
	(rewrite_finalize_block): Rename to...
	(rewrite_leave_block): ... this, place after called functions.
	(rewrite_update_init_block): Rename to...
	(rewrite_update_enter_block): ... this, place after called functions.
	Test interesting_blocks, call rewrite_update_stmt and
	rewrite_update_phi_arguments.
	(rewrite_update_fini_block): Rename to...
	(rewrite_leave_block): ... this, place after called functions.
	(rewrite_blocks): Remove last argument, simplify initialization of
	walk_data.
	(mark_def_sites_initialize_block): Rename to...
	(mark_def_sites_block): ... this, call mark_def_sites.
	(mark_def_sites_blocks): Remove argument, simplify initialization of
	walk_data.
	(rewrite_into_ssa): Adjust for interesting_blocks_being a global.
	(update_ssa): Likewise.
	* tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
	callback.
	(tree_ssa_dominator_optimize): Simplify initialization of walk_data.
	(dom_opt_initialize_block): Rename to...
	(dom_opt_enter_block): ... this, place after called functions.  Walk
	statements here, inline propagate_to_outgoing_edges.
	(dom_opt_finalize_block): Rename to...
	(dom_opt_leave_block): ... this, place after called functions.
	* tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
	domwalk callback.
	(dse_enter_block, dse_record_phi): New.
	(dse_record_phis): Delete.
	(dse_finalize_block): Rename to...
	(dse_leave_block): ... this.
	(tree_ssa_dse): Simplify initialization of walk_data.
	* tree-ssa-loop-im.c (determine_invariantness, move_computations):
	Adjust initialization of walk_data.
	* tree-ssa-loop-unswitch.c: Do not include domwalk.h.
	* tree-ssa-loop-phiopt.c (get_non_trapping):
	Adjust initialization of walk_data.
	* tree-ssa-loop-threadedge.c: Do not include domwalk.h.
	* tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
	it's not a domwalk callback.
	(uncprop_initialize_block): Rename to...
	(dse_enter_block): ... this, call uncprop_into_successor_phis.
	(dse_finalize_block): Rename to...
	(dse_leave_block): ... this.
	(tree_ssa_uncprop): Simplify initialization of walk_data.
	* Makefile.in: Adjust dependencies.

2009-06-27  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (casesi): Fix test for Thumb1.
	(thumb1_casesi_internal_pic): Likewise.
	(thumb1_casesi_dispatch): Likewise.

2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/arm-cores.def: Added core cortex-m0.
	* config/arm/arm-tune.md: Regenerated.
	* doc/invoke.texi: Added entry for cpu ARM Cortex-M0.

2009-06-26  DJ Delorie  <dj@redhat.com>

	* config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.

	* config/mep/mep.c (mep_bundle_insns): Account for the fact that
	the scheduler doesn't tag jump insns.

2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>

	* c-decl.c (merge_decls): Re-indent.

2009-06-26  Janis Johnson  <janis187@us.ibm.com>

	PR c/39902
	* tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
	Special-case decimal float constants.

2009-06-26  Richard Henderson  <rth@redhat.com>

	* function.h (struct function): Add cannot_be_copied_reason,
	and cannot_be_copied_set.
	* tree-inline.c (has_label_address_in_static_1): Rename from
	inline_forbidden_p_2; don't set inline_forbidden_reason here.
	(cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
	don't set inline_forbidden_reason.
	(copy_forbidden): New function, split out of inline_forbidden_p.
	(inline_forbidden_p_stmt): Don't check for nonlocal labels here.
	(inline_forbidden_p): Use copy_forbidden.
	(tree_versionable_function_p): Likewise.
	(inlinable_function_p): Merge into tree_inlinable_function_p.
	(tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
	* ipa-cp.c (ipcp_versionable_function_p): New function.
	(ipcp_cloning_candidate_p): Use it.
	(ipcp_node_modifiable_p): Likewise.

2009-06-26  Olatunji Ruwase  <tjruwase@google.com>

	* builtins.c (expand_builtin_alloca): Handle builtin alloca
	that is marked not to be inlined. Remove flag_mudflap use.
	* tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
	(mf_xform_statements): Mark builtin alloca calls as un-inlineable.

2009-06-26  Steve Ellcey  <sje@cup.hp.com>

	PR bootstrap/40338
	* config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
	* config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.

2009-06-26  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
	shared libgcc.
	(__mingwthr_remove_key_dtor): Likewise.

2009-06-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.

2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/40525
	* ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
	try the non-cond_exec path also.

2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/40468
	* pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
	(output_cbranch): Use new functions.
	(output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
	Likewise.

2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Pat Haugen  <pthaugen@us.ibm.com>
	    Revital Eres <ERES@il.ibm.com>

	* config/rs6000/rs6000.c (print_operand): Correct lossage message
	for %c error.  Add %x support to print VSX registers as a unified
	register set, instead of separate float and altivec registers.
	Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
	%y case, and add support for VSX pre-modify addresses.
	(output_toc): Add assert for CONST containing an integer constant
	in the PLUS case.
	(rs6000_adjust_cost): Add POWER7 support.
	(insn_must_be_first_in_group): Ditto.
	(insn_must_be_last_in_group): Ditto.
	(rs6000_emit_popcount): Ditto.
	(rs6000_vector_mode_supported_p): Ditto.

	* config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
	Change some of the functions called by macros to being called
	through a pointer, so debug functions can be inserted if
	-mdebug=addr or -mdebug=cost.
	(rs6000_preferred_reload_class_ptr): Ditto.
	(rs6000_secondary_reload_class_ptr): Ditto.
	(rs6000_secondary_memory_needed_ptr): Ditto.
	(rs6000_cannot_change_mode_class_ptr): Ditto.
	(rs6000_secondary_reload_inner): Ditto.
	(rs6000_legitimize_reload_address): Ditto.
	(rs6000_legitimize_reload_address_ptr): Ditto.
	(rs6000_mode_dependent_address): Ditto.
	(rs6000_mode_dependent_address_ptr): Ditto.

	* config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
	function to return true if the mode allows reg + integer
	addresses.
	(virtual_stack_registers_memory_p): New function to return true if
	the address refers to a virtual stack register.
	(rs6000_legitimate_offset_address_p): Move code to say whether a
	mode supports reg+int addressing to reg_offset_addressing_ok_p and
	call it.
	(rs6000_legitimate_address_p): Add checks for modes that only can
	do reg+reg addressing.  Start adding VSX support.
	(rs6000_legitimize_reload_address): Ditto.
	(rs6000_legitimize_address): Ditto.
	(rs6000_debug_legitimate_address_p): New debug functions for
	-mdebug=addr and -mdebug=cost.
	(rs6000_debug_rtx_costs): Ditto.
	(rs6000_debug_address_costs): Ditto.
	(rs6000_debug_adjust_cost): Ditto.
	(rs6000_debug_legitimize_address): Ditto.
	(rs6000_legitimize_reload_address_ptr): Point to call normal
	function or debug function.  Make functions called via pointer
	static.
	(rs6000_mode_dependent_address_ptr): Ditto.
	(rs6000_secondary_reload_class_ptr): Ditto.
	(rs6000_hard_regno_mode_ok): Add preliminary VSX support.
	(rs6000_emit_move): Add -mdebug=addr support.  Change an abort
	into a friendlier error.
	(rs6000_init_builtins): Add initial VSX support.
	(rs6000_adjust_cost): Fix some spacing issues.

	* config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
	(REG_CLASS_NAMES): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
	pointer, to add -mdebug=addr support.
	(CANNOT_CHANGE_MODE_CLASS): Ditto.
	(SECONDARY_RELOAD_CLASS): Call through a pointer to add
	-mdebug=addr support.
	(LEGITIMIZE_RELOAD_ADDRESS): Ditto.
	(GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
	(enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.

	* config/rs6000/rs6000.md (bswaphi*): Add support for swapping
	16-bit values.
	(bswapsi*): Set attribute types for load/store.  Add combiner
	patterns to eliminate zero extend on 64-bit.
	(bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
	stdbrx if the hardware supports those instructions.

2009-06-25  Ian Lance Taylor  <iant@google.com>

	* doc/invoke.texi (Option Summary): Mention -static-libstdc++.
	(Link Options): Document -static-libstdc++.

2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/38731
	* config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
	DATA_ALIGNMENT instead.

2009-06-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
	indirect references against the callused/escaped solutions.
	(call_may_clobber_ref_p_1): Likewise.

2009-06-25  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40493
	* tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
	(enum unscalarized_data_handling): New type.
	(handle_unscalarized_data_in_subtree): Return what has been done.
	(load_assign_lhs_subreplacements): Handle left flushes differently.
	(sra_modify_assign): Use unscalarized_data_handling, simplified
	condition determining whether to remove the statement.

2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
	excerpt - @ should be doubled for texinfo.

2009-06-24  Ian Lance Taylor  <iant@google.com>

	* config/arc/arc.c: Include "df.h".
	(arc_attribute_table): Make static.  Move higher in file.
	(arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
	(output_shift): Initialize n later to avoid warning.
	* config/arm/arm.c (arm_attribute_table): Make static.  Move
	higher in file.
	* config/avr/avr.c (avr_attribute_table): Make static.  Move
	higher in file.
	(reg_class_tab): Change array type from int to enum reg_class.
	(avr_jump_mode): Change GET_MODE to GET_CODE when checking for
	LABEL_REF.
	(out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
	(lshrhi3_out): Likewise.
	(class_likely_spilled_p): Change return type to bool.
	(avr_rtx_costs): Use local code variable with enum type.
	* config/avr/avr.md (movmemhi): Use add_reg_note.
	(andhi3, andsi3): Don't use AS2 with "and".
	(iorhi3, iorsi3): Don't use AS2 with "or".
	* config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
	* config/crx/crx.c: Include "df.h".
	(crx_attribute_table): Make static.
	* config/m32r/m32r.c: Include "df.h".
	(m32r_attribute_table): Make static.  Move higher in file.
	(pop): Use add_reg_note.
	(block_move_call): Change 0 to LCT_NORMAL in function call.
	* config/m32r/m32r.md (movsi_insn): Remove unused local value.
	* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
	* config/m32r/m32r-protos.h (m32r_compute_function_type): Always
	declare, not just when TREE_CODE is defined.
	* config/m68hc11/m68hc11.c: Include "expr.h".
	(m68hc11_attribute_table): Make static.  Move higher in file.
	(m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
	function call.
	(m68hc11_register_indirect_p): Likewise.
	(m68hc11_function_arg_padding): Change return type to enum
	direction.
	(emit_move_after_reload): Use add_reg_note.
	(m68hc11_emit_logical): Change code parameter to enum rtx_code.
	(m68hc11_split_logical): Likewise.
	(m68hc11_rtx_costs): Add local code_and outer_code variables with
	enum type.
	* config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
	to VOIDmode in function call.
	* config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
	tree is defined.
	(m68hc11_split_logical): Update declaration.
	(m68hc11_function_arg_padding): Update declaration.
	* config/mcore/mcore.c (regno_reg_class): Change form array of int
	to array of enum reg_class.
	(mcore_attribute_table): Make static.  Move higher in file.
	(mcore_rtx_costs): Add cast to enum type.
	* config/mcore/mcore.h (regno_reg_class): Update declaration.
	(GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
	* config/sh/sh.c (sh_attribute_table): Make static.  Move higher
	in file.
	* config/sh/predicates.md (trapping_target_operand): Rename and to
	and_expr.
	* config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
	higher in file.
	* config/spu/spu.c (spu_attribute_table): Make static.  Move
	higher in file.
	* config/v850/v850.c (v850_attribute_table): Make static.  Move
	higher in file.
	(v850_rtx_costs): Use local code with enum type.
	(expand_epilogue): Add cast.
	* config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.

2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>

	PR target/40515
	* doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
	-m2a-single-only and -m2a-nofpu.
	* config/sh/sh.opt: Document m2a generates FPU code.

2009-06-24  Anatoly Sokolov  <aesok@post.ru>

	* defaults.h (CAN_ELIMINATE): Provide default.
	* doc/tm.texi (CAN_ELIMINATE): Revise documentation.
	* config/alpha/alpha.h (CAN_ELIMINATE): Delete.
	* config/m32c/m32c.h (CAN_ELIMINATE): Delete.
	* config/spu/spu.h (CAN_ELIMINATE): Delete.
	* config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
	* config/moxie/moxie.h (CAN_ELIMINATE): Delete.
	* config/cris/cris.h (CAN_ELIMINATE): Delete.
	* config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
	* config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
	* config/mmix/mmix.h (CAN_ELIMINATE): Delete.

2009-06-24  DJ Delorie  <dj@redhat.com>

	* mep-ext-cop.cpu: Fix copyright notice.
	* mep-default: Fix copyright notice.
	* mep-core: Fix copyright notice.
	* mep: Fix copyright notice.
	* mep-ivc2: Fix copyright notice.
	* mep-c5: Fix copyright notice.

2009-06-24  Denis Chertykov  <chertykov@gmail.com>

	* doc/contrib.texi (Contributors):

2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR middle-end/40501
	* tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
	src and dst operands if necessary.

2009-06-23  DJ Delorie  <dj@redhat.com>

	Add MeP port.
	* config.gcc: Add mep support.
	* recog.c: Resurrect validate_replace_rtx_subexp().
	* recog.h: Likewise.
	* config/mep/: Add new port:
	* config/mep/constraints.md: New file.
	* config/mep/default.h: New file.
	* config/mep/intrinsics.h: New file.
	* config/mep/intrinsics.md: New file.
	* config/mep/ivc2-template.h: New file.
	* config/mep/mep-c5.cpu: New file.
	* config/mep/mep-core.cpu: New file.
	* config/mep/mep-default.cpu: New file.
	* config/mep/mep-ext-cop.cpu: New file.
	* config/mep/mep-intrin.h: New file.
	* config/mep/mep-ivc2.cpu: New file.
	* config/mep/mep-lib1.asm: New file.
	* config/mep/mep-lib2.c: New file.
	* config/mep/mep-pragma.c: New file.
	* config/mep/mep-protos.h: New file.
	* config/mep/mep-tramp.c: New file.
	* config/mep/mep.c: New file.
	* config/mep/mep.cpu: New file.
	* config/mep/mep.h: New file.
	* config/mep/mep.md: New file.
	* config/mep/mep.opt: New file.
	* config/mep/predicates.md: New file.
	* config/mep/t-mep: New file.

2009-06-23  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
	from loose_warn into c_loose_warn and from strict_warn into
	c_strict_warn.  Set and substitute warn_cxxflags.  Check for
	--enable-build-with-cxx.  Set and substitute
	ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
	* Makefile.in (CXXFLAGS): New variable.
	(C_LOOSE_WARN, C_STRICT_WARN): New variables.
	(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
	the default is the same as $(STRICT_WARN).
	(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
	(CXX): New variable.
	(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
	(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
	(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
	(HOST_LIBS): New variable.
	(GCC_CFLAGS): Add $(C_LOOSE_WARN).
	(ALL_CXXFLAGS): New variable.
	(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
	* doc/install.texi (Configuration): Document
	--enable-build-with-cxx, --with-stage1-ldflags,
	--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
	* configure: Rebuild.

2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_override_options): Fix braces and formatting
	from previous commit.

2009-06-23  Ian Lance Taylor  <iant@google.com>

	* Makefile.in ($(out_object_file)): Depend upon $(DF_H).

2009-06-23  Ian Lance Taylor  <iant@google.com>

	* reload.c (alternative_allows_const_pool_ref): Mark mem parameter
	with ATTRIBUTE_UNUSED.

2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Pat Haugen  <pthaugen@us.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* config.in (HAVE_AS_POPCNTD): Add default definition.
	(HAVE_AS_LWSYNC): Ditto.

	* configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
	release number.
	(gcc_cv_as_powerpc_cmpb): Ditto.
	(gcc_cv_as_powerpc_dfp): Ditto.
	(gcc_cv_as_powerpc_vsx): Ditto.
	(gcc_cv_as_powerpc_popcntd): Add feature test for assembler
	supporting the popcntd/lwsync instructions.
	(gcc_cv_as_powerpc_lwsync): Ditto.
	* configure: Regenerate.

	* config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
	-mcpu=native and -mcpu=power7.
	* config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.

	* config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
	a variable instead of a mask to reduce the number of mask bits.
	* config/rs6000/sysv4.opt (-mbit-align): Ditto.
	(-mbit-word): Ditto.
	(-mregnames): Ditto.
	* config/rs6000/rs6000.opt (-mupdate): Ditto.
	(-mfused-madd): Ditto.

	* config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
	2.06 instructions.
	(-mvsx): New switch for VSX instructions.
	(-misel): Move from a variable to a mask to allow it to be set by
	-mcpu=.

	* config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
	function declaration to an array declaration.
	(rs6000_hard_regno_nregs): New external array declaration.

	* config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
	files included by rs6000.md.

	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
	SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.

	* config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
	a target mask.
	(rs6000_debug_reg): New -mdebug= variables.
	(rs6000_debug_addr): Ditto.
	(rs6000_debug_cost): Ditto.
	(rs6000_pmode): New variable to hold Pmode.
	(rs6000_pointer_size): New variable to hold POINTER_SIZE.
	(rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
	calculated at compiler start.
	(rs6000_hard_regno_nregs): Change function to an array which holds
	HARD_REGNO_NREGS calculated at compiler start.
	(rs6000_explicit_options): Delete isel field.
	(rs6000_vector_unit): New array to hold which vector unit
	supports arithmetic options for a given type.
	(rs6000_vector_mem): New array to hold which vector unit supports
	memory reference operations for a given type.
	(rs6000_vector_align): New array to given the alignment of each
	vector type.
	(power7_cost): New basic costs for power7.
	(SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
	(rs6000_hard_regno_nregs_internal): New function, moved from
	HARD_REGNO_NREGS, to calculate the number of registers each hard
	register takes for each type.
	(rs6000_debug_reg_print): New function for -mdebug=reg support.
	(rs6000_debug_vector_unit): New array, map rs6000_vector to string.
	(+rs6000_init_hard_regno_mode_ok): New function, move calculation
	of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
	unit information here so it is calculated once at compiler startup
	time.
	(rs6000_override_options): Make -misel a target mask.  Add more
	power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
	VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
	-mdebug=cost.
	(POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
	(rs6000_handle_option): Move -misel from variable to target mask.
	(rs6000_builtin_mask_for_load): Add VSX support.
	(rs6000_conditional_register_usage): Ditto.
	(USE_ALTIVEC_FOR_ARG_P): Ditto.
	(function_arg_boundary): Ditto.
	(rs6000_expand_builtin): Ditto.
	(def_builtin): Make abort message a little friendlier.
	(rs6000_emit_int_cmove): Add support for 64-bit isel.

	* config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
	assembler support the popcntd instruction instead of a vsx
	instruction to enable power7 support.
	(ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
	(EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
	option to the assembler if -mcpu=native.
	(ASM_CPU_NATIVE_SPEC): Ditto.
	(TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
	ISA 2.06 features.
	(TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
	the lwsync instruction.
	(enum processor_type): Add PROCESSOR_POWER7.
	(rs6000_debug_reg): New -mdebug= options.
	(rs6000_debug_addr): Ditto.
	(rs6000_debug_cost): Ditto.
	(rs6000_isel): Delete.
	(enum rs6000_vector): New enum to say what vector unit we have.
	(VECTOR_UNIT_*): New macros to say which vector unit has
	arithmetic operations for a given type.
	(VECTOR_MEM_*): New macros to say which vector unit has memory
	operations for a given type.
	(TARGET_LDBRX): Whether the machine supports the ldbrx
	instruction.
	(TARGET_ISEL): Delete, -misel moved to be a mask.
	(TARGET_ISEL64): New macro for 64-bit isel support.
	(UNITS_PER_VSX_WORD): New macro.
	(POINTER_SIZE): Move to be an external variable, rather than
	calculating whether we are generating 32 ot 64-bit code.
	(Pmode): Ditto.
	(STACK_BOUNDARY): Add VSX support.
	(LOCAL_ALIGNMENT): Ditto.
	(SLOW_UNALIGNED_ACCESS): Ditto.
	(VSX_REGNO_P): New macro for VSX support.
	(VFLOAT_REGNO_P): Ditto.
	(VINT_REGNO_P): Ditto.
	(VLOGICAL_REGNO_P): Ditto.
	(VSX_VECTOR_MODE): Ditto.
	(VSX_SCALAR_MODE): Ditto.
	(VSX_MODE): Ditto.
	(VSX_MOVE_MODE): Ditto.
	(VSX_REG_CLASS_P): Ditto.
	(HARD_REGNO_NREGS): Instead of calling a function, use an array
	lookup.
	(UNITS_PER_SIMD_WORD): Add VSX support.
	(MODES_TIEABLE_P): Ditto.
	(STARTING_FRAME_OFFSET): Ditto.
	(STACK_DYNAMIC_OFFSET): Ditto.
	(EPILOGUE_USES): Ditto.
	(REGNO_REG_CLASS): Move to array lookup.
	(CLASS_MAX_NREGS): Ditto.
	(rs6000_vector_reg_class): Add declaration.
	(ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
	overlap with the floating point and Altivec registers.

	* config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.

	* config/rs6000/driver-rs6000.c (asm_names): New static array to
	give the appropriate asm switches if -mcpu=native.
	(host_detect_local_cpu): Add support for "asm".
	(host_detect_local_cpu): Follow GNU code guidelines for name.

	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
	-mbit-word to a variable instead of being a target mask.

	* config/rs6000/sync.md (lwsync): If the assembler supports it,
	emit the lwsync instruction instead of emitting the instruction as
	an integer constant.

	* config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
	fixuns_trundfsi2, move expander into rs6000.md.

	* config/rs6000/rs6000.md (cpu): Add power7.
	(sel, *ptrsize): New mode attributes for 32/64-bit isel.
	(logical predicate patterns): Change the single instruction
	primitives that set CR0 to be fast_compare instead of compare.
	(norsi*): Ditto.
	(popcntwsi2): Add support for ISA 2.06 popcount instructions.
	(popcntddi2): Ditto.
	(popcount<mode>): Ditto.
	(floating multiply/add insns): Name the floating point
	multiply/add insns.
	(isel_signed_<mode>): Add support for -misel on 64-bit systems.
	(isel_unsigned_<mode>): Ditto.
	(fixuns_trundfsi2): Move expander here from spe.md.
	(smindi3): Define if we have -misel on 64-bit systems.
	(smaxdi3): Ditto.
	(umindi3): Ditto.
	(umaxdi3): Ditto.

2009-06-23  Anatoly Sokolov  <aesok@post.ru>

	* config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
	extra_objs.
	* config/avr/avr.c (avr_current_device): New variable.
	(avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
	(avr_arch, mcu_type_s): Move to avr.h.
	* config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
	default_data_section_start fields.
	(avr_arch): Moved from avr.c.
	(mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
	library_name fields.
	(avr_current_device, avr_mcu_types, avr_arch_types,
	avr_device_to_arch, avr_device_to_data_start,
	avr_device_to_startfiles, avr_device_to_devicelib): Declare.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
	options mapping. Use device_to_arch and device_to_data_start insted.
	(STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
	(CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
	* config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
	* config/avr/driver-avr.c: New file.
	* config/avr/avr-devices.c: New file.

2009-06-23  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (unshare_variable): Force initialized to
	be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
	(set_variable_part): Likewise.
	(struct variable_union_info): Remove pos_src field.
	(vui_vec, vui_allocated): New variables.
	(variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
	unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
	== 1 use a simpler sorting algorithm.  Compute pos field right
	away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
	Avoid quadratic comparison if !flag_var_tracking_uninit.
	(variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
	unshare_variable unconditionally.
	(dataflow_set_different_2): Removed.
	(dataflow_set_different): Don't traverse second hash table.
	(compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
	unconditionally to var_reg_set or var_mem_set.
	(emit_notes_in_bb): Likewise.
	(delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
	unshare_variable.
	(emit_note_insn_var_location): Don't set initialized to
	VAR_INIT_STATUS_INITIALIZED early.
	(vt_finalize): Free vui_vec if needed, clear vui_vec and
	vui_allocated.
	* rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.

	* tree-object-size.c (addr_object_size): Instead of checking
	for non-NULL TREE_CHAIN of the FIELD_DECL check that there
	are no FIELD_DECLs following it.

2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-ssa-math-opts.c (find_bswap): Increase the search depth in
	order to match bswaps with signed source operands.

2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* sdbout.c (sdbout_one_type): Fix braces in switch.

2009-06-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add is_global_var
	member.
	(var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
	readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
	var_callused, callused_tree, var_storedanything, storedanything_tree,
	var_integer, integer_tree): Remove global variables.
	(new_var_info): Do not pass new id, append the new var to the
	global variable vector.
	(do_ds_constraint): Use is_global_var member of the variable-info.
	(new_scalar_tmp_constraint_exp): Adjust.
	(create_function_info_for): Likewise.
	(create_variable_info_for): Likewise.
	(find_what_var_points_to): Remove dead code.
	(init_base_vars): Simplify.
	(compute_points_to_sets): Adjust.

2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (try_combine): Dump information about the insns we're
	combining.

2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>

	* combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
	check when calling force_to_mode on TRUNCATE's operand.

2009-06-22  Ian Lance Taylor  <iant@google.com>

	* config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.

2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>

	* config/arm/arm.md (prologue_use): Set length of fake insn to 0.

2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
	override library linkage flags such as -static-libgcc or
	-shared-libgcc.

2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k-devices.def: Add line for MCF5221x.

2009-06-22  Ian Lance Taylor  <iant@google.com>

	* config/linux.opt: Put mglibc ahead of muclibc.

	* c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
	for duplicate decls.

2009-06-22  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).

2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>

	PR objc/28050
	* c-parser.c (c_parser_objc_message_args): Return error_mark_node
	instead of NULL if a parser error occurs.

2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* dwarf2out.c (dwarf2_debug_hooks): Initialize
	non-DWARF2_DEBUGGING_INFO version.

2009-06-22  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.

	* config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
	(LIBGCC2_TF_CEXT): Define.
	(TF_SIZE): Define.

2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/40463
	* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.

2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_override_options): Disable
	-mcaller-super-interworking and -mcallee-super-interworking.
	* doc/invoke.texi (ARM Options): Document this.

2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/arm.c (arm_print_operand): Deal with HIGH.
	* config/arm/constraints.md (j): New constraint for movw operands.
	(N): Remove thumb2 meaning.
	* config/arm/arm.md (*arm_movw): Delete.
	(*arm_movsi_insn): Use j constraint for movw instead of N constraint.
	* config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
	* config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.

2009-06-22  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40492
	* tree-sra.c (sra_modify_assign): Pass zero offsets to
	build_ref_for_offset.

2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>

	* alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
	JUMP_TABLE_DATA_P predicates where applicable.
	* auto-inc-dec.c: Ditto.
	* builtins.c: Ditto.
	* caller-save.c: Ditto.
	* calls.c: Ditto.
	* cfgcleanup.c: Ditto.
	* cfglayout.c: Ditto.
	* cfgrtl.c: Ditto.
	* combine.c: Ditto.
	* combine-stack-adj.c: Ditto.
	* cse.c: Ditto.
	* cselib.c: Ditto.
	* dbxout.c: Ditto.
	* df-scan.c: Ditto.
	* dse.c: Ditto.
	* dwarf2asm.c: Ditto.
	* dwarf2out.c: Ditto.
	* emit-rtl.c: Ditto.
	* except.c: Ditto.
	* explow.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* final.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* gcse.c: Ditto.
	* genpreds.c: Ditto.
	* genrecog.c: Ditto.
	* ifcvt.c: Ditto.
	* ira-costs.c: Ditto.
	* ira-lives.c: Ditto.
	* jump.c: Ditto.
	* loop-iv.c: Ditto.
	* lower-subreg.c: Ditto.
	* modulo-sched.c: Ditto.
	* optabs.c: Ditto.
	* postreload.c: Ditto.
	* print-rtl.c: Ditto.
	* recog.c: Ditto.
	* reginfo.c: Ditto.
	* regmove.c: Ditto.
	* reload1.c: Ditto.
	* reload.c: Ditto.
	* reorg.c: Ditto.
	* rtlanal.c: Ditto.
	* rtl.c: Ditto.
	* sched-vis.c: Ditto.
	* sdbout.c: Ditto.
	* sel-sched-ir.c: Ditto.
	* simplify-rtx.c: Ditto.
	* targhooks.c: Ditto.
	* var-tracking.c: Ditto.
	* vmsdbgout.c: Ditto.

2009-06-22  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (install-plugin): Always use DESTDIR.

2009-06-22  Olivier Hainque  <hainque@adacore.com>

	* config/pa/pa.c (output_call): Don't optimize post call jumps
	into return address adjustments if the call may throw.

2009-06-21  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (thumb1_output_casesi): New function.
	* arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
	optimizing for size or PIC.
	(CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
	* arm.md (UNSPEC_THUMB1_CASESI): New constant.
	(casesi): Handle Thumb-1 when optimizing for size or PIC.
	(thumb1_casesi_internal_pic): New expand rule.
	(thumb1_casesi_dispatch): New pattern.
	* aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
	thumb-1 mode.
	* coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
	in the text seciton when PIC or optimizing for size.
	* elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
	* lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
	preservation properties of code.
	(__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
	(__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
	(__gnu_thumb1_case_si): New function.
	* t-arm (LIB1ASMSRC): Define here.
	(LIB1ASMFUNCS): Add some common functions.
	* t-arm-elf (LIB1ASMSRC): Delete.
	(LIB1ASMFUNCS): Append to existing set.
	* t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
	* t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
	* t-symbian (LIB1ASMFUNCS): Likewise.
	* t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
	* t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.

2009-06-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38729
	* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
	to loops with a single exit if -fno-expensive-optimizations.

2009-06-21  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (struct shared_hash_def, shared_hash): New types.
	(dataflow_set): Change vars type from htab_t to shared_hash.
	(shared_hash_pool, empty_shared_hash): New variables.
	(vars_clear): Removed.
	(shared_hash_shared, shared_hash_htab, shared_hash_copy,
	shared_hash_find_slot_unshare, shared_hash_find_slot,
	shared_hash_find_slot_noinsert, shared_hash_find): New
	static inlines.
	(shared_hash_unshare, shared_hash_destroy): New functions.
	(unshare_variable): Unshare set->vars if shared, use
	shared_hash_htab.
	(vars_copy): Use htab_traverse_noresize instead of htab_traverse.
	(get_init_value, find_src_set_src, dump_dataflow_set,
	clobber_variable_part, emit_notes_for_differences): Use
	shared_hash_htab.
	(dataflow_set_init): Remove second argument, set vars to
	empty_shared_hash instead of creating a new htab.
	(dataflow_set_clear): Call shared_hash_destroy and set vars
	to empty_shared_hash instead of calling vars_clear.
	(dataflow_set_copy): Don't call vars_copy, instead just share
	the src htab with dst.
	(variable_union): Use shared_hash_*, use initially NO_INSERT
	lookup if set->vars is shared.  Don't keep slot cleared before
	calling unshare_variable.  Unshare set->vars if needed.
	Even ->refcount == 1 vars must be unshared if set->vars is shared
	and var needs to be modified.
	(variable_canonicalize): New function.
	(dataflow_set_union): If dst->vars is empty, just share src->vars
	with dst->vars and traverse with variable_canonicalize to canonicalize
	and unshare what is needed.
	(dataflow_set_different): If old_set and new_set use the same shared
	htab, they aren't different.  If number of htab elements is different,
	htabs are different.  Use shared_hash_*.
	(dataflow_set_destroy): Call shared_hash_destroy instead of
	htab_delete.
	(compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
	second argument to dataflow_set_init.
	(vt_initialize): Likewise.  Initialize shared_hash_pool and
	empty_shared_hash, move bb in/out initialization afterwards.
	Use variable_htab_free instead of NULL as changed_variables del hook.
	(variable_was_changed): Change type of second argument to pointer to
	dataflow_set.  When inserting var into changed_variables, bump
	refcount.  Unshare set->vars if set is shared htab and slot needs to
	be cleared.
	(set_variable_part): Use shared_hash_*, use initially NO_INSERT
	lookup if set->vars is shared.  Unshare set->vars if needed.
	Even ->refcount == 1 vars must be unshared if set->vars is shared
	and var needs to be modified.  Adjust variable_was_changed caller.
	(delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
	vars must be unshared if set->vars is shared and var needs to be
	modified.  Adjust variable_was_changed caller.
	(emit_note_insn_var_location): Don't pool_free var.
	(emit_notes_for_differences_1): Initialize empty_var->refcount to 0
	instead of 1.
	(vt_finalize): Call htab_delete on empty_shared_hash->htab and
	free_alloc_pool on shared_hash_pool.

2009-06-20  Anthony Green  <green@moxielogic.com>

	* config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
	* config/moxie/moxie.h (LOAD_EXTEND_OP): Define.

2009-06-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): For memset use
	a constraint from NULL if we memset to zero.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
	we explicitly handle that do not read from memory.
	(call_may_clobber_ref_p_1): Properly handle builtins that may
	set errno.

2009-06-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40495
	* tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
	(new_scalar_tmp_constraint_exp): New function.
	(process_constraint): Do not create temporary decls.
	(process_all_all_constraints): Likewise.
	(handle_const_call): Likewise.
	(create_function_info_for): Do not set decl.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
	(rs6000_attribute_table): Make static; move before use.

2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
	<tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
	Propagate the TREE_READONLY flag without overwriting it.
	(substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
	Propagate the TREE_READONLY flag onto the result.
	(process_call_operands): Move around.  Use correct constant value.

2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/40482
	* config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
	* config/arm/arm.md: Likewise.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
	to GIMPLE_ERROR_MARK.

	* c-typeck.c (build_conditional_expr): Add op1_original_type and
	op2_original_type parameters.  Warn about using different enum types.
	* c-parser.c (c_parser_conditional_expression): Pass original
	types to build_conditional_expr.
	* c-tree.h (build_conditional_expr): Update declaration.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* config/i386/i386.c (ix86_function_specific_save): Test that
	fields match values, rather than testing the values are in a
	certain range.

2009-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
	ADDR_EXPR pointers.
	(ptr_derefs_may_alias_p): Likewise.
	(ptr_deref_may_alias_ref_p_1): New function.
	(ptr_deref_may_alias_ref_p): Likewise.
	(ref_maybe_used_by_call_p_1): Handle builtins that are not
	covered by looking at the ESCAPED solution.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset):
	Handle NULL_TREE offset.  Do not produce redundant constraints.
	(process_all_all_constraints): New helper function.
	(do_structure_copy): Use it.
	(handle_lhs_call): Likewise.
	(find_func_aliases): Handle some builtins with pointer arguments
	and/or return values explicitly.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* varasm.c (const_rtx_hash_1): Remove const qualifier from shift.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
	* sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
	version.

	* c-decl.c (finish_decl): If -Wc++-compat, warn about
	uninitialized const.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* dse.c (struct store_info): Rename bitmap field to bmap.  Change
	all uses.

	* c-decl.c (in_struct, struct_types): Remove.
	(struct c_binding): Add in_struct field.
	(c_binding_ptr): Define type, along with VEC.
	(struct c_struct_parse_info): Define.
	(struct_parse_info): New static variable.
	(bind): Initialize in_struct field.
	(start_struct): Remove enclosing_in_struct and
	enclosing_struct_types parameters.  Add
	enclosing_struct_parse_info parameter.  Change all callers.  Set
	struct_parse_info rather than in_struct and struct_types.
	(grokfield): If -Wc++-compat and there is a symbol binding for the
	field name, set the in_struct flag and push it on the
	struct_parse_info->fields vector.
	(warn_cxx_compat_finish_struct): New static function.
	(finish_struct): Remove enclosing_in_struct and
	enclosing_struct_types parameters.  Add
	enclosing_struct_parse_info parameter.  Change all callers.  Don't
	set C_TYPE_DEFINED_IN_STRUCT here.  Call
	warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
	parameter.  Only push on struct_types if warn_cxx_compat.
	(finish_enum): Only push on struct_types if warn_cxx_compat.
	(declspecs_add_type): Add loc parameter.  Change all callers.
	Change all error calls to error_at.  Pass loc, not input_location,
	to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
	defined in a struct.  If -Wc++-compat and parsing a struct, record
	that a typedef name was used.
	* c-parser.c (c_parser_declspecs): Get location to pass to
	declspecs_add_type.
	(c_parser_struct_or_union_specifier): Update calls to start_struct
	and finish_struct.
	* c-tree.h (struct c_struct_parse_info): Declare.
	(finish_struct, start_struct): Update declarations.
	(declspecs_add_type): Update declaration.

2009-06-19  Ian Lance Taylor  <iant@google.com>

	* c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
	variable with an anonymous type.

2009-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* see.c: Remove for real.

2009-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* optabs.h (enum optab_index): Add new OTI_significand.
	(significand_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize significand_optab.
	* genopinit.c (optabs): Implement significand_optab using
	significand?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle
	BUILT_IN_SIGNIFICAND{,F,L}.
	(expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
	expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (significandxf2, significand<mode>2): New
	expanders to implement significandf, significand and significandl
	built-ins as inline x87 intrinsics.

2009-06-18  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_override_options): Remove setting value of
	PARAM_INLINE_CALL_COST.

2009-06-18  Richard Henderson  <rth@redhat.com>

	PR 40488
	* tree-pass.h (TDF_ASMNAME): New.
	* tree-dump.c (dump_options): Add asmname.
	* doc/invoke.texi: Document it.

	* tree-pretty-print.c (maybe_dump_asm_name): Merge into...
	(dump_decl_name): ...here.
	(dump_function_name): New flags arg; mind TDF_ASMNAME.
	(dump_generic_node): Update dump_function_name calls.
	(print_call_name): New flags arg; update all dump calls.
	* diagnostic.h (print_call_name): Update.
	* gimple-pretty-print.c (dump_gimple_call): Update.

2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/40470
	* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.

2009-06-18  Diego Novillo  <dnovillo@google.com>

	* doc/plugins.texi: Document plugin_is_GPL_compatible.
	* plugin.c (str_license): Declare.
	(try_init_one_plugin): Assert that the symbol
	'plugin_is_GPL_compatible' exists.

2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>

	* see.c: Remove.
	* Makefile.in (OBJS-common): Remove see.o.
	(see.o): Remove.
	* common.opt (fsee): Mark as preserved for backward compatibility.
	* opts.c (common_handle_option): Add OPT_fsee to the backward
	compatibility section.
	* passes.c (init_optimization_passes, pass_see): Remove pass.
	* timevar.def (TV_SEE): Remove.
	* tree-pass.h (pass_see): Remove declaration.
	* doc/invoke.texi (-fsee): Remove documentation.

2009-06-18  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c: Include statistics.h
	(sra_stats): New variable.
	(sra_initialize): Clear sra_stats.
	(create_access_replacement): Increment sra_stats.replacements.
	(get_access_replacement): Do not return twice.
	(analyze_all_variable_accesses): Increment statistics counter by the
	number of scalarized aggregates.
	(generate_subtree_copies): Increment sra_stats.subtree_copies.
	(sra_modify_expr): Increment sra_stats.exprs.
	(load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
	(sra_modify_assign): Increment sra_stats.exprs,
	sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
	(perform_intra_sra): Update statistics counters.
	* Makefile.in (tree-sra.o): Add statistics.h to dependencies.

2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
	(arm_scalar_mode_supported_p): New function.

2009-06-18  Paul Brook  <paul@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
	(__extendhfsf2, __truncsfhf2): Define.
	* config/arm/fp16.c: New file.
	* config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
	* config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.

2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Half-Precision): New section.
	* doc/invoke.texi (Option Summary): List -mfp16-format.
	(ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
	* config/arm/arm.opt (mfp16-format=): New.
	* config/arm/arm.c: Include intl.h.
	(TARGET_INVALID_PARAMETER_TYPE): Redefine.
	(TARGET_INVALID_RETURN_TYPE): Redefine.
	(TARGET_PROMOTED_TYPE): Redefine.
	(TARGET_CONVERT_TO_TYPE): Redefine.
	(arm_fp16_format): Define.
	(all_fpus): Add entry for neon-fp16.
	(fp_model_for_fpu): Likewise.
	(struct fp16_format): Declare.
	(all_fp16_formats): Define.
	(arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
	functions.
	(arm_override_options): Set arm_fp16_format. Call sorry for fp16
	and no ldrh.
	(arm_legitimate_index_p): Treat HFmode like HImode.
	(thumb1_legitimate_address_p): Make it recognize HFmode constants.
	(coproc_secondary_reload_class): Special-case HFmode.
	(arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
	(arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
	(arm_init_fp16_builtins): New.
	(arm_init_builtins): Call it.
	(arm_invalid_parameter_type): New.
	(arm_invalid_return_type): New.
	(arm_promoted_type): New.
	(arm_convert_to_type).
	(arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
	format.
	(arm_emit_fp16_const): New function.
	(arm_mangle_type): Mangle __fp16 as "Dh".
	* config/arm/arm.h (TARGET_VFPD32): Make it know about
	FPUTYPE_NEON_FP16.
	(TARGET_NEON_FP16): New.
	(TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
	(enum fputype): Add FPUTYPE_NEON_FP16.
	(enum arm_fp16_format_type): Declare.
	(arm_fp16_format): Declare.
	(LARGEST_EXPONENT_IS_NORMAL): Define.
	* config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
	* config/arm/arm-modes.def (HFmode): Define.
	* config/arm/vfp.md (*movhf_vfp): New.
	(extendhfsf2): New.
	(truncsfhf2): New.
	* config/arm/arm.md (fpu): Add neon_fp16.
	(floatsihf2, floatdihf2): New.
	(fix_trunchfsi2, fix_trunchfdi2): New.
	(truncdfhf2): New.
	(extendhfdf2): New.
	(movhf): New.
	(*arm32_movhf): New.
	(*thumb1_movhf): New.
	(consttable_2): Add check for HFmode constants.
	(consttable_4): Handle HFmode constants.

2009-06-18  Uros Bizjak  <ubizjak@gmail.com>

	* convert.c (convert_to_integer): Convert (int)logb() into ilogb().

2009-06-17  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (main): Use CONST_CAST2 to perform char ** to
	const char ** conversion in AIX specific section.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_special_builtin_type): Remove
	UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
	(bdesc_special_args): Updated.
	(ix86_init_mmx_sse_builtins): Likewise.
	(ix86_expand_special_args_builtin): Likewise.

2009-06-17  Richard Henderson  <rth@redhat.com>

	* tree-pretty-print.c (maybe_dump_asm_name): New.
	(dump_decl_name): Use it.
	(PRINT_FUNCTION_NAME): Merge into...
	(dump_function_name): ... here.  Use maybe_dump_asm_name.

2009-06-17  Cary Coutant  <ccoutant@google.com>

	* dbxout.c (dbxout_source_line): Add is_stmt parameter.
	Change caller.
	* debug.c (struct gcc_debug_hooks): Change placeholder for
	source_line hook.
	(debug_nothing_int_charstar_int): Replaced by...
	(debug_nothing_int_charstar_int_bool): ...this.
	* debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
	source_line prototype.
	(debug_nothing_int_charstar_int): Replaced by...
	(debug_nothing_int_charstar_int_bool): ...this.
	* defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
	* dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
	Output is_stmt operand when necessary.
	* final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
	(notice_source_line): Add is_stmt parameter.
	* sdbout.c (sdbout_source_line): Add is_stmt parameter.
	* vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
	Change callers.
	* xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
	* xcoffout.h (xcoffout_source_line): Add is_stmt parameter.

2009-06-17  Ian Lance Taylor  <iant@google.com>

	* expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
	Change all uses.
	(struct store_by_pieces_d): Rename from store_by_pieces.  Change
	call uses.

2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>

	* tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
	STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
	tree_strip_sign_nop_conversions and
	tree_ssa_strip_useless_type_conversions rather than stripping
	the operations here.
	(tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
	Declare them.
	* gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
	* tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
	* tree.c (tree_nop_conversion, tree_sign_nop_conversion,
	tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
	functions.

2009-06-17  Michael Eager  <eager@eagercon.com>

	* config/rs6000/constraints.md (register_constraint "d"): New.
	* config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
	truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
	*movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
	*negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
	trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
	divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
	fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
	* config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
	__fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
	__fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
	__fctiwz): Same.
	* config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
	*fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
	*subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
	*fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
	*fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
	fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
	stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
	*movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
	*movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
	trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
	*fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
	*movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
	*cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
	* doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* profile.c (total_num_never_executed): Don't define.
	(compute_branch_probabilities): Don't count or print
	num_never_executed.
	(init_branch_prob): Don't set total_num_never_executed.
	(end_branch_prob): Don't print total_num_never_executed.

2009-06-17  David Daney  <ddaney@caviumnetworks.com>

	* jump.c (cleanup_barriers): Handle case of no insns before a barrier.

2009-06-17  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
	(nabstd2_fpr): Same.

2009-06-17  Steve Ellcey  <sje@cup.hp.com>

	* expr.c (expand_assignment): Change complex type check.

2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Building GCC plugins): Added new section.

2009-06-17  Ian Lance Taylor  <iant@google.com>

	* c-pch.c (get_ident): Don't set size of templ array.
	(pch_init): Don't set size of partial_pch array.

	* c-typeck.c (digest_init): If -Wc++-compat, warn about using a
	string constant to intialize an array whose size is the length of
	the string.

2009-06-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40389
	* tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
	to addressable types.
	* gimple.c (walk_stmt_load_store_addr_ops): Likewise.

2009-06-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40460
	* tree-chrec.h (build_polynomial_chrec): If we cannot determine
	if there is no evolution of left in the loop bail out.
	* tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
	chrec_fold_multiply.

2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
	    Janis Johnson  <janis187@us.ibm.com>

	PR target/39254
	* config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
	for the symbol ref of a constant that is the source of a move
	- nor for any other not-obvious-label-ref constants.

2009-06-16  Olatunji Ruwase  <tjruwase@google.com>

	* plugin.c (position_pass): Skip newly inserted pass during list
	traversal to avoid repeated insertion.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* vec.h (VEC_stack_alloc): Define different version if
	GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
	(DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
	(DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.

2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (extra_headers): Add ia32intrin.h for x86.

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
	IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
	IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
	IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
	(ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
	UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
	INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
	(bdesc_special_args): Add __builtin_ia32_rdtsc and
	__builtin_ia32_rdtscp.
	(bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
	__builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
	and __builtin_ia32_rorhi.
	(ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
	UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
	INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
	(ix86_expand_args_builtin): Likewise.
	(ix86_expand_special_args_builtin): Likewise.

	* config/i386/i386.md (UNSPECV_RDTSCP): New.
	(UNSPECV_RDTSC): Likewise.
	(UNSPECV_RDPMC): Likewise.
	(*bsr): Renamed to ...
	(bsr): This
	(*bsr_rex64): Renamed to ...
	(bsr_rex64): This.
	(rdpmc): New.
	(*rdpmc): Likewise.
	(*rdpmc_rex64): Likewise.
	(rdtsc): Likewise.
	(*rdtsc): Likewise.
	(*rdtsc_rex64): Likewise.
	(rdtscp): Likewise.
	(*rdtscp): Likewise.
	(*rdtscp_rex64): Likewise.

	* config/i386/ia32intrin.h: New.

	* config/i386/x86intrin.h: Include <ia32intrin.h>.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* ira-build.c (copy_info_to_removed_store_destinations):
	Initialize parent_a.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* c-decl.c (grokdeclarator): Change size_varies to bool.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* sel-sched.c: Make forward declarations of move_op_hooks and
	fur_hooks explicitly extern.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
	* vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* resource.c (mark_referenced_resources): Change
	include_delayed_effects parameter to bool.  Change all callers.
	(mark_end_of_function_resources): Likewise.
	* reorg.c (insn_references_resource_p): Likewise.
	(insn_sets_resource_p): Likewise.
	* resource.h (mark_referenced_resources): Update declaration.
	(mark_end_of_function_resources): Update declaration.

2009-06-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.

2009-06-16  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
	GCC can bootstrap on AIX with GNU Binutils 2.20.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
	inline, not extern inline.
	(exact_log2): Likewise.
	* toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
	test CLZ_HWI.
	(exact_log2): Likewise, but don't test CTZ_HWI.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* bitmap.c (bitmap_clear): Don't declare as inline.
	* gimple.c (gimplify_assign): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
	* haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
	(sched_scan_info): Remove duplicate definition.

2009-06-16  Ian Lance Taylor  <iant@google.com>

	* c-common.c (skip_evaluation): Don't define.
	(c_inhibit_evaluation_warnings): Define global variable.
	(overflow_warning): Check c_inhibit_evaluation_warnings rather
	than skip_evaluation.
	(convert_and_check, warn_for_div_by_zero): Likewise.
	* c-common.h (skip_evaluation): Don't declare.
	(c_inhibit_evaluation_warnings): Declare.
	* c-parser.c (c_parser_typeof_specifier): Set
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	(c_parser_conditional_expression): Likewise.
	(c_parser_binary_expression): Likewise.
	(c_parser_sizeof_expression): Likewise.
	(c_parser_alignof_expression): Likewise.
	* c-typeck.c (build_indirect_ref): Check
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	(build_conditional_expr, build_binary_op): Likewise.

2009-06-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (is_escape_site): Remove.
	* tree-ssa-alias.h (enum escape_type): Remove.
	(is_escape_site): Likewise.
	* tree-ssa-structalias.c (find_func_aliases): Handle escapes
	via casts and asms without deferring to is_escape_site.

2009-06-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40446
	* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
	use gen_lowpart if op0 has complex mode.

2009-06-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (do_ds_constraint): Stores in global
	variables add them to ESCAPED.
	(find_func_aliases): Do not make all indirectly stored values escaped.

2009-06-16  Rafael Avila de Espindola  <espindola@google.com>

	* config/i386/winnt.c (i386_pe_encode_section_info): Update call to
	make_decl_one_only.

2009-06-16  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40432
	* tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
	check whether we need to force gimple register operand.

2009-06-16  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40413
	* tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
	build_ref_for_offset.
	(propagate_subacesses_accross_link): Fix a typo in a comment.

2009-06-16  Ira Rosen  <irar@il.ibm.com>

	* tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
	with additional parameter.
	* tree-vectorizer.h (enum vect_def_type): Add new value
	vect_nested_cycle.
	(enum vect_relevant): Add comments.
	(vect_is_simple_reduction): Add new argument.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
	Detect nested cycles.
	(vect_is_simple_reduction): Update documentation, add an argument to
	distinguish inner-loop reduction from nested cycle, detect nested
	cycles, fix printings and indentation, don't swap operands in case
	of nested cycle.
	(get_initial_def_for_reduction): Handle subtraction.
	(vect_create_epilog_for_reduction): Add new argument to specify
	reduction variable.
	(vect_finalize_reduction): Handle subtraction, fix comments.
	(vectorizable_reduction): Handle nested cycles. In case of nested
	cycle keep track of the reduction variable position. Call
	vect_is_simple_reduction with additional parameter. Use original
	statement code in reduction epilogue for nested cycle. Call
	vect_create_epilog_for_reduction with additional parameter.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
	inner-loop vectorization.
	(vect_recog_widen_sum_pattern): Likewise.
	* tree-vect-stmts.c (process_use): Distinguish between nested cycles
	and reductions.
	(vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_get_vec_def_for_operand): Handle nested cycles.

2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Debugging Options): Fix option index entries
	for -fdump-statistics, -frandom-seed add entries for
	-fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
	(FRV Options): Fix entries for -mTLS, -mtls.
	(HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
	(i386 and x86-64 Options): Fix entry for -mno-red-zone.
	(M68hc1x Options): Fix @itemx for -mnominmax.
	(MCore Options): Fix entry for -mno-lsim.
	(MMIX Options): Fix entry for -mabi=mmixware.
	(PDP-11 Options): Fix entry for -mbcopy-builtin.

2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Interacting with the GCC Garbage Collector):
	Mention the plugin mode of gengtype.
	* doc/gty.texi (Source Files Containing Type Information): Likewise.
	* gengtype.c: Updated copyright.
	(plugin_files, nb_plugin_files) Added new static variables.
	(measure_input_list) Care about plugin_files.
	(write_rtx_next): Added early return in plugin mode.
	(create_file): Updated copyright year in generated file. Added
	asserts.
	(oprintf): Added early return if NULL outf.
	(get_output_file_with_visibility): Care of plugin_files.
	(get_output_file_name): May return null.
	(write_local): Added early return.
	(put_mangled_filename): Ditto.
	(finish_root_table): Added check for base_files.
	(write_roots): Care about null when plugins.
	(main): Added plugin mode.

2009-06-15  Ian Lance Taylor  <iant@google.com>

	* df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
	* gcov.c (read_count_file): Add braces around variables declared
	before label.

	* c.opt (Wjump-misses-init): New warning.
	* c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
	-Wall and -Wc++-compat if not already set.
	(c_common_post_options): Clear warn_jump_misses_init if it was not
	set.
	* c-decl.c (struct c_binding): Change type field to a union with
	new label field.  Make it the first field in the struct.  Update
	references to type to use u.type instead.
	(struct c_spot_bindings): Define.
	(struct c_goto_bindings): Define.
	(c_goto_bindings_p): Define, along with VECs.
	(struct c_label_vars): Define.
	(struct c_scope): Add has_label_bindings field.
	(bind_label, set_spot_bindings): New static functions.
	(decl_jump_unsafe, update_spot_bindings): New static functions.
	(update_label_decls): New static function.
	(pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
	Update binding u.label field to shadowed field.
	(c_binding_start_stmt_expr): New function.
	(c_binding_end_stmt_expr): New function.
	(pushdecl): Don't call c_begin_vm_scope.
	(make_label): Add defining and p_label_vars parameters.  Change
	all callers.
	(lookup_label): Correct test for whether a label has not yet been
	defined.  Call bind_label rather than bind.
	(warn_about_goto): New static function.
	(lookup_label_for_goto): New function.
	(declare_label): Call bind_label rather than bind.
	(check_earlier_gotos): New static function.
	(define_label): Don't give errors about jumping into statement
	expressions or scopes of variably modified types.  Call
	set_spot_bindings and check_earlier_gotos.  Call bind_label
	instead of bind.  Don't set label_context_stack_se or
	label_context_stack_vm.
	(c_get_switch_bindings): New function.
	(c_release_switch_bindings): New function.
	(c_check_switch_jump_warnings): New function.
	(start_function): Don't set label_context_stack_se or
	label_context_stack_vm.
	(finish_function): Likewise.
	* c-typeck.c (label_context_stack_se): Don't define.
	(label_context_stack_vm): Don't define.
	(c_finish_goto_label): Call lookup_label_for_goto rather than
	lookup_label.  Don't give errors about jumping into a statement
	expression or the scope of a variably modified type.  Don't set
	label_context_stack_se or label_context_stack_vm.
	(struct c_switch): Remove blocked_stmt_expr and blocked_vm
	fields.  Add bindings field.
	(c_start_case): Don't set deleted fields.  Set bindings field.
	(do_case): Rework order of tests.  Don't check blocked_stmt_expr
	or blocked_vm.  Call c_check_switch_jump_warnings.
	(c_finish_case): Don't test blocked_stmt_expr field.  Call
	c_release_switch_bindings.
	(c_begin_stmt_expr): Don't increment blocked_stmt_expr in
	c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
	set label_context_stack_se.  Call c_bindings_start_stmt_expr.
	(c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
	c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
	set label_context_stack_se.  Call c_bindings_end_stmt_expr.
	(c_begin_vm_scope, c_end_vm_scope): Don't define.
	* c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
	(C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
	(C_DECL_UNJUMPABLE_VM): Don't define.
	(C_DECL_UNDEFINABLE_VM): Don't define.
	(struct c_label_list): Don't define.
	(struct c_label_context_se): Don't define.
	(struct c_label_context_vm): Don't define.
	(struct c_spot_bindings): Declare.
	(c_bindings_start_stmt_expr): Declare.
	(c_bindings_end_stmt_expr): Declare.
	(lookup_label_for_goto): Declare.
	(c_get_switch_bindings, c_release_switch_bindings): Declare.
	(c_check_switch_jump_warnings): Declare.
	(label_context_stack_se, label_context_stack_vm): Don't declare.
	(c_finish_goto_label): Update declaration.
	(c_begin_vm_scope, c_end_vm_scope): Don't declare.
	* doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
	(Warning Options): Document -Wjump-misses-init.

2009-06-15  Jakub Jelinek  <jakub@redhat.com>

	* tree-object-size.c (addr_object_size): Fix a pasto in the last
	change.

2009-06-15  Rafael Avila de Espindola  <espindola@google.com>

	* cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.

2009-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.

2009-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* tree-eh.c (lower_try_finally_switch): Initialize tf_loc.

2009-06-15  Rafael Avila de Espindola  <espindola@google.com>

	* cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
	Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
	* cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
	* config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
	* dwarf2asm.c (dw2_force_const_mem): Update call to
	make_decl_one_only.
	* langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
	(LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
	* langhooks.c (lhd_comdat_group): Remove.
	* langhooks.h (lang_hooks_for_decls): Remove comdat_group.
	* tree.h (DECL_COMDAT_GROUP): New.
	(DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
	(tree_decl_with_vis): Add comdat_group. Remove one_only.
	(make_decl_one_only): Change signature.
	* varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
	make_decl_one_only.
	(make_decl_one_only): Change signature.
	(default_elf_asm_named_section): Use DECL_COMDAT_GROUP.

2009-06-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40439
	* tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.

2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* tree-ssa-math-opts.c: Remove extra divide.

2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("bswap<mode>2"): Only available on z900.

2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* passes.c: Add bswap pass.
	* tree-pass.h: Add pass_optimize_bswap declaration.
	* tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
	Include rtl.h, expr.h and optabs.h for optab_handler check.
	(struct symbolic_number, pass_optimize_bswap): New definition.
	(do_shift_rotate, verify_symbolic_number_p): New functions.
	(find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
	(gate_optimize_bswap): New function.
	* tree.c (widest_int_cst_value): New function.
	* tree.h (widest_int_cst_value): Prototype added.

2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>

	* cfgcleanup.c (old_insns_match_p): Remove code to substitute
	REG_EQUAL/REG_EQUIV notes.

2009-06-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40389
	* gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
	has its address taken if NRV was applied and it is addressable.
	* tree-ssa-structalias.c (get_constraint_for_address_of): New
	function split out from ...
	(get_constraint_for_1): ... here.
	(handle_rhs_call): Use it to mark the return slot escaped if
	it is addressable and NRV was applied.

2009-06-13  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
	Change first argument type to location_t.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
	Do not set input_location.
	Use loc instead of input_location throughout.

2009-06-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40421
	* tree-predcom.c (should_unroll_loop_p): Remove.
	(tree_predictive_commoning_loop): Use can_unroll_loop_p.

2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Add location argument.

2009-06-13  Aldy Hernandez  <aldyh@redhat.com>

	* config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
	build_decl.
	* config/s390/s390.c (s390_build_builtin_va_list): Same.
	(s390_gimplify_va_arg): Pass location to create_artificial_label.
	* config/spu/spu-protos.h: Add location to
	spu_resolve_overloaded_builtin.
	* config/spu/spu.c (spu_build_builtin_va_list): Pass location to
	spu_build_builtin_va_list.
	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
	argument.  Pass location to build_function_call_vec.
	* config/sh/sh.c (sh_build_builtin_va_list): Pass location to
	build_decl.
	(emit_fpu_switch): Same.
	(sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
	* config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
	to build_decl and create_artificial_label.
	(xtensa_gimplify_va_arg_expr): Same.
	* config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
	(xstormy16_gimplify_va_arg_expr): Same.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
	* config/arm/arm.c (arm_build_builtin_va_list): Same.
	* config/mips/mips.c (mips_build_builtin_va_list): Same.
	(mips16_build_function_stub): Same.
	(mips16_build_call_stub): Same.

2009-06-13  Richard Earnshaw  <rearnsha@arm.com>

	PR target/40327
	* arm/constraints.md (Pa, Pb): New constraints.
	* arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a
	split pattern to deal with them.

2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>

	* doc/invoke.texi: Add missing option -Wp,OPTION in list,
	fix index entry for -Xpreprocessor.

2009-06-12  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Add location argument to build_decl call.
	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
	(rs6000_init_builtins): Same.
	(spe_init_builtins): Same.
	(rs6000_gimplify_va_arg): Add location argument to
	create_artificial_label call.

2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>

	* timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
	* combine-stack-adj.c (pass_stack_adjustments): Use it.
	* Makefile.in: Fix GGC dependency for gcse.o.

2009-06-12  Aldy Hernandez  <aldyh@redhat.com>

	* tree-pretty-print.c (dump_generic_node): Dump column numbers.
	* gimple-pretty-print.c (dump_gimple_stmt): Same.
	* gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
	created.
	* c-parser.c (c_parser_binary_expression): Use current column while
	building binary operations.
	* common.opt (fshow-column): Enable by default.
	* tree-vrp.c (check_array_ref): Use warning_at.
	(check_array_bounds): Use location from call back if expr has no
	location.
	* tree.h: Add location argument to maybe_fold_*.
	* tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
	(maybe_fold_offset_to_array_ref): Add location argument and use it.
	(maybe_fold_offset_to_component_ref): Same.
	(maybe_fold_offset_to_reference): Same.
	(maybe_fold_offset_to_address): Same.
	(maybe_fold_stmt_indirect): Same.
	(maybe_fold_stmt_addition): Same.
	(fold_stmt_r): Pass location to maybe_fold_*.
	(fold_gimple_assign): Same.
	* c-tree.h: Add location argument to finish_decl,
	default_function_array_conversion, store_init_value.
	* c-decl.c (define_label): Use error_at.
	(c_make_fname_decl): Pass location to finish_decl.
	(finish_decl): New location argument.
	(build_compound_literal): Pass location to store_init_value.
	(grokdeclarator): Pass location to finish_decl.
	(grokfield): Same.
	* c-typeck.c (array_to_pointer_conversion): New location argument.
	(function_to_pointer_conversion): Same.
	(default_function_array_conversion): Same.
	(parser_build_unary_op): Pass location to overflow_warning.
	(parser_build_binary_op): Same.  Use warning_at.
	(build_unary_op): Pass location to array_to_pointer_conversion.
	(build_c_cast): Pass location to digest_init.
	(build_modify_expr): New location argument.
	(convert_for_assignment): Same.
	(store_init_value): Same.
	(digest_init): Same.
	(output_init_element): Pass location to digest_init and
	array_to_pointer_conversion.
	(c_finish_return): Pass location to convert_for_assignment.
	* gimplify.c (gimplify_conversion): Pass location to
	maybe_fold_offset_to_address.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
	to maybe_fold_stmt_addition.
	* c-omp.c (c_finish_omp_atomic): Pass new location to
	build_modify_expr.
	(c_finish_omp_for): Same.
	* c-common.c (overflow_warning): New argument.
	* c-common.h: New argument to build_modify_expr, overflow_warning.
	* c-parser.c (c_parser_declaration_or_fndef): Pass location to
	finish_decl.
	(c_parser_initializer): Pass location to
	default_function_array_conversion.
	(c_parser_initelt): Same.
	(c_parser_initval): Same.
	(c_parser_asm_operands): Same.
	(c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
	(c_parser_conditional_expression): Same.
	(c_parser_binary_expression): Add location info to stack.  Use it.
	(c_parser_unary_expression): Pass location to
	default_function_array_conversion, parser_build_unary_op,
	build_indirect_ref, c_parser_postfix_expression_after_primary.
	(c_parser_postfix_expression_after_primary): New location argument.
	Use it.
	(c_parser_expression_conv): Pass location to
	default_function_array_conversion.
	(c_parser_expr_list): Same.
	(c_parser_omp_atomic): Same.
	(c_parser_omp_for_loop): Same.
	* c-tree.h (struct c_declarator): Add comment to id_loc.
	(build_array_declarator): New argument.
	* c-decl.c (build_array_declarator): Add location argument.
	(grokdeclarator): Set id_loc for cdk_array.
	* c-parser.c (c_parser_direct_declarator_inner): Pass location to
	build_array_declarator.
	* tree.c (build_omp_clause): Add location argument.
	* tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
	(OMP_CLAUSE_LOCATION): New macro.
	(struct tree_omp_clause): Add location field.
	(build_omp_clause): Add argument.
	* cp/pt.c (tsubst_omp_for_iterator): Pass location to
	build_omp_clause.
	* cp/parser.c (cp_parser_omp_var_list_no_open): Same.
	(cp_parser_omp_clause_collapse): Same.
	(cp_parser_omp_clause_default): Same.
	(cp_parser_omp_clause_if): Same.
	(cp_parser_omp_clause_nowait): Same.
	(cp_parser_omp_clause_num_threads): Same.
	(cp_parser_omp_clause_ordered): Same.
	(cp_parser_omp_clause_schedule): Same.
	(cp_parser_omp_clause_untied): Same.
	(cp_parser_omp_for_loop): Same.
	(cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
	* c-tree.h (c_start_case): Add location argument.
	(c_process_expr_stmt): Same.
	(c_finish_goto_*): Same.
	* tree-parloops.c (initialize_reductions): Pass location to
	build_omp_clause.
	(create_parallel_loop): Same.
	* fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
	(gfc_trans_omp_reduction_list): Same.
	(gfc_trans_omp_clauses): Same.
	(gfc_trans_omp_do): Same.
	* c-typeck.c (c_finish_goto_label): Same.
	(c_finish_goto_ptr): New location argument.
	(c_start_case): Same.
	(emit_side_effect_warnings): Same.
	(c_process_expr_stmt): Same.
	(c_finish_stmt_expr): Same.
	(c_finish_omp_clauses): Use error_at instead of error.
	* gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
	build_omp_clause.
	* c-omp.c (c_split_parallel_clauses): New location argument.
	* tree-nested.c (convert_nonlocal_reference_stmt): Pass location
	to build_omp_clause.
	(convert_local_reference_stmt): Same.
	(convert_gimple_call): Same.
	* c-common.h (c_split_parallel_clauses): New argument.
	* c-parser.c (c_parser_statement_after_labels): Pass location to
	c_finish_goto_label.
	(c_parser_switch_statement): Pass location to c_start_case.
	(c_parser_for_statement): Pass location to c_finish_expr_stmt,
	and c_process_expr_stmt.
	(c_parser_omp_variable_list): Add location argument.
	(c_parser_omp_clause_collapse): Pass location to build_omp_clause.
	(c_parser_omp_clause_default): Same.
	(c_parser_omp_clause_if): Same.
	(c_parser_omp_clause_num_threads): Same.
	(-c_parser_omp_clause_ordered): Same.
	(c_parser_omp_clause_reduction): Pass location to
	c_parser_omp_variable_list.
	(c_parser_omp_clause_schedule): Pass location to build_omp_clause.
	(c_parser_omp_clause_untied): Same.
	(c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
	(c_parser_omp_parallel): Pass location to c_split_parallel_clauses.

	* c-tree.h (check_for_loop_decls, undeclared_variable,
	build_component_ref, build_array_ref, build_external_ref,
	c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
	build_conditional_expr, build_compound_expr, c_cast_expr,
	build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
	c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
	argument.
	* c-semantics.c (build_stmt): Same.
	(build_case_label): Same.
	* c-decl.c (c_finish_incomplete_decl): Pass location on down.
	(undeclared_variable): New argument.
	(make_label): Same.
	(lookup_label): Pass location on down.
	(define_label): Same.
	(finish_decl): Same.
	(build_compound_literal): Same.
	(finish_struct): Same.
	(finish_function): Do not set location here.
	(check_for_loop_decls): New argument.
	* tree.c (save_expr): Set location.
	(build_empty_stmt): New argument.
	* tree.h (build_empty_stmt): New argument to build_empty_stmt.
	(CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
	* builtins.c (gimplify_va_arg_expr): Use locations.
	(expand_builtin_sync_operation): Same.
	* c-typeck.c (build_component_ref): New argument.
	(build_array_ref): Same.
	(build_external_ref): Same.
	(c_expr_sizeof_expr): Same.
	(c_expr_sizeof_type): Same.
	(parser_build_unary_op): Same.
	(build_conditional_expr): Same.
	(build_compound_expr): Pass location on down.
	(build_compound_expr): New argument.
	(build_c_cast): Same.
	(c_cast_expr): Same.
	(build_asm_expr): Same.
	(c_finish_return): Same.
	(c_process_expr_stmt): Pass location on down.
	(c_finish_stmt_expr): New argument.
	(push_clenaup): Same.
	(c_finish_omp_parallel): Same.
	(c_finish_omp_task): Same.
	* gimplify.c (gimplify_call_expr): Pass location on down.
	* c-omp.c (c_finish_omp_master): New argument.
	(c_finish_omp_critical): Same.
	(c_finish_omp_ordered): Same.
	(c_finish_omp_barrier): Same.
	(-c_finish_omp_taskwait): Same.
	(c_finish_omp_atomic): Same.
	(c_finish_omp_flush): Same.
	* tree-inline.c (copy_tree_body_r): Pass location on down.
	(inline_forbidden_p): Remove use of input_location.
	* c-gimplify.c (c_build_bind_expr): New argument.
	* c-common.c (c_common_truthvalue_conversion): Pass location on down.
	(c_sizeof_or_alignof_type): New argument.
	(c_alignof_expr): Same.
	(build_va_arg): Same.
	(c_add_case_label): Same.
	* c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
	c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
	c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
	c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
	c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
	c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
	New argument.
	* stub-objc.c (objc_build_selector_expr): Same.
	(objc_build_throw_stmt): Same.
	* c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
	(c_parser_initelt): Same.
	(c_parser_compound_statement): Same.
	(c_parser_compound_statement_nostart): Same.
	(c_parser_label): Same.
	(c_parser_statement_after_labels): Same.
	(c_parser_if_body): Same.
	(c_parser_else_body): Same.
	(c_parser_if_statement): Same.
	(c_parser_switch_statement): Same.
	(c_parser_while_statement): Same.
	(c_parser_do_statement): Same.
	(c_parser_for_statement): Same.
	(c_parser_asm_statement): Same.
	(c_parser_conditional_expression): Same.
	(c_parser_binary_expression): Same.
	(c_parser_cast_expression): Same.
	(c_parser_unary_expression): Same.
	(c_parser_sizeof_expression): Same.
	(c_parser_alignof_expression): Same.
	(c_parser_postfix_expression): Same.
	(c_parser_expression): Same.
	(c_parser_objc_receiver): Same.
	(c_parser_omp_variable_list): Same.
	(c_parser_omp_structured_block): Same.
	(c_parser_omp_atomic): New argument.
	(c_parser_omp_barrier): Same.
	(c_parser_omp_critical): Same.
	(c_parser_omp_flush): Pass location on down.
	(c_parser_omp_for_loop): New argument.
	(c_parser_omp_for): Same.
	(c_parser_omp_master): Same.
	(c_parser_omp_ordered): Same.
	(c_parser_omp_sections_scope): Same.
	(c_parser_omp_sections): Same.
	(c_parser_omp_parallel): Same.
	(c_parser_omp_single): Same.
	(c_parser_omp_task): Same.
	(c_parser_omp_taskwait): Pass location on down.
	(c_parser_omp_construct): Same.
	(c_parser_omp_threadprivate): Same.
	* dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
	builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
	tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
	c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
	c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
	emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
	rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
	tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
	config/i386/i386.c, stmt.c:
	Add location argument to the following function definitions and/or
	function calls: build_decl, objcp_start_struct, objcp_finish_struct,
	start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
	cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
	build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
	do_case, c_finish_bc_stmt, build_compound_literal,
	build_function_call.
	* c-decl.c (build_compound_literal): Add location argument.
	Make all diagnostic calls use location.
	(start_struct): Same.
	(finish_struct): Same.
	(start_enum): Same.
	(build_enumerator): Same.
	(start_function): Same.
	(grokdeclarator): Make all diagnostic calls use location.
	(store_parm_decls_oldstyle): Same.
	* c-typeck.c (build_function_call): Add location argument.
	Make all diagnostic calls use location.
	(do_case): Same.
	(c_finish_bc_stmt): Same.
	* tree-nested.c (get_trampoline_type): Add argument.
	Pass location to build_decl.
	(lookup_tramp_for_decl): Pass location to get_trampoline_type.
	* rtl.h (RTL_LOCATION): New.
	* c-common.c (c_add_case_label): Add location argument.
	Make all diagnostic calls use location.
	* c-common.h: Add location argument to make_fname_decl, do_case,
	c_add_case_label, build_function_call, resolve_overloaded_builtin.
	* c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
	Set it appropriately for every case.  Pass enum_loc to start_enum
	call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
	parser_xref_tag.
	(c_parser_struct_or_union_specifier): Save location.  Use it for
	start_struct, finish_struct, and parser_xref_tag.

2009-06-12  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (fold_unary): Rename local variable and to and_expr.

	* c-opts.c (c_common_handle_option): For -Wc++-compat set
	cpp_opts->warn_cxx_operator_names.

2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/38865
	* tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
	is returns NULL and OP is a VCE, look through the VCE.

2009-06-12  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/40430
	* collect2.c (main): Use CONST_CAST2 in code inside #if
	LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.

2009-06-12  Joey Ye  <joey.ye@intel.com>

	PR middle-end/39146
	* cfgexpand.c (get_decl_align_unit): Update
	max_used_stack_slot_alignment with align instead of
	stack_alignment_needed.

	* function.c (assign_stack_local_1): Update
	max_used_stack_slot_alignment with alignment_in_bits instead
	of stack_alignment_needed.
	(locate_and_pad_parm): Don't update max_used_stack_slot_alignment
	here.

2009-06-12  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (last_var_location_insn): New variable.
	(dwarf2out_end_epilogue): Clear last_var_location_insn.
	(dwarf2out_var_location): Don't record anything after last real
	insn.  Only change labels if there were any real instructions
	in between last note and this one, or if changed sections.

2009-06-11  Richard Henderson  <rth@redhat.com>

	* alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
	note when storing the frame pointer in a register.
	(FRP): Don't redefine to nothing for epilogue.
	(alpha_expand_epilogue): Mark register and sp restores.
	(unicosmk_gen_dsib): Don't mark weird frame pointer adjust.

	* config/alpha/alpha.c (alpha_emit_setcc): Fix test for
	when gen_lowpart is needed.

2009-06-11  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.

	* dwarf2out.c (need_data_align_sf_opcode): New.
	(div_data_align): Move earlier.
	(def_cfa_1, reg_save): Use it.

2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
	(OPTION_MASK_ISA_CRC32_UNSET): Likewise.
	(ix86_handle_option): Handle OPT_mcrc32.
	(ix86_target_string): Add -mcrc32.
	(bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.

	* config/i386/i386.h (TARGET_CRC32): New.

	* config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
	(sse4_2_crc32di): Likewise.

	* config/i386/i386.opt (mcrc32): New.

	* doc/invoke.texi: Document -mcrc32.

2009-06-11  Richard Henderson  <rth@redhat.com>

	* common.opt (gdwarf-): Accept a version number.
	* doc/invoke.texi (gdwarf-): Update docs.
	* opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
	* opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
	version level, and record it.

	* dwarf2.h (DW_CIE_VERSION): Remove.
	* dwarf2out.c (DWARF_VERSION): Remove.
	(add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
	(output_call_frame_info): Use CIE version 3 for dwarf3,
	or if the return register column is out of range for version 1.
	(dwarf_stack_op_name): Add all dwarf3 values.
	(DEBUG_PUBTYPES_SECTION): New.
	(size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
	encoding change for dwarf3.
	(output_die) [dw_val_class_die_ref]: Likewise.
	(output_compilation_unit_header): Emit correct version for dwarf3.
	(output_line_info): Likewise.
	(output_pubnames): Update for DWARF_VERSION removal.
	(output_aranges): Likewise.
	(gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
	(dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
	(dwarf2out_finish): Likewise.

2009-06-11  David Daney  <ddaney@caviumnetworks.com>

	* system.h (gcc_assert, gcc_unreachable): Revert accidental commit
	in r148403.

2009-06-11  David Daney  <ddaney@caviumnetworks.com>

	PR c/39252
	* doc/extend.texi ( __builtin_unreachable): Document new builtin.
	* builtins.c (expand_builtin_unreachable): New function.
	(expand_builtin): Handle BUILT_IN_UNREACHABLE case.
	* builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
	* cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
	successors.
	* cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
	searching for missing barriers.

2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
	when -fprofile-generate* was passed.
	* config/darwin9.h (LINK_COMMAND_SPEC): Likewise.

2009-06-11  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md: Define length attribute for all instructions.
	(rCC): Define.
	(*b<cond:code>): Support limited branch ranges for new PC-relative
	branch instructions.
	* config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.

2009-06-11  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (min_insn_size): Use get_attr_length
	for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
	For __asm return 0.

	* config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
	instead of emit_insn_before.

2009-06-10  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/40408
	* graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
	GIMPLE_SWITCH.

2009-06-10  Revital Eres  <eres@il.ibm.com>

	* passes.c (init_optimization_passes): Reschedule
	predictive-commoning pass before complete unroll pass.

2009-06-10  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (cgraph_node_can_be_local_p): New function.
	(cgraph_make_node_local): New function.
	* cgraph.h (cgraph_node_can_be_local_p): Declare.
	(cgraph_make_node_local): Declare.

2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (tree_base): Add packed_flag and user_align fields.
	Decrease size of spare field.
	(TYPE_USER_ALIGN): Use user_align from tree_base.
	(DECL_USER_ALIGN): Likewise.
	(TYPE_PACKED): Use packed_flag from tree_base.
	(DECL_PACKED): Likewise.
	(tree_type): Delete packed_flag and user_align fields.  Widen
	precision field.  Widen mode field and shuffle fields to align
	mode on an 8-bit boundary.
	(tree_decl_common): Delete decl_flag_1 and user_align fields.
	Renumber decl_flag_* fields.  Fix comments.  Widen
	decl_common_unused field.
	(DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
	(DECL_EXTERNAL): Likewise.
	(DECL_BIT_FIELD): Likewise.
	(DECL_NONADDRESSABLE_P): Likewise.
	(TYPE_DECL_SUPRESS_DEBUG): Likewise.
	* config/arm/arm-modes.def (XImode): Make it an INT_MODE.

2009-06-10  Ian Lance Taylor  <iant@google.com>

	* vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
	(DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
	(DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
	(DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
	(DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
	DEF_VEC_ALLOC_FUNC_P.
	(DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
	(DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
	DEF_VEC_ALLOC_FUNC_O.
	(DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
	(DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
	DEF_VEC_ALLOC_FUNC_I.
	(vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
	(vec_stack_p_reserve_exact_1): Declare.
	(vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
	(vec_stack_free): Declare.
	(VEC_stack_alloc): Define.
	(DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
	(DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
	(DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
	* vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
	for void_p.
	(stack_vecs): New static variable.
	(vec_stack_p_reserve_exact_1): New function.
	(vec_stack_o_reserve_1): New static function.
	(vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
	(vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
	(vec_stack_free): New function.
	* df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
	(VEC_df_ref_stack_alloc): Define.
	(df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
	DEF_VEC_ALLOC_P_STACK.
	(VEC_df_mw_hardreg_ptr_stack_alloc): Define.
	(struct df_collection_rec): Change _vec fields to VEC.  Remove
	_use fields.
	(df_free_collection_rec): Adjust for new fields.
	(df_insn_rescan): Use new df_collection_rec fields.
	(df_notes_rescan, df_canonize_collection_rec): Likewise.
	(df_ref_create_structure, df_ref_record): Likewise.
	(df_get_conditional_uses, df_get_call_refs): Likewise.
	(df_insn_refs_collect, df_bb_refs_collect): Likewise.
	(df_bb_refs_record, df_record_entry_block_defs): Likewise.
	(df_record_exit_block_uses, df_bb_verify): Likewise.
	(df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
	(df_sort_and_compress_refs): Change ref_vec parameter to VEC.
	Remove count parameter.  Change return type to void.  Change all
	callers.
	(df_sort_and_compress_mws): Change mw_vec parameter to VEC.
	Remove count parameter.  Change return type to void.  Change all
	callers.
	(df_install_refs): Change old_vec parameter to VEC.  Remove count
	parameter.  Change all callers.
	(df_install_mws): Change old_vec parameter to VEC.  Remove count
	parameter.  Change all callers.
	(df_refs_verify): Change new_rec parameter to VEC.  Change call
	callers.
	(df_mws_verify): Likewise.

2009-06-10  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (compare_files): Cast munmap argumento to caddr_t.

2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi: Add description for __builtin_ia32_crc32di.

2009-06-10  Anthony Green  <green@moxielogic.com>

	* config/moxie/crti.asm: New file.
	* config/moxie/crtn.asm: New file.
	* config/moxie/moxie.c: New file.
	* config/moxie/moxie.h: New file.
	* config/moxie/sfp-machine.h: New file.
	* config/moxie/moxie-protos.h: New file.
	* config/moxie/t-moxie: Created.
	* config/moxie/t-moxie-softfp: Created.
	* config/moxie/moxie.md: Created.
	* config/moxie/constraints.md: Created.
	* config.gcc: Add moxie support.
	* doc/md.texi (Machine Constraints): Add moxie constraints.
	* doc/contrib.texi (Contributors): Mention moxie port.
	* doc/install.texi (Specific): Mention the moxie port.

2009-06-09  Ian Lance Taylor  <iant@google.com>

	* system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
	compiling with C++.
	* optabs.c (optab_table): Only use designated initializers if
	HAVE_DESIGNATED_INITIALIZERS is defined.
	(convert_optab_table): Likewise.
	(init_optabs): Always call init_insn_codes if
	HAVE_DESIGNATED_INITIALIZERS is not defined.

2009-06-09  Ian Lance Taylor  <iant@google.com>

	* targhooks.c (default_builtin_vectorized_function): Change fn
	parameter to unsigned int.
	(default_builtin_vectorized_conversion): Change code parameter to
	unsigned int.
	(default_builtin_reciprocal): Change fn parameter to unsigned int.
	* targhooks.h: Update declarations.
	* config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
	parameter to unsigned int.

	* c-typeck.c (comptypes_check_enum_int): New static function.
	(comptypes_internal): Add enum_and_int_p parameter.  Change all
	callers.
	(comp_target_types): Add location parameter.  Change all callers.
	(tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
	Change all callers.
	(function_types_compatible_p, type_lists_compatible_p): Likewise.
	(build_conditional_expr): Add colon_loc parameter.  Change all
	callers.
	(convert_for_assignment): Add location parameter.  Change all callers.
	* c-parser.c (c_parser_conditional_expression): Pass location of
	colon to build_conditional_expr.
	* c-tree.h (build_conditional_expr): Update declaration.

2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Revert previous patch.

2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/40103
	* graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".

2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>

	* tree-ssa-loop-prefetch.c
	(loop_prefetch_arrays): Fixed a portability problem in printf format
	string.

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

	PR tree-optimization/40351
	* tree-sra.c (propagate_subacesses_accross_link): Check that a
	refrence to a potential artifical subaccess can be constructed.

2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_optimization_options): Declare.
	(sh_override_options): Likewise.
	* config/sh/sh.c: Include params.h.
	(sh_optimization_options): New.
	(sh_override_options): Likewise.
	* config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
	(OVERRIDE_OPTIONS): Use sh_override_options.

2009-06-08  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (emit_cfa_remember): New variable.
	(add_fde_cfi): If emit_cfa_remember, recurse to add
	DW_CFA_remember_state first.
	(dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
	instead just set emit_cfa_remember.

2009-06-08  Jan Hubicka  <jh@suse.cz>

	PR debug/40126
	* dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.

2009-06-08  Jan Hubicka  <jh@suse.cz>

	PR middle-end/39834
	* cgraphunit.c (save_inline_function_body): Do not copy transform
	hooks for saved inline bodies.
	* ipa-passes.c (do_per_function): Do not add the hoks multiple times
	for given function.

2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>

	* jump.c (returnjump_p): Handle delayed branches.  Add missing
	function comment.

2009-06-08  Jan Hubicka  <jh@suse.cz>

	PR middle-end/40102
	* cgraph.c (cgraph_create_edge_including_clones): Also asume that the
	original node might've been modified.
	* tree-inline.c (copy_bb): Do not assume that all clones are the same.

2009-06-08  Jakub Jelinek  <jakub@redhat.com>

	* tree-object-size.c (addr_object_size): Add OSI argument.
	Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
	(compute_builtin_object_size, expr_object_size): Adjust callers.
	(plus_stmt_object_size): Call addr_object_size instead of
	compute_builtin_object_size.

2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* tree-ssa-loop-prefetch.c
	(gather_memory_references): Introduced a counter for the number of
	memory references.
	(anything_to_prefetch_p): Introduced a counter for the number of
	prefetches.
	(is_loop_prefetching_profitable): New function with a cost model
	for prefetching.
	(loop_prefetch_arrays): Use the new cost model to determine if
	prefetching is profitable.
	* params.def (MIN_INSN_TO_PREFETCH_RATIO,
	PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
	* params.h (MIN_INSN_TO_PREFETCH_RATIO,
	PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
	* doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
	PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.

2009-06-08  Michael Matz  <matz@suse.de>

	PR debug/40012
	* cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
	partitions use the same.
	(expand_one_var): Deal with DECL_RTL sometimes begin set also
	for basevars of SSA_NAMEs.
	(expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
	to not expand them twice.
	(gimple_expand_cfg): Clear DECL_RTL for those decls that have
	multiple places.

2009-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* common.opt (fcompare-debug=, fcompare-debug-second): New.
	(fdump-final-insns=, gtoggle): New.
	* doc/invoke.texi: Document them.
	* final.c (rest_of_clean_state): Dump final insn stream.
	* gcc.c (invoke_as): Hook in -fcompare-debug.
	(static_spec_functions): Add compare-debug-dump-opt,
	compare-debug-self-opt and compare-debug-auxbase-opt.
	(compare_debug, compare_debug_second, compare_debug_opt): New.
	(switches_debug_check, n_switches_debug_check): New.
	(debug_auxbase_opt, debug_check_temp_file): New.
	(process_command): Handle -fno-compare-debug, -fcompare-debug and
	-fcompare-debug=*.
	(do_self_spec): Handle arguments after switches.
	(do_spec_1): Add .gk extension to temp file basenames for compare.
	(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
	(cc1_options): Use it instead of normal auxbase computation for
	the second compare-debug compilation.
	(compare_files): New.
	(main): Set up and implement compare debug mode.
	(compare_debug_dump_opt_spec_function): New.
	(compare_debug_self_opt_spec_function): New.
	(compare_debug_auxbase_opt_spec_function): New.
	* toplev.c (process_options): Handle flag_gtoggle,
	flag_dump_final_insns.
	* coverage.c (coverage_begin_output): Don't overwrite .gcno file
	during -fcompare-debug-second compilation.

2009-06-07  Ian Lance Taylor  <iant@google.com>

	* dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
	* dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.

	* c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
	with no default node.  Change warning with %H to warning_at.
	Don't clear warn_switch around case checking.
	* doc/invoke.texi (Warning Options): Clarify distinction between
	-Wswitch and -Wswitch-enum.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-pass.h (TODO_update_ssa_any): Document internal use only.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* gbl-ctors.h: Add header guard.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
	sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
	vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
	vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
	prototypes for removed functions.
	(expressions_equal_p): Move to ...
	* tree-ssa-sccvn.h: ... here and ...
	* matrix-reorg.c: ... adjust includes.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* c-decl.c (finish_decl): Use bool for variable was_incomplete.
	(finish_function): Remove erroneous whitespace.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
	(verify_stmts): Print statement who's gimple_bb is set to a wrong BB

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* errors.c (internal_error): Commentary typo fix.
	* gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
	* tree-ssa-pre.c: Ditto.

2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
	them is supposed to hold actual statements.

2009-06-06  Ian Lance Taylor  <iant@google.com>

	* doc/extend.texi (Attribute Syntax): Document that C++ labels on
	empty statements can now have attributes.

2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
	* config/mips/mips.md: Ditto.

2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/eabi.asm (__eabi_convert): Don't define if
	_RELOCATABLE.
	(__eabi_uconvert): Likewise.

2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
	CFI_* definitions with IN_GCC.

2009-06-05  David Edelsohn  <edelsohn@gnu.org>

	* xcoffout.h (xcoffout_source_line): Update prototype.

2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
	mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.

2009-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40340
	* tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
	inlined_function_outer_scope_p blocks for artificial inlines
	even at -g0/-g1.
	* tree.c (tree_nonartificial_location): Rewrite using
	block_nonartificial_location.

2009-06-05  Revital Eres  <eres@il.ibm.com>
	    Leehod Baruch  <leehod@il.ibm.com>

	* expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
	(expand_expr_real_1): Remove comment.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Vectorize misaligned access when the target supports it.
	(vect_supportable_dr_alignment): Check for unaligned access support.
	* tree-vect-stmts.c (vectorizable_store): Generate misaligned store
	and remove asset.

2009-06-05  Julian Brown  <julian@codesourcery.com>

	* config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
	* config/arm/ieee754-sf.S (cmpsf2): Likewise.

2009-06-05  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/40350
	* dwarf2out.c (dwarf2out_begin_function): Mark discriminator
	as possibly unused.

2009-06-05  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.c (global_not_special_regno_p): New static inline.
	(save_gprs): Don't tell unwinder when a global register is saved.
	(s390_emit_epilogue): Emit needed epilogue unwind info.

2009-06-05  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (deferred_asm_name): New.
	(add_name_and_src_coords_attributes): Defer creation of
	DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
	computed yet.
	(move_linkage_attr): New.
	(dwarf2out_finish): Revisit deferrals and emit attributes at the
	right place.

2009-06-05  Alexandre Oliva  <aoliva@redhat.com>

	* tree-nested.c (finalize_nesting_tree_1): Declare the
	frame_decl in the binding tree.

2009-06-04  Cary Coutant  <ccoutant@google.com>

	* basic-block.h (struct basic_block_def): Add discriminator field.
	* dbxout.c (dbxout_source_line): Add new parameter.  Change all
	callers.
	* debug.c (do_nothing_debug_hooks): Add additional entry.
	(debug_nothing_int_charstar_int): New function.
	* debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
	(debug_nothing_int_charstar_int): New declaration.
	* dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
	discriminator value in .loc directive.
	* final.c (last_discriminator): New variable.
	(discriminator): New variable.
	(final_start_function): Initialize above variables, pass current
	discriminator to debug hook.
	(notice_source_line): Check for discriminator change.
	* gimple-pretty-print.c (dump_bb_header): Print discriminator value.
	* sdbout.c (sdbout_source_line): New parameter.
	* tree-cfg.c (struct locus_discrim_map): New structure type.
	(discriminator_per_locus): New hash table.
	(build_gimple_cfg): Allocate and free discriminator hash table.
	(make_edges): Call assign_discriminator.
	(locus_map_hash): New function.
	(locus_map_eq): New function.
	(next_discriminator_for_locus): New function.
	(same_line_p): New function.
	(assign_discriminator): New function.
	(make_cond_expr_edges): Call assign_discriminator.
	(make_gimple_switch_edges): Likewise.
	(first_non_label_stmt): New function.
	* vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
	all callers.
	* xcoffout.c (xcoffout_source_line): Add new parameter.

	* configure.ac (gcc_cv_as_discriminator): New configury check for
	gas support for discriminator.
	* configure: Regenerate.
	* config.in: Regenerate.

2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (thumb2_legitimate_index_p): Initialize
	val after checking for integers.

2009-06-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
	X64_REGPARM_MAX.
	(REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
	(X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
	(SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
	* config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
	X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
	X64_SSE_REGPARM_MAX.
	* config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
	X64_SSE_REGPARM_MAX.

2009-06-04  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (report_times_to_file): New.
	(execute): Implement it.
	(process_command): Support -time=.
	* doc/invoke.texi: Document it.

2009-06-04  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
	that have value exprs.

2009-06-04  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2asm.c (dw2_force_const_mem): Defer creation of
	declarations for constants until...
	(dw2_output_indirect_constant_1): ... this point.

2009-06-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/10242
	* arm.md (arm_addsi3): Don't try to split an add with an
	eliminable register until after reload has completed.

2009-06-03  Ian Lance Taylor  <iant@google.com>

	* dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
	* genattrtab.c (write_length_unit_log): Likewise.
	* genchecksum.c (dosum): Likewise.
	* gengtype.c (write_rtx_next): Likewise.
	(finish_root_table, write_roots): Likewise.
	* gimple.c (gimple_ops_offset_): Likewise.
	* tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
	* config/arc/arc.c (arc_attribute_table): Likewise.
	* config/arm/arm.c (arm_attribute_table): Likewise.
	* config/avr/avr.c (avr_attribute_table): Likewise.
	* config/crx/crx.c (crx_attribute_table): Likewise.
	* config/m32r/m32r.c (m32r_attribute_table): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
	* config/mcore/mcore.c (mcore_attribute_table): Likewise.
	* config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
	* config/sh/sh.c (sh_attribute_table): Likewise.
	* config/sparc/sparc.c (sparc_attribute_table): Likewise.
	* config/spu/spu.c (spu_attribute_table): Likewise.
	* config/v850/v850.c (v850_attribute_table): Likewise.

	* config/alpha/alpha.c (vms_attribute_table): Make static.
	* config/bfin/bfin.c (bfin_attribute_table): Likewise.
	* config/h8300/h8300.c (h8300_attribute_table): Likewise.
	* config/mips/mips.c (mips_attribute_table): Likewise.

	* Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
	$(SYSTEM_H).
	(cc1-checksum.o): Likewise.

2009-06-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/vect.md (*movv2sf_internal): Handle big endian case.

2009-06-03  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
	insn if it is changing sp.  Use gen_add3_insn instead of
	conditionally gen_addsi3 and gen_adddi3.
	(offset_below_red_zone_p): New static inline function.
	(rs6000_emit_epilogue): Emit needed epilogue unwind info.
	Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
	* config/rs6000/ppc-asm.h: Include auto-host.h.
	(CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
	CFI_RESTORE): Define.
	* config/rs6000/crtresxgpr.asm: Add unwind info.
	* config/rs6000/crtresxfpr.asm: Likewise.
	* config/rs6000/crtresgpr.asm: Likewise.
	* config/rs6000/crtresfpr.asm: Likewise.
	* config/rs6000/crtsavgpr.asm: Likewise.
	* config/rs6000/crtsavfpr.asm: Likewise.

	* dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
	argument of DWARF2_FRAME_REG_OUT macros.

2009-06-03  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
	words or less (including TImode) in core registers.

2009-06-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40328
	* fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.

2009-06-03  Andrey Belevantsev  <abel@ispras.ru>

	* statistics.c (statistics_counter_event): Do not record event
	in pass	dump if its number == -1.
	(curr_statistics_hash): Add assert that we never get passes
	with static number == -1.

2009-06-03  Richard Guenther  <rguenther@suse.de>
	    Andrey Belevantsev  <abel@ispras.ru>

	* cfgexpand.c (discover_nonconstant_array_refs_r): Make only
	non-BLKmode arrays addressable.

2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
	* config/m68k/m68k.h: ... here.

2009-06-03  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40323
	* ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
	assignment.

2009-06-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
	consistently.

2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
	JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
	JUMP_TABLE_DATA_P where applicable.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh.md: Ditto.
	* config/sh/symbian.c: Ditto.

2009-06-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/driver-i386.c (describe_cache): Optimize
	concatenation of strings.  Use snprintf instead of sprintf.
	(host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
	target when not compiling with GCC.

2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c: Revert last change.
	(sh_expand_epilogue): Emit a blockage insn before the frame
	pointer adjustment unconditionally.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
	* config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
	* gcc.c (set_collect_gcc_options): Don't add -fwhole-program
	to COLLECT_GCC_OPTIONS.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* collect2.c (target_system_root): New variable.
	(main): Handle --sysroot=.
	(ignore_library): Strip the sysroot from the library path.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
	(collect2.o): Depend on collect2-aix.h.
	(collect2-aix.o): New rule.
	* collect2-aix.h: New file.
	* collect2-aix.c: Likewise.
	* collect2.c: Include collect2-aix.h.  Don't undefine
	OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
	Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
	Use TARGET_AIX_VERSION instead of _AIX51.
	* config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
	* config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* collect2.c (ignore_library): Avoid premature post-increment
	and null deference.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
	* config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
	!CROSS_DIRECTORY_STRUCTURE alternative and use it for
	CROSS_DIRECTORY_STRUCTURE too.
	(LINK_LIBG_SPEC): Likewise.
	(LIB_SPEC): Add %R to sysroot paths.
	* config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
	(CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
	* config/rs6000/aix51.h: As for aix43.h.
	* config/rs6000/aix52.h: Likewise.
	* config/rs6000/aix53.h: Likewise.
	* config/rs6000/aix61.h: Likewise.
	* config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
	to the beginning of sysroot paths.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
	INSN_LISTs that are out of the REG_NOTE range.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* loop-unroll.c (struct iv_to_split): Add pointer to next.
	(struct var_to_expand): Likewise.
	(struct opt_info): Add head and tail for linked lists of the above.
	(analyze_insn_to_expand_var): Initialize next.
	(analyze_iv_to_split_insn): Likewise.
	(analyze_insns_in_loop): Create linked lists.
	(allocate_basic_variable): Simplify for use without hash table.
	(insert_var_expansion_initialization): Likewise, make it type-safer.
	(combine_var_copies_in_loop_exit): Likewise.
	(apply_opt_in_copies): Walk lists rather than hash tables.
	(release_var_copies): Simplified and inlined by hand into...
	(free_opt_info): ... this function.

2009-06-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
	for field decls.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* cfgexpand.c (gimple_expand_cfg): Discard the source location
	only for builtins that are not overridden.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
	label string.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* df-core.c (df_ref_debug): Honor -fdump-noaddr.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (move_deaths): Compare LUIDs within the same BB only.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* common.opt (fdump-unnumbered-links): New.
	* doc/invoke.texi (-fdump-unnumbered-links): Document it.
	* print-rtl.c (flag_dump_unnumbered_links): New.
	(print_rtx): Test it.

2009-06-02  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
	push/pop multiple to 8-byte alignment.

2009-06-01  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (queued_cfa_restores): New static variable.
	(ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
	functions.
	(pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
	(ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
	Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
	Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
	note unconditionally.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_emit_restore_sse_regs_using_mov): Likewise.
	(ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
	it through to ix86_emit_restore_reg_using_pop.
	(ix86_emit_leave): Add RED_OFFSET argument.  Call
	ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
	instead of adding REG_CFA_OFFSET note unconditionally.
	(ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
	the above functions.  Call ix86_add_queued_cfa_restore_notes when
	needed.

	* dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
	force output of the label even for dwarf2out_do_cfi_asm.
	(add_fde_cfi): If -g2 and above and cfi might change CFA,
	force creation of CFI label and chain DW_CFA_set_loc jumping to it
	for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
	caller.
	(dwarf2out_stack_adjust, dwarf2out_frame_debug,
	dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
	dwarf2out_cfi_label callers.
	* tree.h (dwarf2out_cfi_label): Adjust prototype.
	* config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
	Adjust dwarf2out_cfi_label callers.
	* config/vax/vax.c (vax_output_function_prologue): Likewise.

	* config/i386/i386.h (struct machine_cfa_state,
	struct machine_function): Guard with ifndef USED_FOR_TARGET
	instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.

	PR other/40024
	* emutls.c (__emutls_get_address): Change arr->size to mean number
	of allocated arr->data entries instead of # of slots + 1.

	PR middle-end/40316
	* recog.c (peep2_reinit_state): New function.
	(peephole2_init_state): Use it at the end of a basic block and also
	when seeing a RTX_FRAME_RELATED_P insn.

2009-06-01  Steve Ellcey  <sje@cup.hp.com>

	* ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
	fixuns_truncrfdi2): New.
	(fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
	*nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
	*mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
	*maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
	*nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
	*recip_approx): Remove.
	(divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
	moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
	divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
	move to div.md.
	* div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
	setf_exp_rf): New.

2009-06-01  Ian Lance Taylor  <iant@google.com>

	* attribs.c (register_attribute): Use CONST_CAST.
	* collect2.c (main): Use CONST_CAST2.
	(scan_prog_file): Likewise.
	* gcc.c (process_command, main): Likewise.
	* toplev.c (toplev_main): Likewise.

	* c-typeck.c (handle_warn_cast_qual): New static function,
	partially broken out of build_c_cast.
	(build_c_cast): Call handle_warn_cast_qual.
	* doc/invoke.texi (Warning Options): Document new effect of
	-Wcast-qual.

2009-06-01  Aldy Hernandez  <aldyh@redhat.com>

	* diagnostic.c (diagnostic_build_prefix): Always print columns.
	(diagnostic_report_current_module): Print columns.
	* common.opt (flag_show_column): Enable by default.

2009-06-01  Luis Machado  <luisgpm@br.ibm.com>

	* alias.c (find_base_term): Check for NULL term before returning.

2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Revert due to PR40320:
	2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
	* calls.c (emit_library_call_value_1): Don't force_operand for move
	and push insns.

2009-06-01  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
	to be processed as a bitfield for constructor output purposes.
	* output.h (initializer_constant_valid_for_bitfield_p): Declare
	new function.
	* varasm.c (oc_local_state): New type, output_constructor
	local state to support communication with helpers.
	(oc_outer_state): New type, output_constructor outer state of
	relevance in recursive calls.
	(output_constructor_array_range): New output_constructor helper,
	extracted code for an array range element.
	(output_constructor_regular_field): New output_constructor helper,
	extracted code for an element that is not a bitfield.
	(output_constructor_bitfield): New output_constructor helper,
	extracted code for a bitfield element.  Accept an OUTER state
	argument for recursive processing.  Recurse on record or array
	CONSTRUCTOR values, possibly past noop conversions.
	(initializer_constant_valid_for_bitfield_p): New predicate.  Whether
	VALUE is a valid constant-valued expression for use in a static
	bit-field initializer.
	(output_constructor): Rework to use helpers.  Accept and honor an
	OUTER state argument for recursive calls.  Return total size.  Be
	prepared for nested constructors initializing bitfields.
	(output_constant): Feed OUTER in calls to output_constructor.

2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* calls.c (emit_library_call_value_1): Don't force_operand for move
	and push insns.

2009-06-01  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (IA-64 Options): Fix typo.

2009-06-01  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39129
	* tree-vect-loop-manip.c (conservative_cost_threshold): Change the
	printed message.
	(vect_do_peeling_for_loop_bound): Use
	LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
	(vect_loop_versioning): Likewise.
	(vect_create_cond_for_alias_checks): Fix indentation.
	* tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
	macros.
	(LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
	(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
	* tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
	"control flow in loop".
	(vect_estimate_min_profitable_iters): Use
	LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
	(vect_create_data_ref_ptr): Don't mention array dimension in printing.
	* tree-vect-stmts.c (vectorizable_store): Replace the check that the
	statement belongs to a group of strided accesses with the exact code
	check.
	(vectorizable_load): Likewise.
	* tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
	(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.

2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/freebsd-stdint.h: New file.
	* config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
	Add freebsd-stdint.h to tm_file.

2009-06-01  Richard Earnshaw  <rearnsha@arm.com>

	* arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
	(thumb2_extendhidi2): Likewise.

2009-05-31  Ian Lance Taylor  <iant@google.com>

	* regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.

2009-05-31  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
	(ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
	(ipa-reference.o): Depend upon gt-ipa-reference.h.

2009-05-31  Jason Merrill  <jason@redhat.com>

	* tree-pretty-print.c (print_call_name): Take the callee, not the
	call itself.  Make non-static.  Use dump_function_name for functions.
	(dump_generic_node): Adjust.
	* diagnostic.h: Declare print_call_name.
	* gimple-pretty-print.c (dump_gimple_call): Use it.

2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (ashldi3_std): New define_expand.
	(ashldi3): Use it.

2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/40313
	* config/sh/sh.c: Include debug.h.
	(sh_expand_epilogue): Emit a blockage insn before the frame
	pointer adjustment also when dwarf2out_do_frame returns true.

2009-05-31  Richard Earnshaw  <rearnsha@arm.com>

	* arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
	(thumb2_extendqidi2): New pattern.

2009-05-31  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
	mark phis for renaming.
	* tree-vectorizer.c (vect_memsyms_to_rename): Remove.
	(vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
	Call mark_sym_for_renaming.
	* tree-vectorizer.h (vect_memsyms_to_rename): Remove.
	* tree-vect-loop.c (vect_transform_loop): Remove
	vect_memsyms_to_rename initialization and a call to
	mark_set_for_renaming.

2009-05-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40304
	* config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
	frame related even if !set_cfa && style < 0.

2009-05-30  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-tls.c: New file.
	* config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
	* gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
	defining _WIN32 but not __CYGWIN__.

2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Add MPC support.

	* config.in, configure: Regenerate.

2009-05-29  Richard Henderson  <rth@redhat.com>

	* cfgcleanup.c (try_crossjump_to_edge): Only skip past
	NOTE_INSN_BASIC_BLOCK.
	* cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
	Duplicate NOTE_INSN_EPILOGUE_BEG notes.
	* cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
	to be deleted.
	* dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
	add in_use field.
	(add_cfi): Disable check redefining cfa away from drap.
	(lookup_cfa_1): Add remember argument; handle remember/restore.
	(lookup_cfa): Pass remember argument.
	(cfa_remember): New.
	(compute_barrier_args_size_1): Remove sibcall check.
	(dwarf2out_frame_debug_def_cfa): New.
	(dwarf2out_frame_debug_adjust_cfa): New.
	(dwarf2out_frame_debug_cfa_offset): New.
	(dwarf2out_frame_debug_cfa_register): New.
	(dwarf2out_frame_debug_cfa_restore): New.
	(dwarf2out_frame_debug): Handle REG_CFA_* notes.
	(dwarf2out_begin_epilogue): New.
	(dwarf2out_frame_debug_restore_state): New.
	(dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
	DW_CFA_restore_state.
	(output_cfi_directive): Likewise.
	(convert_cfa_to_fb_loc_list): Likewise.
	(dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
	* dwarf2out.h: Update.
	* emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
	(copy_insn_1): Early out for null.
	* final.c (final_scan_insn): Call dwarf2out_begin_epilogue
	and dwarf2out_frame_debug_restore_state.
	* function.c (prologue, epilogue, sibcall_epilogue): Remove.
	(prologue_insn_hash, epilogue_insn_hash): New.
	(free_after_compilation): Adjust freeing accordingly.
	(record_insns): Create hash table if needed; push insns into
	hash instead of array.
	(maybe_copy_epilogue_insn): New.
	(contains): Search hash table instead of array.
	(sibcall_epilogue_contains): Remove.
	(thread_prologue_and_epilogue_insns): Split eh_return insns
	and mark them as epilogues.
	(reposition_prologue_and_epilogue_notes): Rewrite epilogue
	scanning in terms of basic blocks.
	* insn-notes.def (CFA_RESTORE_STATE): New.
	* jump.c (returnjump_p_1): Accept EH_RETURN.
	(eh_returnjump_p_1, eh_returnjump_p): New.
	* reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
	CFA_REGISTER, CFA_RESTORE): New.
	* rtl.def (EH_RETURN): New.
	* rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.

	* config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
	(eh_return_internal): Use eh_return rtx; split w/ epilogue.

	* config/i386/i386.c (gen_push): Update cfa state.
	(pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
	add a CFA_ADJUST_CFA note.
	(ix86_dwarf_handle_frame_unspec): Remove.
	(ix86_expand_prologue): Update cfa state.
	(ix86_emit_restore_reg_using_pop): New.
	(ix86_emit_restore_regs_using_pop): New.
	(ix86_emit_leave): New.
	(ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
	(ix86_expand_epilogue): Add notes for unwinding the epilogue.
	* config/i386/i386.h (struct machine_cfa_state): New.
	(ix86_cfa_state): New.
	* config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
	(eh_return_internal): Merge from eh_return_<mode>,
	use eh_return rtx, split w/ epilogue.

2009-05-29  Ian Lance Taylor  <iant@google.com>

	* builtins.c (validate_gimple_arglist): Don't use va_arg with
	enum type.
	* calls.c (emit_library_call_value_1): Likewise.

	* c-typeck.c (c_build_va_arg): New function.
	* c-tree.h (c_build_va_arg): Declare.
	* c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
	instead of build_va_arg.

2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
	(force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
	(ptr_difference_cost): Use affine combinations to compute it.
	(difference_cost): Likewise.
	(get_computation_cost_at): Compute more accurate cost for addresses
	if the ratio is a multiplier allowed in addresses.
	For non-addresses, consider that an additional offset or symbol is
	added only once.

2009-05-29  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_decompose_address): Avoid useless
	0 displacement.  Add 0 displacement if base is %[er]bp or %r13.

	* config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
	TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
	(prefix_rex): For UNIT_MMX don't imply the prefix by default
	if MODE_DI.
	(prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
	to 1 for TYPE_SSE{IADD1,CVT1}.
	(prefix_vex_imm8): Removed.
	(length_vex): Only pass 1 as second argument to
	ix86_attr_length_vex_default if prefix_extra is 0.
	(modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
	(length): For prefix vex computation use length_immediate
	attribute instead of prefix_vex_imm8.
	(cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
	addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
	*andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
	*xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
	(extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
	*extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
	a space in between the operands.
	(*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
	if one operand is 0xff and the other one si, di, bp or sp.
	(*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
	other one si, di, bp or sp.
	(*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
	(*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
	type and mode attributes.
	(*bsr, *bsr_rex64, *bsrhi): Add type attribute.
	(*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
	prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
	(*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
	prefix_data16 attribute iff MODE_DF.
	(*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
	(fix_trunc<mode>di_sse): Set prefix_rex attribute.
	(*adddi_4_rex64, *addsi_4): Use const128_operand instead of
	constm128_operand in length_immediate computation.
	(*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
	(anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
	(*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
	length_immediate attribute to 1.
	(x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
	(*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
	for certain alternatives.
	(*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
	prefix_data16 attribute if MODE_V1DF.
	(*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
	length_immediate to 1.
	(set_got_rex64, set_rip_rex64): Remove length attribute, set
	length_address to 4, set mode attribute to MODE_DI.
	(set_got_offset_rex64): Likewise.  Set length_immediate to 0.
	(fxam<mode>2_i387): Set length attribute to 4.
	(*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
	*prefetch_3dnow_rex): Override length_address attribute.
	(sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
	attributes.
	* config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
	(constm128_operand): Removed.
	* config/i386/i386.c (memory_address_length): For
	disp && !index && !base in 64-bit mode account for SIB byte if
	print_operand_address can't optimize disp32 into disp32(%rip)
	and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
	for fs: or gs: segment.
	(ix86_attr_length_immediate_default): When checking if shortform
	is possible, truncate immediate to the length of the non-shortened
	immediate.
	(ix86_attr_length_address_default): Ignore MEM_P operands
	with X constraint.
	(ix86_attr_length_vex_default): Only check for DImode on
	GENERAL_REG_P operands.
	* config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
	prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
	(sse_cvttps2pi): Clear prefix_rep attribute.
	(sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
	attribute.
	(*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
	(*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
	*avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
	iff operand 2 is const_int_operand.
	(*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
	sse2_shufpd_<mode>): Set length_immediate attribute to 1.
	(sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
	instead of vex.
	(sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
	prefix_data16.
	(sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
	prefix_data16 attribute for movlpd and movhpd instructions.
	(sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
	length_immediate for shufpd instruction.
	(sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
	(avx_cmpp<avxmodesuffixf2c><mode>3,
	avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
	<sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
	avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
	*vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
	(*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
	(sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
	(sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
	prefix_data16 attribute for the first alternative to 1.
	(*avx_loadlps): Override length_immediate for the first alternative.
	(*vec_concatv2sf_avx): Override length_immediate and prefix_extra
	attributes for second alternative.
	(*vec_concatv2sf_sse4_1): Override length_immediate and
	prefix_data16 attributes for second alternative.
	(*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
	vec_extract_hi_<mode>, vec_extract_lo_v16hi,
	vec_extract_hi_v16hi, vec_extract_lo_v32qi,
	vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
	(*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
	prefix_data16 and length_immediate to 1.
	(*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
	to 1.
	(*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
	prefix_extra attribute for variants that don't have 0f prefix alone.
	(*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
	(*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
	*sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
	*sse4_1_pextrd): Set length_immediate to 1.
	(*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
	(*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
	to 1.
	(*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
	*vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
	length_immediate to 1 for second alternative.
	(*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
	prefix_extra and length_immediate attributes for the first
	alternative.
	(vec_concatv2si_sse4_1): Override length_immediate to 1 for the
	first alternative.
	(*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
	to 1 for the first and third alternative.
	(*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
	alternative.
	(*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
	attribute.
	(*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
	attribute to 0.
	(*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
	*avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
	*avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
	*avx_psign<mode>3): Set prefix_extra attribute to 1.
	(ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
	ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
	ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
	ssse3_psign<mode>3): Override prefix_rex attribute.
	(*avx_palignrti): Override prefix_extra and length_immediate to 1.
	(ssse3_palignrti): Override length_immediate to 1.
	(ssse3_palignrdi): Override length_immediate to 1, override
	prefix_rex attribute.
	(abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
	(sse4a_extrqi): Override length_immediate to 2.
	(sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
	(sse4a_insertq): Override prefix_data16 to 0.
	(avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
	avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
	avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
	*avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
	avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
	and length_immediate to 1.
	(sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
	sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
	sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
	sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
	and length_immediate to 1.
	(sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
	(sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
	(*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
	avx_ptest256): Override prefix_extra to 1.
	(sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
	Override prefix_data16 and length_immediate to 1.
	(sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
	sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
	sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
	sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
	prefix_data16 to 0 and prefix_extra to 2.
	(sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
	(sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
	attribute.
	(*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
	sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
	Override prefix_data16 and prefix_rep to 0, length_immediate to 1
	and prefix_extra to 2.
	(sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
	prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
	(*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
	avx_vpermilvar<mode>3,
	avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
	avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
	avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
	avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
	Override prefix_extra to 1.
	(aeskeygenassist, pclmulqdq): Override length_immediate to 1.
	(*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
	vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
	vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
	prefix_extra and length_immediate to 1.
	(*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
	modrm to 0.
	(*vec_concat<mode>_avx): Override prefix_extra and length_immediate
	to 1 for the first alternative.
	* config/i386/mmx.md (*mov<mode>_internal_rex64): Override
	prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
	cases.
	(*mov<mode>_internal_avx, *movv2sf_internal_rex64,
	*movv2sf_internal_avx, *movv2sf_internal): Override
	prefix_rep attribute for certain alternatives.
	(*mov<mode>_internal): Override prefix_rep or prefix_data16
	attributes for certain alternatives.
	(*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
	attributes for certain alternatives.
	(*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
	*mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
	mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
	mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
	*mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
	mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
	mmx_pswapdv2si2): Set prefix_extra attribute to 1.
	(mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
	length_immediate to 1 if operand 2 is const_int_operand.
	(*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
	*vec_extractv2si_1): Set length_immediate attribute to 1.
	(*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
	using old 3DNOW insn rather than SSE/3DNOW_A.
	(mmx_emms, mmx_femms): Clear modrm attribute.

2009-05-29  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c:  New implementation of SRA.

	* params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
	(PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
	(PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
	* params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
	(SRA_MAX_STRUCTURE_COUNT): Removed.
	(SRA_FIELD_STRUCTURE_RATIO): Removed.
	* doc/invoke.texi (sra-max-structure-size): Removed.
	(sra-field-structure-ratio): Removed.

2009-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40291
	* builtins.c (expand_builtin_memcmp): Convert len to sizetype
	before expansion.

2009-05-29  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/40101
	* sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
	seqno.	Adjust comment.
	* sel-sched.c (find_seqno_for_bookkeeping): Assert that when
	inserting bookkeeping before a jump, the jump is not scheduled.
	When no positive seqno found, provide a value.  Add comment.

2009-05-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
	short-cutting on the first component.

2009-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/39958
	* omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
	for trees other than decls/types.

2009-05-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (get_expr_operands): Do not handle
	INDIRECT_REFs in the handled-component case.  Remove
	unused get_ref_base_and_extent case.
	* tree-dfa.c (get_ref_base_and_extent): Avoid calling
	tree_low_cst and host_integerp where possible.
	* tree-ssa-structalias.c (equiv_class_label_eq): Check hash
	codes for equivalence.
	* dce.c (find_call_stack_args): Avoid redundant bitmap queries.

2009-05-29  David Billinghurst <billingd@gcc.gnu.org>

	* config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
	to tmake_file for i[34567]86-*-cygwin*.

2009-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/40017
	* config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
	(altivec_categorize_keyword, init_vector_keywords,
	rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
	similar to bool.

2009-05-29  Kai Tietz  <kai.tietz@onevision.com>

	* tree.c (handle_dll_attribute): Check if node is
	of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.

2009-05-29  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
	component.
	(thumb2_zero_extendqidi2): Likewise.

2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
	instead of gen_movrt.
	* config/sh/sh.md (movrt): Remove.

2009-05-28  Steve Ellcey  <sje@cup.hp.com>

	* doc/invoke.texi (IA-64 Options):
	Add -msdata, -mfused-madd, -mno-inline-float-divide,
	-mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
	-msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
	-msched-prefer-non-control-spec-insns,
	-msched-stop-bits-after-every-cycle,
	-msched-count-spec-in-critical-path,
	-msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
	-msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
	Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
	and -msched-spec-verbose.

2009-05-28  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
	* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
	error if used.
	* config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.

2009-05-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ao_ref_init): New function.
	(ao_ref_base): Likewise.
	(ao_ref_base_alias_set): Likewise.
	(ao_ref_alias_set): Likewise.
	(refs_may_alias_p_1): Change signature.
	(refs_may_alias_p): Adjust.
	(refs_anti_dependent_p): Likewise.
	(refs_output_dependent_p): Likewise.
	(call_may_clobber_ref_p_1): Change signature.
	(call_may_clobber_ref_p): Adjust.
	(stmt_may_clobber_ref_p_1): New function split out from ...
	(stmt_may_clobber_ref_p): ... here.
	(maybe_skip_until): Adjust signature.
	(get_continuation_for_phi): Likewise.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-alias.h (struct ao_ref_s): New structure type.
	(ao_ref_init): Declare.
	(ao_ref_base): Likewise.
	(ao_ref_alias_set): Likewise.
	(stmt_may_clobber_ref_p_1): Likewise.
	(walk_non_aliased_vuses): Adjust.
	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
	(get_ref_from_reference_ops): remove.
	(vn_reference_lookup_2): Adjust signature.
	(vn_reference_lookup_3): Do not re-build trees.  Handle unions.
	(vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
	(vn_reference_lookup): Adjust.
	(vn_reference_insert): Likewise.
	(vn_reference_insert_pieces): Adjust signature.
	(visit_reference_op_call): Adjust.
	* tree-ssa-pre.c (get_expr_type): Simplify.
	(phi_translate_1): Adjust.
	(compute_avail): Likewise.
	(translate_vuse_through_block): Do not re-build trees.
	(value_dies_in_block_x): Likewise.
	* tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
	fields.
	(vn_reference_lookup_pieces): Adjust declaration.
	(vn_reference_insert_pieces): Likewise.

2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>

	* tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
	with checking disabled.

2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/37216

	* configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
	macro definition for support of three-operand format aligned
	.comm directive in assembler on cygwin/pe/mingw target OS.
	* configure:  Regenerate.
	* config.h:  Regenerate.

	* config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
	aligned form of .comm directive if -mpe-aligned-commons is in effect.
	* config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.

	* doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
	* doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.

2009-05-28  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/40254
	* tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
	in analysis of basic blocks.

2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>

	PR middle-end/33699
	* target.h (struct gcc_target): Fix indentation.  Add const_anchor.
	* target-def.h (TARGET_CONST_ANCHOR): New macro.
	(TARGET_INITIALIZER): Use it.
	* cse.c (CHEAPER): Move it up to the other macros.
	(insert): Rename this ...
	(insert_with_costs): ... to this.  Add cost parameters.  Update
	function comment.
	(insert): New function.  Call insert_with_costs.
	(compute_const_anchors, insert_const_anchor, insert_const_anchors,
	find_reg_offset_for_const, try_const_anchors): New functions.
	(cse_insn): Call try_const_anchors.  Adjust cost of src_related
	when using a const-anchor.  Call insert_const_anchors.
	* config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
	* doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.

2009-05-28  Alexandre Oliva  <aoliva@redhat.com>

	* tree-inline.c (remap_decls): Enable nonlocalized variables
	when not optimizing.

2009-05-28  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
	Simplify other tests involving optimize.

2009-05-27  Tom Tromey  <tromey@redhat.com>

	* unwind-dw2.c (_Unwind_DebugHook): New function.
	(uw_install_context): Call _Unwind_DebugHook.

2009-05-27  Tom Tromey  <tromey@redhat.com>

	* system.h (CONST_CAST2): Use C++ const_cast when compiled as C++

2009-05-27  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (LINKER, LINKER_FLAGS): Define.
	(LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
	(ALL_LINKERFLAGS): Define.
	(xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
	(cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
	(collect2$(exeext), mips-tfile, mips-tdump): Likewise.
	(gcov$(exeext), gcov-dump$(exeext)): Likewise.
	(build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
	$(LINKER_FOR_BUILD).
	(build/gcov-iov$(build_exeext)): Likewise.

2009-05-27  Julian Brown  <julian@codesourcery.com>

	* gcse.c (target.h): Include.
	(can_assign_to_reg_without_clobbers_p): Check that the target allows
	copy of argument to a pseudo register.

2009-05-27  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-live.c (dump_scope_block): Document arguments.
	(dump_scope_blocks): Document.
	(debug_scope_blocks): New.
	* tree-flow.h (debug_scope_blocks): Declare.

2009-05-21  Denis Chertykov  <denisc@overta.ru>

	* doc/contrib.texi (Contributors): Add myself to the list.

2009-05-27  Olivier Hainque  <hainque@adacore.com>

	* expr.c (target_align): New function.  Alignment the TARGET of an
	assignment may be assume to have.
	(highest_pow2_factor_for_target): Use it instead of relying on
	immediate tree attributes of TARGET, not necessarily honored when
	intermediate bitfields are involved.

2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/40266
	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	AVX, SSE4, AES, PCLMUL and POPCNT.

2009-05-27  Diego Novillo  <dnovillo@google.com>

	* tree-pretty-print.c (dump_location): New.
	(dump_generic_node): Call it.
	Factor code to handle BLOCK nodes ...
	(dump_block_node): ... here.

2009-05-27  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
	with it.
	* doc/plugins.texi: Document that gcc-plugin.h must be the first to be
	included.
	* gcc-plugin.h: Include config.h and system.h.
	(IN_GCC): Define if not defined.

2009-05-27  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/40249
	* Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
	with -fno-inline.

2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
	applicable.
	* config/m32r/m32r.h: Ditto.
	* config/m32r/m32r.md: Ditto.
	* config/m32r/predicates.md: Ditto.

2009-05-27  Alexandre Oliva  <aoliva@redhat.com>

	* cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.

2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi
	(Loading plugins): typo.
	(Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
	(Interacting with the GCC Garbage Collector): Added new section.
	(Giving information about a plugin): Added new section for
	PLUGIN_INFO.
	* ggc.h (ggc_register_root_tab): Added declaration.
	* gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
	(PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
	(register_callback): Improved comment in declaration.
	* ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
	(extra_root_vec) Added static variable for dynamic roots registration.
	(ggc_register_root_tab) Added new routine.
	(ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
	PLUGIN_GGC_MARKING event.
	* ggc-zone.c: Include plugin.h.
	(ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
	* ggc-page.c: Include plugin.h.
	(ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
	* plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
	(register_callback): check lack of callbacks for
	pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
	PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
	(invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
	PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
	* Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
	dependency on plugin.h.
	(plugin.o): Added dependency on ggc.h...

2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40248
	Revert
	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

	* expr.c (expand_expr_real_1): Expand the operand of a
	VIEW_CONVERT_EXPR in its natural mode.

2009-05-26  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (COMPILER, COMPILER_FLAGS): Define.
	(COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
	(ALL_COMPILERFLAGS): Define.
	(.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
	(cc1-dummy$(exeext), cc1$(exeext)): Likewise.
	(collect2$(exeext), collect2.o): Likewise.
	(c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
	(gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
	($(out_object_file), mips-tfile, mips-tdump): Likewise.
	(libbackend.o, intl.o, cppdefault.o): Likewise.
	(gcov$(exeext), gcov-dump$(exeext)): Likewise.
	(build/%.o): Use $(COMPILER_FOR_BUILD).
	(build/gen%$(build_exeext)): Likewise.
	(build/gcov-iov$(build_exeext)): LIkewise.
	* config/t-darwin (darwin.o): Use $(COMPILER).
	(darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
	* config/t-sol2 (sol2-c.o): Likewise.
	(sol2.o): Likewise.
	* config/t-vxworks (vxworks.o): Likewise.
	* config/x-darwin (host-darwin.o): Likewise.
	* config/x-hpux (host-hpux.o): Likewise.
	* config/x-linux (host-linux.o): Likewise.
	* config/x-solaris (host-solaris.o): Likewise.
	* config/alpha/x-alpha (driver-alpha.o): Likewise.
	* config/arm/t-arm (arm-c.o): Likewise.
	* config/arm/t-pe (pe.o): Likewise.
	* config/arm/t-wince-pe (pe.o): Likewise.
	* config/i386/t-cygming (winnt.o): Likewise.
	(winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
	* config/i386/t-cygwin (cygwin1.o): Likewise.
	(cygwin2.o): Likewise.
	* config/i386/t-i386 (i386-c.o): Likewise.
	* config/i386/t-interix (winnt.o): Likewise.
	* config/i386/t-netware (netware.o): Likewise.
	* config/i386/t-nwld (nwld.o): Likewise.
	* config/i386/x-darwin (host-i386-darwin.o): Likewise.
	* config/i386/x-i386 (driver-i386.o): Likewise.
	* config/i386/x-cygwin (host-cygwin.o): Likewise.
	* config/i386/x-mingw32 (host-mingw32.o): Likewise.
	* config/ia64/t-ia64 (ia64-c.o): Likewise.
	* config/m32c/t-m32c (m32c-pragma.o): Likewise.
	* config/mips/x-native (driver-native.o): Likewise.
	* config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
	* config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
	* config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
	* config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
	* config/score/t-score-elf (score7.o): Likewise.
	(score3.o): Likewise.
	* config/sh/t-sh (sh-c.o): Likewise.
	* config/sh/t-symbian (sh-c.o): Likewise.
	(symbian.o): Likewise.
	* config/spu/t-spu-elf (spu-c.o): Likewise.
	* config/v850/t-v850 (v850-c.o): Likewise.
	* config/v850/t-v850e (v850-c.o): Likewise.

2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40122
	* tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
	VECTOR_CSTs if possible.
	(fold_gimple_assign): Likewise.

2009-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40252
	* fold-const.c (fold_binary): Use the correct types for building
	rotates.

2009-05-26  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
	redundant calls to merge_alias_info.
	(bump_vector_ptr): Likewise.
	* tree-ssa-copy.c (merge_alias_info): Remove.
	(replace_exp_1): Remove call to merge_alias_info.
	(propagate_tree_value): Likewise.
	(fini_copy_prop): Propagate points-to info.
	* tree-flow.h (merge_alias_info): Remove.

2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>

	* config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.

2009-05-25  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	(MAX_TIME): New constant.
	(overall_insns): Remove.
	(leaf_node_p): New.
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes
	and times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor
	PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.

2009-05-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36327
	* tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
	callback for reference translation or lookup at the point of may-defs.
	* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
	* tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
	for union COMPONENT_REFs.
	(vn_reference_lookup_3): New callback.  Lookup from memset
	and CONSTRUCTOR assignment, translate through struct copies.
	(vn_reference_lookup_pieces): Make sure to not free the
	passed operands array.  Adjust walk_non_aliased_vuses call.
	(vn_reference_lookup): Adjust walk_non_aliased_vuses call,
	make sure we do not leak memory.

2009-05-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.h (dump_points_to_solution): Declare.
	* tree-inline.c (expand_call_inline): Reset the escaped and
	callused solutions.
	* tree-ssa-structalias.c (pass_build_ealias): New.
	* tree-pass.h (pass_build_ealias): Declare.
	* passes.c (init_optimization_passes): Add PTA during
	early optimizations.
	* tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
	and CALLUSED solutions.
	(dump_points_to_solution): New function, split out from ...
	(dump_points_to_info_for): ... here.
	* tree-parloops.c (parallelize_loops): Reset the escaped and
	callused solutions.

2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR bootstrap/40027
	* config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
	* config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.

2009-05-25  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/40238
	* tree-vect-stmts.c (vect_init_vector): Insert initialization
	statements after basic block's labels.
	* tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
	to free the allocated memory.

2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	* gcc/config/sh/sh.c (sh_set_return_address): Mark store of
	return address with a USE.

2009-05-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40233
	* tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
	array type from the main variant of the inner type.

2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax-protos.h (legitimate_constant_address_p): Change
	definition to bool (from int) to un-break build.
	(legitimate_constant_p, vax_mode_dependent_address_p): Likewise.

2009-05-24  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
	discard_stmt_changes): Delete.
	* tree-ssa-operands.c (scb_stack): Delete.
	(init_ssa_operands): Do not initialize it.
	(fini_ssa_operands): Do not free it.
	(push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.

	* tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
	update_stmt, remove the others.  Fix comments.
	* tree-dfa.c (optimize_stack_restore): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
	* tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
	Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	(dom_opt_finalize_block): Likewise, adjusting access to
	stmts_to_rescan.
	(optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
	(stmts_to_rescan): Change item type to gimple.
	(tree_ssa_dominator_optimize): Change type of stmts_to_rescan.

2009-05-24  Ira Rosen  <irar@il.ibm.com>

	* doc/passes.texi (Tree-SSA passes): Document SLP pass.
	* tree-pass.h (pass_slp_vectorize): New pass.
	* params.h (SLP_MAX_INSNS_IN_BB): Define.
	* timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
	* tree-vectorizer.c (timevar.h): Include.
	(user_vect_verbosity_level): Declare.
	(vect_location): Fix comment.
	(vect_set_verbosity_level): Update user_vect_verbosity_level
	instead of vect_verbosity_level.
	(vect_set_dump_settings): Add an argument. Ignore user defined
	verbosity if dump flags require higher level of verbosity. Print to
	stderr only for loop vectorization.
	(vectorize_loops): Update call to vect_set_dump_settings.
	(execute_vect_slp): New function.
	(gate_vect_slp): Likewise.
	(struct gimple_opt_pass pass_slp_vectorize): New.
	* tree-vectorizer.h (struct _bb_vec_info): Define along macros to
	access its members.
	(vec_info_for_bb): New function.
	(struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
	(VECTORIZATION_ENABLED): New macro.
	(SLP_ENABLED, SLP_DISABLED): Likewise.
	(vect_is_simple_use): Add bb_vec_info argument.
	(new_stmt_vec_info, vect_analyze_data_ref_dependences,
	vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
	vect_analyze_data_ref_accesses, vect_analyze_data_refs,
	vect_schedule_slp, vect_analyze_slp): Likewise.
	(vect_analyze_stmt): Add slp_tree argument.
	(find_bb_location): Declare.
	(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
	(vect_analyze_loop_operations, vect_analyze_loop,
	get_initial_def_for_induction, vect_create_epilog_for_reduction,
	vect_finalize_reduction, vectorizable_reduction,
	vectorizable_live_operation, vect_transform_loop): Likewise.
	* tree-data-ref.c (dr_analyze_innermost): Update comment,
	skip evolution analysis if analyzing a basic block.
	(dr_analyze_indices): Likewise.
	(initialize_data_dependence_relation): Skip the test whether the
	object is invariant for basic blocks.
	(compute_all_dependences): Skip dependence analysis for data
	references in basic blocks.
	(find_data_references_in_stmt): Don't fail in case of invariant
	access in basic block.
	(find_data_references_in_bb): New function.
	(find_data_references_in_loop): Move code to
	find_data_references_in_bb and add a call to it.
	(compute_data_dependences_for_bb): New function.
	* tree-data-ref.h (compute_data_dependences_for_bb): Declare.
	* tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
	that STEP is 0.
	(vect_analyze_data_ref_dependence): Check for interleaving in case of
	unknown dependence in basic block and fail in case of dependence in
	basic block.
	(vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_compute_data_ref_alignment): Check if it is loop vectorization
	before calling nested_in_vect_loop_p.
	(vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_verify_datarefs_alignment): Likewise.
	(vect_enhance_data_refs_alignment): Adjust function calls.
	(vect_analyze_data_refs_alignment): Likewise.
	(vect_analyze_group_access): Fix printing. Skip different checks if
	DR_STEP is 0. Keep strided stores either in loop or basic block
	vectorization data structure. Fix indentation.
	(vect_analyze_data_ref_access): Fix comments, allow zero step in
	basic blocks.
	(vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
	dependence instances from either loop or basic block vectorization
	info.
	(vect_analyze_data_refs): Update comment. Call
	compute_data_dependences_for_bb to analyze basic blocks.
	(vect_create_addr_base_for_vector_ref): Check for outer loop only in
	case of loop vectorization. In case of basic block vectorization use
	data-ref itself as a base.
	(vect_create_data_ref_ptr): In case of basic block vectorization:
	don't advance the pointer, add new statements before the current
	statement.  Adjust function calls.
	(vect_supportable_dr_alignment): Support only aligned accesses in
	basic block vectorization.
	* common.opt (ftree-slp-vectorize): New flag.
	* tree-vect-patterns.c (widened_name_p): Adjust function calls.
	(vect_pattern_recog_1): Likewise.
	* tree-vect-stmts.c (process_use): Likewise.
	(vect_init_vector): Add new statements in the beginning of the basic
	block in case of basic block SLP.
	(vect_get_vec_def_for_operand): Adjust function calls.
	(vect_finish_stmt_generation): Likewise.
	(vectorizable_call): Add assert that it is loop vectorization, adjust
	function calls.
	(vectorizable_conversion, vectorizable_assignment): Likewise.
	(vectorizable_operation): In case of basic block SLP, take
	vectorization factor from statement's type and skip the relevance
	check. Adjust function calls.
	(vectorizable_type_demotion): Add assert that it is loop
	vectorization, adjust function calls.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store): Check for outer loop only in case of loop
	vectorization. Adjust function calls. For basic blocks, skip the
	relevance check and don't advance pointers.
	(vectorizable_load): Likewise.
	(vectorizable_condition): Add assert that it is loop vectorization,
	adjust function calls.
	(vect_analyze_stmt): Add argument. In case of basic block SLP, check
	that it is not reduction, get vector type, call only supported
	functions, skip loop specific parts.
	(vect_transform_stmt): Check for outer loop only in case of loop
	vectorization.
	(new_stmt_vec_info): Add new argument and initialize bb_vinfo.
	(vect_is_simple_use): Fix comment, add new argument, fix conditions
	for external definition.
	* passes.c (pass_slp_vectorize): New pass.
	* tree-vect-slp.c (find_bb_location): New function.
	(vect_get_and_check_slp_defs): Add argument, adjust function calls,
	check for patterns only in loops.
	(vect_build_slp_tree): Add argument, adjust function calls, fail in
	case of multiple types in basic block SLP.
	(vect_mark_slp_stmts_relevant): New function.
	(vect_supported_load_permutation_p): Fix comment.
	(vect_analyze_slp_instance): Add argument. In case of basic block
	SLP, take vectorization factor from statement's type, check that
	unrolling factor is 1. Adjust function call. Save SLP instance in
	either loop or basic block vectorization structure. Return FALSE,
	if SLP failed.
	(vect_analyze_slp): Add argument. Get strided stores groups from
	either loop or basic block vectorization structure. Return FALSE
	if basic block SLP failed.
	(new_bb_vec_info): New function.
	(destroy_bb_vec_info, vect_slp_analyze_node_operations,
	vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
	(vect_schedule_slp): Add argument. Get SLP instances from either
	loop or basic block vectorization structure. Set vectorization factor
	to be 1 for basic block SLP.
	(vect_slp_transform_bb): New function.
	* params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.

2009-05-23  Mark Mitchell  <mark@codesourcery.com>

	* final.c (shorten_branches): Do not align labels for jump tables.
	(final_scan_insn): Use JUMP_TABLE_DATA_P.

2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
	Remove outdated reference to flow.c and fix nits.
	* doc/gccint.texi: Tweak RTL description.
	* doc/rtl.texi: Likewise.

2009-05-23  Denis Chertykov  <chertykov@gmail.com>

	* config/avr/avr.c: Change my email address.
	* config/avr/avr.h: Likewise.
	* config/avr/avr.md: Likewise.
	* config/avr/avr-protos.h: Likewise.
	* config/avr/libgcc.S: Likewise.

2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>

	* config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
	(spu_split_load, spu_split_store): Change return type to int.
	(spu_split_convert): Declare.
	* config/spu/predicates.md (spu_mem_operand): Remove.
	(spu_mov_operand): Update.
	(spu_dest_operand, shiftrt_operator, extend_operator): Define.
	* config/spu/spu.c (regno_aligned_for_load): Remove.
	(reg_aligned_for_addr, spu_expand_load): Define.
	(spu_expand_extv): Reimplement and handle MEM.
	(spu_expand_insv): Handle MEM.
	(spu_sched_reorder): Handle insn's with length 0.
	(spu_legitimate_address_p): Reimplement.
	(store_with_one_insn_p): Return TRUE for any mode with size
	larger than 16 bytes.
	(address_needs_split): Define.
	(spu_expand_mov): Call spu_split_load and spu_split_store for MEM
	operands.
	(spu_convert_move): Define.
	(spu_split_load): Use spu_expand_load and change all MEM's to TImode.
	(spu_split_store): Change all MEM's to TImode.
	(spu_init_expanders): Preallocate registers that correspond to
	LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
	mark_reg_pointer.
	(spu_split_convert): Define.
	* config/spu/spu.md (QHSI, QHSDI): New mode iterators.
	(_move<mode>, _movdi, _movti): Update predicate and condition.
	(load, store): Change to define_split.
	(extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
	extend<mode>ti2.
	(zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
	(lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
	define_insn_and_split of lshr<mode>3.
	(shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
	(<v>ashr<mode>3_imm): Define.
	(extv, extzv, insv): Allow MEM operands.
	(trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
	shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
	sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
	(_spu_convert2): Change to define_insn_and_split and remove the
	corresponding define_peephole2.
	(stack_protect_set, stack_protect_test, stack_protect_test_si):
	Change predicates to memory_operand.

2009-05-22  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/thumb2.md: Add 16-bit multiply instructions.

2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR tree-optimization/40219
	* tree.c (iterative_hash_expr): Make sure the builtin function is
	a normal builtin function and not a front end or back end builtin
	before indexing into the built_in_decls array.

2009-05-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38964
	* alias.c (write_dependence_p): Do not use TBAA for answering
	anti-dependence or output-dependence.
	* tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
	(emit_pointer_definition): Remove.
	(emit_alias_warning): Likewise.
	(find_what_var_points_to): Remove TBAA pruning code.
	(find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
	violations.
	(compute_points_to_sets): Remove code computing the set of
	dereferenced pointers.
	* tree-data-ref.c (dr_may_alias_p): Properly use the split
	oracle for querying anti and output dependencies.
	* tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
	if TBAA may be applied.
	(refs_anti_dependent_p): New function.
	(refs_output_dependent_p): Likewise.
	* tree-ssa-alias.h (refs_anti_dependent_p): Declare.
	(refs_output_dependent_p): Likewise.
	* doc/tree-ssa.texi (Memory model): New section.
	* doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
	* doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
	* cfgexpand.c (expand_gimple_basic_block): Do not handle
	GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
	* expr.c (expand_expr_real_1): Likewise.
	* gimple-low.c (lower_stmt): Likewise.
	* gimple-pretty-print.c (dump_gimple_stmt): Likewise.
	(dump_gimple_cdt): Remove.
	* gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
	(gimple_size): Likewise.
	(walk_gimple_op): Likewise.
	(is_gimple_stmt): Likewise.
	(walk_stmt_load_store_addr_ops): Likewise.
	(gimple_build_cdt): Remove.
	* gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
	* gimple.h (gimple_cdt_new_type): Remove.
	(gimple_cdt_new_type_ptr): Likewise.
	(gimple_cdt_set_new_type): Likewise.
	(gimple_cdt_location): Likewise.
	(gimple_cdt_location_ptr): Likewise.
	(gimple_cdt_set_location): Likewise.
	* gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
	* tree-cfg.c (remove_useless_stmts_1): Do not handle
	GIMPLE_CHANGE_DYNAMIC_TYPE.
	(verify_types_in_gimple_stmt): Likewise.
	* tree-inline.c (estimate_num_insns): Likewise.
	(expand_call_inline): Do not copy DECL_NO_TBAA_P.
	(copy_decl_to_var): Likewise.
	(copy_result_decl_to_var): Likewise.
	* tree-pretty-print.c (dump_generic_node): Do not handle
	CHANGE_DYNAMIC_TYPE_EXPR.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-structalias.c (struct variable_info): Remove
	no_tbaa_pruning member.
	(new_var_info): Do not set it based on DECL_NO_TBAA_P.
	(unify_nodes): Do not copy it.
	(find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
	(dump_solution_for_var): Do not dump no_tbaa_pruning state.
	(set_uids_in_ptset): Do not check it.
	(find_what_var_points_to): Likewise.
	(compute_tbaa_pruning): Remove.
	(compute_points_to_sets): Do not call it.
	* tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
	* tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
	* tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
	(CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
	(DECL_NO_TBAA_P): Likewise.
	(struct tree_decl_common): Move no_tbaa_flag to unused flags section.
	* omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
	(expand_omp_atomic_pipeline): Do not set it.
	* print-tree.c (print_node): Do not dump it.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
	redundant check.

2009-05-22 Vladimir Makarov <vmakarov@redhat.com>

	PR target/39856
	* reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
	for clobber.

2009-05-22  Mark Mitchell  <mark@codesourcery.com>

	* tree.c (handle_dll_attribute): Mark dllexport'd inlines as
	non-external.

2009-05-22  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (bversion.h, s-bversion): New targets.
	(TOPLEV_H): Add bversion.h.
	* toplev.h: Include "bversion.h".
	(ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
	the __format__ attribute only if compiling with the same version
	of GCC as the sources (the "build version").

2009-05-22  Ben Elliston  <bje@au.ibm.com>

	* c-format.c (handle_format_attribute): Fix comment typo.

2009-05-21  Steve Ellcey  <sje@cup.hp.com>

	PR target/37846
	* config/ia64/ia64.opt (mfused-madd): New.
	* config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
	* config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
	* config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
	madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
	nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
	msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
	nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
	* config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
	instruction if !TARGET_FUSED_MADD.
	(fpma, fpms): Remove colon from name.

2009-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
	TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
	TARGET_MEM_REF.
	(create_expression_by_pieces): Only convert if necessary.
	* gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.

2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
	regular pattern from a template and rename it ...
	(*extzv_truncsi_exts): ... to this.

2009-05-21  Richard Guenther  <rguenther@suse.de>

	* cgraph.h (struct cgraph_node): Remove inline_decl member.
	* ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
	(cgraph_default_inline_p): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.

2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h (bit_MOVBE): New.

	* config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.

	* config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
	(OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
	(ix86_handle_option): Handle OPT_mmovbe.
	(ix86_target_string): Add -mmovbe.
	(pta_flags): Add PTA_MOVBE.
	(processor_alias_table): Add PTA_MOVBE to "atom".
	(override_options): Handle PTA_MOVBE.

	* config/i386/i386.h (TARGET_MOVBE): New.

	* config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
	(*bswapsi_movbe): New.
	(*bswapdi_movbe): Likewise.
	(bswapdi2): Renamed to ...
	(*bswapdi_1): This.
	(bswapdi2): New expander.

	* config/i386/i386.opt (mmovbe): New.

	* doc/invoke.texi: Document -mmovbe.

2009-05-21  Taras Glek  <tglek@mozilla.com>

	* plugin.c (try_init_one_plugin): Updated to new plugin_init API.
	* gcc-plugin.h (plugin_init): Updated signature.
	* gcc-plugin.h (plugin_name_args): Moved to this header.
	* doc/plugins.texi (plugin_init): Updated documention to reflect
	API change.
	* doc/plugins.texi (plugin_name_args): Added to documention.

2009-05-21  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
	(*mul<mode>3neg<mode>add<mode>_neon): Likewise.

2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
	JUMP_TABLE_DATA_P predicates where applicable.
	* config/i386/predicates.md: Ditto.
	* config/i386/sse.md: Ditto.

2009-05-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
	operand2 -128 override length_immediate attribute to 1.
	* config/i386/predicates.md (constm128_operand): New predicate.

	* config/i386/i386.c (memory_address_length): Handle %r12
	the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
	also check REGNO.
	(ix86_attr_length_address_default): For MODE_SI lea in 64-bit
	mode look through optional ZERO_EXTEND and SUBREG.
	* config/i386/i386.md (R12_REG): New define_constant.
	(prefix_data16): For sse unit set also for MODE_TI insns.
	(prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
	insns set if operand 1 is ext_QIreg_operand.
	(modrm): For TYPE_IMOV clear only if not MODE_DI.  For
	TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
	immediate.
	(*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
	mode from MODE_DI to MODE_SI.
	(movdi_1_rex64): Override modrm and length_immediate attributes
	only for movabs (TYPE_IMOV, alternative 2).
	(zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
	(*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): Set
	prefix_rex attribute if DImode.
	(*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
	*addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
	*addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
	*addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
	attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
	(pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
	Likewise.  For TYPE_IMOV clear length_immediate attribute.
	(*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
	*ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
	*ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
	*ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
	*ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
	or one operand TYPE_ISHIFT.
	(*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
	*ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
	*ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
	*ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
	*ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
	*ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
	*ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
	*lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
	*lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
	*lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
	*lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
	*lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
	*lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
	*rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
	*rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
	*rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
	*rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
	set mode attribute, don't override length attribute.
	(*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
	to 1.
	(return_internal_long): Set length attribute to 2 instead of 1.
	(*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
	*cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
	prefix_rex attribute.
	* config/i386/predicates.md (ext_QIreg_operand, const128_operand):
	New predicates.
	(memory_displacement_only_operand): Always return 0 for TARGET_64BIT.

2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.

2009-05-20  Ian Lance Taylor  <iant@google.com>

	* tree.c (build_tree_list_vec_stat): New function.
	(ctor_to_vec): New function.
	(build_nt_call_vec): New function.
	(build_call_array): Change args to be a const pointer.
	(build_call_vec): New function.
	* tree.h (build_nt_call_vec): Declare.
	(build_tree_list_vec_stat): Declare.
	(build_tree_list_vec): Define.
	(build_call_array): Update declaration.
	(build_call_vec): Declare.
	(ctor_to_vec): Declare.
	* c-common.c (tree_vector_cache): New static variable.
	(make_tree_vector): New function.
	(release_tree_vector): New function.
	(make_tree_vector_single): New function.
	(make_tree_vector_copy): New function.
	* c-common.h (tree_vector_cache, make_tree_vector): Declare.
	(make_tree_vector_single, make_tree_vector_copy): Declare.
	* c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
	(c_parser_expr_list): Don't manage cache here, instead call
	make_tree_vector.
	(c_parser_release_expr_list): Remove static function.
	(c_parser_vec_to_tree_list): Remove static function.
	(c_parser_attributes): Call build_tree_list_vec instead of
	c_parser_vec_to_tree_list.  Call release_tree_vector instead of
	c_parser_release_expr_list.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_objc_keywordexpr): Likewise.

2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
	TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
	TARGET_CONVERT_TO_TYPE.
	* hooks.c (hook_tree_const_tree_null): Define.
	* hooks.h (hook_tree_const_tree_null): Declare.
	* target.h (struct gcc_target):  Add invalid_parameter_type,
	invalid_return_type, promoted_type, and convert_to_type fields.
	* target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define.
	(TARGET_INVALID_RETURN_TYPE): Define.
	(TARGET_PROMOTED_TYPE): Define.
	(TARGET_CONVERT_TO_TYPE): Define.
	(TARGET_INITIALIZER): Update for new fields.
	* c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
	(grokparms): Check targetm.invalid_parameter_type.
	* c-typeck.c (default_conversion): Check targetm.promoted_type.
	* c-convert.c (convert): Check targetm.convert_to_type.

2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*extenddi_truncate<mode>,
	*extendsi_truncate<mode>): Emit exts if supported.  Add attribute
	defintions.
	(*extendhi_truncateqi): New define_insn_and_sptit.

2009-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40204
	* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
	recursion if build_int_cst_type returns the same INTEGER_CST as arg1.

2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (build_fold_addr_expr_with_type): Take the address of
	the operand of VIEW_CONVERT_EXPR.

2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Check
	extended family and model for Intel processors.  Support Intel Atom.

2009-05-20  Olivier Hainque  <hainque@adacore.com>

	* gstab.h (stab_code_type): Define, to be used instead of the
	__stab_debug_code enum, made anonymous.  Add 2009 to the copyright
	notice.
	* dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
	occurrences by stab_code_type.
	* mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.

2009-05-20  Martin Jambor  <mjambor@suse.cz>

	* tree-flow.h (insert_edge_copies_seq): Undeclare.
	(sra_insert_before): Likewise.
	(sra_insert_after): Likewise.
	(sra_init_cache): Likewise.
	(sra_type_can_be_decomposed_p): Likewise.
	* tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
	* tree-sra.c (sra_type_can_be_decomposed_p): Made static.
	(sra_insert_before): Likewise.
	(sra_insert_after): Likewise.
	(sra_init_cache): Likewise.
	(insert_edge_copies_seq): Made static and moved upwards.

	* tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
	case.

	* tree-flow-inline.h (contains_view_convert_expr_p): New function.

	* ipa-prop.c (get_ssa_def_if_simple_copy): New function.
	(determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
	simple copies.

2009-05-20  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
	(peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
	* config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
	with shifts for Thumb2.
	(orsi_notsi): New for orn.
	(*thumb_orsi_notshiftsi_si): Allow orn with shifts.
	(*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
	* config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
	(arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
	Don't invert remainder for IOR.

2009-05-19  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/40087
	* tree-ssa-loop-niter.c (number_of_iterations_ne_max,
	number_of_iterations_ne): Rename never_infinite argument.
	(number_of_iterations_lt_to_ne, number_of_iterations_lt,
	number_of_iterations_le): Handle pointer-type ivs when
	exit_must_be_taken is false.
	(number_of_iterations_cond):  Do not always assume that
	exit_must_be_taken if the control variable is a pointer.

2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* c-typeck.c (build_binary_op): Allow % on integal vectors.
	* doc/extend.texi (Vector Extension): Document that % is allowed too.

2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
	ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.

2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/40172
	* c.opt (Wlogical-op): Disabled by default.
	* c-opt (c_common_post_options): Do not enable Wlogical-op with
	Wextra.
	* doc/invoke.texi (Wlogical-op): Likewise.

2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
	into CASE_CONVERT.
	<PLUS_EXPR>: Strip useless type conversions instead of type nops.
	Propagate the type of the first operand.
	<ASSERT_EXPR>: Simplify.
	(follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
	Rewrite using the RHS code as discriminant.
	<NOP_EXPR>: Turn into CASE_CONVERT.
	<PLUS_EXPR>: Propagate the type of the first operand.

2009-05-19  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
	(ia64_dconst_0_375): New.
	* config/ia64/ia64.c (ia64_override_options): Remove
	-minline-sqrt-min-latency warning.
	(ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
	(ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
	* config/ia64/ia64.md (*sqrt_approx): Remove.
	(sqrtsf2): Remove #if 0.
	(sqrtsf2_internal_thr): Rewrite and move to div.md.
	(sqrtdf): Remove assert.
	(sqrtdf2_internal_thr): Rewrite and move to div.md.
	(sqrtxf2): Remove #if 0.
	(sqrtxf2_internal_thr): Rewrite and move to div.md.
	* div.md (sqrt_approx_rf): New.
	(sqrtsf2_internal_thr): New implementation.
	(sqrtsf2_internal_lat): New.
	(sqrtdf2_internal_thr: New implementation.
	(sqrtxf2_internal): New implementation.

2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
	    Hans-Peter Nilsson  <hp@axis.com>

	* defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
	(WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
	(INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
	(INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
	(UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
	(INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
	(UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
	(INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
	(UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
	(SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
	* c-common.c: ...from here.

2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.c (warn_logical_operator): Remove unnecessary conditionals.

2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.

2009-05-19  Ben Elliston  <bje@au.ibm.com>

	* unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
	assignments with memcpy calls.
	(add_fdes): Likewise.
	(binary_search_unencoded_fdes): Likewise.
	(linear_search_fdes): Eliminate type puns.

2009-05-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
	not falsely claim to have propagated into all uses.

2009-05-19  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (C Dialect Options): Update OpenMP specification
	version to v3.0.

2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
	* config/sh/sh.c (sh_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.

2009-05-18  Dodji Seketeli  <dodji@redhat.com>

	PR debug/40109
	* dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
	child of the containing namespace's DIE.

2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
	*zero_extendhi_truncqi):  Move after the zero_extend patterns.
	(*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
	extend patterns.

2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39942
	* config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
	gen_align with gen_pad.
	(ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
	#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.

	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.

	* config/i386/i386.md (align): Renamed to ...
	(pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
	ASM_OUTPUT_MAX_SKIP_PAD.

2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>

	* config.gcc: Fix variable syntax.

	PR target/39531
	* config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
	before calling exact_log2.
	(output_iorsi3): Likewise.
	(output_xorsi3): Likewise.

2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (expand_cbranchdi4): Use a scratch register
	for the none zero constant operand except for EQ and NE
	comprisons even when the first operand is R0.

2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/2064.md: Remove trailing whitespaces.
	* config/s390/2084.md: Likewise.
	* config/s390/constraints.md: Likewise.
	* config/s390/fixdfdi.h: Likewise.
	* config/s390/libgcc-glibc.ver: Likewise.
	* config/s390/s390-modes.def: Likewise.
	* config/s390/s390-protos.h: Likewise.
	* config/s390/s390.c: Likewise.
	* config/s390/s390.h: Likewise.
	* config/s390/s390.md: Likewise.
	* config/s390/tpf-unwind.h: Likewise.

2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.

2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	M68K TLS support.
	* configure.ac (m68k-*-*): Check if binutils support TLS.
	* configure: Regenerate.
	* config/m68k/predicates.md (symbolic_operand): Extend comment.
	* config/m68k/constraints.md (Cu): New constraint.
	* config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
	(UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
	(movsi): Handle TLS symbols.
	(addsi3_5200): Handle XTLS symbols, indent.
	* config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
	(m68k_tls_reference_p): Declare.
	(m68k_legitimize_address): Declare.
	(m68k_unwrap_symbol): Declare.
	* config/m68k/m68k.opt (mxtls): New option.
	* config/m68k/m68k.c (ggc.h): Include.
	(m68k_output_dwarf_dtprel): Implement hook.
	(TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
	(m68k_expand_prologue): Load GOT pointer when function needs it.
	(m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
	(m68k_legitimate_constant_address_p): Same.
	(m68k_decompose_address): Handle TLS references.
	(m68k_get_gp): New static function.
	(enum m68k_reloc): New contants.
	(TLS_RELOC_P): New macro.
	(m68k_wrap_symbol): New static function.
	(m68k_unwrap_symbol): New function.
	(m68k_final_prescan_insn_1): New static function.
	(m68k_final_prescan_insn): New function.
	(m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
	functions.
	(legitimize_pic_address): Handle TLS references..
	(m68k_tls_get_addr, m68k_get_tls_get_addr)
	(m68k_libcall_value_in_a0_p)
	(m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
	(m68k_call_m68k_read_tp): Helper variables and functions for ...
	(m68k_legitimize_tls_address): Handle TLS references.
	(m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
	New functions.
	(m68k_legitimize_address): Handle TLS symbols.
	(m68k_get_reloc_decoration): New static function.
	(m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
	UNSPEC_RELOC32.
	(m68k_output_dwarf_dtprel): Implement hook.
	(print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
	(m68k_libcall_value): Return result in A0 instead of D0 when asked by
	m68k_call_* routines.
	(sched_attr_op_type): Handle TLS symbols.
	(gt-m68k.h): Include.
	* config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
	(LEGITIMATE_PIC_OPERAND_P): Support TLS.

2009-05-18  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_check_stmt_modifications): Removed.
	(visit_store_addr_for_mod_analysis): New function.
	(ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
	(determine_cst_member_ptr): Use gimple_assign_single_p.
	(ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
	(ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
	operands.  Don't check number of operands of a NOP_EXPR.

2009-05-18  Eric Fisher  <joefoxreal@gmail.com>

	* doc/tree-ssa.texi (SSA Operands): Fix a mistake.

2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/40172
	* c-common.c (warn_logical_operator): Don't warn if one of
	expression isn't always true or false.

2009-05-17  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/biarch32.h: New file.
	* config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.

2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*zero_extend<mode>_trunchi,
	*zero_extend<mode>_truncqi): Merge these into ...
	(*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
	Name the pattern following this as *zero_extendhi_truncqi.

2009-05-16  Brad Lucier  <lucier@math.purdue.edu>

	PR middle-end/39301
	* hwint.h: Add macro HOST_WIDEST_INT_PRINT.
	* bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
	(output_info): Make field HOST_WIDEST_INT.
	(print_statistics): Use HOST_WIDEST_INT_PRINT.
	(dump_bitmat_statistics): Same.

2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>

	* config.gcc (use_gcc_stdint):  Set to wrap.
	* config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
	INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
	UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.

2009-05-16  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
	tune_64.
	* config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
	Move definitions earlier.
	(OPT_ARCH64, OPT_ARCH32): Define.
	(OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
	and tune_64.

2009-05-16  Richard Earnshaw  <rearnsha@arm.com>

	PR target/40153
	* arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
	implies.

2009-05-16  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (movdi2): Copy non-reg values to DImode registers.

2009-05-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/39942
	* final.c (label_to_max_skip): New function.
	(label_to_alignment): Only use LABEL_TO_ALIGNMENT if
	CODE_LABEL_NUMBER <= max_labelno.
	* output.h (label_to_max_skip): New prototype.
	* config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
	(ix86_avoid_jump_mispredicts): ... this.  Don't define if
	ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
	Handle CODE_LABELs with >= 16 byte alignment or with
	max_skip == (1 << align) - 1.
	(ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
	ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.

	PR target/39942
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
	.p2align 3 if MAX_SKIP is smaller than 7.
	* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.

2009-05-15  Ian Lance Taylor  <iant@google.com>

	* alias.c (struct alias_set_entry_d): Rename from struct
	alias_set_entry.  Change all uses.
	* except.c (struct call_site_record_d): Rename from struct
	call_site_record.  Change all uses.
	* except.h (struct eh_region_d): Rename from struct eh_region.
	Change all uses.
	* gcse.c (struct hash_table_d): Rename from struct hash_table.
	Change all uses.
	* graphite.c (struct ivtype_map_elt_d): Rename fromstruct
	ivtype_map_elt.  Change all uses.
	(struct rename_map_elt_d): Rename fromstruct rename_map_elt.
	Change all uses.
	(struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
	* graphite.h (struct name_tree_d): Rename from struct name_tree.
	Change all uses.
	(struct sese_d): Rename from struct sese.  Change all uses.
	* omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
	(struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
	* optabs.h (struct optab_d): Rename from struct optab.  Change all
	uses.
	(struct convert_optab_d): Rename from struct convert_optab.
	Change all uses.
	* tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
	ipa_opt_pass.  Change all uses.
	* tree-predcom.c (struct dref_d): Rename from struct dref.  Change
	all uses.

	* c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
	defined as a typedef.
	(grokdeclarator): If -Wc++-compat, warn if a typedef is already
	defined as a tag.

2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 16302
	* fold-const.c (make_range,build_range_check,merge_ranges): Move
	declaration to...
	(merge_ranges): Returns bool.
	* tree.h (make_range): .. to here.
	(build_range_check): Likewise.
	(merge_ranges): Likewise. Renamed from merge_ranges.
	* c-typeck.c (parser_build_binary_op): Update calls to
	warn_logical_operator.
	* c-common.c (warn_logical_operator): Add new warning.
	* c-common.h (warn_logical_operator): Update declaration.

2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.

2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Document MPC requirements, flags etc.

	* builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
	(fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
	Evaluate constant arguments.
	(fold_builtin_carg): Ensure we get a complex REAL_TYPE.
	(fold_builtin_1): Likewise, also evaluate constant arguments.
	Remove superfluous break.
	(do_mpc_ckconv): New.
	* real.h: Include mpc.h.
	* toplev.c (print_version): Output MPC version info if available.

2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	* fold-const.c (fold_convert_const_real_from_real): Check for overflow.

2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
	only once.

2009-05-15  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (max-early-inliner-iterations): New flag.
	* ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
	(try_inline): Fix return value.
	(cgraph_decide_inlining_incrementally): Honor new value.
	(cgraph_early_inlining): Handle indirect inlining.
	* params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.

2009-05-15  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
	* cgraphunit.c (cgraph_finalize_function): Set it.
	(cgraph_expand_function): Use it.

2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	* real.c (encode_ieee_half): Define.
	(decode_ieee_half): Define.
	(ieee_half_format): Define.
	(arm_half_format): Define.
	* real.h (ieee_half_format): Declare.
	(arm_half_format): Declare.

2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>

	* optabs.c (prepare_float_lib_cmp):  Test that the comparison,
	swapped, and reversed optabs exist before trying to use them.

2009-05-15  Paul Brook  <paul@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
	loads.  Allow PRE_DEC.
	(output_move_neon): Handle PRE_DEC.
	(arm_print_operand): Add 'A' for neon structure loads.
	* config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
	* config/arm/neon.md (neon_mov): Update comment.
	* config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
	calls.
	(Um): New constraint.

2009-05-15  Jan Hubicka  <jh@suse.cz>

	Revert the following patch until testsuite fallout is fixed:
	* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	(MAX_TIME): New constant.
	(overall_insns): Remove
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes
	and times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor
	PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.

2009-05-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
	not TODO_update_ssa.

2009-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39999
	* gimple.h (gimple_expr_type): Use the expression type looking
	through useless conversions.
	* tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
	(vn_nary_op_insert_stmt): Likewise.
	(simplify_binary_expression): Likewise.

2009-05-15  Richard Guenther  <rguenther@suse.de>

	* common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
	New options, enabled by default.
	* doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
	Document.
	* tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
	* tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
	* tree-ssa-structalias.c (gate_tree_pta): New function.
	(pass_build_alias): Use it.

2009-05-15  Joseph Myers  <joseph@codesourcery.com>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
	recurse on an invariant address if a conversion from a pointer
	type to a wider integer type is involved.

2009-05-15  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Dump size/time/benefit.
	* cgraph.h (struct inline_summary): New filed self_wize,
	size_inlining_benefit, self_time and time_inlining_benefit.
	(struct cgraph_global_info): Replace insns by time ans size fields.
	* ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
	(ipcp_estimate_growth, ipcp_insert_stage): Likewise.
	(ipcp_update_callgraph): Do not touch function bodies.
	* ipa-inline.c: Include except.h
	(MAX_TIME): New constant.
	(overall_insns): Remove
	(overall_size, max_benefit): New static variables.
	(cgraph_estimate_time_after_inlining): New function.
	(cgraph_estimate_size_after_inlining): Rewrite using benefits.
	(cgraph_clone_inlined_nodes): Update size.
	(cgraph_mark_inline_edge): Update size.
	(cgraph_estimate_growth): Use size info.
	(cgraph_check_inline_limits): Check size.
	(cgraph_default_inline_p): Likewise.
	(cgraph_edge_badness): Compute badness based on benefit and size cost.
	(cgraph_decide_recursive_inlining): Check size.
	(cgraph_decide_inlining_of_small_function): Update size; dump sizes
	and times.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise; honor
	PARAM_EARLY_INLINING_INSNS.
	(likely_eliminated_by_inlining_p): New predicate.
	(estimate_function_body_sizes): New function.
	(compute_inline_parameters): Use it.
	* except.c (must_not_throw_labels): New function.
	* except.h (must_not_throw_labels): Declare.
	* tree-inline.c (init_inline_once): Kill inlining_weigths
	* tree-ssa-structalias.c: Avoid uninitialized warning.
	* params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
	(PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
	(PARAM_INLINE_CALL_COST): Remove.
	(PARAM_EARLY_INLINING_INSNS): New.
	doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
	(inline-call-cost): Remove.
	(early-inlining-insns): New.

2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>

	* dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
	for bounds.
	(print_int_cst_bounds_in_octal_p): Likewise.
	(dbxout_type): Adjust calls to above functions.  Be prepared to deal
	with subtypes.
	* dwarf2out.c (base_type_die): Likewise.
	(is_subrange_type): Delete.
	(subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
	(modified_type_die): Call subrange_type_for_debug_p on subtypes.
	* fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
	if the destination type is boolean.
	(build_range_check): Do not special-case subtypes.
	(fold_sign_changed_comparison): Likewise.
	(fold_unary): Likewise.
	* langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
	* langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
	* tree.c (subrange_type_for_debug_p): New predicate based on the
	former is_subrange_type.
	* tree.h (subrange_type_for_debug_p): Declare.
	* tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
	(convert_affine_scev): Remove call to above function.
	(chrec_convert_aggressive): Likewise.
	* tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
	false for conversions involving subtypes.
	* tree-vrp.c (vrp_val_max): Do not special-case subtypes.
	(vrp_val_min): Likewise.
	(needs_overflow_infinity): Likewise.
	(extract_range_from_unary_expr): Likewise.

2009-05-15  Paolo Bonzini  <bonzini@gnu.org>

	* config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
	* config/frv/frv.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/crx/crx.c: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/mn10300/mn10300.h: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/xcoff.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/score/score3.c: Likewise.
	* config/score/score7.c: Likewise.
	* config/score/score.c: Likewise.
	* config/arm/arm.md: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.md: Likewise.
	* config/bfin/bfin.h: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/constraints.md: Likewise.

	* config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
	* config/pdp11/pdp11.c (legitimate_address_p): Delete.
	* config/pdp11/pdp11.h: Use memory_address_p instead.

2009-05-14  Ian Lance Taylor  <iant@google.com>

	* passes.c (finish_optimization_passes): Change i to int.
	* plugin.c (plugins_active_p): Change event to int.
	(dump_active_plugins): Likewise.
	* reginfo.c (invalid_mode_change_p): Change to to unsigned int.
	Add cast.
	* tree.c (tree_range_check_failed): Change c to unsigned int.
	(omp_clause_range_check_failed): Likewise.
	(build_common_builtin_nodes): Change mode to int.  Add cast.
	* config/ia64/ia64.c (is_emitted): Change r to unsigned int.
	(ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.

	* c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
	++ or -- with a variable of enum type.

2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>

	PR driver/40144
	* opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.

2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>

	* store-motion.c: Do not include params.h
	* Makefile.in: Fix dependencies for various files.

2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>

	* auto-inc-dec.c: Fix pass description, remove apparent
	accidental duplication.

2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/40147
	* ipa-utils.h (memory_identifier_string): Moved to ...
	* tree.h (memory_identifier_string): Here.  Add GTY(()).

2009-05-14  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
	in the former documentation of...
	(GO_IF_LEGITIMATE_ADDRESS): ... this.
	* ira-conflicts.c (get_dup_num): Use address_operand.
	* targhooks.c (default_legitimate_address_p): New.
	* targhooks.h (default_legitimate_address_p): New.
	* reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
	Call hook.
	* recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
	* target.h (struct target): Add legitimate_address_p.
	* target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
	(TARGET_INITIALIZER): Include it.

	* config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
	* config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_P): Delete.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
	(frv_legitimate_address_p_1): ... this.
	* config/frv/frv.c (frv_legitimate_address_p): Forward to...
	(frv_legitimate_address_p_1): ... the renamed old
	frv_legitimate_address_p.
	* config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/s390/s390-protos.h (legitimate_address_p): Remove.
	* config/s390/s390.c (legitimate_address_p): Rename to...
	(s390_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/s390/constraints.md ("e"): Call strict_memory_address_p.

	* config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
	* config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/spu/spu-protos.h (spu_legitimate_address): Remove.
	* config/spu/spu.c (spu_legitimate_address): Rename to...
	(spu_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/sparc/sparc-protos.h (legitimate_address_p): Remove.
	* config/sparc/sparc.c (legitimate_address_p): Rename to...
	(sparc_legitimate_address_p): ... this, make static and return bool.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/i386/i386-protos.h (legitimate_address_p): Remove.
	* config/i386/i386.c (legitimate_address_p): Rename to...
	(ix86_legitimate_address_p): ... this, make static.
	(constant_address_p): Move after it, adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/avr/avr-protos.h (legitimate_address_p): Remove.
	* config/avr/avr.c (legitimate_address_p): Rename to...
	(avr_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
	* config/crx/crx.c (crx_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
	* config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
	Remove.
	* config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
	Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
	Remove.
	* config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
	Rename to...
	(m68hc11_legitimate_address_p): ... this, make static.
	(go_if_legitimate_address_internal): Rename to...
	(m68hc11_legitimate_address_p_1): ... this.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
	* config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
	* config/mn10300/mn10300.c (legitimate_address_p): Rename to...
	(mn10300_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
	* config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
	(INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
	* config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
	(rs6000_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	(REG_MODE_OK_FOR_BASE_P): Delete.
	(rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.

	* config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/picochip/picochip-protos.h (picochip_legitimate_address_p):
	Delete.
	* config/picochip/picochip.c (picochip_legitimate_address_p): Make
	static, adjust types.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/score/score.c (score_address_p): Rename to...
	(score_legitimate_address_p): ... this.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/score/score3.c (score3_address_p): Rename to...
	(score3_legitimate_address_p): ... this.
	* config/score/score7.c (score7_address_p): Rename to...
	(score7_legitimate_address_p): ... this.

	* config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
	GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/arm/arm-protos.h (thumb1_legitimate_address_p,
	thumb2_legitimate_address_p): Delete.
	(arm_legitimate_address_p): Rename to...
	(arm_legitimate_address_outer_p): ... this.
	* config/arm/constraints.md ("Uq"): Adjust call.
	* config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
	* config/arm/arm.c (arm_legitimate_address_p): New, rename old one
	to...
	(arm_legitimate_address_outer_p): ... this.
	(thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
	static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
	* config/mips/mips.c (mips_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/vax/vax-protos.h (legitimate_address_p): Remove.
	* config/vax/vax.c (legitimate_address_p): Rename to...
	(vax_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
	* config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
	* config/mmix/mmix.c (mmix_legitimate_address): Rename to...
	(mmix_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
	* config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

2009-05-14  Paolo Bonzini  <bonzini@gnu.org>

	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
	of MODE_COMPLEX_INT.

2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
	LCT_NORMAL in function call.
	* mips-tdump.c (print_file_desc): Add cast to enum type.
	* mips-tfile.c (add_ext_symbol): Add casts to enum types.
	(mark_stabs): Add casts to enum types.
	(parse_stabs_common): Add casts to enum types.

2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
	Check for invalid values of LETTER.

2009-05-13  Taras Glek  <tglek@mozilla.com>

	* attribs.c (register_attribute): moved out attribute registration
	into register_attribute.
	* doc/plugins.texi: Documented register_attribute and
	PLUGIN_ATTRIBUTES.
	* gcc-plugin.h: Added forward decl for register_attribute.
	* gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
	* plugin.c (register_callback, invoke_plugin_callbacks): Added
	PLUGIN_ATTRIBUTES boilerplate.

2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
	values even in sentinel and empty entries.
	(ms_printf_flag_specs):  Likewise.
	(ms_scanf_flag_specs):  Likewise.
	(ms_strftime_flag_specs):  Likewise.
	(ms_print_char_table):  Likewise.
	(ms_scan_char_table):  Likewise.
	(ms_time_char_table):  Likewise.

2009-05-13  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-sccvn.c (compare_ops): Stabilize qsort.

2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (store): Add attributes for QI and HI.
	Update comment.
	(truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
	(truncdi<mode>2): ... this new pattern.

2009-05-13  Brad Hards  <bradh@kde.org>

	* Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.

2009-05-14  Jakub Jelinek  <jakub@redhat.com>
	    Ben Elliston <bje@au.ibm.com>

	PR middle-end/40035
	* dse.c (check_mem_read_rtx): Guard against width == -1.

2009-05-13  Michael Matz  <matz@suse.de>

	PR middle-end/39976
	* tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
	(trivially_conflicts_p): New function.
	(insert_backedge_copies): Use it.

2009-05-13  Janis Johnson  <janis187@us.ibm.com>

	* c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
	(handle_stdc_pragma): Use new enum constant names.
	(handle_pragma_float_const_decimal64): Ditto.

2009-05-13  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
	tree.def.

2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
	* config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
	multilibs.
	* config/m68k/m68k.h (FL_UCLINUX): Define.

2009-05-13  Jan Hubicka  <jh@suse.cz>

	* options.c (gfc_post_options): -fwhole-program imply -fwhole-file.

2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
	unless -fschedule-insns is specified.

2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/39561
	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
	TARGET_EXPAND_CBRANCHDI4.
	* config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
	* config/sh/sh.opt (mexpand-cbranchdi): Remove.
	(cmpeqdi): Fix comment.

2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
	(sh_legitimate_address_p): Likewise.
	* config/sh/sh.c (sh_legitimate_index_p): New.
	(sh_legitimate_address_p): Likewise.
	* config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
	(REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
	(MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
	(MAYBE_BASE_REGISTER_RTX_P): New macro.
	(MAYBE_INDEX_REGISTER_RTX_P): Likewise.
	(BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
	(INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
	(GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
	(GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.

2009-05-12  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (estimate_operator_cost): Add operands;
	when division happens by constant, it is cheap.
	(estimate_num_insns): Loads and stores are not having cost of 0;
	EH magic stuff is cheap; when computing runtime cost of switch,
	use log2 base of amount of its cases; builtin_expect has cost of 0;
	compute cost for moving return value of call.
	(init_inline_once): Initialize time_based flags.
	* tree-inline.h (eni_weights_d): Add time_based flag.

2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* df-core.c: Update head documentation.

2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR bootstrap/40118
	* rs6000.c (rs6000_generate_compare): Use op1b instead of
	shadowing exisiting variable op1.

2009-05-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/37179
	* config/i386/driver-i386.c (processor_signatures): New enum.
	(SIG_GEODE): Move from vendor_signatures to processor_signatures.
	(host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
	processor signature to detect geode processor.

2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	Revert:

	2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (prepare_cmp_insn): Temporarily disable test that
	causes spurious differences between trunk and cond-optab branch.

2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* dojump.c (compare_from_rtx): Delete.
	* expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
	any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
	if the comparison does not satisfy the predicate; test predicates for
	operands 2 and 3 of a cstore pattern.  Don't try cstore optab
	further if one existing pattern fails.
	* expr.h (compare_from_rtx): Delete.
	(prepare_operand): Declare it.
	* optabs.c: Change "lib call" to "libcall" throughout.
	(bcc_gen_fctn, setcc_gen_code, trap_rtx,
	HAVE_conditional_trap, emit_cmp_insn): Delete.
	(can_compare_p): Delete cmp_optab case.
	(prepare_float_lib_cmp): Return an rtx and a machine mode.
	Accept other parameters by value.
	(prepare_operand): Make non-static.
	(prepare_cmp_insn): Return an rtx and a machine mode.  Accept
	other parameters by value.  Try to widen operands here based on
	an optab_methods argument and looking at cbranch_optab.
	(emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
	loop.  Use cbranch_optab directly.
	(emit_cmp_and_jump_insns): Fix comment.  Adjust call to
	prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
	assertion.
	(emit_conditional_move, emit_conditional_add): Inline what's needed
	of compare_from_rtx, using new prepare_cmp_insn for the rest.
	(init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
	with COMPARE.  Move cmov_optab and cstore_optab above
	with cbranch_optab, move cmp_optab down with ucmp_optab,
	remove tst_otpab.  Do not initialize trap_rtx.
	(gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
	for trap code.  Do not check HAVE_conditional_trap.  Use
	prepare_cmp_insn.  Accept no predicate for operand 3.
	* optabs.h (OTI_cmp): Mark as used only for libcalls.
	(OTI_ctrap, ctrap_optab): New.
	(tst_optab): Delete.
	(bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
	* ifcvt.c (find_if_header): Replace HAVE_conditional_trap
	with lookup of ctrap_optab.
	* genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
	Delete.
	(ctrap_optab): New.

	* combine.c (combine_simplify_rtx, simplify_set): Do not
	special case comparing against zero for cc0 machines.
	* simplify-rtx.c (simplify_binary_operation_1): Never remove
	COMPARE on cc0 machines.
	(simplify_relational_operation): Return a new expression when
	a COMPARE could be removed.
	* final.c (final_scan_insn): Compare cc_status values
	against LHS of a (compare FOO (const_int 0)) cc0 source.
	Also check if cc_status.value is the full compare.

	* doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
	(cstoreMM4): Document.
	(conditional_trap): Document ctrapMM4 instead.
	(sync_compare_and_swapMM): Refer to cbranchcc4.
	(Dependent Patterns): Eliminate obsolete information referring to
	the old jump optimization phase.
	(Canonicalization): Include cbranchcc4 case, omit canonicalization
	of compares with 0 on cc0 machines.
	(Jump Patterns): Refer to MODE_CC jump patterns preferably,
	avoiding references to cc0.  Remove text about storing operands
	in cmpMM.
	* doc/tm.texi (Condition Codes): Include blurb on different
	condition code representations, separate into subsections for
	CC0, MODE_CC and conditional execution.

	* config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
	alpha_emit_setcc): Accept operands and a machine mode.
	* config/alpha/alpha.c (alpha_emit_conditional_branch):
	Get code/op0/op1 from operands, use machine mode argument
	instead of alpha_compare.fp_p.  Emit the branch here.
	(alpha_emit_setcc): Likewise, and return boolean.
	(alpha_emit_conditional_move): Likewise.  Assert that
	cmp_op_mode == cmp_mode, and simplify accordingly.
	* config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
	* config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
	(cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
	Delete.
	(stack probe test): Use cbranchdi4.
	* config/alpha/predicates.md (alpha_cbranch_operator): New.

	* config/arc/arc.c (gen_compare_reg): Do not emit cmp.
	* config/arc/arc.h (movsicc, movsfcc): Use it.
	(movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
	(cbranchsi4, cstoresi4): New.
	(cmpsi, bCC and sCC expanders): Remove.

	* config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
	* config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
	* config/arm/predicates.md (arm_comparison_operator): Only include
	floating-point operators if there is a hardware floating-point unit.
	* config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
	deferring to cbranch_cc and cstore_cc respectively.
	(cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
	cbranch_cc, cstore_cc): New.
	(movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
	arm_compare_op1.
	(bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.

	* config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
	* config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
	as an argument.
	(adjust_insn_length): Adjust calls.
	(avr_reorg): Handle (compare (foo) (const_int 0)).
	* config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
	(*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
	(*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
	(cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
	(bCC): Remove.
	(cbranchqi4, cbranchhi4, cbranchsi4): New.
	(tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.

	* config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
	(cbranchsi4, cstorebi4, cstoresi4): New.
	(movbisi): This insn is duplicate, split it to zero_extend.
	* config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
	(bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
	(bfin_optimize_loop): Use cbranch expander.
	* config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
	* config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
	(bfin_bimode_comparison_operator): ... this.
	(bfin_direct_comparison_operator): New.

	* config/cris/cris.c (cris_normal_notice_update_cc): Look
	inside (compare FOO (const_int 0)).
	(cris_rtx_costs): Handle ZERO_EXTRACT.
	* config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
	(*tstdi_non_v32): Fold in *cmpdi_non_v32.
	(*tstdi_v32): Delete.
	(*cmpdi_non_v32): Add M alternative for operand 1.
	(cmpsi, cmp<mode>): Make private.
	(*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
	with COMPARE.
	(cbranch<mode>4, cbranchdi4, cstore<mode>4): New.

	* config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
	(cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
	(cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
	(cc_reg_operand): New.
	(any_cond): Delete.
	* config/crx/crx.c (crx_compare_op0, crx_compare_op1,
	crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
	* config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
	* config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
	crx_expand_scond): Delete.

	* config/fr30/fr30.md (cmp<mode>, bCC): Delete.
	(cbranchsi4): New.
	* config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
	* config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.

	* config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
	cstoresi4, cstoresf4, cstoredf4): New.
	(cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
	* config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
	Receive the entire operands array.
	* config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
	* config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
	* config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
	Get test/op0/op1 from the operands array.
	(frv_emit_cond_move): Get test/op0/op1 from the test_rtx.

	* config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
	(h8300_expand_store): New.
	* config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
	(const_int 0)).
	(h8300_expand_branch): Emit compare here.  Adjust for new arguments.
	(h8300_expand_store): New.
	* config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
	or do not try to produce (set (cc0) REG).
	(peepholes): Wrap arguments with COMPARE.  Add a peephole to
	change a compare into a move to a scratch register.  Disable some
	peepholes when comparing with zero.
	(tstsi, tsthi, tstsi, cmpqi): Make private.
	(cmphi): Delete.
	(bCC, sCC): Delete.
	(cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
	cstoresi4): New.

	* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
	ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
	(ix86_emit_i387_log1p): Use gen_cbranchxf4.
	(ix86_emit_i387_log1p): Use cbranchxf2.
	(ix86_expand_setcc): Return void.
	* config/i386/i386-protos.h (ix86_expand_setcc): Return void.
	* config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
	cmp<MODEF>, cmpcc): Remove.
	(cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
	cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
	cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
	(sCC and bCC expanders): Remove.
	(stack_protect_test): Use cbranchcc4.

	* config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
	Delete.
	(ia64_expand_compare): Accept three rtx by reference and return void.
	* config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
	(ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
	from *expr.  Update *expr with the BImode comparison to do.
	* config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
	cmptf, bCC, sCC, conditional_trap): Delete.
	(cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
	cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
	cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
	ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
	* config/ia64/predicates.md (ia64_cbranch_operator): New.

	* config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
	type of last argument.
	* config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
	(gen_conditional_branch): Get code/cmp0/cmp1 from operands,
	use machine mode argument instead of branch_type.  Remove dead
	code for floating-point comparisons.
	* config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
	* config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
	Remove.
	(cbranchsi4, cstoresi4): New.
	* config/iq2000/predicates.md (reg_or_const_operand): New.

	* config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
	* config/m32c/m32c.md (any_cond, gl_cond): Delete.
	(b<code>_op): Rewrite to...
	(bcc_op): ... this, using match_operator.
	(s<code>_op): Rewrite to...
	(scc_op): ... this, using match_operator.
	(s<code>_24_op): Rewrite to...
	(scc_op_24): ... this, using match_operator.
	(s<code>_<mode>): Rewrite to...
	(cstore<mode>4): ... this, using match_operator.
	(s<code>_<mode>_24): Rewrite to...
	(cstore<mode>4_24): ... this, using match_operator.
	* config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
	m32c_unpend_compare, m32c_expand_scc): Delete.
	* config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
	m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
	(m32c_expand_movcc): Change NE to EQ if necessary.
	(m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.

	* config/m32r/m32r-protos.h (gen_cond_store): New.
	* config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
	(gen_cond_store): New, from sCC patterns.
	(m32r_expand_block_move): Use cbranchsi4.
	* config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
	* config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
	(cbranchsi4, cstoresi4): New.

	* config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
	Delete.
	(m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
	(m68hc11_notice_update_cc): Look into a compare with 0.
	* config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
	Delete.
	* config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
	cmphi, cmpqi, bCC): Delete.
	(cbranchsi4, cbranchhi4, cbranchqi4): New.
	(tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
	bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
	sets with COMPARE.

	* config/m68k/predicates.md (m68k_cstore_comparison_operator,
	const0_operand, const1_operand, m68k_subword_comparison_operand): New.
	* config/m68k/constraints.md (H): New.
	* config/m68k/m68k.md (tstdi): Remove define_expand, use name for
	the define_insn below.
	(tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
	(*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
	*tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
	patterns): Wrap RHS with COMPARE.
	(tst<FP>_68881, tst<FP>_cf): Use const0_operand.
	(*cmpdi_internal): Name this pattern.
	(cmpdi): Change to define_insn.
	(cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
	cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
	(scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
	predicate.
	(seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
	sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
	(conditional_trap): Change to...
	(ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
	(*conditional_trap): Use the ordered_comparison_operator and
	const1_operand predicates.
	* config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
	(m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
	(m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
	* config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.

	* config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
	mcore_modify_comparison, mcore_gen_compare_reg): Remove.
	(mcore_gen_compare): New.
	* config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
	(mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
	(mcore_gen_compare): ... this.
	* config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
	(cbranchsi4, cstoresi4): New, using mcore_gen_compare.
	(stack probe pattern): Use cbranchsi4.

	* config/mips/predicates.md (mips_cstore_operator): New.
	* config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
	* config/mips/mips.md (any_cond): Delete.
	(conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
	always succeed.
	(fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
	fixuns_truncsfdi2): Use cbranch patterns.
	(cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
	(b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
	Adjust call to mips_expand_conditional_branch.
	(seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
	cstore<GPR:mode>4.
	* config/mips/mips-protos.h (mips_expand_conditional_branch,
	mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
	* config/mips/mips.c (cmp_operands): Delete.
	(mips_emit_compare): Get comparison operands from *op0/*op1.
	(mips_expand_scc): Get code/op0/op1/target from operands.  Assert
	that it succeeds.  Use op0/op1 instead of cmp_operands.
	(mips_expand_conditional_branch, mips_expand_conditional_move,
	mips_expand_conditional_trap): Likewise.
	(mips_block_move_loop): Use cbranch patterns.
	* config/mips/mips.h (cmp_operands): Delete.

	* config/mmix/mmix.c (mmix_valid_comparison): Delete.
	(mmix_gen_compare_reg): Just return a register in the right CC mode.
	* config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
	* config/mmix/mmix.md (cmpdi, cmpdf): Remove.
	(*cmpcc_folded): Rename to...
	(*cmpdi_folded): this.
	(*cmpcc): Rename to...
	(*cmps): ... this.
	(movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
	(bCC): Remove.
	(cbranchdi4): New.
	(cbranchdf4): New.  Handle invalid comparisons here.
	* config/mmix/predicates.md (float_comparison_operator): New.

	* config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
	zero_extract to be cheap in (compare (zero_extract) (const_int 0).
	* config/mn10300/mn10300.md (tst): Delete.
	(*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
	Name these patterns and wrap RHS in a compare.
	(*cmpsi): Make this pattern private.  Include tst.
	(*cmpsf): Make this pattern private.
	(and and zero_extract cc0 set): Wrap RHS in a COMPARE.
	(compare with zero peepholes): Likewise.
	(bCC): Remove.
	(cbranchsi4, cbranchsf4): New.
	(casesi): Use cbranchsi4.

	* config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
	hppa_branch_type): Delete.
	(return_addr_rtx): Use cbranchsi4.
	(emit_bcond_fp): Accept all operands.  Replace CODE with NE.
	Emit CCFPmode comparison here.
	(gen_cmp_fp): Delete, now part of emit_bcond_fp.
	* config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
	hppa_branch_type): Delete.
	* config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
	(movsicc, movdicc): Remove references to hppa_compare_op0,
	hppa_compare_op1 and compare_from_rtx.
	(cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
	(casesi): Use cbranchsi4.

	* config/pdp11/pdp11-protos.h (output_jump): Change prototype.
	* config/pdp11/pdp11.c (output_jump): Embed opcodes here.
	* config/pdp11/pdp11.md (register_or_const0_operand): New.
	(cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
	(cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
	(bCC): Delete.
	(cbranchdf4, cbranchhi4, cbranchqi4): New.
	(*branch, *branch_inverted): New.

	* config/picochip/picochip.md (cbranchhi4): Use
	ordered_comparison_operator.
	(cmphi, bCC): Remove.

	* config/rs6000/predicates.md (rs6000_cbranch_operator): New.
	(trap_comparison_operator): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
	rs6000_emit_cbranch): Accept mode and operands.
	* config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
	rs6000_compare_fp_p): Delete.
	(rs6000_generate_compare): Accept mode and comparison.  Extract code
	and op0/op1 from there.  Replace references to rs6000_compare_op0
	and rs6000_compare_op1.
	(rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
	extract result from passed operands.
	(rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
	extract loc from passed operands.
	(rs6000_emit_cmove): Likewise.
	* config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
	rs6000_compare_fp_p): Delete.
	* config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
	(cbranch<GPR>4, cbranch<FP>4): New.
	(cstore<mode>4): New.  Consolidate here all choices about when to use
	portable or specialized sCC sequences.
	(stack_protect_test): Use cbranchsi4.
	(conditional_trap): Replace with ctrap<GPR>4.
	(conditional trap insn): Replace trap_comparison_operator with
	ordered_comparison_operator.

	* config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
	(s390_emit_prologue): Use ctrap.
	* config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
	* config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
	New predicates replacing...
	* config/s390/s390.md (COMPARE, SCOND): ... these iterators.
	(cmp<GPR>, cmp<FP>, cmpcc): Delete.
	(trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
	(add<mode>cc): Do not use s390_compare_op0/op1.
	(s<code>): Change to...
	(cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
	(seq): Change to...
	(cstorecc4): ... this.  Handle EQ or NE equally.
	(*sne): Un-privatize for use in cstorecc4.
	(b<code>): Change to...
	(cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
	(conditional_trap): Replace with...
	(ctrap<GPR>4, ctrap<FP>4): ... these.
	(stack_protect): Use cbranchcc4.

	* config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
	* config/score/score-protos.h (score_gen_cmp): Delete.
	* config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
	(score_block_move-loop): Use cbranchsi4.
	* config/score/score.md (cbranchsi4): New.
	(cmpsi, bCC): Delete.
	* config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
	(score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
	* config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
	(score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
	* config/score/score3.h (score3_gen_cmp): Delete.
	* config/score/score7.h (score7_gen_cmp): Delete.

	* config/sh/sh-protos.h (prepare_scc_operands): Rename to...
	(sh_emit_scc_to_t): ... this.  Return void.
	(from_compare): Rename to...
	(sh_emit_compare_and_branch): ... this.
	(sh_emit_compare_and_set): New.
	(sh_expand_t_scc): Accept operands.
	* config/sh/predicates.md (sh_float_comparison_operator): New.
	* config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
	(prepare_scc_operands): Rename to...
	(sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
	arguments.
	(sh_emit_cheap_store_flag): New.
	(sh_emit_set_t_insn): New.
	(from_compare): Rename to...
	(sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
	handling of TARGET_SH2E floating point to avoid recursive call.
	Generate branch here.
	(sh_emit_compare_and_set): New.
	(sh_expand_t_scc): Get op0/op1 from arguments.
	(sh_emit_cheap_store_flag): New.
	* config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
	cases.
	(cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
	(cmpsi, cmpdi, cmpsf, cmpdf): Delete.
	(movsicc, movdicc): Do nothing when it recreated operands from
	sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
	prepare_scc_operands (now sh_emit_scc_to_t).
	(udivdi3): Use cstoresi4.
	(beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
	bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
	(cbranchint4_media, cbranchfp4_media): New.
	(casesi): Use cbranchdi4.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
	Delete.
	(cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
	(movnegt): Remove second operand.
	(cbranchsf4, cbranchdf4): New.
	(stack_protect): Use cbranchdi4/cbranchsi4.

	* config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
	(gen_compare_reg): Accept comparison, extract part of it to...
	(gen_compare_reg_1): ... this.
	(gen_compare_operator): Delete.
	(gen_v9_scc): Accept separate destination, comparison code and arms.
	Do not use sparc_compare_op0/sparc_compare_op1.
	(emit_scc_insn, emit_conditional_branch_insn): New.
	(emit_v9_brxx): Make static.  Remove useless assertion.
	(sparc_emit_float_lib_cmp): Return RTL instead of calling
	emit_cmp_insn.
	(sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
	* config/sparc/sparc-protos.h (gen_compare_reg,
	sparc_emit_float_lib_cmp): Adjust prototype.
	(emit_scc_insn, emit_conditional_branch_insn): New.
	(gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
	* config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
	* config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
	iterators to the top.
	(cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
	snesi_special_extend, sCC, bCC, seqdi_special_trunc,
	snedi_special_trunc): Delete.
	(seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
	and snedi_special_trunc.
	(cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
	cbranchdi4, cbranch<F:mode>4): New.
	(mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
	here.  Use gen_compare_reg instead of gen_compare_operator.
	(conditional_trap): Replace with...
	(ctrapsi4, ctrapdi4): ... this.
	(stack_protect_test): Use cbranchcc4.

	* config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
	argument to rtx.
	* config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
	(spu_emit_branch_or_set): Get code/op0/op1 from second argument.
	Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
	from operands[0] or operands[3] depending on is_set.
	* config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
	* config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
	cmpdf, bCC), sCC: Remove.
	(cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
	cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
	cstoredf4): New.
	(mov<mode>cc): Accept ordered_comparison_operator, adjust call to
	spu_emit_branch_or_set.

	* config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
	Add two arguments.
	* config/stormy16/stormy16.h (xstormy16_compare_op0,
	xstormy16_compare_op1): Delete.
	* config/stormy16/stormy16.c (xstormy16_compare_op0,
	xstormy16_compare_op1): Delete.
	(xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
	Adjust calls.
	* config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
	(cmphi, cmpsi, bCC): Remove.

	* config/v850/v850.md (tstsi, cmpsi): Fold into...
	(*cmpsi): ... this one.
	(cbranchsi4, cstoresi4): New.
	(bCC expanders): Delete.
	(sCC insns): Fold into...
	(*setcc): ... this one.
	(casesi): Do not use gen_cmpsi and gen_bgtu.
	(various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
	(movsicc): Simplify.
	* config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.

	* config/vax/vax-protos.h (cond_name): New.
	(vax_output_conditional_branch): Remove.
	* config/vax/vax.c (cond_name): New.
	(vax_output_conditional_branch): Remove.
	* config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
	* config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
	(cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
	(bit<VAXint>): Wrap source with (compare).
	(b<code> and following unnamed pattern): Rename to *branch and
	*branch_reversed.  Change macroization to match_operator.
	(cbranch<VAXint>4, cbranch<VAXfp>4): New.

	* config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
	* config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
	Change last argument to machine_mode.
	(xtensa_expand_scc): Add machine_mode argument.
	* config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
	(gen_conditional_move, xtensa_expand_conditional_branch,
	xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
	instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
	Adjust operand numbers.
	* config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
	Delete.
	* config/xtensa/xtensa.md (any_cond, any_scc): Delete.
	(cmpsi, cmpsf, b<code>, s<code>): Delete.
	(cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.

2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (prepare_cmp_insn): Temporarily disable test that
	causes spurious differences between trunk and cond-optab branch.

2009-05-12  Alexandre Oliva  <aoliva@redhat.com>

	PR target/37137
	* doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.

2009-05-12  Alexandre Oliva  <aoliva@redhat.com>

	* tree.c (iterative_hash_pointer): Delete.
	(iterative_hash_expr): Short-circuit handling of NULL pointer.
	Hash UIDs and versions of SSA names.  Don't special-case built-in
	function declarations.

2009-05-11  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/40103
	* graphite.c: Force -Wc++-compat to only be a warning before
	#including "cloog/cloog.h".

2009-05-11  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.

2009-05-11  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-ivcanon.c: Include target.h
	(struct loop_size): new structure.
	(constant_after_peeling): New predicate.
	(tree_estimate_loop_size): New function.
	(estimated_unrolled_size): Rewrite for new estimates.
	(try_unroll_loop_completely): Use new estimates.
	* Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h

2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu-c.c (spu_categorize_keyword): Update for recent
	libcpp interface change.
	(spu_macro_to_expand): Likewise.

2009-05-11  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/40026
	* gimplify.c (gimplify_init_constructor): Change initial conditional
	to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
	optimize_compound_literals_in_ctor.

2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
	New devices.
	* doc/invoke.texi (M680x0 Options): Document new coldfire cpus.

2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-data-refs.c (vect_analyze_group_access): Use
	HOST_WIDE_INT for gap.

2009-05-11  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/40074
	* tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
	account in group size and step comparison.

2009-05-11  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Strip now incorrect comment.
	(execute_function_todo): Do not set PROP_alias.
	* tree-pass.h (PROP_alias): Remove.
	* tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
	* tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
	* tree-nrv.c (pass_return_slot): Likewise.
	* tree-object-size.c (pass_object_sizes): Likewise.
	* tree-ssa-dom.c (pass_dominator): Likewise.
	(pass_phi_only_cprop): Likewise.
	* tree-ssa-dse.c (pass_dse): Likewise.
	* tree-ssa-phiopt.c (pass_phiopt): Likewise.
	(pass_cselim): Likewise.
	* tree-ssa-pre.c (pass_pre): Likewise.
	(pass_fre): Likewise.
	* tree-ssa-reassoc.c (pass_reassoc): Likewise.
	* tree-ssa-sink.c (pass_sink_code): Likewise.
	* tree-stdarg.c (pass_stdarg): Likewise.
	* tree-tailcall.c (pass_tail_calls): Likewise.
	* tree-vrp.c (pass_vrp): Likewise.

2009-05-10  Ian Lance Taylor  <iant@google.com>

	* basic-block.h (enum profile_status): Break out of struct
	control_flow_graph.
	* cgraph.h (struct inline_summary): Break out of struct
	cgraph_local_info.
	* cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
	of struct cgraph_order_sort.
	* combine.c (enum undo_kind): New enum, broken out of struct undo.
	* cse.c (struct branch_path): Break out of struct
	cse_basic_block_data.
	* except.h (enum eh_region_type): Break out of struct eh_region.
	* gcc.c (enum add_del): Break out of struct modify_target.
	* genrecog.c (enum decision_type): Break out of struct decision_test.
	* ggc-page.c (struct ggc_pch_ondisk): Break out of struct
	ggc_pch_data.
	* matrix-reorg.c (struct free_info): Break out of struct matrix_info.
	* regmove.c (enum match_use): New enum, broken out of struct match.
	* sched-int.h (enum post_call_group): New enum, broken out of
	struct deps.
	(struct deps_reg): Break out of struct deps.
	* target.h (struct asm_int_op): Break out of struct gcc_target.
	* tree-eh.c (struct goto_queue_node): Break out of struct
	leh_tf_state.
	* tree-inline.h (enum copy_body_cge_which): Break out of
	copy_body_data.
	* tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.

	* c-decl.c (in_struct, struct_types): New static variables.
	(pushtag): Add loc parameter.  Change all callers.
	(lookup_tag): Add ploc parameter.  Change all callers.
	(check_compound_literal_type): New function.
	(parser_xref_tag): Add loc parameter.  Change all callers.  If
	-Wc++-compat, warn about struct/union/enum types defined within a
	struct or union.
	(start_struct): Add enclosing_in_struct, enclosing_struct_types,
	and loc parameters.  Change all callers.  Change error calls to
	error_at, using loc.  For a redefinition, if the location of the
	original definition is known, report it.  Set in_struct and
	struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
	(finish_struct): Add new parameters enclosing_in_struct and
	enclosing_struct_types.  Change all callers.  Set
	C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
	in the struct.  If in a struct, add this struct to struct_types.
	(start_enum): Add loc parameter.  Change all callers.  Use
	error_at for errors, using loc.  For a redefinition, if the
	location of the original definition is known, report it.  If in a
	struct, add this enum type to struct_types.  If -Wc++-compat warn
	if in sizeof, typeof, or alignof.
	* c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
	(enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
	(c_parser_enum_specifier): Get enum location for start_enum.
	(c_parser_struct_or_union_specifier): Get struct location for
	start_struct.  Save in_struct and struct_types status between
	start_struct and finish_struct.
	(c_parser_cast_expression): Get location of cast.
	(c_parser_alignof_expression): Get location of type.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Add type_loc
	parameter.  Change all callers.  Call check_compound_literal_type.
	Use type_loc for error about variable size type.
	* c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
	of an enum constant from an enum type defined in a struct or union.
	(c_cast_expr): Add loc parameter.  Change all callers.  If
	-Wc++-compat, warn about defining a type in a cast.
	* c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
	(start_enum, start_struct, finish_struct): Update declarations.
	(parser_xref_tag, c_cast_expr): Update declarations.
	(check_compound_literal_type): Declare.

2009-05-11  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
	for recent libcpp interface change.
	(rs6000_macro_to_expand): Likewise.

2009-05-10  Michael Matz  <matz@suse.de>

	PR target/40031
	* config/arm/arm.c (require_pic_register): Emit on entry edge,
	not at entry of function.

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

	PR tree-optimization/40081
	Revert
	* tree-sra.c (instantiate_element): Instantiate scalar replacements
	using the main variant of the element type.  Do not fiddle with
	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.

	* tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
	structs with volatile fields.

2009-05-10  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
	(estimate_move_cost): Assert that it does not get called for
	VOID_TYPE_P.
	(estimate_num_insns): Skip VOID types in argument handling.
	(optimize_inline_calls): Delete unreachable blocks and verify that
	callgraph is valid.

2009-05-10  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
	* cgraph.c (cgraph_mark_address_taken_node): New function.
	(dump_cgraph_node): Dump new flag.
	* cgraph.h (struct cgraph_node): Add address_taken.
	(cgraph_mark_address_taken_node): New function.
	* ipa.c (cgraph_postorder): Prioritize functions with address taken
	since new direct calls can be born.

2009-05-10  Joseph Myers  <joseph@codesourcery.com>

	* c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
	tok->val.node.node.

2009-05-10  Jan Hubicka  <jh@suse.cz>

	PR middle-end/40084
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
	argument; rewrite.
	(cgraph_update_edges_for_call_stmt): Take old_decl argument.
	* cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
	* tree-inline.c (copy_bb): Set frequency correctly.
	(fold_marked_statements): Update call to
	cgraph_update_edges_for_call_stmt.

2009-05-10  Joseph Myers  <joseph@codesourcery.com>

	* config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
	identifiers in diagnostics.
	* config/arm/arm.c (arm_handle_fndecl_attribute,
	arm_handle_isr_attribute): Likewise.
	* config/avr/avr.c (avr_handle_progmem_attribute,
	avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
	* config/bfin/bfin.c (handle_int_attribute,
	bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
	bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
	bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
	Likewise.
	* config/darwin.c (darwin_handle_kext_attribute,
	darwin_handle_weak_import_attribute): Likewise.
	* config/h8300/h8300.c (h8300_handle_fndecl_attribute,
	h8300_handle_eightbit_data_attribute,
	h8300_handle_tiny_data_attribute): Likewise.
	* config/i386/i386.c (ix86_handle_cconv_attribute,
	ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
	* config/i386/winnt.c (ix86_handle_shared_attribute,
	ix86_handle_selectany_attribute): Likewise.
	* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
	* config/m32c/m32c.c (function_vector_handler): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
	m68hc11_handle_fntype_attribute): Likewise.
	* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
	* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
	* config/mips/mips.c (mips_insert_attributes,
	mips_merge_decl_attributes, mips_expand_builtin): Likewise.
	* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
	rs6000_handle_struct_attribute): Likewise.
	* config/sh/sh.c (sh_insert_attributes,
	sh_handle_resbank_handler_attribute,
	sh_handle_interrupt_handler_attribute,
	sh2a_handle_function_vector_handler_attribute,
	sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
	Likewise.
	* config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
	* config/spu/spu.c (spu_handle_fndecl_attribute,
	spu_handle_vector_attribute): Likewise.
	* config/stormy16/stormy16.c
	(xstormy16_handle_interrupt_attribute): Likewise.
	* config/v850/v850-c.c (ghs_pragma_section): Likewise.
	* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.

2009-05-10  Joseph Myers  <joseph@codesourcery.com>

	* pretty-print.h (struct pretty_print_info): Add translate_identifiers.
	(pp_translate_identifiers): New.
	(pp_identifier): Only conditionally translate identifier to locale
	character set.
	* pretty-print.c (pp_construct): Set pp_translate_identifiers.
	(pp_base_tree_identifier): Only conditionally translate identifier
	to locale character set.
	* c-pretty-print.c (M_): Define.
	(pp_c_type_specifier, pp_c_primary_expression): Mark English
	fragments for conditional translation with M_.
	* tree-pretty-print.c (maybe_init_pretty_print): Disable
	identifier translation.

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

	PR tree-optimization/40081
	* tree-sra.c (instantiate_element): Instantiate scalar replacements
	using the main variant of the element type.  Do not fiddle with
	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.

2009-05-09  Jan Hubicka  <jh@suse.cz>

	PR middle-end/40080
	* cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
	indirect calls; verify cgraph afterwards.

2009-05-09  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/40082
	* ipa.c (update_inlined_to_pointer): New function.
	(cgraph_remove_unreachable_nodes): Use it.

2009-05-09  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (struct leh_state): Remove prev_try.
	(lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
	not track prev_try.
	* except.c (gen_eh_region_cleanup, duplicate_eh_regions,
	copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
	remove_eh_handler_and_replace, foreach_reachable_handler,
	verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
	* except.h (struct eh_region): Remove eh_region_u_cleanup.
	(gen_eh_region_cleanup): Update prototype.

2009-05-09  Jan Hubicka  <jh@suse.cz>

	PR middle-end/40043
	* except.c (copy_eh_region): Always set prev_try.
	(redirect_eh_edge_to_label): Find outer try.
	(foreach_reachable_handler): When looking for prev try
	handle case where previous try is not going to be taken.

2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR tree-optimization/40049
	* tree-vect-stmts.c (vectorizable_operation): If the machine has
	only vector/vector shifts, convert the type of the constant to the
	appropriate type to avoid building incorrect trees, which
	eventually have problems with garbage collection.

2009-05-08  Joseph Myers  <joseph@codesourcery.com>

	* fold-const.c (fold_binary): Do not fold multiplication by 1 or
	-1 for complex floating-point types if honoring signed zeros.

2009-05-08  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
	argument; handle correctly when profile is absent.
	(build_cgraph_edges): Update.
	(rebuild_cgraph_edges): Update.
	* cgraph.c: Do not include varray.h.
	(cgraph_set_call_stmt_including_clones): New function.
	(cgraph_create_edge_including_clones): Likewise
	(cgraph_update_edges_for_call_stmt_node): New static cfunction.
	(cgraph_update_edges_for_call_stmt): Handle clones.
	(cgraph_remove_node): Handle clone tree.
	(cgraph_remove_node_and_inline_clones): New function.
	(dump_cgraph_node): Dump clone tree.
	(cgraph_clone_node): Handle clone tree.
	(clone_function_name): Bring here from tree-inline.c.
	(cgraph_create_virtual_clone): New function.
	* cgraph.h (ipa_replace_map): Move here from ipa.h.
	(cgraph_clone_info): New function.
	(strut cgraph_node): Add clone_info and new clone tree pointers.
	(cgraph_remove_node_and_inline_clones,
	cgraph_set_call_stmt_including_clones,
	cgraph_create_edge_including_clones,
	cgraph_create_virtual_clone): Declare.
	(cgraph_function_versioning): Use VEC argument.
	(compute_call_stmt_bb_frequency): Update prototype.
	(cgraph_materialize_all_clones): New function.
	* ipa-cp.c (ipcp_update_cloned_node): Remove.
	(ipcp_create_replace_map): Update to VECtors.
	(ipcp_update_callgraph): Use virtual clones.
	(ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
	(ipcp_update_profiling): Do not update local profiling.
	(ipcp_insert_stage): Use VECtors and virtual clones.
	* cgraphunit.c (verify_cgraph_node): Verify clone tree.
	(clone_of_p): New function.
	(cgraph_preserve_function_body_p): Use clone tree.
	(cgraph_optimize): Materialize clones.
	(cgraph_function_versioning): Update for VECtors.
	(save_inline_function_body): Use clone tree.
	(cgraph_materialize_clone): New function.
	(cgraph_materialize_all_clones): Likewise.
	* ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
	* ipa.c: Include gimple.h.
	(cgraph_remove_unreachable_nodes): Use clone tree.
	* ipa-prop.c (ipa_note_param_call): Update call to
	compute_call_stmt_bb_frequencycall.
	* ipa-prop.h (ipa_replace_map): Move to cgraph.h.
	* tree-inline.c: Do not include varray.h or gt-tree-inline.h.
	(copy_bb): Handle updating of clone tree; add new edge when new call
	appears.
	(expand_call_inline): Be strict about every call having edge.
	(clone_fn_id_num, clone_function_name): Move to cgraph.c.
	(delete_unreachable_blocks_update_callgraph): New function.
	(tree_function_versioning): Use VECtors; always remove unreachable
	blocks and fold conditionals.
	* tree-inline.h: Do not include varray.h.
	(tree_function_versioning): Remove.
	* Makefile.in (GTFILES): Remove tree-inline.c
	* passes.c (do_per_function): Do only functions having body.
	* ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
	tree.

2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
	    Andrew Morrow  <acm@google.com>

	PR c/36892
	* c-common.c (c_common_attribute_table): Permit deprecated
	attribute to take an optional argument.
	(handle_deprecated_attribute): If the optional argument to
	__attribute__((deprecated)) is not a string ignore the attribute
	and emit a warning.

	* c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
	* c-typeck.c (build_component_ref): Likewise.
	(build_external_ref): Likewise.

	* toplev.c (warn_deprecated_use): Add an attribute argument.
	Emit the message associated with __attribute__((deprecated)).

	* toplev.h (warn_deprecated_use): Updated.

	* doc/extend.texi: Document new optional parameter to
	__attribute__((deprecated))

2009-05-08  Michael Eager <eager@eagercon.com>

	* config/rs6000/rs6000.md (*movdf_softfloat32): replace
	!TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.

2009-05-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40062
	* tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
	Avoid exponential behavior.

2009-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/33928
	PR 26854
	* fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
	process_uses, build_single_def_use_links): New.
	(update_df): Update use_def_ref.
	(forward_propagate_into): Use get_def_for_use instead of use-def
	chains.
	(fwprop_init): Call build_single_def_use_links and let it initialize
	dataflow.
	(fwprop_done): Free use_def_ref.
	(fwprop_addr): Eliminate duplicate call to df_set_flags.
	* df-problems.c (df_rd_simulate_artificial_defs_at_top,
	df_rd_simulate_one_insn): New.
	(df_rd_bb_local_compute_process_def): Update head comment.
	(df_chain_create_bb): Use the new RD simulation functions.
	* df.h (df_rd_simulate_artificial_defs_at_top,
	df_rd_simulate_one_insn): New.
	* opts.c (decode_options): Enable fwprop at -O1.
	* doc/invoke.texi (-fforward-propagate): Document this.

2009-05-08  Joseph Myers  <joseph@codesourcery.com>

	PR c/24581
	* c-typeck.c (build_binary_op): Handle arithmetic between one real
	and one complex operand specially.
	* tree-complex.c (some_nonzerop): Do not identify a real value as
	zero if flag_signed_zeros.

2009-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/33928
	* loop-invariant.c (record_use): Fix && vs. || mishap.

2009-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/33928
	* loop-invariant.c (struct use): Add addr_use_p.
	(struct def): Add n_addr_uses.
	(struct invariant): Add cheap_address.
	(create_new_invariant): Set cheap_address.
	(record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
	(record_uses): Pass df_ref to record_use.
	(get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
	used only as such.

2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c: Do not include c-pragma.h.

2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c: Remove include of c-common.h.

2009-05-07  Janis Johnson  <janis187@us.ibm.com>

	PR c/39037
	* c-common.h (mark_valid_location_for_stdc_pragma,
	valid_location_for_stdc_pragma_p, set_float_const_decimal64,
	clear_float_const_decimal64, float_const_decimal64_p): New.
	* c.opt (Wunsuffixed-float-constants): New.
	* c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
	unsuffixed float constant, handle new warning.
	* c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
	* c-decl.c (c_scope): New flag float_const_decimal64.
	(set_float_const_decimal64, clear_float_const_decimal64,
	float_const_decimal64_p): New.
	(push_scope): Set new flag.
	* c-parser.c (c_parser_translation_unit): Mark when it's valid
	to use STDC pragmas.
	(c_parser_external_declaration): Ditto.
	(c_parser_compound_statement_nostart): Ditto.
	* c-pragma.c (valid_location_for_stdc_pragma,
	mark_valid_location_for_stdc_pragma,
	valid_location_for_stdc_pragma_p, handle_stdc_pragma,
	handle_pragma_float_const_decimal64): New.
	(init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
	* cp/semantics.c (valid_location_for_stdc_pragma_p,
	set_float_const_decimal64, clear_float_const_decimal64,
	float_const_decimal64_p): New dummy functions.
	* doc/extend.texi (Decimal Float): Remove statement that the
	pragma, and suffix for double constants, are not supported.
	* doc/invoke.texi (Warning Options): List new option.
	(-Wunsuffixed-float-constants): New.

2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>

	* config/i386/i386.c: Do not include c-common.h.

2009-05-07  Mark Heffernan  <meheff@google.com>

	* doc/invoke.texi (Debugging Options): Document change of debugging
	dump location.
	* opts.c (decode_options): Make dump_base_name relative to
	aux_base_name directory.

2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>

	* config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
	* config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.

2009-05-07  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (install-plugin): Simplify a bit.

2009-05-07  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (OBJS-common): Add regcprop.o.
	(regcprop.o): New.
	* timevar.def (TV_CPROP_REGISTERS): New.
	* regrename.c (regrename_optimize): Return 0.
	(rest_of_handle_regrename): Delete.
	(pass_rename_registers): Point to regrename_optimize.
	(struct value_data_entry, struct value_data,
	kill_value_one_regno, kill_value_regno, kill_value,
	set_value_regno, init_value_data, kill_clobbered_value,
	kill_set_value, kill_autoinc_value, copy_value,
	mode_change_ok, maybe_mode_change, find_oldest_value_reg,
	replace_oldest_value_reg, replace_oldest_value_addr,
	replace_oldest_value_mem, copyprop_hardreg_forward_1,
	debug_value_data, validate_value_data): Move...
	* regcprop.c: ... here.
	(rest_of_handle_cprop): Delete.
	(pass_cprop_hardreg): Point to copyprop_hardreg_forward.

2009-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/40057
	* dojump.c (prefer_and_bit_test): Use immed_double_const instead of
	GEN_INT for 1 << bitnum.
	(do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
	build_int_cst_type.

2009-05-07  Uros Bizjak  <ubizjak@gmail.com>

	* doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
	Remove wrong description of "nand" operation.

2009-05-06  Richard Guenther  <rguenther@suse.de>
	    Adam Nemet  <anemet@caviumnetworks.com>

	* gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
	comment.  Add that if LHS is not a gimple register, then RHS1 has
	to be a single object (GIMPLE_SINGLE_RHS).

2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>

	* expr.c (get_def_for_expr): Move it up in the file.
	(store_field): When expanding a bit-field store, look at the
	defining gimple stmt for the masking conversion.

2009-05-06  Janis Johnson  <janis187@us.ibm.com>

	PR middle-end/39986
	* dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
	decode_decimal64, encode_decimal128, decode_decimal128): Avoid
	32-bit memcpy into long.

2009-05-06  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
	(one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
	new_reg_loc_descr.
	(loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
	instead of appending DW_OP_deref*.

2009-05-06  Michael Matz  <matz@suse.de>

	PR middle-end/40021
	* cfgexpand.c (maybe_cleanup_end_of_block): New static function.
	(expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.

2009-05-06  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (install-plugin): Fix srcdir handling.

2009-05-06  Andrey Belevantsev  <abel@ispras.ru>

	* tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
	when processing for not_regs_needed bitmap.
	* gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
	handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while
	handling it for rhs.

2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (unnamed inc/dec peephole): Use
	optimize_insn_for_size_p instead of optimize_size.
	* config/i386/predicates.md (incdec_operand): Likewise.
	(aligned_operand): Likewise.
	* config/i386/sse.md (divv8sf3): Likewise.
	(sqrtv8sf2): Likewise.

2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_build_signbit_mask): Make it static.

	* config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.

2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*avx_<code><mode>3_finite): Replace
	ssemodesuffixf2c with avxmodesuffixf2c.

2009-05-06  Joseph Myers  <joseph@codesourcery.com>

	PR c/40032
	* c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.

2009-05-05  Jakub Jelinek  <jakub@redhat.com>

	* tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
	(struct tree_base): Adjust spacing for 8 bit boundaries.
	(struct tree_decl_common): Add decl_by_reference_flag bit.
	(DECL_BY_REFERENCE): Adjust.
	* print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
	print DECL_BY_REFERENCE bit.
	* dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
	* dwarf2out.c (loc_by_reference, gen_decl_die): Check
	DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
	(gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
	unconditionally.

	PR middle-end/39666
	* gimplify.c (gimplify_switch_expr): If case labels cover the whole
	range of the type, but default label is missing, add it with one
	of the existing labels instead of adding a new label for it.

2009-05-05  Joseph Myers  <joseph@codesourcery.com>

	* dwarf.h: Remove.

2009-05-05  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (enable_plugin, plugin_includedir): New.
	(install): Depend on install-plugin.
	(PLUGIN_HEADERS): New.
	(install-plugin): New.
	* config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.

2009-05-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40022
	* tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
	the only vuse.
	(phivn_valid_p): Fix tuplification error, simplify.
	(phiprop_insert_phi): Add dumps.
	(propagate_with_phi): Simplify.

2009-05-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40023
	* builtins.c (gimplify_va_arg_expr): Properly build the address.

2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>

	* tree.h (strip_float_extensions): Remove duplicate declaration.
	(build_low_bits_mask, debug_fold_checksum, expand_function_end,
	expand_function_start, stack_protect_prologue, stack_protect_epilogue,
	block_ultimate_origin): Rearrange the declarations line to match the
	comment that indicates the .c file which the functions are defined.
	(dwarf2out_*, set_decl_rtl): Add comment.
	(get_base_address): Adjust comment.
	(change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
	declarations line and add comment.
	(is_builtin_name): Add blank after function name, for clarity.

2009-05-04  Joseph Myers  <joseph@codesourcery.com>

	* attribs.c (decl_attributes): Use %qE for identifiers in
	diagnostics.
	* cgraphunit.c (verify_cgraph_node): Translate function names to
	locale character set in diagnostics.
	* coverage.c (get_coverage_counts): Use %qE for identifiers in
	diagnostics.
	* doc/invoke.texi (-finstrument-functions-exclude-function-list):
	Document that functions are named in UTF-8.
	* expr.c (expand_expr_real_1): Translate function names to locale
	character set in diagnostics.
	* gimplify.c (omp_notice_variable, omp_is_private,
	gimplify_scan_omp_clauses): Use %qE for identifiers in
	diagnostics.
	* langhooks.c (lhd_print_error_function): Translate function names
	to locale character set.
	* langhooks.h (decl_printable_name): Document that return value is
	in internal character set.
	* stmt.c: Include pretty-print.h
	(tree_conflicts_with_clobbers_p): Use %qE for identifiers in
	diagnostics.
	(resolve_operand_name_1): Translate named operand name to locale
	character set.
	* stor-layout.c (finalize_record_size): Use %qE for identifiers in
	diagnostics.
	* toplev.c (announce_function): Translate function names to locale
	character set.
	(warn_deprecated_use): Use %qE for identifiers in diagnostics.
	(default_tree_printer): Use pp_identifier or translate identifiers
	to locale character set.  Mark "<anonymous>" for translation.
	* tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
	for identifiers in diagnostics.
	* tree.c (handle_dll_attribute): Use %qE for identifiers in
	diagnostics.
	* varasm.c (output_constructor): Use %qE for identifiers in
	diagnostics.

2009-05-04  Rafael Avila de Espindola  <espindola@google.com>

	* configure.ac: use ` ` instead of $()
	* configure: Regenerate.

2009-05-05  Ben Elliston  <bje@au.ibm.com>

	* config/pa/linux-atomic.c: Eliminate conditional include of
	errno.h on non-LP64 systems to simplify build requirements.

2009-05-04  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (handle_mode_attribute): Use %qE for identifiers in
	diagnostics.
	* c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
	and pass value to identifier_to_locale.
	(warn_variable_length_array): Make name a tree.
	(grokdeclarator): Separate diagnostic texts for named and unnamed
	declarators.  Use %qE for named declarators.
	* c-parser.c (c_lex_one_token): Use %qE for identifiers in
	diagnostics.
	* c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
	identifiers in diagnostics.
	* c-typeck.c (push_member_name, start_init): Pass identifiers to
	identifier_to_locale.  Mark "anonymous" strings for translation.

2009-05-04  Michael Eager <eager@eagercon.com>

	* config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
	address for DImode/DFmode only if double-precision FP regs.

2009-05-04  Michael Eager <eager@eagercon.com>

	* config/rs6000/rs6000.c (rs6000_libcall_value): Add
	TARGET_SINGLE_FLOAT check.

2009-05-04  Michael Eager <eager@eagercon.com>

	* config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.

2009-05-04  Michael Eager <eager@eagercon.com>

	* gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx
	* config/rs6000/t-xilinx: New

2009-05-04  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
	* gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/explow.c (memory_address): Use target hook.
	* gcc/targhooks.c (default_legitimize_address): New.
	* gcc/targhooks.h (default_legitimize_address): New.
	* gcc/target.h (legitimize_address): New.
	* gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
	(TARGET_INITIALIZER): Include it.
	* gcc/system.h (LEGITIMIZE_ADDRESS): Poison.

	* config/bfin/bfin-protos.h (legitimize_address): Remove.
	* config/bfin/bfin.c (legitimize_address): Remove.
	* config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
	Remove.
	* config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
	* config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.

	* gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
	THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.

	* gcc/config/s390/s390-protos.h (legitimize_address): Delete.
	* gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
	* gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
	* gcc/config/i386/i386-protos.h (legitimize_address): Delete.
	* gcc/config/avr/avr-protos.h (legitimize_address): Delete.
	* gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
	* gcc/config/score/score-protos.h (score_legitimize_address): Delete.
	* gcc/config/arm/arm-protos.h (arm_legitimize_address,
	(thumb_legitimize_address): Delete.
	* gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
	* gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
	* gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
	* gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
	* gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
	* gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
	Delete.
	* gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
	Delete.

	* config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
	* config/m32c/m32c.c (m32c_legitimize_address): Standardize.
	* config/m32r/m32r.c (m32r_legitimize_address): New.
	* config/m68k/m68k.c (m68k_legitimize_address): New.
	* config/score/score.c (score_legitimize_address): Standardize.
	* config/score/score3.c (score3_legitimize_address): Standardize.
	* config/score/score3.h (score3_legitimize_address): Adjust.
	* config/score/score7.c (score7_legitimize_address): Standardize.
	* config/score/score7.h (score7_legitimize_address): Adjust.
	* config/sh/sh.c (sh_legitimize_address): New.
	* config/iq2000/iq2000.c (iq2000_legitimize_address): New.

	* gcc/config/s390/s390.c (legitimize_address): Rename to...
 	(s390_legitimize_address): ... this.
	* gcc/config/sparc/sparc.c (legitimize_address): Rename to...
	(sparc_legitimize_address): ... this.
	* gcc/config/i386/i386.c (legitimize_address): Rename to...
	(ix86_legitimize_address): ... this.
	* gcc/config/avr/avr.c (legitimize_address): Rename to...
	(avr_legitimize_address): ... this.
	* gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
	(mn10300_legitimize_address): ... this.
	* config/alpha/alpha.c (alpha_legitimize_address): Wrap...
	(alpha_legitimize_address_1): ... the old alpha_legitimize_address.
	(alpha_expand_mov): Adjust call.

	* config/frv/frv.c (frv_legitimize_address): Return x on failure.
	* config/spu/spu.c (spu_legitimize_address): Likewise.
	* config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.

2009-05-04  Joseph Myers  <joseph@codesourcery.com>

	* intl.c (locale_encoding, locale_utf8): New.
	(gcc_init_libintl): Initialize locale_encoding and locale_utf8.
	* intl.h (locale_encoding, locale_utf8): Declare.
	* pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
	(pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
	New.
	* pretty-print.h (pp_identifier): Call identifier_to_locale on ID
	argument.
	(pp_tree_identifier): Define to call pp_base_tree_identifier.
	(pp_base_tree_identifier): Declare as function.
	(identifier_to_locale): Declare.
	* Makefile.in (pretty-print.o): Update dependencies.
	* varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.

2009-05-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40015
	* builtins.c (fold_builtin_memory_op): Do not decay to element
	type if the size matches the whole array.

2009-05-04  Kazu Hirata  <kazu@codesourcery.com>

	* expmed.c (synth_mult): When trying out a shift, pass the result
	of a signed shift.

2009-05-04  Kazu Hirata  <kazu@codesourcery.com>

	* expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
	(shiftsub1_cost): New.
	(init_expmed): Compute shiftsub1_cost.
	(synth_mult): Optimize multiplications by constants of the form
	-(2^^m-1) for some constant positive integer m.

2009-05-03  Richard Guenther  <rguenther@suse.de>

	PR c/39983
	* c-typeck.c (array_to_pointer_conversion): Do not built
	ADDR_EXPRs of arrays of pointer-to-element type.
	* c-gimplify.c (c_gimplify_expr): Revert change fixing
	up wrong ADDR_EXPRs after-the-fact.
	* c-common.c (strict_aliasing_warning): Strip pointer
	conversions for obtaining the original type.
	* builtins.c (fold_builtin_memset): Handle array types.
	(fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
	and array types

2009-05-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/23329
	* tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
	Do not lose casts from array types with unknown extent to array
	types with known extent.
	* tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
	alias set compatibility.

2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* flags.h (extra_warnings): Delete.
	* toplev.c (process_options): Handle Wuninitialized here.
	* opts.c (extra_warnings): Delete.
	(set_Wextra): Delete.
	(common_handle_option): -Wextra can be handled automatically.
	* c-opts.c (c_common_handle_option): Delete obsolete code.
	(c_common_post_options): Simplify comment.
	* common.opt (W): Add Var.
	(Wextra): Add Var.
	(Wuninitialized): Initialize to -1.

2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
	    Richard Guenther  <rguenther@suse.de>

	* expr.c (get_def_for_expr): New function.
	(expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
	SSA rather than trees.
	<MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
	TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).

2009-05-03  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (reswords): Add _Imaginary.
	* c-common.c (enum rid): Add RID_IMAGINARY.

2009-05-03  Paolo Bonzini  <bonzini@gnu.org>

	* tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
	Patch by Richard Guenther.

2009-05-03  Anatoly Sokolov  <aesok@post.ru>

	* defaults.h (FRAME_POINTER_REQUIRED): Provide default.
	* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
	* config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
	* config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
	* config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
	* config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
	* config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
	* config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
	* config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
	* config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
	* config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
	* config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
	* config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
	* config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
	* config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
	* config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
	* config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
	* config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.

2009-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39940
	* tree-ssa-pre.c (eliminate): Make sure we may propagate before
	doing so.

2009-05-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40001
	* tree-ssa.c (execute_update_addresses_taken): Properly check
	if we can mark a variable DECL_GIMPLE_REG_P.
	* gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
	back to the end of the function.
	(is_gimple_reg_type): Remove complex type special casing.
	* gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
	if not optimizing.

2009-05-02  Ben Elliston  <bje@au.ibm.com>

	* doc/collect2.texi (Collect2): Document search path behaviour
	when configured with --with-ld.

2009-05-02  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
	parameter; update callers.
	(coalesce_cost_edge): EH edges are costier because they needs
	splitting even if not critical and even more costier when there are
	multiple EH predecestors.

2009-05-02  Jan Hubicka  <jh@suse.cz>

	* except.c (remove_eh_handler_and_replace): Handle updating after
	removing TRY blocks.

2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.

2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>

	* varasm.c: Do not include c-pragma.h.
	* attribs.c: Do not incude c-common.h.

2009-05-01  Michael Matz  <matz@suse.de>

	* calls.c (initialize_argument_information): Handle SSA names like
	decls with a non MEM_P DECL_RTL.

2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>

	* ipa-reference.c: Do not include c-common.h, include splay-tree.h.
	* ipa-utils.c: Likewise.
	* ipa-type-escape.c: Likewise.
	* cgraphunit.c Do not include c-common.h.
	* ipa-pure-const.c: Likewise.
	* tree-if-conv.c: Likewise.
	* matrix-reorg.c: Do not include c-common.h and c-tree.h.
	* ipa-struct-reorg.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-ssa-structalias.c: Likewise.

2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>

	* store-motion.c: Many cleanups to make this pass a first-class
	citizen instead of an appendix to gcse load motion.  Add TODO list
	to make this pass faster/cleaner/better.

	(struct ls_expr): Post gcse.c-split cleanups.
	Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
	"stores" field to "avail_stores".
	(pre_ldst_mems): Rename to store_motion_mems.
	(pre_ldst_table): Rename to store_motion_mems_table.
	(pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
	(pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
	(ldst_entry): Rename to st_expr_entry, update users.
	(free_ldst_entry): Rename to free_st_expr_entry, update users.
	(free_ldst_mems): Rename to free_store_motion_mems, update users.
	(enumerate_ldsts): Rename to enumerate_store_motion_mems,
	update caller.
	(first_ls_expr): Rename to first_st_expr, update users.
	(next_ls_expr): Rename to next_st_expr, update users.
	(print_ldst_list): Rename to print_store_motion_mems.  Print names of
	fields properly for store motion instead of names inherited from load
	motion in gcse.c.
	(ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
	(LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
	are done with it.

	(ae_kill): Rename to st_kill, update users.
	(ae_gen): Rename to st_avloc, update users.
	(transp): Rename to st_transp, update users.
	(pre_insert_map): Rename to st_insert_map, update users.
	(pre_delete_map): Rename to st_delete_map, update users.
	(insert_store, build_store_vectors, free_store_memory,
	one_store_motion_pass): Update for abovementioned changes.

	(gcse_subst_count, gcse_create_count): Remove.
	(one_store_motion_pass): New statistics counters "n_stores_deleted"
	and "n_stores_created", local variables.

	(extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
	use for_each_rtx.

	(regvec, compute_store_table_current_insn): Remove.
	(reg_set_info, reg_clear_last_set): Remove.
	(compute_store_table): Use DF caches instead of local dataflow
	solvers.

2009-05-01  Joseph Myers  <joseph@codesourcery.com>

	* c-objc-common.c (c_tree_printer): Print identifiers with
	pp_identifier, not pp_string.  Mark "({anonymous})" for
	translation.
	* c-pretty-print.c (pp_c_ws_string): New.
	(pp_c_cv_qualifier, pp_c_type_specifier,
	pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
	pp_c_storage_class_specifier, pp_c_function_specifier,
	pp_c_attributes, pp_c_bool_constant, pp_c_constant,
	pp_c_primary_expression, pp_c_postfix_expression,
	pp_c_unary_expression, pp_c_shift_expression,
	pp_c_relational_expression, pp_c_equality_expression,
	pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
	use pp_string and pp_c_ws_string in place of pp_identifier and
	pp_c_identifier for non-identifiers.  Mark English strings for
	translation.
	* c-pretty-print.h (pp_c_ws_string): Declare.

2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
	    Roland McGrath <roland@redhat.com>

	* configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
	(ENABLE_LD_BUILDID): New configuration option.
	* gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
	(LINK_BUILDID_SPEC): New macro.
	(init_spec): If defined, prepend it between LINK_EH_SPEC and
	link_spec.
	* doc/install.texi: Document --enable-linker-build-id option.
	* configure: Rebuild.
	* config.in: Rebuild.

2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (FRAME_GROWS_DOWNWARD,
	MIPS_GP_SAVE_AREA_SIZE): Define new macros.
	(STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
	MIPS_GP_SAVE_AREA_SIZE.
	* config/mips/mips.c (struct mips_frame_info): Update comment
	before arg_pointer_offset and hard_frame_pointer_offset.
	(mips_compute_frame_info): Update diagram before function: to
	correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
	indicate the position of frame_pointer_rtx with -fstack-protector and
	to show args_size.  Don't allocate cprestore area for leaf functions
	if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
	cprestore_size.
	(mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.

2009-04-30  Michael Matz  <matz@suse.de>

	PR tree-optimization/39955
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.

2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>

	* ira.c (setup_cover_and_important_classes):  Use safe macro
	REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
	directly.
	* genpreds.c (write_tm_preds_h):  Output suitable definition of
	REG_CLASS_FOR_CONSTRAINT.

2009-04-30  Rafael Avila de Espindola  <espindola@google.com>

	* alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
	instead of an int.
	* bitmap.c (bitmap_descriptor): Likewise.
	* ggc-common.c (loc_descriptor): Likewise.
	* varray.c (varray_descriptor): Likewise.
	* vec.c (vec_descriptor): Likewise.

2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.in (dce.o): Add $(EXCEPT_H).
	* dce.c: Include except.h and delete redundant vector definitions.
	(deletable_insn_p): Return false for non-call insns that can throw
	if DF is running.

2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (ae_gen): Remove.
	(can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
	and make non-static function to make it available in store-motion.c.
	Update call sites with search-and-replace.
	(enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
	extract_mentioned_regs, extract_mentioned_regs_helper,
	find_moveable_store, compute_store_table, load_kills_store, find_loads,
	store_killed_in_insn, store_killed_after, store_killed_before,
	build_store_vectors, insert_insn_start_basic_block, insert-store,
	remove_reachable_equiv_notes, replace_store_insn, delete_store,
	free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
	execute_rtl_store_motion, pass_rtl_store_motion): Move to...
	* store-motion.c: ...new file.  Also copy data structures from gcse.c
	and clean up to remove parts not used by store motion.
	* rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
	* Makefile.in (store-motion.o): New rule. Add to OBJS-common.

2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/38571
	* config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
	when optimizing for size.

2009-04-30  Hans-Peter Nilsson  <hp@axis.com>

	* gcse.c (gcse_constant_p): Fix typo in last change.

2009-04-30  Rafael Avila de Espindola  <espindola@google.com>

	* plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.

2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcse.c (gcse_constant_p): Make sure the constant is sharable.

2009-04-29  James E. Wilson  <wilson@codesourcery.com>

	* config/mips/mips.c (mips_add_offset): Use gen_int_mode for
	CONST_HIGH_PART result.

2009-04-29  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (initial_elimination_offset): Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
	change return type to bool.
	(avr_can_eliminate): New function.
	* config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
	(FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
	(INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
	* config/avr/avr-protos.h (initial_elimination_offset): Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
	(avr_initial_elimination_offset): Define.

2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/39938
	* Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
	* cfgrtl.c: Include insn-attr.h.
	(rest_of_pass_free_cfg): New function.
	(pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
	* resource.c (init_resource_info): Remove call to df_analyze.

2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR target/39943
	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
	allow conversion to signed integers.

2009-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_binary): Allow vector
	shifts of floating point vectors if the shift amount is
	a constant multiple of the element size.

2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
	    Michael Matz  <matz@suse.de>

	PR middle-end/39927
	PR bootstrap/39929
	* tree-outof-ssa.c (emit_partition_copy): New function.
	(insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
	insert_part_to_rtx_on_edge): Perform the partition base var
	copy using emit_partition_copy.
	(insert_value_copy_on_edge): Convert constants to the right mode.
	(insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
	(elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.

2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
	scan backwards to try to find a constant to initialize it.

	* config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
	insn before the loop_end instruction, don't look past labels.

2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39937
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
	loose type conversions.
	(forward_propagate_addr_expr): Fix tuplification bug.  Remove
	stmts only if there are no uses of its definition.

2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (splitting_loops): Declare.
	* config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
	Reorder bit definitions to be ascending.
	(WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
	* config/bfin/bfin.c (splitting_loops): New variable.
	(bfin_cpus): Add WA_LOAD_LCREGS as needed.
	(struct loop_info): Remove members INIT and LOOP_INIT.
	(bfin_optimize_loop): Don't set them.  Reorder the code that generates
	the LSETUP sequence.  Allow LC to be loaded from any register, but
	also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
	(bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
	set to 1.
	* config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
	of reload_completed.

	From Jie Zhang:
	* config/bfin/bfin.md (movsi_insn): Refine constraints.

2009-04-29  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (PLUGIN_VERSION_H): New.
	(OBJS-common): Remove plugin-version.o.
	(plugin.o): Depend on (PLUGIN_VERSION_H).
	(plugin-version.o): Remove.
	* configure: Regenerate
	* configure.ac: Create plugin-version.h.
	* gcc-plugin.h (plugin_gcc_version): Remove.
	(plugin_default_version_check): Change signature.
	* plugin-version.c: Remove.
	* plugin.c: Include plugin-version.h.
	(str_plugin_gcc_version_name): Remove.
	(try_init_one_plugin): Pass gcc version to plugin_init.
	(plugin_default_version_check): Both gcc and plugin versions are now
	arguments.

2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
	problematic last insns.  Test for TYPE_CALL rather than CALL_P.
	Remove special case testing for last insn of inner loops. Don't fail
	if the loop ends with a jump, emit an extra nop instead.

	* config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
	DREGS rather than comparing directly.  Remove code that tries to
	account for latencies.

2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39941
	* tree-ssa-pre.c (eliminate): Schedule update-ssa after
	eliminating an indirect call.

2009-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
	parameter.  Allow invariants as base if !require_lvalue.
	(verify_gimple_assign_single): Adjust.

2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
	(ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
	ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
	ssubhi3, ssaddhi3_parts and sssubhi3_parts.
	(flag_mulhi3_parts): Produce a HImode output rather than trying to set
	a VEC_SELECT.
	* config/bfin/bfin.c (bfin_expand_builtin,
	case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.

2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop.c (get_initial_def_for_induction): Use
	correct types for pointer increment.

2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* toplev.c (print_version): Update GMP version string calculation.

2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/39938
	* resource.c (init_resource_info): Add call to df_analyze.

2009-04-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (usegp): Cast the result of
	alpha_find_lo_sum_using_gp to enum attr_usegp.
	* config/alpha/alpha.c (override_options): Remove end-of-structure
	marker element from cpu_table.  Use array size of cpu_table to handle
	-mcpu and -mtune options.
	(tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.

2009-04-28  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (powerpc*-*-* | rs6000-*-*): Add
	rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
	tune_32 and tune_64.
	* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
	support on PowerPC.
	* config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
	* config/rs6000/option-defaults.h: ... here.  New file.
	(OPT_64, OPT_32): Define.
	(MASK_64BIT): Define to 0 if not already defined.
	(OPT_ARCH64, OPT_ARCH32): Define.
	(OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
	and tune_64.

2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_override_options): Emit error on using
	fpa with AAPCS.

2009-04-28  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/39914
	* ira-conflicts.c (ira_build_conflicts): Prohibit call used
	registers for allocnos created from user-defined variables only
	when not optimizing.

2009-04-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39937
	* fold-const.c (fold_binary): Use distribute_real_division only
	on float types.

2009-04-28  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
	add hpux-stdint.h to tm_file.
	(hppa[12]*-*-hpux11*): Ditto.
	(ia64*-*-hpux*): Ditto.
	* config/hpux-stdint.h: New.
	* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
	__STDC_EXT__ for all compiles.
	* config/pa/pa-hpux.h: Ditto.
	* config/pa/pa-hpux10.h: Ditto.
	* config/pa/pa-hpux11.h: Ditto.

2009-04-28  Catherine Moore  <clm@codesourcery.com>

	* debug.h (set_name): Add comment.

2009-04-28  Andrew Pinski  <pinskia@gmail.com>

	PR target/39929
	* config/darwin.c (machopic_gen_offset): Check
	currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
	* config/arm/arm.c (require_pic_register): Likewise.

2009-04-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
	m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
	m32c_promote_prototypes): Delete.

2009-04-28  Michael Matz  <matz@suse.de>

	PR middle-end/39922
	* tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
	constants.

2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.

2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm-cores.def: Add support for arm1156t2f-s.
	* doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
	* config/arm/arm-tune.md: Regenerate.

2009-04-28  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
	block if there are complex incoming edges.
	(sel_merge_blocks): Remove useless assert.
	(sel_redirect_edge_and_branch): Check that edge was redirected.
	* sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
	(sel_find_rgns): Delete declaration.
	* sel-sched.c (purge_empty_blocks): Attempt to remove first block of
	the region when it is not a preheader.

2009-04-28  Uros Bizjak  <ubizjak@gmail.com>

	PR c/39323
	* config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h

2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_NAME_VALUE): Remove.
	(struct tree_ssa_name): Remove value_handle member.
	* tree-vrp.c (execute_vrp): Initialize/free the value-handle
	array for jump threading.
	* tree-ssa-propagate.c (ssa_prop_init): Do not initialize
	SSA_NAME_VALUEs.
	* print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
	* tree-flow.h (threadedge_initialize_values): Declare.
	(threadedge_finalize_values): Likewise.
	* tree-ssa-threadedge.c (ssa_name_values): New global variable.
	(SSA_NAME_VALUE): Define.
	(threadedge_initialize_values): New function.
	(threadedge_finalize_values): Likewise.
	* tree-ssa-dom.c (ssa_name_values): New global variable.
	(SSA_NAME_VALUE): Define.
	(tree_ssa_dominator_optimize): Initialize/free the value-handle array.

2009-04-28  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
	Use REPORT_VECTORIZED_LOCATIONS instead
	REPORT_VECTORIZED_LOOPS.
	* tree-vectorizer.c (vect_verbosity_level): Make static.
	(vect_loop_location): Rename to vect_location.
	(vect_set_verbosity_level): Update comment.
	(vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
	and vect_location.
	(vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
	and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
	instead REPORT_UNVECTORIZED_LOOPS.
	* tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
	and vect_loop_def to vect_external_def and vect_internal_def.
	(enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
	and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
	REPORT_UNVECTORIZED_LOCATIONS.
	(enum vect_relevant): Update comment. Rename vect_unused_in_loop
	and vect_used_in_loop and to vect_unused_in_scope and
	vect_used_in_scope.
	(STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
	(vect_verbosity_level): Remove declaration.
	(vect_analyze_operations): Likewise.
	(vect_analyze_stmt): Declare.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Use
	REPORT_UNVECTORIZED_LOCATIONS.
	(vect_get_loop_niters): Fix indentation.
	(vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
	(vect_analyze_loop_operations): New function.
	(vect_analyze_loop): Call vect_analyze_loop_operations instead of
	vect_analyze_operations.
	(vect_is_simple_reduction): Use new names.
	(vectorizable_live_operation, vect_transform_loop): Likewise.
	* tree-vect-data-refs.c (vect_check_interleaving): Add a return value
	to specify whether the data references can be a part of interleaving
	chain.
	(vect_analyze_data_ref_dependence): Use new names.
	(vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
	(vect_create_addr_base_for_vector_ref): Remove redundant code.
	* tree-vect-patterns.c (widened_name_p): Use new names.
	(vect_recog_dot_prod_pattern): Likewise.
	* tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
	(process_use, vect_mark_stmts_to_be_vectorized,
	vect_model_simple_cost, vect_model_store_cost,
	vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
	vectorizable_call, vectorizable_conversion, vectorizable_assignment,
	vectorizable_operation, vectorizable_type_demotion,
	vectorizable_type_promotion, vectorizable_store, vectorizable_load,
	vectorizable_condition): Likewise.
	(vect_analyze_operations): Split into vect_analyze_loop_operations
	and ...
	(vect_analyze_stmt): ... new function.
	(new_stmt_vec_info): Use new names.
	(vect_is_simple_use): Use new names and fix comment.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
	(vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.

2009-04-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39911
	* config/i386/i386.c (print_operand) ['Z']: Handle floating point
	and integer modes for x87 operands.  Do not ICE for unsupported size,
	generate error instead.  Generate error for unsupported operand types.
	['z']: Do not handle HImode memory operands specially.  Warning
	for floating-point operands.  Fallthru to 'Z' for unsupported operand
	types.  Do not ICE for unsupported size, generate error instead.
	(output_387_binary_op): Use %Z to output operands.
	(output_fp_compare): Ditto.
	(output_387_reg_move): Ditto.

2009-04-28  Ben Elliston  <bje@au.ibm.com>

	PR c++/35652
	Revert:

	2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* builtins.c (c_strlen): Do not warn here.
	* c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
	* c-common.c (pointer_int_sum): Take an explicit location.
	Warn about offsets out of bounds.
	* c-common.h (pointer_int_sum): Adjust declaration.

2009-04-27  Ian Lance Taylor  <iant@google.com>

	* collect2.c (is_ctor_dtor): Change type of ret field in struct
	names to symkind.
	* dce.c (run_fast_df_dce): Change type of old_flags to int.
	* df-core.c (df_set_flags): Change return type to int.  Change
	type of old_flags to int.
	(df_clear_flags): Likewise.
	* df-scan.c (df_def_record_1): Change 0 to VOIDmode.
	(df_get_conditional_uses): Likewise.
	* df.h (df_set_flags, df_clear_flags): Update declarations.
	* dwarf2out.c (struct indirect_string_node): Change type of form
	field to enum dwarf_form.
	(AT_string_form): Change return type to enum dwarf_form.
	* fixed-value.c (fixed_compare): Add cast to enum type.
	* fwprop.c (update_df): Change 0 to VOIDmode.
	* gensupport.c: Change 0 to UNKNOWN.
	* gimple.h (gimple_cond_code): Add cast to enum type.
	* haifa-sched.c (reemit_notes): Add cast to enum type.
	* hooks.c (hook_int_void_no_regs): Remove function.
	* hooks.h (hook_int_void_no_regs): Remove declaration.
	* optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
	* predict.c (combine_predictions_for_insn): Add casts to enum type.
	* real.c (real_arithmetic): Add cast to enum type.
	(real_compare): Likewise.
	* target.h (struct gcc_target): Change return type of
	branch_target_register_class to enum reg_class.
	* target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
	default_branch_target_register_class.
	* targhooks.c (default_branch_target_register_class): New function.
	* targhooks.h (default_branch_target_register_class): Declare.
	* tree-data-ref.c (print_direction_vector): Add cast to enum type.
	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
	cast to int.
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
	ERROR_MARK.
	* tree-vect-slp.c (vect_build_slp_tree): Change 0 to
	vect_uninitialized_def.  Change 0 to ERROR_MARK.
	* tree-vect-stmts.c (supportable_widening_operation): Don't
	initialize icode1 and icode2.
	* tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
	* config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
	and to STD_C89.
	(cmn_err_flag_specs): Change 0 to STD_C89.
	(cmn_err_char_table): Likewise.
	* config/arm/arm.c (get_arm_condition_code): Change type of code
	to enum arm_cond_code.
	(IWMMXT_BUILTIN): Change 0 to UNKNOWN.
	(IWMMXT_BUILTIN2): Likewise.
	(neon_builtin_type_bits): Don't define typedef.
	(neon_builtin_datum): Change type of bits field to int.
	(arm_expand_neon_args): Add cast to enum type.
	* config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
	TLS_MODEL_NONE.
	* config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
	casts to enum type.
	* config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
	MIPS_FP_COND_f.
	* config/mips/mips.md (jal_macro): Return enum constant.
	(single_insn): Likewise.
	* config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
	CODE_FOR_nothing.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	casts to enum type.
	* config/s390/s390.c (s390_tune_flags): Change type to int.
	(s390_arch_flags): Likewise.
	(s390_handle_arch_option): Change flags field of struct pta to int.
	* config/s390/s390.h (s390_tune_flags): Update declaration.
	(s390_arch_flags): Likewise.
	* config/sh/sh.c (prepare_move_operands): Compare
	tls_symbolic_operand result with enum constant.
	(sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
	(sh_expand_prologue): Add cast to enum type.
	(sh_expand_epilogue): Likewise.
	(tls_symbolic_operand): Change return type to enum tls_model.
	(fpscr_set_from_mem): Add cast to enum type.
	(legitimize_pic_address): Compare tls_symbolic_operand result with
	enum constant.
	(sh_target_reg_class): Change return type to enum reg_class.
	* config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
	PROCESSOR_xxx.
	* config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
	* config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
	* config/sparc/sparc.md (empty_delay_slot): Return enum constant.
	(pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
	(delayed_branch, tls_call_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	(eligible_for_return_delay): Likewise.
	* config/spu/spu.c (expand_builtin_args): Add cast to enum type.
	(spu_expand_builtin_1): Likewise.

	* c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
	for all types of conversions.
	(output_init_element): Issue -Wc++-compat warning if needed when
	initializing a bitfield with enum type.
	* c-parser.c (c_parser_expression): Set original_type to
	original_type of right hand operand of comma operator.

2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/c-tree.texi (Types, Functions, Expression trees): Fix
	grammar nits.
	* doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
	* doc/cpp.texi (Standard Predefined Macros)
	(Implementation-defined behavior): Likewise.
	* doc/extend.texi (Function Attributes, Type Attributes): Likewise.
	* doc/gimple.texi (GIMPLE Exception Handling)
	(@code{GIMPLE_ASSIGN}): Likewise.
	* doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
	* doc/invoke.texi (Warning Options, Optimize Options)
	(AVR Options, Darwin Options): Likewise.
	(Optimize Options): Reformulate -fwhole-program description.
	* doc/loop.texi (Lambda): Likewise.
	* doc/md.texi (Output Template, Define Constraints)
	(Standard Names, Insn Splitting): Likewise.
	* doc/options.texi (Option properties): Likewise.
	* doc/passes.texi (Tree-SSA passes): Likewise.
	* doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
	* doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
	(File Names and DBX): Likewise.
	* doc/trouble.texi (Incompatibilities): Likewise.

2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	* spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
	instruction is correct.

2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	Allow non-constant arguments to conversion intrinsics.
	* spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
	* predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
	* spu.c (print_operand): Handle 'v' and 'w'.
	(exp2_immediate_p, spu_gen_exp2): Define.
	* spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
	spu_convtf_1): Update parameter descriptions.
	* spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
	* constraints.md ('v', 'w'): New.
	* spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
	Remove.
	(i2f, I2F): New define_mode_attr.
	(floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
	floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
	fixuns_truncv4sfv4si2):  Update to use mode attribute.
	(float<mode><i2f>2_mul, float<mode><i2f>2_div,
	fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
	floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
	patterns for combine.

2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>

	* dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
	(cprop, hoist, pre, store_motion): New debug counters.
	* tree-pass.h (pass_tracer): Move to list of gimple passes, it
	is not an RTL pass anymore.
	(pass_profiling): Remove extern decl for pass removed in 2005.
	(pass_gcse, pass_jump_bypass): Remove.
	* final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
	to 0 for clean state.
	* toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
	* cse.c (gate_handle_cse_after_global_opts,
	rest_of_handle_cse_after_global_opts): New functions.
	(pass_cse_after_global_opts): New pass, does local CSE.
	* timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
	(TV_CPROP): New timevar.
	* gcse.c (flag_rerun_cse_after_global_opts): New global variable.
	(run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
	(gcse_main, recompute_all_luids): Remove.
	(compute_hash_table_work): Call max_reg_num instead of reading
	max_gcse_regno.
	(cprop_jump): Don't set run_jump_opt_after_gcse.
	(constprop_register): Always allow to alter jumps.
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise.  Return non-zero if something changed.
	(cprop): Remove function, fold interesting bits into one_cprop_pass.
	(find_implicit_sets): Add note about missed optimization opportunity.
	(one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
	pass_rtl_cprop execute function.
	Don't bother tracking the pass number, each pass gets its own dumpfile
	now anyway.
	Always allow to alter jumpsand bypass jumps.
	(bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
	will just find no suitable set.
	(pre_edge_insert): Fix dumping, this function is for PRE only.
	(one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
	pass_rtl_pre execute function.
	(hoist_code): Return non-zero if something changed.  Keep track of
	substitutions and insertions for statistics gathering similar to PRE.
	(one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
	called from the pass_rtl_hoist execute function.  Show pass statistics.
	(compute_store_table): Use max_reg_num directly instead of using the
	formerly global max_gcse_regno.
	(build_store_vectors): Likewise.
	(replace_store_insn): Fix dumping.
	(store_motion): Rename to ...
	(one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
	pass, called from the pass_rtl_store_motion execute function.  Keep
	track of substitutions and insertions for statistics gathering similar
	to PRE.
	(bypass_jumps): Remove, fold interesting bits into ...
	(one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
	from the pass_rtl_cprop execute function.
	(gate_handle_jump_bypass, rest_of_handle_jump_bypass,
	pass_jump_bypass): Remove.
	(gate_handle_gcse, rest_of_handle_gcse): Remove.
	(gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
	(gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
	(gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
	(gate_rtl_store_motion, execute_rtl_store_motion,
	pass_rtl_store_motion): New.
	* common.opt: Remove flag_cse_skip_blocks, adjust documentation to
	make it clear that -fcse-skip-blocks is a no-op for backward compat.
	* passes.c (init_optimization_passes): Remove pass_gcse and
	pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
	and cse_after_global_opts in place of pass_gcse.  Schedule cprop
	instead of pass_jump_bypass.

2009-04-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39928
	* gimplify.c (gimplify_expr): If we are required to create
	a temporary make sure it ends up as register.

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39903
	* config/i386/i386.c (construct_container): Don't call
	gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
	X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.

2009-04-27  Michael Matz  <matz@suse.de>

	* ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
	(get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
	* tree-ssa-live.h (find_replaceable_exprs): Return a bitmap.
	(dump_replaceable_exprs): Take a bitmap.
	* cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
	array.
	(expand_gimple_basic_block): Likewise.
	* tree-ssa-ter.c (struct temp_expr_table_d): Make
	replaceable_expressions member a bitmap.
	(free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
	(mark_replaceable): Likewise.
	(find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
	* tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.

2009-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
	(verify_stmts): Dispatch to gimple/type verification code.
	* tree-inline.c (remap_gimple_op_r): Work around C++ FE
	issue with call argument types.

2009-04-27  Michael Matz  <matz@suse.de>

	* tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
	(init_update_ssa, delete_update_ssa, update_ssa): Remove references
	to above.

2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
	a label's basic block.
	(mark_target_live_regs): Tidy and rework obsolete comments.
	Change back DF problem to LIVE.  If a label starts a basic block,
	assume that all registers that used to be live then still are.
	(init_resource_info): If a label starts a basic block, set its
	BLOCK_FOR_INSN accordingly.
	(fini_resource_info): Undo the setting of BLOCK_FOR_INSN.

2009-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (function_ann): Remove.
	(get_function_ann): Likewise.
	* tree-dfa.c (create_function_ann): Remove.
	* tree-flow.h (struct static_var_ann_d): Remove.
	(struct function_ann_d): Likewise.
	(union tree_ann_d): Remove fdecl member.
	(function_ann_t): Remove.
	(function_ann, get_function_ann, create_function_ann): Remove
	declarations.

2009-04-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.

2009-04-27  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (struct funct_state_d): New fields
	state_previously_known, looping_previously_known; remove
	state_set_in_source.
	(analyze_function): Use new fields.
	(propagate): Avoid assumption that state_set_in_source imply
	nonlooping.

	* tree-ssa-loop-niter.c (finite_loop_p): New function.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
	* cfgloop.h (finite_loop_p): Declare.

2009-04-26  Michael Matz  <matz@suse.de>

	* tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.

2009-04-26  Michael Matz  <matz@suse.de>

	* tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
	pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
	* gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
	pass_mark_used_blocks): Remove.
	* tree-optimize.c (pass_free_datastructures,
	execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
	* passes.c (init_optimization_passes): Don't call
	pass_mark_used_blocks, remove dead code.

2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
	* tree-ssa-live.h (register_ssa_partition): Likewise.

2009-04-26  Michael Matz  <matz@suse.de>

	Expand from SSA.
	* builtins.c (fold_builtin_next_arg): Handle SSA names.
	* tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
	SSA names.
	(compare_pairs): Swap cost comparison.
	(coalesce_ssa_name): Don't use change_partition_var.
	* tree-nrv.c (struct nrv_data): Add modified member.
	(finalize_nrv_r): Set it.
	(tree_nrv): Use it to update statements.
	(pass_nrv): Require PROP_ssa.
	* tree-mudflap.c (mf_decl_cache_locals,
	mf_build_check_statement_for): Use make_rename_temp.
	(pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
	* alias.c (find_base_decl): Handle SSA names.
	* emit-rtl (set_reg_attrs_for_parm): Make non-static.
	(component_ref_for_mem_expr): Don't leak SSA names into RTL.
	* rtl.h (set_reg_attrs_for_parm): Declare.
	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
	to "optimized", remove unused locals at finish.
	(execute_free_datastructures): Make global, call
	delete_tree_cfg_annotations.
	(execute_free_cfg_annotations): Don't call
	delete_tree_cfg_annotations.

	* ssaexpand.h: New file.
	* expr.c (toplevel): Include ssaexpand.h.
	(expand_assignment): Handle SSA names the same as register variables.
	(expand_expr_real_1): Expand SSA names.
	* cfgexpand.c (toplevel): Include ssaexpand.h.
	(SA): New global variable.
	(gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
	(SSAVAR): New macro.
	(set_rtl): New helper function.
	(add_stack_var): Deal with SSA names, use set_rtl.
	(expand_one_stack_var_at): Likewise.
	(expand_one_stack_var): Deal with SSA names.
	(stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
	before unique numbers.
	(expand_stack_vars): Use set_rtl.
	(expand_one_var): Accept SSA names, add asserts for them, feed them
	to above subroutines.
	(expand_used_vars): Expand all partitions (without default defs),
	then only the local decls (ignoring those expanded already).
	(expand_gimple_cond): Remove edges when jumpif() expands an
	unconditional jump.
	(expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
	or remove abnormal edges.  Ignore insns setting the LHS of a TERed
	SSA name.
	(gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
	members of SA; deal with PARM_DECL partitions here; expand
	all PHI nodes, free tree datastructures and SA.  Commit instructions
	on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
	(pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
	info and statements at start, collect garbage at finish.
	* tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
	(VAR_ANN_PARTITION) Remove.
	(change_partition_var): Don't declare.
	(partition_to_var): Always return SSA names.
	(var_to_partition): Only accept SSA names.
	(register_ssa_partition): Only check argument.
	* tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
	member.
	(delete_var_map): Don't free it.
	(var_union): Only accept SSA names, simplify.
	(partition_view_init): Mark only useful SSA names as used.
	(partition_view_fini): Only deal with SSA names.
	(change_partition_var): Remove.
	(dump_var_map): Use ssa_name instead of partition_to_var member.
	* tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
	basic blocks.
	* tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
	(struct _elim_graph): New member const_dests; nodes member vector of
	ints.
	(set_location_for_edge): New static helper.
	(create_temp): Remove.
	(insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
	insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
	(new_elim_graph): Allocate const_dests member.
	(clean_elim_graph): Truncate const_dests member.
	(delete_elim_graph): Free const_dests member.
	(elim_graph_size): Adapt to new type of nodes member.
	(elim_graph_add_node): Likewise.
	(eliminate_name): Likewise.
	(eliminate_build): Don't take basic block argument, deal only with
	partition numbers, not variables.
	(get_temp_reg): New static helper.
	(elim_create): Use it, deal with RTL temporaries instead of trees.
	(eliminate_phi): Adjust all calls to new signature.
	(assign_vars, replace_use_variable, replace_def_variable): Remove.
	(rewrite_trees): Only do checking.
	(edge_leader, stmt_list, leader_has_match, leader_match): Remove.
	(same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
	init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
	contains_tree_r, MAX_STMTS_IN_LATCH,
	process_single_block_loop_latch, analyze_edges_for_bb,
	perform_edge_inserts): Remove.
	(expand_phi_nodes): New global function.
	(remove_ssa_form): Take ssaexpand parameter.  Don't call removed
	functions, initialize new parameter, remember partitions having a
	default def.
	(finish_out_of_ssa): New global function.
	(rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
	don't reset in_ssa_p here, don't disable TER when mudflap.
	(pass_del_ssa): Remove.
	* tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
	partition members.
	(execute_free_datastructures): Declare.
	* Makefile.in (SSAEXPAND_H): New variable.
	(tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
	* basic-block.h (commit_one_edge_insertion): Declare.
	* passes.c (init_optimization_passes): Move pass_nrv and
	pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
	pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
	* cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
	(redirect_branch_edge): Deal with super block when expanding, split
	out jump patching itself into ...
	(patch_jump_insn): ... here, new static helper.

2009-04-26  Michael Matz  <matz@suse.de>

	* tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
	beyond num_ssa_names.
	* tree-ssa-ter.c (free_temp_expr_table): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.

2009-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/39543
	* fwprop.c (forward_propagate_asm): New function.
	(forward_propagate_and_simplify): Propagate also into __asm, if it
	doesn't increase the number of referenced registers.

	PR c/39889
	* stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.

2009-04-26  Jakub Jelinek  <jakub@redhat.com>

	* tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
	note_nonlocal_vla_type for nonlocal VLAs.
	(note_nonlocal_vla_type, note_nonlocal_block_vlas,
	contains_remapped_vars, remap_vla_decls): New functions.
	(convert_nonlocal_reference_stmt): If not optimizing, call
	note_nonlocal_block_vlas on GIMPLE_BIND block vars.
	(nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
	if it wasn't found in var_map.
	(finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
	GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
	to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
	declare_vars.
	* gimplify.c (nonlocal_vlas): New variable.
	(gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
	referenced VLAs.
	(gimplify_body): Create and destroy nonlocal_vlas.

	* dwarf2out.c (loc_descr_plus_const): New function.
	(build_cfa_aligned_loc, tls_mem_loc_descriptor,
	mem_loc_descriptor, loc_descriptor_from_tree_1,
	descr_info_loc, gen_variable_die): Use it.

	* tree.h (DECL_BY_REFERENCE): Note that it is also valid for
	!TREE_STATIC VAR_DECLs.
	* dwarf2out.c (loc_by_reference, gen_decl_die): Handle
	DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
	(gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
	DECL_BY_REFERENCE is valid.
	* dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
	for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
	* tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
	Copy DECL_BY_REFERENCE.
	(struct nesting_copy_body_data): New type.
	(nesting_copy_decl): New function.
	(finalize_nesting_tree_1): Remap types of debug_var_chain variables,
	if they have variable length.

2009-04-26  Michael Matz  <matz@suse.de>

	* tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
	mark new temporaries for renaming.

2009-04-26  Joseph Myers  <joseph@codesourcery.com>

	PR c/39581
	* c-decl.c (global_bindings_p): Return negative value.
	(c_variable_size): New.  Based on variable_size from
	stor-layout.c.
	(grokdeclarator): Call c_variable_size not variable_size.

2009-04-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (print_operand) ['z']: Fix typo.

2009-04-26  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
	Redefine it to just use mingw/include.
	(ASM_SPEC): Rules for -m32 and -m64.
	(LINK_SPEC): Use Likewise.
	(SPEC_32): New define.
	(SPEC_64): Likewise.
	(SUB_LINK_SPEC): Likewise.
	(MULTILIB_DEFAULTS): New define.
	* config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
	Add multilib options.
	(MULTILIB_DIRNAMES): Likewise.
	(MULTILIB_OSDIRNAMES): Likewise.
	(LIBGCC): Likewise.
	(INSTALL_LIBGCC): Likewise.

2009-04-26  Joseph Myers  <joseph@codesourcery.com>

	PR c/39556
	* c-tree.h (enum c_inline_static_type): New.
	(record_inline_static): Declare.
	* c-decl.c (struct c_inline_static, c_inline_statics,
	record_inline_static, check_inline_statics): New.
	(pop_file_scope): Call check_inline_statics.
	(start_decl): Call record_inline_static instead of pedwarning
	directly for static in inline function.
	* c-typeck.c (build_external_ref): Call record_inline_static
	instead of pedwarning directly for static referenced in inline
	function.

2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>

	* df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
	not new but only being rescanned.
	* gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
	reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
	alloc_reg_set_mem, free_reg_set_mem, record_one_set,
	record_set_info, compute_set, grealloc): Remove.
	(recompute_all_luids): New function.
	(gcse_main): Don't compute sets, and don't do related memory
	allocations/free-ing.  If something changed before the end of the
	pass, update LUIDs using recompute_all_luids.
	(alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
	(free_gcse_mem): Don't free it either.
	(oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
	Use the df insn LUIDs.
	(load_killed_in_block): Likewise.
	(compute_hash_table_work): Don't compute reg_set_in_block.
	(compute_transp): Use DF_REG_DEF_CHAINs.
	(local_cprop_pass): Don't use compute_sets and related functions.
	(one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
	Use get_max_uid() instead of max_cuid.
	(insert_insn_end_basic_block, pre_insert_copy_insn,
	update_ld_motion_stores): Don't try to
	keep reg_set tables up to date.
	(pre_insert_copies): Use df insn LUIDs.
	(sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
	(reg_set_info): Don't use extra bitmap argument.
	(compute_store_table): Don't compute reg_set_in_block.  Use DF scan
	information to compute regs_set_in_block.
	(free_store_memory, store_motion): Don't nullify reg_set_in_block.
	(bypass_jumps): Don't use compute_sets and friends.

2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR testsuite/39710
	* opts.c (undocumented_msg): Do not leave blank even with
	ENABLE_CHECKING.

2009-04-25  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (build_enumerator): Allow values folding to integer
	constants but not integer constant expressions with a pedwarn if
	pedantic.

2009-04-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/39582
	* c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
	with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
	type is an integer constant.

2009-04-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39897
	* config/i386/i386.c (print_operand) ['z']: Revert handling of
	HImode operands.

2009-04-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/39564
	* c-decl.c (grokdeclarator): Diagnose declarations of functions
	with variably modified return type and no storage class
	specifiers, except for the case of nested functions.  Distinguish
	extern declarations of functions with variably modified return
	types from those of objects with variably modified types.

2009-04-25  Jan Hubicka  <jh@suse.cz>

	* tree.c (list_equal_p): New function.
	* tree.h (list_equal_p): Declare.
	* coretypes.h (edge_def, edge, const_edge, basic_block_def
	basic_block_def, basic_block, const_basic_block): New.
	* tree-eh.c (make_eh_edge): EH edges are not abnormal.
	(redirect_eh_edge): New function.
	(make_eh_edge_update_phi): EH edges are not abnormal.
	* except.c: Include tree-flow.h.
	(list_match): New function.
	(eh_region_replaceable_by_p): New function.
	(replace_region): New function.
	(hash_type_list): New function.
	(hash_eh_region): New function.
	(eh_regions_equal_p): New function.
	(merge_peers): New function.
	(remove_unreachable_regions): Verify EH tree when checking;
	merge peers.
	(copy_eh_region_1): New function.
	(copy_eh_region): New function.
	(push_reachable_handler): New function.
	(build_post_landing_pads, dw2_build_landing_pads): Be ready for
	regions without label but with live RESX.
	* except.h (redirect_eh_edge_to_label): New.
	* tree-flow.h (redirect_eh_edge): New.
	* coretypes.h (edge_def, edge, const_edge, basic_block_def
	basic_block_def, basic_block, const_basic_block): Remove.
	* Makefile.in (except.o): Add dependency on tree-flow.h
	* tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
	* basic-block.h (edge, const_edge, basic_block, const_basic_block):
	Remove.

2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/39645
	* config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
	on the destination of memcpy.

2009-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
	REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
	REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.

2009-04-25  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
	(tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
	to be reached by different label than left.
	(update_eh_edges): Update comment; remove edge_to_remove if possible
	and return true if suceeded.
	(cleanup_empty_eh): Accept sharing map; handle shared regions.
	(cleanup_eh): Compute sharing map.
	* except.c (remove_eh_handler_and_replace): Add argument if we should
	update regions.
	(remove_unreachable_regions): Update for label sharing.
	(label_to_region_map): Likewise.
	(get_next_region_sharing_label): New function.
	(remove_eh_handler_and_replace): Add update_catch_try parameter; update
	prev_try pointers.
	(remove_eh_handler): Update.
	(remove_eh_region_and_replace_by_outer_of): New function.
	* except.h (struct eh_region): Add next_region_sharing_label.
	(remove_eh_region_and_replace_by_outer_of,
	get_next_region_sharing_label): Declare.
	* tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.

2009-04-25  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (split_critical_edges): Split also edges where we can't
	insert code even if they are not critical.

2009-04-25  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
	(gimple_can_remove_branch_p): EH edges won't remove branch by
	redirection.
	* tree-inline.c (update_ssa_across_abnormal_edges): Do handle
	updating of non-abnormal EH edges.
	* tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
	(gimple_can_remove_branch_p): EH edges are unremovable by redirection.
	(split_critical_edges): Split also edges where emitting code on them
	will lead to splitting later.

2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39590
	* configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
	the configured assembler supports fildq and fistpq mnemonics.
	(HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
	* configure: Regenerated.
	* config.in: Ditto.

	* config/i386/i386.c (print_operand): Handle 'Z'.
	['z']: Remove handling of special fild/fist suffixes.
	(output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
	* config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
	suffix of fild insn.
	(*floatsi<mode>2_vector_mixed): Ditto.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
	* config/i386/gas.h (GAS_MNEMONICS): Remove.

2009-04-25  Ben Elliston  <bje@au.ibm.com>

	* genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
	the source of a set operation.

2009-04-25  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add case_values_threshold field.
	* target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
	(TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
	* targhooks.c (default_case_values_threshold): New function.
	* targhooks.h (default_case_values_threshold): Declare function.
	* stmt.c (expand_case): Use case_values_threshold target hook.
	* expr.h (case_values_threshold): Remove declartation.
	* expr.c (case_values_threshold): Remove function.
	* doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.

	* config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
	* config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
	(avr_case_values_threshold): Declare as static.
	* config/avr/avr-protos.h (avr_case_values_threshold): Remove.

	* config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
	* config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
	(mn10300_case_values_threshold): New function.

2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>

	* ira.c (setup_cover_and_important_classes): Add enum cast.

2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>

	* genpreds.c (write_enum_constraint_num): Output definition of
	CONSTRAINT_NUM_DEFINED_P macro.
	* ira.c (setup_cover_and_important_classes): Use
	CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.

2009-04-24  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
	__SH2A_SINGLE_ONLY__ also.

2009-04-24  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (movfs_internal): Allow flt constants.
	(movdf_internal): Ditto.
	* config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
	SFmode and DFmode constants.
	(ia64_print_operand): Add 'G' format for printing
	floating point constants.

2009-04-24  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_binary_expr): Handle overflow
	from unsigned additions.

2009-04-24  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.c (set_init_index): Allow array designators that are
	not integer constant expressions with a pedwarn if pedantic.

2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>

	* simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
	zero if no overlap in nonzero bits between the operands.

2009-04-24  Ian Lance Taylor  <iant@google.com>

	* combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
	(record_dead_and_set_regs): Likewise.
	* df.h (struct df_mw_hardreg): Change flags field to int.
	(struct df_base_ref): Likewise.
	(struct df): Change changeable_flags field to int.
	* df-scan.c (df_defs_record): Change clobber_flags to int.
	* dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
	constants rather than #define macros.
	(enum dwarf_attribute, enum dwarf_location_atom): Likewise.
	(enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
	(enum dwarf_calling_convention): Likewise.
	(enum dwarf_line_number_x_ops): Likewise.
	(enum dwarf_call_frame_info): Likewise.
	(enum dwarf_source_language): Likewise.
	* dwarf2out.c (int_loc_descriptor): Add cast to enum type.
	(add_calling_convention_attribute): Likewise.
	* fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
	(combine_comparisons): Change compcode to int.  Add cast to enum type.
	* genrecog.c (maybe_both_true_2): Change c to int.
	(write_switch): Likewise.  Add cast to enum type.
	* gimplify.c (gimplify_omp_for): Handle return values from
	gimplify_expr using MIN rather than bitwise or.
	(gimplify_expr): Add cast to enum type.
	* ipa-prop.c (update_jump_functions_after_inlining): Change
	IPA_BOTTOM to IPA_JF_UNKNOWN.
	* ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
	Add casts to enum type.
	(setup_cover_and_important_classes): Change cl to int.  Add casts
	to enum type.
	(setup_class_translate): Change cl and mode to int.
	(ira_init_once): Change mode to int.
	(free_register_move_costs): Likewise.
	(setup_prohibited_mode_move_regs): Add casts to enum type.
	* langhooks.c (add_builtin_function_common): Rework assertion that
	value fits bitfield.
	* mcf.c (add_fixup_edge): Change type parameter to edge_type.
	* omega.c (omega_do_elimination): Avoid math on enum types.
	* optabs.c (expand_vec_shift_expr): Remove casts to int.
	* opts.c (set_debug_level): Change 2 to enum constant.  Use new
	int local to handle integral_argment value.
	* regmove.c (try_auto_increment): Change PUT_MODE to
	PUT_REG_NOTE_KIND.
	* reload.c (push_secondary_reload): Add casts to enum type.
	(secondary_reload_class, find_valid_class): Likewise.
	* reload1.c (emit_input_reload_insns): Likewise.
	* rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
	* sel-sched.c (init_hard_regs_data): Change cur_mode to int.
	* sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
	constant.
	* tree.c (build_common_builtin_nodes): Add casts to enum type.
	* tree-complex.c (complex_lattice_t): Typedef to int rather than
	enum type.
	(expand_complex_libcall): Add casts to enum type.
	* tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
	* tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
	with ERROR_MARK, not NUM_TREE_CODES.
	(vect_create_epilog_for_reduction): Likewise.
	(vectorizable_reduction): Don't initialize epiloc_reduc_code.
	When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
	* tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
	enum machine_mode.
	* tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
	vect_unused_in_loop.  Change 0 to loop_vect.
	* tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
	* var-tracking.c (get_init_value): Change return type to enum
	var_init_status.
	* vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
	* config/arm/arm.c (fp_model_for_fpu): Change to array to enum
	arm_fp_model.
	(arm_override_options): Add casts to enum type.
	(arm_emit_tls_decoration): Likewise.
	* config/i386/i386.c (ix86_function_specific_restore): Add casts
	to enum type.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
	* config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
	* config/rs6000/rs6000.c (rs6000_override_options): Add casts to
	enum type.
	* config/s390/s390.c (code_for_builtin_64): Change to array of
	enum insn_code.
	(code_for_builtin_31): Likewise.
	(s390_expand_builtin): Change code_for_builtin to enum insn_code
	const *.
	* config/sparc/sparc.c (sparc_override_options): Change value
	field in struct code_model to enum cmodel.  In initializer change
	0 to NULL and add cast to enum type.

	* c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
	Change all callers.  Issue a -Wc++-compat warning using
	lhs_origtype if necessary.
	(convert_for_assignment): Issue -Wc++-compat warnings about
	invalid conversions to enum type on assignment.
	* c-common.h (build_modify_expr): Update declaration.

2009-04-24  Nick Clifton  <nickc@redhat.com>

	* config/iq2000/iq2000.c (function_arg): Handle TImode values.
	(function_arg_advance): Likewise.
	* config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
	5th alternative.

2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/constraints.md ('I', 'J'): Fix condition.

2009-04-24  Diego Novillo  <dnovillo@google.com>

	* gengtype-parse.c (parse_error): Add newline after message.

2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (avxmodesuffixs): Removed.
	(*avx_pinsr<avxmodesuffixs>): Renamed to ...
	(*avx_pinsr<ssevecsize>): This.

2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
	follow chains of regs with a single definition, and allow expressions
	that are function_invariant_p.
	(simple_rhs_p): Allow expressions that are function_invariant_p.

2009-04-24  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/39867
	* fold-const.c (fold_cond_expr_with_comparison): When folding
	> and >= to MAX, make sure the MAX uses the same type as the
	comparison's operands.

2009-04-24  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.c (frv_frame_access): Do not use reg+reg
	addressing for DImode accesses.
	(frv_print_operand_address): Handle PLUS case.
	* config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.

2009-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/39794
	* alias.c (canon_true_dependence): Add x_addr argument.
	* rtl.h (canon_true_dependence): Adjust prototype.
	* cse.c (check_dependence): Adjust canon_true_dependence callers.
	* cselib.c (cselib_invalidate_mem): Likewise.
	* gcse.c (compute_transp): Likewise.
	* dse.c (scan_reads_nospill): Likewise.
	(record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
	addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
	canon_base_addr of the group, plus optional offset.
	(struct group_info): Rename canon_base_mem to
	canon_base_addr.
	(get_group_info): Set canon_base_addr to canon_rtx of base, not
	canon_rtx of base_mem.

2009-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
	Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.

2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-builtins.h: Delete file.

	* config/spu/spu.h (enum spu_builtin_type): Move here from
	spu-builtins.h.
	(struct spu_builtin_description): Likewise.  Add GTY marker.
	Do not use enum spu_function_code or enum insn_code.
	(spu_builtins): Add extern declaration.

	* config/spu/spu.c: Do not include "spu-builtins.h".
	(enum spu_function_code, enum spu_builtin_type_index,
	V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
	V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
	unsigned_V8HI_type_node, unsigned_V4SI_type_node,
	unsigned_V2DI_type_node): Move here from spu-builtins.h.
	(spu_builtin_types): Make static.  Add GTY marker.
	(spu_builtins): Add extern declaration with GTY marker.
	Include "gt-spu.h".

	* config/spu/spu-c.c: Do not include "spu-builtins.h".
	(spu_resolve_overloaded_builtin): Do not use spu_function_code.
	Check programmatically whether all parameters are scalar.

	* config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
	assignment from the constructor either if the target is volatile.

2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.md (insv): Do not share operands[0].

2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>

	* config/vxlib-tls.c (active_tls_threads): Delete.
	(delete_hook_installed): New.
	(tls_delete_hook): Don't delete the delete hook.
	(tls_destructor): Delete it here.
	(__gthread_set_specific): Adjust installing the delete hook.
	(tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
	__gthread_leave_tsd_dtor_context.

2009-04-23  Rafael Avila de Espindola  <espindola@google.com>

	* c-format.c (gcc_tdiag_char_table): Add support for %E.

2009-04-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
	enum type.
	(alpha_rtx_costs): Ditto.
	(emit_unlikely_jump): Use add_reg_note.
	(emit_frame_store_1): Ditto.
	(alpha_expand_prologue): Ditto.
	(alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
	* config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.

2009-04-23  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.md (epilogue): Remove suppressed code.
	(return): Rename to return_simple and remove test of frame size.
	* config/v850/v850.c (expand_epilogue): Rename call to gen_return
	to gen_return_simple.

2009-04-22  Jing Yu  <jingyu@google.com>

	PR testsuite/39781
	* config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.

2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C/31499
	* c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
	and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
	value is a VECTOR_CST, the element type is the element type of the
	vector.

2009-04-22  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.h: Update GTY annotations to new syntax.

2009-04-22  Jakub Jelinek  <jakub@redhat.com>

	* alias.c (find_base_term): Move around LO_SUM case, so that
	CONST falls through into PLUS/MINUS handling.

	PR c/39855
	* fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
	into 0, use omit_one_operand.

2009-04-23  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/linux-unwind.h (get_regs): Remove type
	puns. Change the type of `pc' to an array of unsigned ints and
	update all users.  Constify frame24.

2009-04-22  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_special_page_vector_p): Move
	declarations before code.
	(current_function_special_page_vector): Likewise.
	(m32c_expand_insv): Silence a warning.

2009-04-21  Taras Glek  <tglek@mozilla.com>

	* alias.c: Update GTY annotations to new syntax.
	* basic-block.h: Likewise.
	* bitmap.h: Likewise.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* c-parser.c: Likewise.
	* c-pragma.c: Likewise.
	* c-tree.h: Likewise.
	* cfgloop.h: Likewise.
	* cgraph.h: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/avr/avr.h: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/pa.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* cselib.h: Likewise.
	* dbxout.c: Likewise.
	* dwarf2out.c: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* fixed-value.h: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gimple.h: Likewise.
	* integrate.c: Likewise.
	* optabs.c: Likewise.
	* output.h: Likewise.
	* real.h: Likewise.
	* rtl.h: Likewise.
	* stringpool.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-flow.h: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.h: Likewise.
	* tree-ssa-operands.h: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.
	* vec.h: Likewise.
	* coretypes.h: Do not define GTY macro if it is already defined.
	* doc/gty.texi: Update GTY documentation to new syntax.
	* gengtype-lex.l: Enforce attribute-like syntax for GTY
	annotations on structs.
	* gengtype-parse.c: Likewise.

2009-04-22  Mark Heffernan  <meheff@google.com>

	* gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.

2009-04-22  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
	where appropriate.

2009-04-22  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
	the same as a PLUS without a shift.  Increase the cost of a
	CONST_INT in MULT.

2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* Makefile.in: Update dependencies.
	* errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
	* errors.h: Remove bogus comment about compatibility.
	(warning): Update declaration.
	* genautomata.c: Update all calls to warning.
	* gimple.c: Do not include errors.h. Include toplev.h.
	* tree-ssa-structalias.c: Do not include errors.h.
	* omega.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/spu/t-spu-elf: Update dependencies.

2009-04-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39824
	* tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
	make sure the types are compatible.

2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/14875
	* c-common.c (c_parse_error): Take a token_flags parameter.
	Use token_type for the token type instead.
	Pass token_flags to cpp_type2name.
	* c-common.h (c_parse_error): Update declaration.
	* c-parser.c (c_parser_error): Pass 0 as token flags.

2009-04-22  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/39580
	* sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.

2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* function.c (expand_function_end): Do not emit a jump to the "naked"
	return label for fall-through returns.
	* except.c (sjlj_emit_function_exit): Always place the call to the
	unregister function at the location installed by expand_function_end.

2009-04-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39845
	* tree-switch-conversion.c (build_arrays): Add new referenced vars.
	(gen_inbound_check): Likewise.

2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* gthr-vxworks.h (struct __gthread_once_t): Add alignment and
	padding for PPC.
	(__GTHREAD_ONCE_INIT): Adjust ppc initializer.
	* config/vxlib.c (__gthread_once): Add race guard for PPC.

2009-04-22  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
	sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
	shift counts to avoid out-of-bounds array accesses.

2009-04-22  Paolo Bonzini  <bonzini@gnu.org>

	* config/sparc/sparc.h (POINTER_SIZE): Fix comment.
	(Pmode): Move above.

2009-04-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
	NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
	GET_CODE macro.  Use IN_RANGE macro where appropriate.
	* config/alpha/alpha.h: Ditto.
	* config/alpha/alpha.md: Ditto.
	* config/alpha/constraints.md: Ditto.
	* config/alpha/predicates.md: Ditto.

2009-04-22  Paolo Bonzini  <bonzini@gnu.org>

	* defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
	* config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.

2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
	references from comments.
	* cfgbuild.c (count_basic_blocks): Delete.
	(find_basic_blocks_1): Delete.
	(find_basic_blocks): Delete.
	* except.c (finish_eh_generation): Make static.  Move comment from
	except.h here.  Remove find_basic_blocks references from comments.
	* except.h (finish_eh_generation): Delete.
	* basic-block.h (find_basic_blocks): Delete.
	* config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.

2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>

	* sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
	(sdbout_parms):  Likewise.

2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (prepare_cbranch_operands): Use
	LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
	(expand_cbranchdi4): Likewise.
	(from_compare): Add cast to enum type.
	(expand_cbranchsi4): Use add_reg_note.
	(output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
	(sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
	(sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
	(sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
	* config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
	instead of CODE_FOR_nothing.
	(cbranchdi4): Likewise.  Fix the order of arguments for
	gen_rtx_fmt_ee.
	(push_fpscr): Use add_reg_note.
	(pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
	reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.

2009-04-21  Joseph Myers  <joseph@codesourcery.com>

	* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
	ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
	ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
	ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
	ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
	FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
	config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
	config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
	config/alpha/x-vms, config/arc/t-arc,
	config/arm/README-interworking, config/arm/arm-c.c,
	config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
	config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
	config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
	config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
	config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
	config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
	config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
	config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
	config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
	config/cris/t-elfmulti, config/crx/t-crx,
	config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
	config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
	config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
	config/h8300/t-h8300, config/i386/athlon.md,
	config/i386/darwin-libgcc.10.4.ver,
	config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
	config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
	config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
	config/i386/t-linux64, config/i386/t-nwld,
	config/i386/t-rtems-i386, config/i386/t-sol2-10,
	config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
	config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
	config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
	config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
	config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
	config/iq2000/t-iq2000, config/libgcc-glibc.ver,
	config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
	config/m32r/t-m32r, config/m68hc11/t-m68hc11,
	config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
	config/m68k/t-uclinux, config/mcore/t-mcore,
	config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
	config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
	config/mips/crtn.asm, config/mips/irix-crti.asm,
	config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
	config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
	config/mips/mips-fixed.md, config/mips/sb1.md,
	config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
	config/mips/t-iris6, config/mips/t-isa3264,
	config/mips/t-libgcc-mips16, config/mips/t-linux64,
	config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
	config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
	config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
	config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
	config/mn10300/t-linux, config/mn10300/t-mn10300,
	config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
	config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
	config/picochip/libgccExtras/clzsi2.asm,
	config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
	config/rs6000/darwin-libgcc.10.4.ver,
	config/rs6000/darwin-libgcc.10.5.ver,
	config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
	config/rs6000/t-aix43, config/rs6000/t-aix52,
	config/rs6000/t-darwin, config/rs6000/t-fprules,
	config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
	config/rs6000/t-lynx, config/rs6000/t-netbsd,
	config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
	config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
	config/rs6000/t-rtems, config/rs6000/t-spe,
	config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
	config/score/t-score-elf, config/sh/divcost-analysis,
	config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
	config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
	config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
	config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
	config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
	config/stormy16/stormy-abi, config/stormy16/t-stormy16,
	config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
	config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
	config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
	config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
	config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
	gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
	java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
	limitx.h, version.c, xcoff.h: Add copyright and license notices.
	* config/h8300/genmova.sh: Include copyright and license notices
	in generated output.
	* config/h8300/mova.md: Regenerate.
	* doc/install.texi2html: Include word "Copyright" in copyright
	notice and use name "Free Software Foundation, Inc.".
	* ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
	ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
	ChangeLog-2007, ChangeLog-2008: Correct dates.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
	NE_EXPR operations as well.
	* c-parser.c (c_parser_condition): Do not set location information on
	the condition.
	(c_parser_conditional_expression): Likewise.
	(c_parser_binary_expression): Set location information on operators.
	* c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
	TRUTH_NOT_EXPR has been folded.
	* fold-const.c (fold_truth_not_expr): Copy location information from
	the incoming expression to the outgoing one.
	* gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
	recursive calls on the LHS of the operator but pass that of the
	operator to recursive calls on the RHS of the operator.  Set it
	on the COND_EXPR.
	(shortcut_cond_expr): Set the locus of the operator on the second
	COND_EXPR and that of the expression on the first in degenerate cases.
	Pass the locus of the expression to calls to shortcut_cond_r.
	Set the locus of the 'then' block on the associated jump, if any.
	(gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
	(gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
	expression to call to gimplify_boolean_expr.

2009-04-21  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc: Add additional configuration for
	i686-w64-mingw* and x86_64-w64-mingw* triplet.
	* config/i386/mingw-w64.h: New mingw-w64 specific header.
	(CPP_SPEC): Redefine for allowing -municode option.
	(STARTFILE_SPEC): Likewise.
	* config/i386/t-mingw-w64: New.
	* config/i386/mingw-w64.opt: New.
	(municode): Add new target option.
	* doc/invoke.texi (municode): Add documentation for new option.

2009-04-21  Ian Lance Taylor  <iant@google.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Correct test for number of arguments.
	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.

2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
	argument of emit_library_call.

2009-04-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39829
	* gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
	inside VIEW_CONVERT_EXPRs.

2009-04-21  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c (build_constructors): Split a long line.
	(constructor_contains_same_values_p): New function.
	(build_one_array): Create assigns of constants if possible, do not
	call mark_sym_for_renaming, call update_stmt.
	(build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
	make_rename_temp.  Do not call mark_symbols_for_renaming, call
	update_stmt.
	(gen_def_assigns): Do not call mark_symbols_for_renaming or
	find_new_referenced_vars, call update_stmt.
	(gen_inbound_check): Use create_tmp_var and create ssa names manually
	instead of calling make_rename_temp.  Do not call
	find_new_referenced_vars or mark_symbols_for_renaming, call
	update_stmt.

2009-04-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39827
	* tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
	(tree_ssa_phiprop): Pass the correct array size.

2009-04-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (tune): Add cast to enum attr_tune.

2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 16202
	* c-typeck.c (lvalue_p): Move declaration ...
	* c-common.h (lvalue_p): ... to here.
	* c-common.c (candidate_equal_p): New.
	(add_tlist): Use it.
	(merge_tlist): Use it.
	(warn_for_collisions_1): Likewise.
	(warning_candidate_p): Accept more candidates.
	(verify_tree): A warning candidate can be an expression. Use
	candidate_equal_p.

2009-04-21  Ben Elliston  <bje@au.ibm.com>

	PR target/5267
	* doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
	for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
	options.  Remove -mcall-solaris documentation.

2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/13358
	* doc/invoke.texi (-Wlong-long): Update description.
	* c-lex (interpret_integer): Only warn if there was no previous
	overflow and -Wlong-long is enabled.
	* c-decl.c (declspecs_add_type): Drop redundant flags.
	* c.opt (Wlong-long): Init to -1.
	* c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
	and front-end warn_long_long. Wlong-long only depends on other
	flags if it is uninitialized.
	* c-parser.c (disable_extension_diagnostics): warn_long_long is
	the same for CPP and FE.
	(restore_extension_diagnostics): Likewise.

2009-04-20  Ian Lance Taylor  <iant@google.com>

	Fix enum conversions which are invalid in C++:
	* auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
	* calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
	* cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
	* dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
	* dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
	(dbxout_parms): Likewise.
	* df-core.c (df_set_flags): Change changeable_flags parameter to int.
	(df_clear_flags): Likewise.
	* df-problems.c (df_rd_bb_local_compute_process_def): Change
	top_flag parameter to int.
	(df_chain_create_bb_process_use): Likewise.
	(df_chain_add_problem): Change chain_flags parameter to unsigned int.
	Remove cast.
	* df-scan.c (df_ref_create): Change ref_flags parameter to int.
	(df_ref_create_structure, df_def_record_1): Likewise.
	(df_defs_record, df_uses_record, df_get_call_refs): Likewise.
	(df_notes_rescan): Change 0 to VOIDmode in function call.
	(df_get_call_refs, df_insn_refs_collect): Likewise.
	(df_bb_regs_collect): Likewise.
	(df_entry_block_defs_collect): Likewise.
	(df_exit_block_uses_collect): Likewise.
	* df.h: Update declarations.
	* double-int.c (double_int_divmod): Add cast to enum type.
	* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
	* dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
	(based_loc_descr): Likewise.
	(loc_descriptor_from_tree_1): Change first_op and second_op to
	enum dwarf_location_atom.  Add cast to enum type.
	* expmed.c (init_expmed): Change 0 to SET in function call.
	* expr.c (init_expr_target): Change 0 to VOIDmode in function call.
	(expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
	(do_store_flag): Likewise.
	* fixed-value.h (struct fixed_value): Change mode to enum
	machine_mode.
	* function.c (assign_parms): Change 0 to VOIDmode in function call.
	* genautomata.c (insert_automaton_decl): Change 1 to INSERT in
	function call.
	(insert_insn_decl, insert_decl, insert_state): Likewise.
	(automata_list_finish): Likewise.
	* genrecog.c (process_define_predicate): Add cast to enum type.
	* gensupport.c (init_predicate_table): Add cast to enum type.
	* gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
	function call.
	(gimple_build_call_1, gimple_build_label): Likewise.
	(gimple_build_goto, gimple_build_asm_1): Likewise.
	(gimple_build_switch_1, gimple_build_cdt): Likewise.
	* gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
	(enum fallback): Rename from enum fallback_t.
	(fallback_t): Typedef as int.
	* gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
	GSI_SAME_STMT in function call.
	* ira.c (setup_class_subset_and_memory_move_costs): Add casts to
	enum type.
	(setup_reg_class_relations): Likewise.
	(setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
	(setup_prohibited_class_mode_regs): Add cast to enum type.
	(setup_prohibited_mode_move_regs): Likewise.
	* ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
	(record_address_regs): Change i to enum reg_class.
	* lists.c (alloc_EXPR_LIST): Add cast to enum type.
	* machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
	(GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
	(GET_MODE_2XWIDER_MODE): Likewise.
	(GET_CLASS_NARROWEST_MODE): Likewise.
	* omp-low.c (expand_omp_for): Add cast to enum type.
	* optabs.c (debug_optab_libfuncs): Add casts to enum type.
	* opts.c (enable_warning_as_error): Change kind to diagostic_t.
	* postreload.c (reload_cse_simplify_operands): Change rclass local
	to enum reg_class.
	* predict.c (combine_predictions_for_insn): Change best_predictor
	and predictor to enum br_predictor.
	(combine_predictions_for_bb): Likewise.
	(build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
	use SET_PREDICT_EXPR_OUTCOME.
	* real.c (real_arithmetic): Change icode to code in function call.
	* reginfo.c (init_move_cost): Add casts to enum type.
	(init_reg_sets_1, init_fake_stack_mems): Likewise.
	* regmove.c (regclass_compatible_p): Change class0 and class1 to
	enum reg_class.
	* reload.c (find_valid_class): Add casts to enum type.
	(push_reload): Change 0 to NO_REGS in function call.
	(find_reloads): Change this_alternative to array of enum
	reg_class.  Remove some now-unnecessary casts.
	(make_memloc): Change 0 to VOIDmode in function call.
	* reload1.c (reload): Change 0 to VOIDmode in function call.
	(eliminate_regs_1, elimination_effects): Likewise.
	(eliminate_regs_in_insn): Likewise.
	(emit_input_reload_insns): Add cast to enum type.
	(delete_output_reload): Change 0 to VOIDmode in function call.
	* reorg.c (insn_sets_resource_p): Convert include_delayed_effects
	to enum type in function call.
	* tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
	(SET_PREDICT_EXPR_OUTCOME): Define.
	* tree-dump.c (get_dump_file_info): Change phase parameter to int.
	(get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
	(dump_initialized_p, dump_flag_name, dump_end): Likewise.
	(dump_function): Likewise.
	* tree-dump.h: Update declarations.
	* tree-pass.h: Update declarations.
	* varasm.c (assemble_integer): Change mclass to enum mode_class.
	* config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
	enum type.
	(arm_rtx_costs_1): Correct parenthesization.
	(arm_rtx_costs): Add casts to enum type.
	(adjacent_mem_locations): Reverse arguments to const_ok_for_op.
	(vfp_emit_fstmd): Use add_rg_note.
	(emit_multi_reg_push, emit_sfm): Likewise.
	(thumb_set_frame_pointer): Likewise.
	(arm_expand_prologue): Likewise.
	(arm_regno_class): Change return type to enum reg_class.
	(thumb1_expand_prologue): Use add_reg_note.
	* config/arm/arm-protos.h (arm_regno_class): Update declaration.
	* config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
	in function call.
	* config/arm/gentune.sh: Add cast to enum type.
	* config/arm/arm-tune.md: Rebuild.
	* config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
	(ix86_split_fp_branch, predict_jump): Likewise.
	(ix86_expand_multi_arg_builtin): Change sub_code from enum
	insn_code to enum rtx_code.
	(ix86_builtin_vectorized_function): Add cast to enum type.
	* config/i386/i386.md (truncdfsf2): Change slot to enum
	ix86_stack_slot.
	(truncxf<mode>2, isinf<mode>2): Likewise.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
	enum type.
	* config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
	(spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
	(insert_bundle_state): Change 1 to INSERT in function call.
	(ia64_add_bundle_selector_before): Likewise.
	* config/ia64/ia64.md (cpu attr): Add cast to enum type.
	(save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
	(restore_stack_nonlocal): Likewise.
	* config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
	function call.
	* config/mips/mips.c (mips_binary_cost): Change 0 to SET in
	function call.
	(mips_rtx_costs): Likewise.
	(mips_override_options): Add casts to enum type.
	* config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
	in function call.
	* config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
	(store_reg, set_reg_plus_d): Likewise.
	(hppa_expand_prologue, hppa_profile_hook): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
	cast to enum type.
	(altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
	function call.
	(emit_unlikely_jump): Use add_reg_note.
	(rs6000_emit_allocate_stack): Likewise.
	(rs6000_frame_related, rs6000_emit_prologue): Likewise.
	(output_toc): Change 1 to INSERT in function call.
	(output_profile_hook): Change 0 to LCT_NORMAL in function call.
	(rs6000_initialize_trampoline): Likewise.
	(rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
	function call.
	* config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
	(s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
	(s390_expand_setmem, s390_expand_cmpmem): Likewise.
	(save_gprs): Use add_reg_note.
	(s390_emit_prologue): Likewise.
	(s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
	* config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
	(sparc_fold_builtin): Add cast to enum type.
	* config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
	enum insn_code.
	(spu_expand_prologue): Use add_reg_note.
	(expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.

2009-04-20  Ian Lance Taylor  <iant@google.com>

	* c-parser.c (c_parser_attributes): Change VEC back to tree list.
	(c_parser_postfix_expression_after_primary): Get VEC for list of
	arguments.  Get original types of arguments.  Call
	build_function_call_vec.
	(cached_expr_list_1, cached_expr_list_2): New static variables.
	(c_parser_expr_list): Change return type to VEC *.  Add
	p_orig_types parameter.  Change all callers.
	(c_parser_release_expr): New static function.
	(c_parser_vec_to_tree_list): New static function.
	* c-typeck.c (build_function_call): Rewrite to build a VEC and
	call build_function_call_vec.
	(build_function_call_vec): New function, based on old
	build_function_call.
	(convert_arguments): Remove nargs and argarray parameters.  Change
	values to a VEC.  Add origtypes parameter.
	(build_modify_expr): Add rhs_origtype parameter.  Change all callers.
	(convert_for_assignment): Add origtype parameter.  Change all
	callers.  If warn_cxx_compat, check for conversion to an enum
	type when calling a function.
	(store_init_value): Add origtype parameter.  Change all callers.
	(digest_init): Likewise.
	(struct init_node): Add origtype field.
	(add_pending_init): Add origtype parameter.  Change all callers.
	(output_init_element): Likewise.
	(output_pending_init_elements): Pass origtype from init_node to
	output_init_element.
	(process_init_element): Pass origtype from c_expr to
	output_init_element.
	(c_finish_return): Add origtype parameter.  Change all callers.
	* c-common.c (sync_resolve_size): Change params to VEC *.  Change
	caller.
	(sync_resolve_params): Likewise.
	(sync_resolve_return): Change params to first_param.  Change caller.
	(resolve_overloaded_builtins): Change params to VEC *.  Change
	callers.  Save first parameter around call to build_function_call_vec.
	* c-decl.c (finish_decl): Add origtype parameter.  Change all
	callers.  Call build_function_call_vec rather than
	build_function_call for cleanup.
	* c-tree.h: Update declarations.
	* c-common.h: Update declarations.
	* stub-objc.c (objc_rewrite_function_call): Change parameter from
	params to first_param.
	* target.h (struct gcc_target): Change resolve_overloaded_builtin
	params parameter from tree to void *.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Change arglist parameter to have type void *, and to be a pointer
	to a VEC.
	* config/rs6000/rs6000-protos.h
	(altivec_resolve_overloaded_builtin): Update declaration.
	* config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
	fnargs parameter to have type void *, and to be a pointer to a
	VEC.  Call build_function_call_vec instead of
	build_function_call.
	* config/spu/spu-protos.h (spu_expand_builtin): Update declaration.

2009-04-20  Joey Ye  <joey.ye@intel.com>
	    Xuepeng Guo  <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.

	* config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
	(IX86_LEA_PRIORITY): Likewise.
	(distance_non_agu_define): New function.
	(distance_agu_use): Likewise.
	(ix86_lea_for_add_ok): Likewise.
	(ix86_dep_by_shift_count): Likewise.

	* config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
	should split for LEA.

	* config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
	function.
	(ix86_dep_by_shift_count): Likewise.

2009-04-20  Richard Guenther  <rguenther@suse.de>

	* expr.c (handled_component_p): Move ...
	* tree.h (handled_component_p): ... here.
	* tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
	ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
	and REALPART_EXPR to be in one group.

2009-04-20  Richard Guenther  <rguenther@suse.de>

	* basic-block.h (get_all_dominated_blocks): Declare.
	* dominance.c (get_all_dominated_blocks): New function.
	* tree-cfg.c (get_all_dominated_blocks): Remove.
	(remove_edge_and_dominated_blocks): Adjust.
	* tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
	(tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
	instead of recursing.

2009-04-20  Doug Kwan  <dougkwan@google.com>

	* cgraph.h (cgraph_node_ptr): New type for vector functions.
	(struct cgraph_node_set_def): New type.
	(cgraph_node_set) New type. Also declare vector functions.
	(struct cgraph_node_set_element_def): New type.
	(cgraph_node_set_element): Ditto.
	(cgraph_node_set_iterator): New iterator type.
	(cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
	cgraph_node_set_remove, dump_cgraph_node_set,
	debug_cgraph_node_set): New prototypes.
	(csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
	cgraph_node_set_size): New inlines.
	* tree-pass.h (struct cgraph_node_set_def): New decl to avoid
	including cgraph.h.
	(struct ipa_opt_pass): Add struct cgraph_node_set_def
	argument to function 'write_summary'.
	* ipa.c: Include ggc.h.
	(hash_cgraph_node_set_element,
	eq_cgraph_node_set_element, cgraph_node_set_new,
	cgraph_node_set_add, cgraph_node_set_remove,
	cgraph_node_set_find, dump_cgraph_node_set,
	debug_cgraph_node_set): New functions.
	* Makefile.in (ipa.o): Add dependency on GGC_H.

2009-04-20  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39675
	* tree-vect-loop.c (vect_transform_loop): Remove currently redundant
	check of the return code of vect_schedule_slp. Check that
	stmt_vec_info still exists for the statement, before checking its
	vectorization type.

2009-04-20  Michael Matz  <matz@suse.de>

	* Makefile.in (generated_files): Take out $(simple_generated_c).

2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
	(UINTPTR_TYPE):  Likewise.

2009-04-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/37481
	* c-typeck.c (digest_init): Check for initializing an array with a
	string literal.

2009-04-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/19771
	* c-semantics.c (pop_stmt_list): Propagate
	STATEMENT_LIST_HAS_LABEL to parent statement list.

2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (mips_tune_attr): New macro.
	* config/mips/mips.md (cpu): Use it.

2009-04-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/38243
	* c-decl.c (shadow_tag_warned): Diagnose use of restrict when
	declaring a tag.

2009-04-19  Diego Novillo  <dnovillo@google.com>

	* toplev.c (compile_file): Move call to coverage_finish ...
	* cgraphunit.c (ipa_passes): ... here.
	Call cgraph_process_new_functions.
	* ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
	* Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.

2009-04-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
	cfun.
	(dump_cgraph_node): Dump can throw external flag.
	* ipa-pure-const.c (propagate): Fix propagation of nothrow flags.

2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/32061
	PR c++/36954
	* doc/invoke.texi: Add -Wlogical-op to -Wextra.
	* common.opt (Wlogical-op): Move from here...
	* c.opt (Wlogical-op): ... to here.
	* c-typeck.c (parser_build_binary_op): Update call to
	warn_logical_operator.
	* c-opts.c (c_common_post_options): Enable warn_logical_op with
	extra_warnings.
	* c-common.c (warn_logical_op): Update.
	* c-common.h (warn_logical_op): Update declaration.

2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (protected_set_expr_location): Fix formatting.

2009-04-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/27676
	* c-typeck.c (readonly_warning): new.
	(build_unary_op, build_modify_expr): Use readonly_warning for
	storing into something readonly but not const-qualified.

2009-04-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/22367
	* c-typeck.c (build_unary_op): Check for taking address of
	expression of type void.

2009-04-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/35210
	* c-typeck.c (build_function_call): Check for calling a function
	with qualified void return types.  Call require_complete_type when
	generating a trap.

2009-04-18  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
	Set nothrow flag.
	* cgraph.h (struct function): Reduce loop_nest to 30 bits; add
	can_throw_external flag.
	* ipa-reference.c (ipa_utils_reduced_inorder): Update call.
	* ipa-pure-const.c (ignore_edge): New function.
	(propagate): Compute order for NOTHROW computation; set NOTHROWs
	only over can_throw_external edges.
	(local_pure_const): Add nothrow flag.
	* ipa-utils.c (searchc): Add ignore_edge callback.
	(ipa_utils_reduced_inorder): Add ignore_edge callback.
	* ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
	(set_nothrow_function_flags): Update cgraph.
	* tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.

2009-04-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39804
	* tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
	(fold_stmt): ... this and ...
	(fold_stmt_inplace): ... this.
	(fold_stmt_1): Fold references in calls and asms.
	* tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.

2009-04-18  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vrp.c (ssa_name_nonzero_p): Remove.
	* tree.h: Remove the prototype for ssa_name_nonzero_p.

2009-04-18  Kazu Hirata  <kazu@codesourcery.com>

	* tree.c (function_args_count): Remove.
	* tree.h: Remove the prototype for function_args_count.

2009-04-18  Kazu Hirata  <kazu@codesourcery.com>

	* tree-iterator.c (expr_only): Remove.
	* tree.h: Remove the prototype for expr_only.

2009-04-18  Kazu Hirata  <kazu@codesourcery.com>

	* reginfo.c (cannot_change_mode_set_regs): Remove.
	* rtl.h: Remove the prototype for cannot_change_mode_set_regs.

2009-04-08  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
	whether operands 0 and 1 overlaps.

2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR middle-end/36902
	* tree-vrp.c (check_array_ref): Pass a location_t instead of a
	pointer. Use warning_at instead of warning.
	(search_for_addr_array): Likewise.
	(check_array_bounds): Likewise.
	(check_all_array_refs): Check that the incoming edge is not in the
	list of edges to be removed.
	(check_all_array_refs): Avoid the temporal pointer.
	(vrp_visit_cond_stmt): Fix typo.
	(simplify_switch_using_ranges): Handle the case where the switch
	index is an integer constant.

2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.c (mips_final_postscan_insn): Make it static.

2009-04-18  Kazu Hirata  <kazu@codesourcery.com>

	* doc/extend.texi, doc/invoke.texi: Fix typos.

2009-04-17  Cary Coutant  <ccoutant@google.com>

	* tree-flow-inline.h (get_lineno): Fix inverted test.

2009-04-17  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-pre.c (create_expression_by_pieces): Remove
	assertion for AVAIL_OUT.

2009-04-17  Mike Frysinger  <vapier@gentoo.org>

	PR target/38627
	* config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
	* config/sh/linux-atomic.asm: Likewise.

2009-04-17  Diego Novillo  <dnovillo@google.com>

	* except.c (debug_eh_tree): New.
	(struct eh_region, struct eh_status): Move ...
	* except.h: ... here.
	(add_type_for_runtime): Declare extern.
	(lookup_type_for_runtime): Likewise.
	(debug_eh_tree): Declare.
	* Makefile.in (GTFILES): List except.h before except.c

2009-04-17  Diego Novillo  <dnovillo@google.com>

	* omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
	* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
	* tree-dfa.c (find_referenced_vars_in): Factor out of ...
	(find_vars_r): ... here.
	* tree-flow.h (find_referenced_vars_in): Declare.
	* tree-ssa-pre.c (create_expression_by_pieces): Assert
	that AVAIL_OUT exists for BLOCK.
	* Makefile.in (CGRAPH_H): Add dependency on cif-code.def
	(tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
	(tree-parloops.o): Likewise.

2009-04-17  Simon Baldwin  <simonb@google.com>

	* toplev.c (default_tree_printer): Add handling for %E format.

2009-04-17  Diego Novillo  <dnovillo@google.com>

	* tree-pretty-print.c (dump_generic_node): Add break after
	TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
	FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
	FUNCTION_TYPE together.  Call print_struct_decl when printing
	structures and TDF_SLIM is not given.
	(print_struct_decl): Fix logic for detecting recursion.

2009-04-17  Rafael Avila de Espindola  <espindola@google.com>

	PR 31567
	* gcc.c (create_at_file): New.
	(compile_input_file_p): New.
	(do_spec_1): Use @args files for %i. Use create_at_file for %o.
	* main.c (main): Update call to toplev_main.
	* toplev.c (toplev_main): Change signature. Call expandargv.
	* toplev.h (toplev_main): Change signature.

2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (field_byte_offset): Use the type size as the field size
	if the latter is not constant.

2009-04-17  David Edelsohn  <edelsohn@gnu.org>

	* dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.

2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* dbxout.c (dbxout_block): Reinstate test on TREE_USED.
	* tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Handle component references view-converting an invariant address.

2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>

	* doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
	TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
	TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
	TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
	Use @deftypevr rather than @deftypevar.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
	(get_prop_source_stmt): Likewise.
	(can_propagate_from): Likewise.

2009-04-17  Andrew Stubbs  <ams@codesourcery.com>

	* configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
	TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
	(--with-multilib-list): Add default value.
	* configure: Regenerate.
	* Makefile.in (TM_ENDIAN_CONFIG): Define.
	(TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
	* config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
	TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
	Don't add default cpu to multilib list unnecessarily, but do enable
	the relevant compiler option..
	Add support for --with-multilib-list=<blank> and
	--with-multilib-list=!<somelib> to supress unwanted multilibs.
	* config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
	(MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
	(MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
	TM_MULTILIB_CONFIG.
	(MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
	(MULTILIB_OSDIRNAMES): New variable.
	* config/sh/t-1e: Delete file.
	* config/sh/t-mlib-sh1: Delete file.
	* config/sh/t-mlib-sh2: Delete file.
	* config/sh/t-mlib-sh2a: Delete file.
	* config/sh/t-mlib-sh2a-nofpu: Delete file.
	* config/sh/t-mlib-sh2a-single: Delete file.
	* config/sh/t-mlib-sh2a-single-only: Delete file.
	* config/sh/t-mlib-sh2e: Delete file.
	* config/sh/t-mlib-sh3e: Delete file.
	* config/sh/t-mlib-sh4: Delete file.
	* config/sh/t-mlib-sh4-nofpu: Delete file.
	* config/sh/t-mlib-sh4-single: Delete file.
	* config/sh/t-mlib-sh4-single-only: Delete file.
	* config/sh/t-mlib-sh4a: Delete file.
	* config/sh/t-mlib-sh4a-nofpu: Delete file.
	* config/sh/t-mlib-sh4a-single: Delete file.
	* config/sh/t-mlib-sh4a-single-only: Delete file.
	* config/sh/t-mlib-sh4al: Delete file.
	* config/sh/t-mlib-sh5-32media: Delete file.
	* config/sh/t-mlib-sh5-32media-nofpu: Delete file.
	* config/sh/t-mlib-sh5-64media: Delete file.
	* config/sh/t-mlib-sh5-64media-nofpu: Delete file.
	* config/sh/t-mlib-sh5-compact: Delete file.
	* config/sh/t-mlib-sh5-compact-nofpu: Delete file.
	* config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
	* doc/install.texi (Options specification): Add
	--with-multilib-list and --with-endian.

2009-04-17  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
	REVISION_c.
	(OBJS-common): Add plugin-version.o.
	(plugin-version.o): New.
	* gcc-plugin.h (plugin_gcc_version): New.
	(plugin_default_version_check): New.
	(plugin_init_func, plugin_init): Add version argument.
	* plugin-version.c: New.
	* plugin.c (str_plugin_gcc_version_name): New.
	(try_init_one_plugin): Read plugin_gcc_version from the plugin and
	pass it to the init function.
	(plugin_default_version_check): New.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
	for decl-vs-decl disambiguation.

2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.h (s390_tune_attr): New macro definition.
	* config/s390/s390.md (cpu attribute): Map to s390_tune_attr.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
	(fold_stmt_r): Likewise.
	(maybe_fold_reference): New function.
	(fold_gimple_assign): Handle cases fold_stmt_r did.
	(fold_stmt): Do not use fold_stmt_r.
	(fold_stmt_inplace): Likewise.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
	(record_equivalences_from_stmt): Remove useless checks and
	simplifications.
	* tree-ssa-pre.c (eliminate): Avoid converting a constant if
	the type is already suitable.

2009-04-17  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.

2009-04-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
	(CMPtype): Define as __gcc_CMPtype.

2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>

	* config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
	for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.

2009-04-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39746
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
	special-casing for builtins and static variable use/def.
	(call_may_clobber_ref_p_1): Likewise.

2009-04-16  Ian Lance Taylor  <iant@google.com>

	* df.h: Include "timevar.h".
	(struct df_problem): Change tv_id field to timevar_id_t.
	* tree-pass.h: Include "timevar.h".
	(struct opt_pass): Change tv_id field to timevar_id_t.
	* timevar.h (timevar_id_t): Define TV_NONE.
	* passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
	TV_NONE rather than tv_id != 0.
	(execute_one_pass): Likewise.
	* Makefile.in (DF_H): Add $(TIMEVAR_H).
	(TREE_PASS_H): Define.  Change all instances of tree-pass.h in
	dependencies to $(TREE_PASS_H).
	* bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
	to TV_NONE.
	(pass_branch_target_load_optimize2): Likewise.
	* cfglayout.c (pass_into_cfg_layout_mode): Likewise.
	(pass_outof_cfg_layout_mode): Likewise.
	* cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
	(pass_rebuild_cgraph_edges): Likewise.
	(pass_remove_cgraph_callee_edges): Likewise.
	* df-core.c (pass_df_initialize_opt): Likewise.
	(pass_df_initialize_no_opt): Likewise.
	(pass_df_finish): Likewise.
	* emit-rtl.c (pass_unshare_all_rtl): Likewise.
	* except.c (pass_set_nothrow_function_flags): Likewise.
	(pass_convert_to_eh_region_ranges): Likewise.
	* final.c (pass_compute_alignments): Likewise.
	* function.c (pass_instantiate_virtual_regs): Likewise.
	(pass_init_function): Likewise.
	(pass_leaf_regs): Likewise.
	(pass_match_asm_constraints): Likewise.
	* gimple-low.c (pass_lower_cf): Likewise.
	(pass_mark_used_blocks): Likewise.
	* init-regs.c (pass_initialize_regs): Likewise.
	* integrate.c (pass_initial_value_sets): Likewise.
	* ira.c (pass_ira): Likewise.
	* jump.c (pass_cleanup_barriers): Likewise.
	* omp-low.c (pass_expand_omp): Likewise.
	(pass_lower_omp): Likewise.
	* matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
	* recog.c (pass_split_all_insns): Likewise.
	(pass_split_after_reload): Likewise.
	(pass_split_before_regstack): Likewise.
	(pass_split_before_sched2): Likewise.
	(pass_split_for_shorten_branches): Likewise.
	* reginfo.c (pass_reginfo_init): Likewise.
	(pass_subregs_of_mode_init): Likewise.
	(pass_subregs_of_mode_finish): Likewise.
	* passes.c (pass_postreload): Likewise.
	* stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
	* tree-cfg.c (pass_remove_useless_stmts): Likewise.
	(pass_warn_function_return): Likewise.
	(pass_warn_function_noreturn): Likewise.
	* tree-complex.c (pass_lower_complex): Likewise.
	(pass_lower_complex_O0): Likewise.
	* tree-if-conv.c (pass_if_conversion): Likewise.
	* tree-into-ssa.c (pass_build_ssa): Likewise.
	* tree-mudflap.c (pass_mudflap_1): Likewise.
	(pass_mudflap_2): Likewise.
	* tree-nomudflap.c (pass_mudflap_1): Likewise.
	(pass_mudflap_2): Likewise.
	* tree-nrv.c (pass_return_slot): Likewise.
	* tree-object-size.c (pass_object_sizes): Likewise.
	* tree-optimize.c (pass_all_optimizations): Likewise.
	(pass_early_local_passes): Likewise.
	(pass_all_early_optimizations): Likewise.
	(pass_cleanup_cfg): Likewise.
	(pass_cleanup_cfg_post_optimizing): Likewise.
	(pass_free_datastructures): Likewise.
	(pass_free_cfg_annotations): Likewise.
	(pass_fixup_cfg): Likewise.
	(pass_init_datastructures): Likewise.
	* tree-ssa.c (pass_early_warn_uninitialized): Likewise.
	(pass_late_warn_uninitialized): Likewise.
	(pass_update_address_taken): Likewise.
	* tree-ssa-ccp.c (pass_fold_builtins): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
	(pass_cse_sincos): Likewise.
	(pass_convert_to_rsqrt): Likewise.
	* tree-ssa-structalias.c (pass_build_alias): Likewise.
	* tree-stdarg.c (pass_stdarg): Likewise.
	* tree-tailcall.c (pass_tail_recursion): Likewise.
	(pass_tail_calls): Likewise.
	* tree-vect-generic.c (pass_lower_vector): Likewise.
	(pass_lower_vector_ssa): Likewise.
	* tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.

2009-04-16  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
	XLR entry.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
	Handle -march=xlr.
	* config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
	logical and signext.

2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/39767
	* config/sh/predicates.md (arith_operand): Check if the operand
	of TRUNCATE is a REG.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* cfgrtl.c (delete_insn_chain_and_edges): Remove.
	* rtl.h: Remove the prototype for delete_insn_chain_and_edges.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* tree-iterator.c (tsi_split_statement_list_after,
	tsi_split_statement_list_before): Remove.
	* tree-iterator.h: Remove the prototypes for
	tsi_split_statement_list_after and tsi_split_statement_list_before.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* tree-ssa-propagate.c (stmt_makes_single_load): Remove.
	* tree-ssa-propagate.h: Remove the prototype for
	stmt_makes_single_load.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* emit-rtl.c (set_mem_attrs_from_reg): Remove.
	* rtl.h: Remove the prototype for set_mem_attrs_from_reg.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* tree-iterator.c (EXPR_LAST_BODY): Remove.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* except.c (eh_region_outer_p): Remove.
	* except.h: Remove the prototype for eh_region_outer_p.

2009-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* function.c (current_function_assembler_name): Remove.
	* function.h: Remove the prototype for
	current_function_assembler_name.

2009-04-16  Ian Lance Taylor  <iant@google.com>

	* rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
	(add_reg_note): Call alloc_reg_note.
	* rtl.h (alloc_reg_note): Declare.
	* combine.c (try_combine): Use alloc_reg_note.
	(recog_for_combine, move_deaths): Likewise.
	(distribute_notes): Use alloc_reg_note and add_reg_note.
	* haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
	* combine-stack-adj.c (adjust_frame_related_expr): Likewise.
	* reload1.c (eliminate_regs_1): Use alloc_reg_note.

2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/39762
	* ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
	ira_may_move_out_cost): Add comments about way of their usage.
	(ira_get_register_move_cost, ira_get_may_move_cost): New functions.

	* ira-conflicts.c (process_regs_for_copy): Use function
	ira_get_register_move_cost instead of global
	ira_register_move_cost.

	* ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
	color_pass, move_spill_restore, update_curr_costs): Ditto.

	* ira-lives.c (process_single_reg_class_operands): Ditto.

	* ira-emit.c (emit_move_list): Ditto.

	* ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
	(record_reg_classes): Ditto.  Use functions
	ira_get_register_move_cost and ira_get_may_move_cost instead of
	global vars ira_register_move_cost, ira_may_move_out_cost and
	ira_may_move_in_cost.
	(record_address_regs): Don't call ira_init_register_move_cost.
	Use function ira_get_may_move_cost instead of global
	ira_may_move_in_cost.
	(process_bb_node_for_hard_reg_moves): Use function
	ira_get_register_move_cost instead of global ira_register_move_cost.
	(ira_costs): Don't call ira_init_register_move_cost.

2009-04-16  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_binary):
	Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
	* ipa-struct-reorg.c (gen_size): Fold the built expressions.
	(create_general_new_stmt): Note that this function is broken.

2009-04-16  Rafael Avila de Espindola  <espindola@google.com>

	* common.opt (fhelp): Add Var(help_flag).
	* gcc-plugin.h (plugin_info): Add help.
	* plugin.c (plugin_name_args): Add help.
	(register_plugin_info): Set plugin->help.
	(print_help_one_plugin): New.
	(print_plugins_help): New.
	* plugin.h (print_plugins_help): New.
	* toplev.c (toplev_main): Call print_plugins_help if needed.

2009-04-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
	(gimple_ior_addresses_taken_1): New function.
	(gimple_ior_addresses_taken): Likewise.
	* gimple.h (struct gimple_statement_with_ops_base): Remove
	addresses_taken member.
	(gimple_ior_addresses_taken): Declare.
	(gimple_addresses_taken, gimple_addresses_taken_ptr,
	gimple_set_addresses_taken): Remove.
	* ipa-reference.c (mark_address): New function.
	(scan_stmt_for_static_refs): Use it for marking addresses taken.
	* tree-ssa-operands.c (add_to_addressable_set): Rename to ...
	(mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
	(gimple_add_to_addresses_taken): Remove.
	(get_tmr_operands): Call mark_address_taken.
	(get_asm_expr_operands): Likewise.
	(get_expr_operands): Likewise.
	(build_ssa_operands): Do not clear the addresses_taken bitmap.
	(free_stmt_operands): Do not free it.
	* tree-ssa.c (delete_tree_ssa): Likewise.
	(execute_update_addresses_taken): Use gimple_ior_addresses_taken.

2009-04-16  Richard Guenther  <rguenther@suse.de>

	* gimple.h (walk_stmt_load_store_addr_ops): Declare.
	(walk_stmt_load_store_ops): Likewise.
	* gimple.c (get_base_loadstore): New function.
	(walk_stmt_load_store_addr_ops): Likewise.
	(walk_stmt_load_store_ops): Likewise.
	* ipa-pure-const.c (check_op): Simplify.
	(check_load, check_store): New functions.
	(check_stmt): Use walk_stmt_load_store_ops.
	* ipa-reference.c (mark_load): Adjust signature.
	(mark_store): Likewise.
	(scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.

2009-04-16  Rafael Avila de Espindola  <espindola@google.com>

	* gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
	(plugin_info): New.
	* opts.c (common_handle_option): Don't call print_version.
	* plugin.c (plugin_name_args): Add version.
	(register_plugin_info): New.
	(register_callback): Handle PLUGIN_INFO.
	(try_init_one_plugin): New.
	(init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
	if failed to init.
	(finalize_one_plugin): New.
	(finalize_plugins): New.
	(print_one_plugin): New.
	(print_plugins_versions): New.
	* plugin.h (print_plugins_versions): New.
	(finalize_plugins): New.
	* toplev.c (compile_file): Don't call initialize_plugins.
	(print_version): Call print_plugins_versions.
	(toplev_main): Call initialize_plugins. Print version if needed.
	Call finalize_plugins.

2009-04-16  Rafael Avila de Espindola  <espindola@google.com>

	* common.opt (fversion): New.
	* gcc.c (print_version): New.
	(process_command): Don't print the version. Just set print_version.
	(main): Print version. Call subprocesses if print_version and
	verbose_flag are set.
	* opts.c (common_handle_option): Handle OPT_fversion.

2009-04-16  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39698
	* tree-vect-loop.c (get_initial_def_for_reduction): Use the
	type of the reduction variable.  Only generate the def if
	it is needed.

	* omp-low.c (expand_omp_for_generic): When converting to a pointer
	make sure to first convert to an integer of the same precision.
	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
	the type of the evolution correctly in computing the new
	induction variable base.

2009-04-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39625
	* tree-cfg.c (make_blocks): Split statements with to-be
	abnormal SSA names on the lhs.

2009-04-16  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
	Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
	* c-typeck.c (really_start_incremental_init): Likewise.
	* target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
	(TARGET_INITIALIZER): Remove it.
	* target.h (struct target): Remove vector_opaque_p.
	* tree.c (build_opaque_vector_type): New.
	* tree.h (TYPE_VECTOR_OPAQUE): New.
	(build_opaque_vector_type): Declare.
	* doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
	* config/rs6000/rs6000.c (build_opaque_vector_type,
	rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
	(rs6000_init_builtins): Use build_opaque_vector_type for
	opaque_V4SI_type_node.

2009-04-15  Catherine Moore  <clm@codesourcery.com>

	* debug.h (set_name):  Declare.
	* dwarf2out.c (dwarf2out_set_name): Declare.
	(dwarf2_debug_hooks): Add set_name.
	(find_AT_string): New.
	(add_AT_string): Call find_AT_string.
	(dwarf2out_set_name): New.
	* cp/decl.c (grokdeclarator): Call set_name.
	* vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
	* debug.c (do_nothing_debug_hooks):  Likewise.
	* dbxout.c (dbx_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.

2009-04-15  Michael Eager  <eager@eagercon.com>

	* config/rs6000/rs6000.c (rs6000_function_value): Set function return
	reg for single-precision FPU.
	* config/rs6000/rs6000.md (movsi_internal1): Only for
	!TARGET_SINGLE_FPU.
	(movsi_internal1_single): New. Add pattern to move SI values to/from
	single-precision FP regs.

2009-04-15  Richard Guenther  <rguenther@suse.de>

	* omp-low.c (lower_rec_input_clauses): Build correct address
	expressions.
	(expand_omp_for_generic): Fix multiplication type.
	* tree-loop-distribution.c (build_size_arg): Build a size_t argument.
	(generate_memset_zero): Fix types.
	* tree-profile.c (prepare_instrumented_value): Correctly
	widen a pointer.

2009-04-15  Ian Lance Taylor  <iant@google.com>

	* c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
	* c-opts.c (c_common_handle_option): For C, set warn_enum_compare
	for -Wall and for -Wc++-compat.
	(c_common_post_options): For C++, set warn_enum_compare if not
	already set.
	* c-tree.h (struct c_expr): Add field original_type.
	(build_external_ref): Update declaration.
	* c-parser.c (c_parser_braced_init): Set original_type.
	(c_parser_initelt): Likewise.
	(c_parser_expr_no_commas): Likewise.
	(c_parser_conditional_expression): Likewise.
	(c_parser_cast_expression): Likewise.
	(c_parser_unary_expression): Likewise.  Pull setting of
	original_code to top of function.
	(c_parser_sizeof_expression): Set original_type.
	(c_parser_alignof_expression): Likewise.
	(c_parser_postfix_expression): Likewise.  Pull setting of
	original_code to top of function.
	(c_parser_postfix_expression_after_paren_type): Set original_type.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_expression): Likewise.
	* c-typeck.c (build_external_ref): Add type parameter.  Change all
	callers.
	(c_expr_sizeof_expr): Set original_type field.
	(parser_build_unary_op): Likewise.
	(parser_build_binary_op): Likewise.  Optionally warn about
	comparisons of enums of different types.
	(digest_init): Set original_type field.
	(really_start_incremental_init): Likewise.
	(push_init_level, pop_init_level): Likewise.
	* doc/invoke.texi (Warning Options): -Wenum-compare now
	supported in C.

2009-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate): When replacing a PHI node carry
	out a necessary conversion.
	* tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
	names we didn't value number.
	* tree-mudflap.c (mf_build_check_statement_for): Use correct types.

2009-04-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39764
	* tree-ssa-ccp.c (get_value): Canonicalize value with
	canonicalize_float_value.

2009-04-15  Jan Hubicka  <jh@suse.cz>

	* builtins.def (va_start, va_end, va_copy): Fix my previous commit.
	Wrong version of patch.

2009-04-15  Jan Hubicka  <jh@suse.cz>

	* builtins.def (va_start, va_end, va_copy): Mark nothrow.

2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
	our distinct integral and vector types.

2009-04-15  Rafael Avila de Espindola  <espindola@google.com>

	* class.c (build_vtbl_ref_1): Remove call to assemble_external.
	* init.c (build_vtbl_address): Remove call to assemble_external.

2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
	output for other floating point modes.

2009-04-14  Diego Novillo  <dnovillo@google.com>

	* diagnostic.c (diagnostic_report_diagnostic): Do not
	warn about loaded plugins for DK_ERROR and DK_WARNING.
	* c-decl.c (declspecs_add_type): Move call to
	invoke_plugin_callbacks ...
	* c-parser.c (c_parser_declspecs): ... here.
	* plugin.c (dump_active_plugins): Tidy output.

2009-04-14  Diego Novillo  <dnovillo@google.com>
	    Le-Chun Wu  <lcwu@google.com>

	* configure.ac: Add --enable-plugin support.
	Define ENABLE_PLUGIN and PLUGINLIBS when specified.
	* Makefile.in (PLUGIN_H): Define.
	Export ENABLE_PLUGIN and GMPINC to site.exp.
	Add PLUGINLIBS to link command.
	Add/modify dependencies for plugin.o and files including plugin.h.
	(plugin.o): New.
	* config.in: Regenerate.

	* opts.c (common_handle_option): Handle OPT_fplugin_ and
	OPT_fplugin_arg_.

2009-04-14  Le-Chun Wu  <lcwu@google.com>

	* tree-pass.h (register_one_dump_file): Add a prototype for
	register_one_dump_file.
	* toplev.c (compile_file): Call initialize_plugins.
	(do_compile): Call invoke_plugin_callbacks.
	(toplev_main): Call invoke_plugin_callbacks.
	* common.opt: Add -fplugin= and -fplugin-arg-.
	* gcc-plugin.h: New public header file for plugins to include.
	* plugin.c: New source file.
	* plugin.h: New internal header file.
	* passes.c (register_one_dump_file): Make it external.

	* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.

2009-04-14  Diego Novillo  <dnovillo@google.com>

	* doc/plugins.texi: New.
	* doc/gccint.texi: Add reference to Plugins chapter.
	* doc/invoke.texi: Document -fplugin and -fplugin-arg
	* diagnostic.c (diagnostic_report_diagnostic): Warn about
	loaded plugins, if any.
	* timevar.def (TV_PLUGIN_INIT): Define.
	(TV_PLUGIN_RUN): Define.
	* plugin.c: Include timevar.h
	(plugins_active_p): New.
	(dump_active_plugins): New.
	(debug_active_plugins): New.

2009-04-14  Joseph Myers  <joseph@codesourcery.com>

	* config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
	library paths.
	* config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.

2009-04-14  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
	the same as a minus without a shift.

2009-04-14  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
	comparisons with small integers will always produce a short
	branch.

2009-04-14  Rafael Avila de Espindola  <espindola@google.com>

	Merge:
	2008-12-19  Diego Novillo  <dnovillo@google.com>

	* cgraph.c (dump_cgraph_node): Show memory address of NODE.

2009-04-14  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
	verification.
	(verify_gimple_assign_binary): Likewise.  Handle shifts and
	rotates correctly.
	(verify_gimple_phi): Print the mismatched argument position.
	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
	Fix types.
	(vect_update_init_of_dr): Likewise.
	* matrix-reorg.c (transform_access_sites): Do what the
	comment suggests.
	* omp-low.c (expand_omp_atomic_pipeline): Use the correct types.

2009-04-13  Michael Eager  <eager@eagercon.com>

	* config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
	_XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
	* config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
	* config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
	remove duplicate config

2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
	file_name:line_number type locator of the call site.

2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c: Put blank after comma.
	(automaton_decls): New.
	(struct unit_usage): Add comments to member next.
	(store_alt_unit_usage): Keep the list ordered.
	(unit_present_on_list_p, equal_alternatives_p): New.
	(check_regexp_units_distribution): Check units distribution
	correctness correctly.
	(main): Don't write automata if error is found.  Return correct
	exit code.

	* config/m68k/cf.md (cfv4_ds): Remove.
	(cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
	cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.

	* config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
	power4-load-ext, power4-store, power4-store-update,
	power4-fpstore, power4-fpstore-update, power4-two, power4-three,
	power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
	power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
	power4-sqrt, power4-isync): Modify reservation to make correct
	unit distribution to automata.

	* config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
	power5-store-update, power5-two, power5-three, power5-lmul,
	power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.

2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>

	* except.c (pass_set_nothrow_function_flags): Set name and add
	TODO_dump_func.
	(set_nothrow_function_flags): Mention in the dump file when
	changing a function to nothrow.

2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>

	PR/39066
	* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
	instead of unsigned long.

2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (return_used_this_function): Remove.
	(arm_output_function_prologue): Remove use of
	return_used_this_function.
	(output_return_instruction): Replace use of
	return_used_this_function
	by cfun->machine->return_used_this_function.
	(arm_output_epilogue): Likewise.
	(arm_output_function_epilogue): Likewise.
	(thumb_unexpanded_epilogue): Likewise.
	* config/arm/arm.h (struct machine_function):
	New member return_used_this_function.

2009-04-12  Mark Mitchell  <mark@codesourcery.com>

	* doc/install.texi: Correct description of default directory for
	--with-gxx-include-dir.

2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (build_range_check): Properly deal with enumeral and
	boolean base types.

2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/invoke.texi (max_gcse_passes): Remove documentation.
	* params.def (PARAM_MAX_GCSE_PASSES): Remove.
	* params.h (MAX_GCSE_PASSES): Remove.
	* gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
	in sequence.  Remove ability to run multiple passes.
	(bypass_jumps): Report run as third CPROP pass.

2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>

	PR middle-end/39651
	* except.c (can_throw_external): Look at each insn in a SEQUENCE
	when deciding whether the whole SEQUENCE can throw.

2009-04-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39740
	* config/alpha/predicates.md (local_symbolic_operand): Return 1 for
	offseted label references.

2009-04-11  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-pre.c (eliminate): Fix call of update_stmt.

2009-04-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39732
	* tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
	return variables as TREE_ADDRESSABLE.

2009-04-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39713
	* tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
	reference trees have SSA_NAME operands.

2009-04-11  Richard Guenther  <rguenther@suse.de>

	PR c/39712
	* c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
	address expressions.

2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
	match changes in Cygwin 1.7
	(UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
	UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.

2009-04-10  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/39701
	* doc/invoke.texi (Optimization Options): Document change in
	meaning and initialization of -fdelete-null-pointer-checks.

2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/39701
	* common.opt (-fdelete-null-pointer-checks): Initialize to 1.

	* opts.c (decode_options): Don't set flag_delete_null_pointer_checks
	here.

	* doc/invoke.texi: Update -fdelete-null-pointer-checks.

2009-04-10  Chao-ying Fu  <fu@mips.com>

	* doc/tm.texi (Instruction Output): Document
	TARGET_ASM_FINAL_POSTSCAN_INSN.
	* target.h (final_postscan_insn): New field in asm_out.
	* target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
	(TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
	* final.c (final_scan_insn): Call
	targetm.asm_out.final_postscan_insn after outputting
	an asm macro and a normal instruction.

	* config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
	* config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
	* config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
	(mips_final_prescan_insn, mips_final_postscan_insn): New functions.
	(TARGET_ASM_FINAL_POSTSCAN_INSN): New define.

2009-04-10  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/39701
	* fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
	variables as non-NULL even with -fdelete-null-pointer-checks.

2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/rs6000/darwin-vecsave.asm: Remove extra "*/".

2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39678
	* config/i386/i386.c (classify_argument): Handle SCmode with
	(bit_offset % 64) != 0.

2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Optimize Options): Add cross-reference to
	-Q --help=optimizers examples.

2009-04-10  Ben Elliston  <bje@au.ibm.com>

	PR target/36800
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
	regalign for the reg == fpr and TDmode case.

2009-04-09  David Ayers  <ayers@fsfe.org>

	PR objc/29200
	* objc/objc-act.c (warn_with_method): Remove helper function.
	(check_duplicates): Call warning and inform directly.
	(really_start_method): Likewise.

2009-04-09  Paolo Bonzini  <bonzini@gnu.org>

	* expmed.c (expand_divmod): Always use a comparison for a division
	by a large unsigned integer.

	* fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
	for things others than variables or functions as nonzero.

2009-04-09  Nick Clifton  <nickc@redhat.com>

	* unwind-compat.c: Change copyright header to refer to version
	3 of the GNU General Public License with version 3.1 of the
	GCC Runtime Library Exception and to point readers at the
	COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
	* config/alpha/crtfastmath.c: Likewise.
	* config/alpha/linux-unwind.h: Likewise.
	* config/alpha/qrnnd.asm: Likewise.
	* config/alpha/vms-crt0-64.c: Likewise.
	* config/alpha/vms-crt0.c: Likewise.
	* config/alpha/vms-dwarf2.asm: Likewise.
	* config/alpha/vms-dwarf2eh.asm: Likewise.
	* config/alpha/vms-psxcrt0-64.c: Likewise.
	* config/alpha/vms-psxcrt0.c: Likewise.
	* config/alpha/vms_tramp.asm: Likewise.
	* config/arc/initfini.c: Likewise.
	* config/arc/lib1funcs.asm: Likewise.
	* config/arm/bpabi-v6m.S: Likewise.
	* config/arm/bpabi.S: Likewise.
	* config/arm/bpabi.c: Likewise.
	* config/arm/crti.asm: Likewise.
	* config/arm/crtn.asm: Likewise.
	* config/arm/ieee754-df.S: Likewise.
	* config/arm/ieee754-sf.S: Likewise.
	* config/arm/lib1funcs.asm: Likewise.
	* config/arm/libunwind.S: Likewise.
	* config/arm/linux-atomic.c: Likewise.
	* config/arm/mmintrin.h: Likewise.
	* config/arm/pr-support.c: Likewise.
	* config/arm/unaligned-funcs.c: Likewise.
	* config/arm/unwind-arm.c: Likewise.
	* config/arm/unwind-arm.h: Likewise.
	* config/avr/libgcc.S: Likewise.
	* config/bfin/crti.s: Likewise.
	* config/bfin/crtlibid.s: Likewise.
	* config/bfin/crtn.s: Likewise.
	* config/bfin/lib1funcs.asm: Likewise.
	* config/bfin/linux-unwind.h: Likewise.
	* config/cris/arit.c: Likewise.
	* config/cris/cris_abi_symbol.c: Likewise.
	* config/darwin-64.c: Likewise.
	* config/darwin-crt2.c: Likewise.
	* config/darwin-crt3.c: Likewise.
	* config/darwin.h: Likewise.
	* config/dbxelf.h: Likewise.
	* config/dfp-bit.c: Likewise.
	* config/dfp-bit.h: Likewise.
	* config/elfos.h: Likewise.
	* config/fixed-bit.c: Likewise.
	* config/fixed-bit.h: Likewise.
	* config/fp-bit.c: Likewise.
	* config/fp-bit.h: Likewise.
	* config/fr30/crti.asm: Likewise.
	* config/fr30/crtn.asm: Likewise.
	* config/fr30/lib1funcs.asm: Likewise.
	* config/freebsd-spec.h: Likewise.
	* config/frv/cmovd.c: Likewise.
	* config/frv/cmovh.c: Likewise.
	* config/frv/cmovw.c: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/frvend.c: Likewise.
	* config/frv/lib1funcs.asm: Likewise.
	* config/glibc-stdint.h: Likewise.
	* config/h8300/clzhi2.c: Likewise.
	* config/h8300/crti.asm: Likewise.
	* config/h8300/crtn.asm: Likewise.
	* config/h8300/ctzhi2.c: Likewise.
	* config/h8300/fixunssfsi.c: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.
	* config/h8300/parityhi2.c: Likewise.
	* config/h8300/popcounthi2.c: Likewise.
	* config/i386/ammintrin.h: Likewise.
	* config/i386/att.h: Likewise.
	* config/i386/avxintrin.h: Likewise.
	* config/i386/biarch64.h: Likewise.
	* config/i386/bmmintrin.h: Likewise.
	* config/i386/cpuid.h: Likewise.
	* config/i386/cross-stdarg.h: Likewise.
	* config/i386/crtfastmath.c: Likewise.
	* config/i386/crtprec.c: Likewise.
	* config/i386/cygming-crtbegin.c: Likewise.
	* config/i386/cygming-crtend.c: Likewise.
	* config/i386/cygwin.asm: Likewise.
	* config/i386/emmintrin.h: Likewise.
	* config/i386/gmm_malloc.h: Likewise.
	* config/i386/gthr-win32.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/immintrin.h: Likewise.
	* config/i386/linux-unwind.h: Likewise.
	* config/i386/linux64.h: Likewise.
	* config/i386/mm3dnow.h: Likewise.
	* config/i386/mmintrin-common.h: Likewise.
	* config/i386/mmintrin.h: Likewise.
	* config/i386/nmmintrin.h: Likewise.
	* config/i386/pmm_malloc.h: Likewise.
	* config/i386/pmmintrin.h: Likewise.
	* config/i386/smmintrin.h: Likewise.
	* config/i386/sol2-c1.asm: Likewise.
	* config/i386/sol2-ci.asm: Likewise.
	* config/i386/sol2-cn.asm: Likewise.
	* config/i386/sol2-gc1.asm: Likewise.
	* config/i386/tmmintrin.h: Likewise.
	* config/i386/unix.h: Likewise.
	* config/i386/w32-unwind.h: Likewise.
	* config/i386/wmmintrin.h: Likewise.
	* config/i386/x86-64.h: Likewise.
	* config/i386/x86intrin.h: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/ia64/crtbegin.asm: Likewise.
	* config/ia64/crtend.asm: Likewise.
	* config/ia64/crtfastmath.c: Likewise.
	* config/ia64/crti.asm: Likewise.
	* config/ia64/crtn.asm: Likewise.
	* config/ia64/fde-glibc.c: Likewise.
	* config/ia64/lib1funcs.asm: Likewise.
	* config/ia64/linux-unwind.h: Likewise.
	* config/ia64/quadlib.c: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/linux.h: Likewise.
	* config/m32c/m32c-lib1.S: Likewise.
	* config/m32c/m32c-lib2-trapv.c: Likewise.
	* config/m32c/m32c-lib2.c: Likewise.
	* config/m32r/initfini.c: Likewise.
	* config/m68hc11/larith.asm: Likewise.
	* config/m68hc11/m68hc11-crt0.S: Likewise.
	* config/m68k/cf.md: Likewise.
	* config/m68k/crti.s: Likewise.
	* config/m68k/crtn.s: Likewise.
	* config/m68k/lb1sf68.asm: Likewise.
	* config/m68k/linux-unwind.h: Likewise.
	* config/mcore/crti.asm: Likewise.
	* config/mcore/crtn.asm: Likewise.
	* config/mcore/lib1.asm: Likewise.
	* config/mips/linux-unwind.h: Likewise.
	* config/mips/loongson.h: Likewise.
	* config/mips/mips16.S: Likewise.
	* config/mmix/crti.asm: Likewise.
	* config/mmix/crtn.asm: Likewise.
	* config/pa/fptr.c: Likewise.
	* config/pa/hpux-unwind.h: Likewise.
	* config/pa/lib2funcs.asm: Likewise.
	* config/pa/linux-atomic.c: Likewise.
	* config/pa/linux-unwind.h: Likewise.
	* config/pa/milli64.S: Likewise.
	* config/pa/quadlib.c: Likewise.
	* config/pa/stublib.c: Likewise.
	* config/picochip/libgccExtras/adddi3.asm: Likewise.
	* config/picochip/libgccExtras/ashlsi3.asm: Likewise.
	* config/picochip/libgccExtras/ashlsi3.c: Likewise.
	* config/picochip/libgccExtras/ashrsi3.asm: Likewise.
	* config/picochip/libgccExtras/ashrsi3.c: Likewise.
	* config/picochip/libgccExtras/cmpsi2.asm: Likewise.
	* config/picochip/libgccExtras/divmod15.asm: Likewise.
	* config/picochip/libgccExtras/divmodhi4.asm: Likewise.
	* config/picochip/libgccExtras/divmodsi4.asm: Likewise.
	* config/picochip/libgccExtras/longjmp.asm: Likewise.
	* config/picochip/libgccExtras/lshrsi3.asm: Likewise.
	* config/picochip/libgccExtras/lshrsi3.c: Likewise.
	* config/picochip/libgccExtras/parityhi2.asm: Likewise.
	* config/picochip/libgccExtras/popcounthi2.asm: Likewise.
	* config/picochip/libgccExtras/setjmp.asm: Likewise.
	* config/picochip/libgccExtras/subdi3.asm: Likewise.
	* config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
	* config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
	* config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
	* config/rs6000/750cl.h: Likewise.
	* config/rs6000/altivec.h: Likewise.
	* config/rs6000/biarch64.h: Likewise.
	* config/rs6000/crtresfpr.asm: Likewise.
	* config/rs6000/crtresgpr.asm: Likewise.
	* config/rs6000/crtresxfpr.asm: Likewise.
	* config/rs6000/crtresxgpr.asm: Likewise.
	* config/rs6000/crtsavfpr.asm: Likewise.
	* config/rs6000/crtsavgpr.asm: Likewise.
	* config/rs6000/darwin-asm.h: Likewise.
	* config/rs6000/darwin-fallback.c: Likewise.
	* config/rs6000/darwin-fpsave.asm: Likewise.
	* config/rs6000/darwin-ldouble.c: Likewise.
	* config/rs6000/darwin-tramp.asm: Likewise.
	* config/rs6000/darwin-unwind.h: Likewise.
	* config/rs6000/darwin-vecsave.asm: Likewise.
	* config/rs6000/darwin-world.asm: Likewise.
	* config/rs6000/e500crtres32gpr.asm: Likewise.
	* config/rs6000/e500crtres64gpr.asm: Likewise.
	* config/rs6000/e500crtres64gprctr.asm: Likewise.
	* config/rs6000/e500crtrest32gpr.asm: Likewise.
	* config/rs6000/e500crtrest64gpr.asm: Likewise.
	* config/rs6000/e500crtresx32gpr.asm: Likewise.
	* config/rs6000/e500crtresx64gpr.asm: Likewise.
	* config/rs6000/e500crtsav32gpr.asm: Likewise.
	* config/rs6000/e500crtsav64gpr.asm: Likewise.
	* config/rs6000/e500crtsav64gprctr.asm: Likewise.
	* config/rs6000/e500crtsavg32gpr.asm: Likewise.
	* config/rs6000/e500crtsavg64gpr.asm: Likewise.
	* config/rs6000/e500crtsavg64gprctr.asm: Likewise.
	* config/rs6000/eabi-ci.asm: Likewise.
	* config/rs6000/eabi-cn.asm: Likewise.
	* config/rs6000/eabi.asm: Likewise.
	* config/rs6000/linux-unwind.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/paired.h: Likewise.
	* config/rs6000/paired.md: Likewise.
	* config/rs6000/ppc64-fp.c: Likewise.
	* config/rs6000/ppu_intrinsics.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/si2vmx.h: Likewise.
	* config/rs6000/sol-ci.asm: Likewise.
	* config/rs6000/sol-cn.asm: Likewise.
	* config/rs6000/spe.h: Likewise.
	* config/rs6000/spu2vmx.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/tramp.asm: Likewise.
	* config/rs6000/vec_types.h: Likewise.
	* config/s390/linux-unwind.h: Likewise.
	* config/s390/tpf-unwind.h: Likewise.
	* config/score/crti.asm: Likewise.
	* config/score/crtn.asm: Likewise.
	* config/sh/crt1.asm: Likewise.
	* config/sh/crti.asm: Likewise.
	* config/sh/crtn.asm: Likewise.
	* config/sh/divtab-sh4-300.c: Likewise.
	* config/sh/divtab-sh4.c: Likewise.
	* config/sh/divtab.c: Likewise.
	* config/sh/lib1funcs-4-300.asm: Likewise.
	* config/sh/lib1funcs-Os-4-200.asm: Likewise.
	* config/sh/lib1funcs.asm: Likewise.
	* config/sh/lib1funcs.h: Likewise.
	* config/sh/linux-atomic.asm: Likewise.
	* config/sh/linux-unwind.h: Likewise.
	* config/sh/shmedia.h: Likewise.
	* config/sh/sshmedia.h: Likewise.
	* config/sh/ushmedia.h: Likewise.
	* config/sparc/crtfastmath.c: Likewise.
	* config/sparc/linux-unwind.h: Likewise.
	* config/sparc/sol2-c1.asm: Likewise.
	* config/sparc/sol2-ci.asm: Likewise.
	* config/sparc/sol2-cn.asm: Likewise.
	* config/spu/divmodti4.c: Likewise.
	* config/spu/divv2df3.c: Likewise.
	* config/spu/float_disf.c: Likewise.
	* config/spu/float_unsdidf.c: Likewise.
	* config/spu/float_unsdisf.c: Likewise.
	* config/spu/float_unssidf.c: Likewise.
	* config/spu/mfc_multi_tag_release.c: Likewise.
	* config/spu/mfc_multi_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_release.c: Likewise.
	* config/spu/mfc_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_table.c: Likewise.
	* config/spu/multi3.c: Likewise.
	* config/spu/spu_internals.h: Likewise.
	* config/spu/spu_intrinsics.h: Likewise.
	* config/spu/spu_mfcio.h: Likewise.
	* config/spu/vec_types.h: Likewise.
	* config/spu/vmx2spu.h: Likewise.
	* config/stormy16/stormy16-lib2.c: Likewise.
	* config/svr4.h: Likewise.
	* config/sync.c: Likewise.
	* config/v850/lib1funcs.asm: Likewise.
	* config/vxlib-tls.c: Likewise.
	* config/vxlib.c: Likewise.
	* config/vxworks-dummy.h: Likewise.
	* config/xtensa/crti.asm: Likewise.
	* config/xtensa/crtn.asm: Likewise.
	* config/xtensa/ieee754-df.S: Likewise.
	* config/xtensa/ieee754-sf.S: Likewise.
	* config/xtensa/lib1funcs.asm: Likewise.
	* config/xtensa/lib2funcs.S: Likewise.
	* config/xtensa/linux-unwind.h: Likewise.
	* config/xtensa/unwind-dw2-xtensa.c: Likewise.
	* config/xtensa/unwind-dw2-xtensa.h: Likewise.
	* coretypes.h: Likewise.
	* crtstuff.c: Likewise.
	* defaults.h: Likewise.
	* dwarf2.h: Likewise.
	* emutls.c: Likewise.
	* gbl-ctors.h: Likewise.
	* gcov-io.h: Likewise.
	* ginclude/float.h: Likewise.
	* ginclude/iso646.h: Likewise.
	* ginclude/stdarg.h: Likewise.
	* ginclude/stdbool.h: Likewise.
	* ginclude/stddef.h: Likewise.
	* ginclude/stdfix.h: Likewise.
	* ginclude/stdint-gcc.h: Likewise.
	* ginclude/tgmath.h: Likewise.
	* gthr-aix.h: Likewise.
	* gthr-dce.h: Likewise.
	* gthr-gnat.c: Likewise.
	* gthr-gnat.h: Likewise.
	* gthr-lynx.h: Likewise.
	* gthr-mipssde.h: Likewise.
	* gthr-nks.h: Likewise.
	* gthr-posix.c: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-posix95.h: Likewise.
	* gthr-rtems.h: Likewise.
	* gthr-single.h: Likewise.
	* gthr-solaris.h: Likewise.
	* gthr-tpf.h: Likewise.
	* gthr-vxworks.h: Likewise.
	* gthr-win32.h: Likewise.
	* gthr.h: Likewise.
	* libgcc2.c: Likewise.
	* libgcc2.h: Likewise.
	* libgcov.c: Likewise.
	* tsystem.h: Likewise.
	* typeclass.h: Likewise.
	* unwind-c.c: Likewise.
	* unwind-compat.h: Likewise.
	* unwind-dw2-fde-compat.c: Likewise.
	* unwind-dw2-fde-darwin.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2.h: Likewise.
	* unwind-generic.h: Likewise.
	* unwind-pe.h: Likewise.
	* unwind-sjlj.c: Likewise.
	* unwind.inc: Likewise.
	* config/arm/neon-gen.ml: Change generated copyright header to
	refer to version 3 of the GNU General Public License with
	version 3.1 of the GCC Runtime Library Exception and to point
	readers at the COPYING3 and COPYING3.RUNTIME files and the
	FSF's license web page.
	* config/arm/arm_neon.h: Regenerate.

2009-04-09  Jakub Jelinek  <jakub@redhat.com>

	* config/cris/cris.md: Change copyright header to refer to version
	3 of the GNU General Public License.
	* doc/install.texi2html: Change copyright header to refer to version
	3 of the GNU General Public License and to point readers at the
	COPYING3 file and the FSF's license web page.
	* config/vax/linux.h: Likewise.

2009-04-09  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386.md (cmpcc): New.
	* config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
	(sync_compare_and_swap_cc*): Delete.

	* config/s390/s390.c (s390_compare_emitted): Remove.
	(s390_emit_compare): Handle MODE_CC s390_compare_op0 like
	s390_compare_emitted used to be handled.  Assert that modes match.
	(s390_emit_compare_and_swap): Use s390_emit_compare, do not
	refer to sync_compare_and_swap_ccsi.
	* config/s390/s390.h (s390_compare_emitted): Remove.
	* config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
	instead of s390_compare_emitted.
	(stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
	instead of s390_compare_emitted.
	* config/s390/s390.md (cmpcc): New.
	(sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
	CC_REGNUM, do not pretend it's set.
	(sync_compare_and_swap_cc*): Delete.
	* config/s390/predicates.md (cc_reg_operand): New.

	* expr.c (sync_compare_and_swap_cc): Delete.
	* optabs.h (sync_compare_and_swap_cc): Delete.
	* optabs.c (prepare_cmp_insn): Ignore which specific CCmode
	is being used with can_compare_p.
	(emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
	(find_cc_set): New.
	(expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
	look for a MODE_CC set instead.  Use emit_store_flag.
	(expand_compare_and_swap_loop): Likewise, with some additional
	complication to avoid a force_reg when useless.  Use
	emit_cmp_and_jump_insns.
	* genopinit.c (optabs): Delete sync_compare_and_swap_cc.
	* doc/md.texi (sync_compare_and_swap_cc): Merge with
	sync_compare_and_swap documentation.

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

	* except.c (find_prev_try): Break out from ....
	(duplicate_eh_regions): ... here; properly update prev_try pointers
	when duplication part of tree.
	(dump_eh_tree): Improve dumping.
	(verify_eh_region): New.
	(verify_eh_tree): Use it.

2009-04-06  Richard Guenther  <rguenther@suse.de>

	* c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
	&ARRAY addresses by adjusting their types and prepending
	a conversion.
	* tree-cfg.c (verify_gimple_assign_single): Verify that
	addresses are correct.

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

	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
	indices into an array reference if possible.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Fold POINTER_PLUS_EXPR statements with invariant address.

2009-04-09  Alan Modra  <amodra@bigpond.net.au>

	PR target/39634
	* config.gcc (powerpc64-*-linux*): Always build biarch.

2009-04-09  Joseph Myers  <joseph@codesourcery.com>

	PR c/39613
	* c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
	it and pedwarn if this results in an INTEGER_CST.

2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Update minimum GMP version.  Remove obsolete
	text in MPFR section.

2009-04-08  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (class_scope_p): New static inline.
	(class_or_namespace_scope_p): Use it.
	(gen_variable_die): Use DW_TAG_member tag for static data member
	declarations instead of DW_TAG_variable.

	PR middle-end/39573
	* omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
	variables.

2009-04-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (valueize_refs): Do not continue to
	valueize random data.

2009-04-08  David Edelsohn  <edelsohn@gnu.org>

	* config.gcc (aix tm_file):  Add aix-stdint.h.
	(aix tm clause use_gcc_stdint):  Set to wrap.
	* config/rs6000/aix-stdint.h:  New file.

2009-04-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36291
	* tree-dfa.c (add_referenced_var): Do not recurse into
	global initializers.
	* tree-ssa-ccp.c (get_symbol_constant_value): Add newly
	exposed variables.
	(fold_const_aggregate_ref): Likewise.

2009-04-08  Paolo Bonzini  <bonzini@gnu.org>

	* recog.c (ordered_comparison_operator): New.
	* gensupport.c (std_preds): Add it.
	* doc/md.texi (Machine-Independent Predicates): Document it.

2009-04-08  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
	* function.h (rtl_eh): Remove exception_handler_label_map.
	* except.c (ehl_hash, ehl_eq, add_ehl_entry,
	remove_exception_handler_label, for_each_eh_label_1): Remove.
	(rtl_remove_unreachable_regions): Remove.
	(convert_from_eh_region_ranges): Do not remove unreachable regions.
	(find_exception_handler_labels): Don't build the hashtable.
	(maybe_remove_eh_handler): Remove.
	(for_each_eh_label): Rewrite to walk the tree.
	(rest_of_handle_eh): Do not cleanup cfg prior EH construction.
	* except.h (maybe_remove_eh_handler): Remove.
	* passes.c (init_optimization_passes): Schedule second EH cleanup
	before out-of-ssa.
	* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
	cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.

2009-04-08  Paolo Bonzini  <bonzini@gnu.org>

	* genoutput.c (validate_optab_operands): New.
	(gen_insn, gen_expand): Call it.

	* genflags.c (gen_insn): Detect misused iterators.
	(main): Pass line_no to gen_insn, exit with status 1 on error.

	* genextract.c (line_no): Make global.
	(VEC_safe_set_locstr): Change assertion to error message.
	(main): Exit with status 1 on error.

2009-04-08  Joseph Myers  <joseph@codesourcery.com>

	PR c/39614
	PR c/39673
	* c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
	C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
	EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
	* c-convert.c (convert): Do not call fold on results of conversion
	functions when the result is a C_MAYBE_CONST_EXPR.
	* c-parser.c (c_parser_postfix_expression): Do not fold condition
	of __builtin_choose_expr.
	* c-typeck.c (remove_c_maybe_const_expr): New.
	(build_unary_op, build_conditional_expr, build_compound_expr,
	build_binary_op, c_objc_common_truthvalue_conversion): Call
	remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
	integer operands.

2009-04-08  Bingfeng Mei  <bmei@broadcom.com>

	* fold-const.c (const_binop): Combine two VECTOR_CST under operation
	CODE to produce a new one. Add a prototype to use fold_convert_const

2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>

	PR bootstrap/39660
	* config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
	mix declarations and code.

2009-04-08  Ben Elliston  <bje@au.ibm.com>

	* gcc.c: Replace `CC' with `GCC' throughout.

2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Document Atom support.

2009-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/25185
	* c-common.h, c-common.c: Add flag_pretty_templates.
	* c-opts.c (c_common_handle_option): Set it.
	* c.opt: Add -fno-pretty-templates.
	* doc/invoke.texi (C++ Dialect Options): Likewise.

2009-04-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
	(ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
	(ia64_expand_builtin): Likewise.

2009-04-07  Martin Jambor  <mjambor@suse.cz>

	* tree-ssa-alias.c (refs_may_alias_p_1): Check for
	is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
	ADDR_EXPRS are include too.

2009-04-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
	decls are only used if passes as parameters or if they are
	local statics and the call is not to a builtin.
	(call_may_clobber_ref_p_1): Likewise.

2009-04-07  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (do_store_flag): Remove last argument.  Simplify code
	to avoid duplication of tests already done by can_compare_p.
	(expand_expr_real_1): Adjust caller.

2009-04-07  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (can_compare_p): Test the predicate of a
	cbranch and cstore pattern.

2009-04-07  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (convert_move): Use emit_store_flag instead of
	"emulating" it.

2009-04-07  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386.c (ix86_compare_emitted): Remove.
	(ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
	ix86_compare_op0 like ix86_compare_emitted used to be handled.
	* config/i386/i386.h (ix86_compare_emitted): Remove.
	* config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
	instead of ix86_compare_emitted.
	* config/i386/sync.md (sync_compare_and_swap_cc): Likewise.

2009-04-07  Andrew Stubbs  <ams@codesourcery.com>

	* config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
	Add t-sysroot-suffix to tmake_file.
	* config/print-sysroot-suffix.sh: New file.
	* config/t-sysroot-suffix: New file.

2009-04-07  Ben Elliston  <bje@au.ibm.com>

	* libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
	as the latter produces a warning when the target does not support
	infinity.

2009-04-07  Ben Elliston  <bje@au.ibm.com>

	* dfp.c: Replace type punning assignments with memcpy throughout.
	* Makefile.in (dfp.o-warn): Remove.

2009-04-07  Alan Modra  <amodra@bigpond.net.au>

	PR target/39634
	* config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
	Include soft-fp/t-softfp after rs6000/t-linux64.

2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (set_sizetype): Use the full precision of their
	machine mode for bitsize types.

2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md: Revert 2 accidental checkins.

2009-04-06  Joey Ye  <joey.ye@intel.com>
	    Xuepeng Guo  <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	Atom pipeline model, tuning and insn selection.
	* config.gcc (atom): Add atom config options and target.

	* config/i386/atom.md: New.

	* config/i386/i386.c (atom_cost): New cost.
	(m_ATOM): New macro flag.
	(initial_ix86_tune_features): Set m_ATOM.
	(x86_accumulate_outgoing_args): Likewise.
	(x86_arch_always_fancy_math_387): Likewise.
	(processor_target): Add Atom cost.
	(cpu_names): Add Atom cpu name.
	(override_options): Set Atom ISA.
	(ix86_issue_rate): New case PROCESSOR_ATOM.
	(ix86_adjust_cost): Likewise.

	* config/i386/i386.h (TARGET_ATOM): New target macro.
	(ix86_tune_indices): Add X86_TUNE_OPT_AGU.
	(TARGET_OPT_AGU): New target option.
	(target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
	(processor_type): Add PROCESSOR_ATOM.

	* config/i386/i386.md (cpu): Add new value "atom".
	(use_carry, movu): New attr.
	(atom.md): Include atom.md.
	(adddi3_carry_rex64): Set attr "use_carry".
	(addqi3_carry): Likewise.
	(addhi3_carry): Likewise.
	(addsi3_carry): Likewise.
	(*addsi3_carry_zext): Likewise.
	(subdi3_carry_rex64): Likewise.
	(subqi3_carry): Likewise.
	(subhi3_carry): Likewise.
	(subsi3_carry): Likewise.
	(x86_movdicc_0_m1_rex64): Likewise.
	(*x86_movdicc_0_m1_se): Likewise.
	(x86_movsicc_0_m1): Likewise.
	(*x86_movsicc_0_m1_se): Likewise.
	(*adddi_1_rex64): Emit add insn as much as possible.
	(*addsi_1): Likewise.
	(return_internal): Set atom_unit.
	(return_internal_long): Likewise.
	(return_pop_internal): Likewise.
	(*rcpsf2_sse): Set atom_sse_attr attr.
	(*qrt<mode>2_sse): Likewise.
	(*prefetch_sse): Likewise.

	* config/i386/i386-c.c (ix86_target_macros_internal): New case
	PROCESSOR_ATOM.
	(ix86_target_macros_internal): Likewise.

	* config/i386/sse.md (cpu): Set attr "atom_sse_attr".
	(*prefetch_sse_rex): Likewise.
	(sse_rcpv4sf2): Likewise.
	(sse_vmrcpv4sf2): Likewise.
	(sse_sqrtv4sf2): Likewise.
	(<sse>_vmsqrt<mode>2): Likewise.
	(sse_ldmxcsr): Likewise.
	(sse_stmxcsr): Likewise.
	(*sse_sfence): Likewise.
	(sse2_clflush): Likewise.
	(*sse2_mfence): Likewise.
	(*sse2_lfence): Likewise.
	(avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
	(<sse>_movup<ssemodesuffixf2c>): Likewise.
	(avx_movdqu<avxmodesuffix>): Likewise.
	(avx_lddqu<avxmodesuffix>): Likewise.
	(sse2_movntv2di): Change attr "type" to "ssemov".
	(sse2_movntsi): Likewise.
	(rsqrtv8sf2): Change attr "type" to "sseadd".
	(sse3_addsubv2df3): Set attr "atom_unit".
	(sse3_h<plusminus_insn>v4sf3): Likewise.
	(*sse2_pmaddwd): Likewise.
	(*vec_extractv2di_1_rex64): Likewise.
	(*vec_extractv2di_1_avx): Likewise.
	(sse2_psadbw): Likewise.
	(ssse3_phaddwv8hi3): Likewise.
	(ssse3_phaddwv4hi3): Likewise.
	(ssse3_phadddv4si3): Likewise.
	(ssse3_phadddv2si3): Likewise.
	(ssse3_phaddswv8hi3): Likewise.
	(ssse3_phaddswv4hi3): Likewise.
	(ssse3_phsubwv8hi3): Likewise.
	(ssse3_phsubwv4hi3): Likewise.
	(ssse3_phsubdv4si3): Likewise.
	(ssse3_phsubdv2si3): Likewise.
	(ssse3_phsubswv8hi3): Likewise.
	(ssse3_phsubswv4hi3): Likewise.
	(ssse3_pmaddubsw128): Likewise.
	(sse3_pmaddubsw: Likewise.
	(ssse3_palignrti): Likewise.
	(ssse3_palignrdi): Likewise.

2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Fix two cross-references to MinGW.

2009-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/28868
	* tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
	of which PHI results we inserted.
	(insert_into_preds_of_block): Record inserted PHIs.
	(eliminate): Eliminate redundant PHI nodes.
	(init_pre): Init inserted_phi_names.

2009-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39643
	* tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
	IMAGPART_EXPRs of complex constants.
	(execute_fold_all_builtins): If we folded a call queue
	TODO_update_address_taken.

2009-04-06  Jan Hubicka  <jh@suse.cz>

	PR middle-end/39659
	* except.c (remove_unreachable_regions): Propagate may_contain_throw
	flag.

2009-04-06  Andrew Stubbs  <ams@codesourcery.com>

	* config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
	delay slot.
	(ic_invalidate_array): Likewise.

2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* calls.c (emit_library_call_value_1): Fix a problem with parameter
	alignment for library calls.

2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>

	* config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
	(mingw32 tm clause use_gcc_stdint):  Set to wrap.
	* config/i386/mingw-stdint.h:  New file.

2009-04-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39648
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
	our &A vs. &A[0] IL deficiencies.

2009-04-04  Jan Hubicka  <jh@suse.cz>

	* except.c (sjlj_find_directly_reachable_regions): Be ready for
	removed toplevel regions.
	(sjlj_mark_call_sites): Likewise.

2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
	(cygwin tm clause use_gcc_stdint):  Set to wrap.
	* config/i386/cygwin-stdint.h:  New file.

2009-04-04  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
	* tree-ssa-copy.c (init_copy_prop): Do not propagate through
	single-argument PHIs if we are in loop-closed SSA form.
	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
	for the pre-condition.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_build_loop_niters): Take an optional sequence to append stmts.
	(vect_generate_tmps_on_preheader): Likewise.
	(vect_do_peeling_for_loop_bound): Take extra guards for the
	pre-condition.
	(vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
	the cost model check.
	(vect_loop_versioning): Take stmt and stmt list to put pre-condition
	guards if we are going to peel.  Do not apply versioning in that case.
	* tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
	(vect_do_peeling_for_loop_bound): Likewise.
	* tree-vect-loop.c (vect_transform_loop): If we are peeling for
	loop bound only record extra pre-conditions, do not apply loop
	versioning.

2009-04-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (pop_stmt_changes): Remove automatic
	renaming code.

2009-04-04  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
	last_basic_block for size of bb->index indexed array.
	* bt-load.c (compute_defs_uses_and_gen, compute_kill,
	compute_out, link_btr_uses, build_btr_def_use_webs,
	build_btr_def_use_webs, migrate_btr_defs): Likewise.

2009-04-04  Jan Hubicka  <jh@suse.cz>

	* except.c (remove_eh_handler_and_replace): Break out from ...
	(remove_eh_handler): ... here.
	(bring_to_root): New function.
	(remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
	handled ones, bring others to root of tree.

2009-04-04  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
	(all_phis_safe_to_merge): New function.
	(update_info): New structure.
	(make_eh_edge_and_update_phi, update_eh_edges): New functions.
	(cleanup_empty_eh): Update SSA if possible.

2009-04-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
	* tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
	(append_vuse): Likewise.

2009-04-04  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
	* unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
	instead of REG_UNSAVED for DW_CFA_undefined.
	(uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
	(uw_update_context): If RA column is REG_UNDEFINED, mark it as
	outermost frame.

2009-04-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/39501
	* arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.

2009-04-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/8781
	PR tree-optimization/37892
	* tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
	(valueize_refs): Call it for *& valueizations.
	(shared_reference_ops_from_ref): Rename to ...
	(valueize_shared_reference_ops_from_ref): ... this and valueize.
	(shared_reference_ops_from_call): Rename to ...
	(valueize_shared_reference_ops_from_call): ... this and valueize.
	(vn_reference_lookup): Update.
	(visit_reference_op_call): Likewise.
	* tree-ssa-pre.c (phi_translate_1): Fold *&.
	(eliminate): Value-replace the call address in call statements.

2009-04-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39636
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Check for
	GIMPLE_ASSIGN before accessing the rhs code.

2009-04-03  Jason Merrill  <jason@redhat.com>

	* stor-layout.c (set_sizetype): Set TYPE_CANONICAL.

2009-04-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
	truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
	fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
	floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
	fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
	smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
	divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
	umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
	*nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
	*nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
	adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
	smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
	*nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
	*nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
	sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
	Use fr_reg_or_fp01_operand instead of fr_register_operand

	* config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
	recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
	divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.

2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/39607
	PR rtl-optimization/39631

	Revert:

	2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
	* reload.c (push_reload, find_dummy_reload): Use df_get_live_out
	instead of DF_LR_OUT.
	* ira-lives.c (process_bb_node_lives): Ditto.
	* ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
	instead of DF_LR_{OUT,IN}.
	* ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
	* ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.

2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>

	* omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
	(execute_lower_omp): Always run but take the short way out if -fopenmp
	is not given.
	(gate_lower_omp): Remove, forcing the pass manager to always run the
	pass and always set PROP_gimple_lomp.
	(pass_lower_omp): Remove gate function.
	* matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
	PROP_trees.  Instead, require it.
	* ipa-cp.c (pass_ipa_cp): Likewise.
	* ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
	(pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
	* tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
	and PROP_gimple_leh.

2009-04-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/13146
	PR tree-optimization/23940
	PR tree-optimization/33237
	PR middle-end/33974
	PR middle-end/34093
	PR tree-optimization/36201
	PR tree-optimization/36230
	PR tree-optimization/38049
	PR tree-optimization/38207
	PR tree-optimization/38230
	PR tree-optimization/38301
	PR tree-optimization/38585
	PR middle-end/38895
	PR tree-optimization/38985
	PR tree-optimization/39299
	* tree-ssa-structalias.h: Remove.
	* tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
	(NULL_DEF_OPERAND_P): Make of type def_operand_p.
	(struct vuse_element_d): Remove.
	(struct vuse_vec_d): Likewise.
	(VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
	VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
	SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
	VUSE_ELEMENT_VAR): Likewise.
	(struct voptype_d): Likewise.
	(NUM_VOP_FREE_BUCKETS): Likewise.
	(struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
	(struct stmt_operands_d): Remove.
	(VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
	VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
	VDEF_NUM, VDEF_VECT): Likewise.
	(copy_virtual_operands): Remove.
	(operand_build_cmp): Likewise.
	(create_ssa_artificial_load_stmt): Likewise.
	(enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
	(struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
	vuse_index and mayuse_index members.  Pack and move done and iter_type
	members to the front.
	(SSA_OP_VMAYUSE): Remove.
	(SSA_OP_VIRTUAL_USES): Adjust.
	(FOR_EACH_SSA_VDEF_OPERAND): Remove.
	(unlink_stmt_vdef): Declare.
	(add_to_addressable_set): Remove.
	* tree-vrp.c (stmt_interesting_for_vrp): Adjust.
	(vrp_visit_stmt): Likewise.
	* doc/tree-ssa.texi (Alias analysis): Update.
	* doc/invoke.texi (max-aliased-vops): Remove docs.
	(avg-aliased-vops): Likewise.
	* tree-into-ssa.c (syms_to_rename): Remove.
	(need_to_update_vops_p): Likewise.
	(need_to_initialize_update_ssa_p): Rename to ...
	(update_ssa_initialized_fn): ... this.  Track function we are
	initialized for.
	(symbol_marked_for_renaming): Simplify.
	(add_new_name_mapping): Do not set need_to_update_vops_p.
	(dump_currdefs): Use SYMS_TO_RENAME.
	(rewrite_update_stmt): Always walk all uses/defs.
	(dump_update_ssa): Adjust.
	(init_update_ssa): Take function argument.  Track what we are
	initialized for.
	(delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
	(create_new_def_for): Initialize for cfun, assert we are initialized
	for cfun.
	(mark_sym_for_renaming): Simplify.
	(mark_set_for_renaming): Do not initialize update-ssa.
	(need_ssa_update_p): Simplify.  Take function argument.
	(name_mappings_registered_p): Assert we ask for the correct function.
	(name_registered_for_update_p): Likewise.
	(ssa_names_to_replace): Likewise.
	(release_ssa_name_after_update_ssa): Likewise.
	(update_ssa): Likewise.  Use SYMS_TO_RENAME.
	(dump_decl_set): Do not print a newline.
	(debug_decl_set): Do it here.
	(dump_update_ssa): And here.
	* tree-ssa-loop-im.c (move_computations): Adjust.
	(movement_possibility): Likewise.
	(determine_max_movement): Likewise.
	(gather_mem_refs_stmt): Likewise.
	* tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
	or NAME_MEMORY_TAG.
	* tree-complex.c (update_all_vops): Remove.
	(expand_complex_move): Adjust.
	* tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
	Simplify test for memory referencing statement.  Exclude
	non-invariant ADDR_EXPRs.
	* tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
	* tree-loop-distribution.c (generate_memset_zero): Adjust.
	(rdg_flag_uses): Likewise.
	* tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
	related code.
	(tree_optimize_tail_calls_1): Also split the
	edge from the entry block if we have degenerate PHI nodes in
	the first basic block.
	* tree.c (init_ttree): Remove memory-tag related code.
	(tree_code_size): Likewise.
	(tree_node_structure): Likewise.
	(build7_stat): Re-write to be build6_stat.
	* tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
	(SSA_VAR_P): Adjust.
	(struct tree_memory_tag): Remove.
	(struct tree_memory_partition_tag): Likewise.
	(union tree_node): Adjust.
	(build7): Re-write to be build6.
	* tree-pass.h (pass_reset_cc_flags): Remove.
	(TODO_update_address_taken): New flag.
	(pass_simple_dse): Remove.
	* ipa-cp.c (ipcp_update_callgraph): Update SSA form.
	* params.h (MAX_ALIASED_VOPS): Remove.
	(AVG_ALIASED_VOPS): Likewise.
	* omp-low.c (expand_omp_taskreg): Update SSA form.
	* tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
	aliases the lhs in a copy stmt.
	* tree-ssa-dse.c (struct address_walk_data): Remove.
	(memory_ssa_name_same): Likewise.
	(memory_address_same): Likewise.
	(get_kill_of_stmt_lhs): Likewise.
	(dse_possible_dead_store_p): Simplify, use the oracle.  Handle
	unused stores.  Look through PHI nodes into post-dominated regions.
	(dse_optimize_stmt): Simplify.  Properly remove stores.
	(tree_ssa_dse): Compute dominators.
	(execute_simple_dse): Remove.
	(pass_simple_dse): Likewise.
	* ipa-reference.c (scan_stmt_for_static_refs): Open-code
	gimple_loaded_syms and gimple_stored_syms computation.
	* toplev.c (dump_memory_report): Dump alias and pta stats.
	* tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
	(vn_reference_eq): Likewise.
	(vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
	copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
	valueize_vuses): Remove.
	(get_def_ref_stmt_vuses): Simplify.  Rename to ...
	(get_def_ref_stmt_vuse): ... this.
	(vn_reference_lookup_2): New function.
	(vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
	walking equivalent vuses.  Simplify.
	(vn_reference_lookup): Likewise.
	(vn_reference_insert): Likewise.
	(vn_reference_insert_pieces): Likewise.
	(visit_reference_op_call): Simplify.
	(visit_reference_op_load): Likewise.
	(visit_reference_op_store): Likewise.
	(init_scc_vn): Remove shared_lookup_vuses initialization.
	(free_scc_vn): Remove shared_lookup_vuses freeing.
	(sort_vuses, sort_vuses_heap): Remove.
	(get_ref_from_reference_ops): Export.
	* tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
	vector with single vuse pointer.
	(vn_reference_lookup_pieces, vn_reference_lookup,
	vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
	(shared_vuses_from_stmt): Remove.
	(get_ref_from_reference_ops): Declare.
	* tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
	memory-tag related code.
	* tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
	(likely_value): Add comment, skip static-chain of call statements.
	(surely_varying_stmt_p): Adjust.
	(gimplify_and_update_call_from_tree): Likewise.
	(execute_fold_all_builtins): Do not rebuild alias info.
	(gimplify_and_update_call_from_tree): Properly update VOPs.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
	(copy_ref_info): Remove memory-tag related code.
	* tree-call-cdce.c (tree_call_cdce): Rename the VOP.
	* ipa-pure-const.c (check_decl): Remove memory-tag related code.
	(check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
	computation.
	* tree-ssa-dom.c (gimple_p): Remove typedef.
	(eliminate_redundant_computations): Adjust.
	(record_equivalences_from_stmt): Likewise.
	(avail_expr_hash): Likewise.
	(avail_expr_eq): Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
	(stmt_makes_single_load): Likewise.
	(stmt_makes_single_store): Likewise.
	* tree-ssa-alias.c: Rewrite completely.
	(debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
	debug_mem_sym_stats, dump_mem_sym_stats_for_var,
	debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
	delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
	dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
	Remove public functions.
	(pass_reset_cc_flags): Remove.
	(pass_build_alias): Move ...
	* tree-ssa-structalias.c (pass_build_alias): ... here.
	* tree-ssa-alias.c (may_be_aliased): Move ...
	* tree-flow-inline.h (may_be_aliased): ... here.
	tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
	count_uses_and_derefs): Move ...
	* gimple.c: ... here.
	* gimple.h (count_uses_and_derefs): Declare.
	* tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
	ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
	same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
	indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
	ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
	call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
	get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
	New functions.
	* tree-dfa.c (refs_may_alias_p): Move ...
	* tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
	* tree-ssa-alias.h: New file.
	* tree-ssa-sink.c (is_hidden_global_store): Adjust.
	(statement_sink_location): Likewise.
	* opts.c (decode_options): Do not adjust max-aliased-vops or
	avg-aliased-vops values.
	* timevar.def (TV_TREE_MAY_ALIAS): Remove.
	(TV_CALL_CLOBBER): Likewise.
	(TV_FLOW_SENSITIVE): Likewise.
	(TV_FLOW_INSENSITIVE): Likewise.
	(TV_MEMORY_PARTITIONING): Likewise.
	(TV_ALIAS_STMT_WALK): New timevar.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
	* tree-ssa-address.c (create_mem_ref_raw): Use build6.
	(get_address_description): Remove memory-tag related code.
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
	* treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
	* tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
	and immediate uses in statements.  Document.
	* gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
	(dump_symbols): Remove.
	(dump_gimple_mem_ops): Do not dump loaded or stored syms.
	* alias.c (get_deref_alias_set): New function split out from ...
	(get_alias_set): ... here.
	* alias.h (get_deref_alias_set): Declare.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
	type parameter.  Remove restrict pointer handling.  Create a
	ref-all pointer in case type-based alias sets do not conflict.
	(vect_analyze_data_refs): Remove SMT related code.
	* tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
	(vectorizable_load): Likewise.
	* tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
	(DR_SYMBOL_TAG, DR_VOPS): Remove.
	* tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
	Ignore vops and SMTs.
	(dr_analyze_alias): Likewise..
	(free_data_ref): Likewise.
	(create_data_ref): Likewise.
	(analyze_all_data_dependences): Likewise.
	(get_references_in_stmt): Adjust.
	* tree-flow-inline.h (gimple_aliases_computed_p,
	gimple_addressable_vars, gimple_call_clobbered_vars,
	gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
	factoring_name_p, mark_call_clobbered, clear_call_clobbered,
	compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
	gimple_mem_ref_stats): Remove.
	(gimple_vop): New function.
	(op_iter_next_use): Remove vuses and mayuses cases.
	(op_iter_next_def): Remove vdefs case.
	(op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
	(clear_and_done_ssa_iter): Do not set removed fields.
	(op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
	Assert we are not iterating over vuses or vdefs if not also
	iterating over uses or defs.
	(op_iter_init_use): Likewise.
	(op_iter_init_def): Likewise.
	(op_iter_next_vdef): Remove.
	(op_iter_next_mustdef): Likewise.
	(op_iter_init_vdef): Likewise.
	(compare_ssa_operands_equal): Likewise.
	(link_use_stmts_after): Handle vuse operand.
	(is_call_used): Use is_call_clobbered.
	(is_call_clobbered): Global variables are always call clobbered,
	query the call-clobbers bitmap.
	(mark_call_clobbered): Ignore global variables.
	(clear_call_clobbered): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
	virtual operands sanity check.
	* tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
	Remove.
	(TARGET_MEM_REF): Remove TMR_TAG operand.
	* tree-dfa.c (add_referenced_var): Initialize call-clobber state.
	Remove call-clobber related code.
	(remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
	(dump_variable): Do not dump SMTs, memory stats, may-aliases or
	partitions or escape reason.
	(get_single_def_stmt, get_single_def_stmt_from_phi,
	get_single_def_stmt_with_phi): Remove.
	(dump_referenced_vars): Tidy.
	(get_ref_base_and_extent): Allow bare decls.
	(collect_dfa_stats): Adjust.
	* graphite.c (rename_variables_in_stmt): Adjust.
	(graphite_copy_stmts_from_block): Likewise.
	(translate_clast): Likewise.
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
	(EXPR_DIES): New.
	(translate_vuse_through_block): Use the oracle.
	(phi_translate_1): Adjust.
	(value_dies_in_block_x): Use the oracle.  Cache the outcome
	in EXPR_DIES.
	(valid_in_sets): Check if the VUSE for
	a REFERENCE is available.
	(eliminate): Do not remove stmts during elimination,
	instead queue and remove them afterwards.
	(do_pre): Do not rebuild alias info.
	(pass_pre): Run TODO_rebuild_alias before PRE.
	* tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
	* tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
	(mark_all_v_defs_stmt): Remove.
	(mark_all_v_defs_seq): Adjust.
	(sra_replace): Likewise.
	(scalarize_use): Likewise.
	(scalarize_copy): Likewise.
	(scalarize_init): Likewise.
	(scalarize_ldst): Likewise.
	(todoflags): Remove.
	(tree_sra): Do not rebuild alias info.
	(tree_sra_early): Adjust.
	(pass_sra): Run TODO_update_address_taken before SRA.
	* tree-predcom.c (set_alias_info): Remove.
	(prepare_initializers_chain): Do not call it.
	(mark_virtual_ops_for_renaming): Adjust.
	(mark_virtual_ops_for_renaming_list): Remove.
	(initialize_root_vars): Adjust.
	(initialize_root_vars_lm): Likewise.
	(prepare_initializers_chain): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
	(may_propagate_copy_into_stmt): Likewise.
	(merge_alias_info): Do nothing for now.
	(propagate_tree_value_into_stmt): Adjust.
	(stmt_may_generate_copy): Likewise.
	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
	not mark symbols for renaming.
	(forward_propagate_addr_expr): Match up push/pop_stmt_changes
	with the same statement, make sure to update the new pointed-to one.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
	call statements, do not mark symbols for renaming.
	(mark_operand_necessary): Dump something.
	(ref_may_be_aliased): New function.
	(mark_aliased_reaching_defs_necessary_1): New helper function.
	(mark_aliased_reaching_defs_necessary): Likewise.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(mark_all_reaching_defs_necessary): Likewise.
	(propagate_necessity): Do not process virtual PHIs.  For
	non-aliased loads mark all reaching definitions as necessary.
	For aliased loads and stores mark the immediate dominating
	aliased clobbers as necessary.
	(visited): New global static.
	(perform_tree_ssa_dce): Free visited bitmap after propagating
	necessity.
	(remove_dead_phis): Perform simple dead virtual PHI removal.
	(remove_dead_stmt): Properly unlink virtual operands when
	removing stores.
	(eliminate_unnecessary_stmts): Schedule PHI removal after
	stmt removal.
	* tree-ssa-ter.c (is_replaceable_p): Adjust.
	(process_replaceable): Likewise.
	(find_replaceable_in_bb): Likewise.
	* tree-ssa.c (verify_ssa_name): Verify all VOPs are
	based on the single gimple vop.
	(verify_flow_insensitive_alias_info): Remove.
	(verify_flow_sensitive_alias_info): Likewise.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(verify_alias_info): Likewise.
	(verify_ssa): Adjust..
	(execute_update_addresses_taken): Export.  Update SSA
	manually.  Optimize only when optimizing.  Use a local bitmap.
	(pass_update_address_taken): Remove TODO_update_ssa, add
	TODO_dump_func.
	(pass_update_address_taken): Just use TODO_update_address_taken.
	(init_tree_ssa): Do not initialize addressable_vars.
	(verify_ssa): Verify new VUSE / VDEF properties.
	Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
	Do not call verify_alias_info.
	(delete_tree_ssa): Clear the VUSE, VDEF operands.
	Do not free the loaded and stored syms bitmaps.  Reset the escaped
	and callused solutions.  Do not free addressable_vars.
	Remove memory-tag related code.
	(warn_uninitialized_var): Aliases are always available.
	* tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
	* lambda-code.c (can_put_in_inner_loop): Adjust.
	(can_put_after_inner_loop): Likewise.
	(perfect_nestify): Likewise.
	* tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
	(vect_gen_widened_results_half): Remove CALL_EXPR handling.
	(vectorizable_conversion): Do not mark symbols for renaming.
	* tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
	(expand_call_inline): Unlink the calls virtual operands before
	replacing it.
	(tree_function_versioning): Do not call update_ssa if we are not
	updating clones.  Simplify.
	* tree-ssa-phiprop.c (phivn_valid_p): Adjust.
	(propagate_with_phi): Likewise..
	* tree-outof-ssa.c (create_temp): Remove memory tag and call
	clobber code.  Assert we are not aliased or global.
	* tree-flow.h: Include tree-ssa-alias.h
	(enum escape_type): Remove.
	(struct mem_sym_stats_d): Likewise.
	(struct mem_ref_stats_d): Likewise.
	(struct gimple_df): Add vop member.  Remove global_var,
	call_clobbered_vars, call_used_vars, addressable_vars,
	aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
	escaped and callused members.
	(struct ptr_info_def): Remove all members, add points-to solution
	member pt.
	(struct var_ann_d): Remove in_vuse_list, in_vdef_list,
	call_clobbered, escape_mask, mpt and symbol_mem_tag members.
	* Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
	(tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
	(tree-ssa-alias.o): Likewise.
	(toplev.o): Add tree-ssa-alias.h
	(GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
	* gimple.c (gimple_set_bb): Fix off-by-one error.
	(is_gimple_reg): Do not handle memory tags.
	(gimple_copy): Also copy virtual operands.
	Delay updating the statement.  Do not reset loaded and stored syms.
	(gimple_set_stored_syms): Remove.
	(gimple_set_loaded_syms): Likewise.
	(gimple_call_copy_skip_args): Copy the virtual operands
	and mark the new statement modified.
	* tree-ssa-structalias.c (may_alias_p): Remove.
	(set_uids_in_ptset): Take the alias set to prune with as
	parameter.  Fold in the alias test of may_alias_p.
	(compute_points_to_sets): Compute whether a ptr is dereferenced
	in a local sbitmap.
	(process_constraint): Deal with &ANYTHING on the lhs, reject all
	other ADDRESSOF constraints on the lhs.
	(get_constraint_for_component_ref): Assert that we don't get
	ADDRESSOF constraints from the base of the reference.
	Properly generate UNKNOWN_OFFSET for DEREF if needed.
	(struct variable_info): Remove collapsed_to member.
	(get_varinfo_fc): Remove.
	(new_var_info): Do not set collapsed_to.
	(dump_constraint): Do not follow cycles.
	(dump_constraint_graph): Likewise.
	(build_pred_graph): Likewise.
	(build_succ_graph): Likewise.
	(rewrite_constraints): Likewise.
	(do_simple_structure_copy): Remove.
	(do_rhs_deref_structure_copy): Remove.
	(do_lhs_deref_structure_copy): Remove.
	(collapse_rest_of_var): Remove.
	(do_structure_copy): Re-implement.
	(pta_stats): New global variable.
	(dump_pta_stats): New function.
	(struct constraint_expr): Make offset signed.
	(UNKNOWN_OFFSET): Define special value.
	(dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
	(solution_set_expand): New helper function split out from ...
	(do_sd_constraint): ... here.
	(solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
	(do_ds_constraint): Likewise.
	(do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
	and CALLUSED = *CALLUSED.
	(set_union_with_increment): Make inc argument signed.
	(type_safe): Remove.
	(get_constraint_for_ptr_offset): Handle unknown and negative
	constant offsets.
	(first_vi_for_offset): Handle offsets before start.  Bail
	out early for offsets beyond the variable extent.
	(first_or_preceding_vi_for_offset): New function.
	(init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
	Together with ESCAPED = *ESCAPED this properly computes reachability.
	(find_what_var_points_to): New function.
	(find_what_p_points_to): Implement in terms of find_what_var_points_to.
	(pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
	pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
	pt_solutions_intersect): New functions.
	(compute_call_used_vars): Remove.
	(compute_may_aliases): New main entry into PTA computation.
	* gimple.h (gimple_p): New typedef.
	(struct gimple_statement_base): Remove references_memory_p.
	(struct gimple_statement_with_memory_ops_base): Remove
	vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
	members.
	(gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
	gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
	gimple_set_references_memory): Remove.
	(gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
	gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
	New functions.
	* tree-cfg.c (move_block_to_fn): Fix off-by-one error.
	(verify_expr): Allow RESULT_DECL.
	(gimple_duplicate_bb): Do not copy virtual operands.
	(gimple_duplicate_sese_region): Adjust.
	(gimple_duplicate_sese_tail): Likewise.
	(mark_virtual_ops_in_region): Remove.
	(move_sese_region_to_fn): Do not call it.
	* passes.c (init_optimization_passes): Remove pass_reset_cc_flags
	and pass_simple_dse.
	(execute_function_todo): Handle TODO_update_address_taken,
	call execute_update_addresses_taken for TODO_rebuild_alias.
	(execute_todo): Adjust.
	(execute_one_pass): Init dump files early.
	* ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
	call-clobbered.
	(create_general_new_stmt): Clear vops.
	* tree-ssa-reassoc.c (get_rank): Adjust.
	* tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
	symbols for renaming.
	* params.def (PARAM_MAX_ALIASED_VOPS): Remove.
	(PARAM_AVG_ALIASED_VOPS): Likewise.
	* tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
	(duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
	* tree-ssa-operands.c: Simplify for new virtual operand representation.
	(operand_build_cmp, copy_virtual_operands,
	create_ssa_artificial_load_stmt, add_to_addressable_set,
	gimple_add_to_addresses_taken): Remove public functions.
	(unlink_stmt_vdef): New function.

2009-04-03  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc (powerpc-*-linux*): Merge variants.

2009-04-02  Chao-ying Fu  <fu@mips.com>
	    James Grosbach  <james.grosbach@microchip.com>

	* config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
	num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
	cop0_sp_offset.
	(machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
	keep_interrupts_masked_p, use_debug_exception_return_p.
	(mips_attribute_table): Add interrupt, use_shadow_register_set,
	keep_interrupts_masked, use_debug_exception_return.
	(mips_interrupt_type_p, mips_use_shadow_register_set_p,
	mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
	New functions.
	(mips_function_ok_for_sibcall): Return false for interrupt handlers.
	(mips_print_operand): Process COP0 registers to print $0 .. $31
	correctly for GAS to process.
	(mips_interrupt_extra_call_saved_reg_p): New function.
	(mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
	extra registers.
	(mips_cfun_might_clobber_call_saved_reg_p): Likewise.
	(mips_compute_frame_info): Add supports for interrupt context that
	includes doubleword accumulators and COP0 registers.
	(mips_for_each_saved_acc): New function.
	(mips_for_each_saved_gpr_and_fpr): Change the function name from
	mips_for_each_saved_reg.
	(mips_save_reg): Save accumulators.
	(mips_kernel_reg_p): A new for_each_rtx callback.
	(mips_expand_prologue): Support interrupt handlers.
	(mips_restore_reg): Restore accumulators.
	(mips_expand_epilogue): Support interrupt handlers.
	(mips_can_use_return_insn): Return false for interrupt handlers.
	(mips_epilogue_uses): New function.
	* config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
	UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
	(mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
	cop0_move): New instructions.
	* config/mips/mips-protos.h (mips_epilogue_uses): Declare.
	* config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
	defines.
	(COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
	New defines.
	(CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
	(MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
	interrupt handlers, we use K0 as the temporary register.
	(EPILOGUE_USES): Change to a function call.
	* config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
	handlers, we use K0 as the temporary register.

	* doc/extend.texi (Function Attributes): Document interrupt,
	use_shadow_register_set, keep_interrupts_masked,
	use_debug_exception_return for MIPS attributes.

2009-04-03  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
	Remove a number of t-files from tmake_file.
	* config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
	* config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
	target_prototype, not TARGET_PROTOTYPE.
	(LINK_OS_GNU_SPEC): Define.
	* config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
	and darwin-ldoubdle.c.

2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR driver/39293
	* gcc.c (save_temps_flag): Add support for -save-temps=obj.
	(cpp_options): Ditto.
	(default_compilers): Ditto.
	(display_help): Ditto.
	(process_command): Ditto.
	(do_spec_1): Ditto.
	(set_input): Use lbasename instead of duplicate code.
	(save_temps_prefix): New static for -save-temps=obj.
	(save_temps_length): Ditto.

	* doc/invoke.texi (-save-temps=obj): Document new variant to
	-save-temps switch.

2009-04-02  Jeff Law  <law@redhat.com>

	* reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
	variable.

2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
	* configure: Regenerated.

2009-04-02  Rafael Avila de Espindola  <espindola@google.com>

	* c-decl.c (merge_decls): Make sure newdecl and olddecl don't
	share the argument list.

2009-04-02  Rafael Avila de Espindola  <espindola@google.com>

	Merge

	2009-02-12  Diego Novillo  <dnovillo@google.com>

	* varpool.c (debug_varpool): New.
	* cgraph.h (debug_varpool): Declare.

2009-04-02  Jan Hubicka  <jh@suse.cz>

	* passes.c (init_optimization_passes): Remove two copies of ehcleanup
	pass.

2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_abi): Move initialization to ...
	(override_options): Here.

2009-04-02  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.c (sh_dwarf_register_span): New function.
	(TARGET_DWARF_REGISTER_SPAN): Define.
	* config/sh/sh-protos.h (sh_dwarf_register_span): Declare.

2009-04-02  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39595
	* tree-vect-slp.c (vect_build_slp_tree): Check that the size of
	interleaved loads group is not  greater than the SLP group size.

2009-04-02  Rafael Avila de Espindola  <espindola@google.com>

	* builtins.c (is_builtin_name): New.
	(called_as_built_in): Use is_builtin_name.
	* tree.h (is_builtin_name): New.
	* varasm.c (incorporeal_function_p): Use is_builtin_name

2009-04-02  Andrew Stubbs  <ams@codesourcery.com>

	* config/sh/linux-unwind.h: Disable when inhibit_libc is defined.

2009-04-02  Dodji Seketeli  <dodji@redhat.com>

	PR c++/26693
	* c-decl.c (clone_underlying_type): Move this ...
	* c-common.c (set_underlying_type): ... here.
	Also, make sure the function properly sets TYPE_STUB_DECL() on
	the newly created typedef variant type.
	* c-common.h (is_typedef_decl, set_underlying_type): Declare ...
	* c-common.c (is_typedef_decl, set_underlying_type): ... new entry
	points.

2009-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37221
	* tree-flow.h (degenerate_phi_result): Declare.
	* tree-ssa-dom.c (degenerate_phi_result): Export.
	* tree-scalar-evolution.c (analyze_initial_condition): If
	the initial condition is defined by a degenerate PHI node
	use the degenerate value.

2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/39588
	* combine.c (merge_outer_ops): Do not set the constant when this
	is not necessary.
	(simplify_shift_const_1): Do not modify it either in this case.

2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>

	* config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
	tuning is deprecated if -mtune value is set to an Itanium1 variant.

2009-04-01  Janis Johnson  <janis187@us.ibm.com>

	PR c/29027
	* c-lex.c (interpret_float): Default (no suffix) is double.

2009-04-1  Xinliang David Li  <davidxl@google.com>

	* config/i386/i386.c (legitimate_constant_p): Recognize
	all one vector constant.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/vax.c: Add #includes to silence warnings.
	Change #include order to silence two warnings.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
	(ASM_SPEC): Pass -k to the assembler for PIC code.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config.gcc: Add vax-*-linux* to the switch.
	* config/vax/linux.h: New file. (TARGET_VERSION,
	TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
	Use predicate macros instead of GET_CODE() == foo.
	* config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
	ashlsi3, rotrsi3, <unnamed>): Likewise.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
	jbbccihi, jbbccisi): Remova trailing whitespace.
	* config/vax/constraints.md: Likewise.
	* config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
	* config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
	* config/vax/predicates.md: Likewise.
	* config/vax/vax.c (print_operand_address, vax_output_int_move,
	vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
	* config/vax/vax.h: Likewise.
	* config/vax/vax.md (nonlocal_goto): Likewise.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/vax.c (vax_float_literal, vax_output_int_move)
	(indirectable_address_p, adjacent_operands_p): Add spaces around
	braces.
	* config/vax/vax-protos.h (adjacent_operands_p): Likewise.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/vax.c (legitimate_constant_address_p,
	legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
	index_term_p, reg_plus_index_p, legitimate_address_p,
	vax_mode_dependent_address_p): Update comments to match functions
	modified by the recent int->bool conversion.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/builtins.md: Update copyright message.
	* config/vax/constraints.md: Likewise.
	* config/vax/netbsd-elf.h: Likewise.
	* config/vax/predicates.md: Likewise.
	* config/vax/vax-protos.h: Likewise.
	* config/vax/vax.c: Likewise.
	* config/vax/vax.h: Likewise.
	* config/vax/vax.md: Likewise.
	* config/vax/vax.opt: Likewise.

2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* config/vax/builtins.md (ffssi2, ffssi2_internal,
	sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
	* config/vax/constraints.md (B, R): Likewise.
	* config/vax/predicates.md (external_memory_operand,
	nonimmediate_addsub_di_operand): Likewise.
	* config/vax/vax.c (vax_output_int_add): Likewise.
	* config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
	untyped_call): Likewise.

2009-04-01  Matt Thomas  <matt@3am-software.com>

	* config/vax/predicates.md: New file.
	(symbolic_operand, local_symbolic_operand, external_symbolic_operand,
	external_const_operand, nonsymbolic_operand, external_memory_operand,
	indirect_memory_operand, indexed_memory_operand,
	illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
	nonimmediate_addsub_di_operand, general_addsub_di_operand): New
	predicate.
	* config/vax/constraints.md: New file.
	(Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
	New constraint.
	* config/vax/builtins.md: New file.
	(ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
	jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
	jbbccisi): Define.
	* config/vax/vax.opt (mqmath): Add option.
	* config/vax/vax.md (isfx): Extend with DI.
	(VAXintQH, VAXintQHSD): Define.
	(tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
	mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
	and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
	one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
	(movdi): Update constraints and use vax_output_int_move().
	(movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
	movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
	pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
	nonlocal_goto): New.
	(mov<mode>): Extend accepted operand types.
	(subdi3_old): Rename from subdi3, change update constraints and use
	a new implementation.
	* config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
	(FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
	MOVE_RATIO, CLEAR_RATIO): Define.
	(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
	(PRINT_OPERAND): Redefine using a function instead of inlined code.
	* config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
	(split_quadword_operands): Make static and really allow variable
	splitting.
	(print_operand_address): Update for PIC generation.
	(print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
	indexable_address_p, fixup_mathdi_operand,
	vax_expand_addsub_di_operands, adjacent_operands_p): New.
	(vax_float_literal, legitimate_constant_p,
	indirectable_constant_address_p, index_term_p,
	reg_plus_index_p): Return bool instead of int.
	(vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
	where needed.
	(vax_output_int_move, vax_output_int_add): Extend to allow PIC
	generation.
	(vax_output_conditional_branch): Indent.
	(legitimate_constant_address_p, indirectable_constant_address_p,
	indirectable_address_p, nonindexed_address_p, legitimate_address_p,
	vax_mode_dependent_address_p): Return bool instead of int, update for
	PIC generation.
	* config/vax/vax-protos.h (legitimate_constant_address_p,
	legitimate_constant_p, legitimate_address_p,
	vax_mode_dependent_address_p): Change declaration to bool.
	(legitimate_pic_operand_p, adjacent_operands_p, print_operand,
	vax_expand_addsub_di_operands, vax_output_int_subtract,
	vax_output_movmemsi): Declare.
	(split_quadword_operands, vax_float_literal): Delete declaration.
	* config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
	* config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
	VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
	ASM_OUTPUT_DWARF_PCREL): Define.
	(ASM_SPEC): Change definition to allow PIC generation.

2009-04-01  Steve Ellcey  <sje@cup.hp.com>

	* doc/sourcebuild.texi: Update front-end requirements.

2009-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/39226
	* config/rs6000/rs6000.md (andsi3_internal5_nomc,
	anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
	(booldi3_internal3): Use boolean_or_operator instead of
	boolean_operator.

2009-04-01  Joseph Myers  <joseph@codesourcery.com>

	PR c/39605
	* c-decl.c (grokdeclarator): Pedwarn for file-scope array
	declarator whose size is not an integer constant expression but
	folds to an integer constant, then treat it as a constant
	subsequently.

2009-04-01  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_plusminus_mult_expr): Do not fold
	i * 4 + 2 to (i * 2 + 1) * 2.

2009-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/37772
	* c-parser.c (c_parser_asm_statement): Skip until close paren and
	return if c_parser_asm_string_literal returned NULL.

2009-04-01  Nick Clifton  <nickc@redhat.com>

	* config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
	already defined.
	* config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
	* config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
	other typedefs to avoid conflicts with libgcc2.c.  Define labels
	to gain 16-bit bit-manipulation functions from libgcc2.c and then
	include it.
	* config/m32c/m32c-lib2-trapv.c: New file.  Define labels
	to gain 16-bit trapping arithmetic functions from libgcc2.c and
	then include it.

2009-04-01  Rafael Avila de Espindola  <espindola@google.com>

	* varasm.c (default_function_rodata_section): Declare DOT as
	const char*.

2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
	    Andrey Galkin  <agalkin@hypercom.com>

	PR/39492
	* config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
	Make object_name unique for each process.

2009-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR other/39591
	* omp-low.c (remove_exit_barrier): Don't optimize if there are any
	addressable variables in the parallel that could go out of scope while
	running queued tasks.

2009-04-01  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (avr_case_values_threshold): Remove declaration.
	(CASE_VALUES_THRESHOLD): Redefine.
	* config/avr/avr.c (avr_override_options): Remove initialization of
	avr_case_values_threshold variable.
	(avr_case_values_threshold): Remove variable. Add new function.
	* config/avr/avr-protos.h (avr_case_values_threshold): Declare.
	* config/avr/avr.opt (mno-tablejump): Remove option.
	* doc/invoke.texi (AVR Options): Remove -mno-tablejump.

2009-04-01  DJ Delorie  <dj@redhat.com>

	* varasm.c (default_function_rodata_section): Don't assume
	anything about where the first '.' in the section name is.

2009-04-01  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
	rs6000_emit_stack_tie.

2009-03-31  Ian Lance Taylor  <iant@google.com>

	* tree-eh.c (tree_remove_unreachable_handlers): Compare
	gimple_code with GIMPLE_RESX, not RESX.

2009-03-31  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_get_ident): New.
	(c_common_nodes_and_builtins): Call it for type names that may be NULL.

2009-04-01  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/sysv4.opt (msdata): Improve option description.

2009-03-31  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (divsf3_internal_lat): Remove.
	(divdf3_internal_lat): Remove.
	(divxf3_internal_lat): Remove.
	(divxf3_internal_thr): Remove.
	(divxf): Use divxf3_internal.
	* config/ia64/div.md (divsf3_internal_lat): New.
	(divdf3_internal_lat): New.
	(divxf3_internal): New.

2009-03-31  Joseph Myers  <joseph@codesourcery.com>

	PR c/448
	* Makefile.in (USE_GCC_STDINT): Define.
	(stmp-int-hdrs): Install stdint.h if applicable.
	* c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
	if known.
	(CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
	(SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
	UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
	INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
	(c_common_nodes_and_builtins): Initialize
	underlying_wchar_type_node.  Do not initialize
	signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
	nodes for new types.
	(c_stddef_cpp_builtins): Define macros for new types.
	* c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
	Remove.
	(CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
	CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
	CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
	CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
	CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
	CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
	CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
	CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
	CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
	(signed_wchar_type_node, unsigned_wchar_type_node): Remove.
	(underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
	int16_type_node, int32_type_node, int64_type_node,
	uint8_type_node, uint16_type_node, c_uint32_type_node,
	c_uint64_type_node, int_least8_type_node, int_least16_type_node,
	int_least32_type_node, int_least64_type_node,
	uint_least8_type_node, uint_least16_type_node,
	uint_least32_type_node, uint_least64_type_node,
	int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
	int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
	uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
	uintptr_type_node): Define.
	* c-cppbuiltin.c (builtin_define_constants,
	builtin_define_type_minmax): New.
	(builtin_define_stdint_macros): Define more macros.
	(c_cpp_builtins): Define more limit macros.
	(type_suffix): New.
	(builtin_define_type_max): Define in terms of
	builtin_define_type_minmax.  Remove is_long parameter.  All
	callers changed.
	* config.gcc (use_gcc_stdint): Define.
	(tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
	Add newlib-stdint.h for generic targets.
	* config/glibc-stdint.h, config/newlib-stdint.h,
	ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
	* config/m32c/m32c.h (UINTPTR_TYPE): Define.
	* config/score/score.h (UINTPTR_TYPE): Define.
	* config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
	INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
	UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
	* config/spu/spu.h (STDINT_LONG32): Define.
	* configure.ac (use_gcc_stdint): Substitute.
	* configure: Regenerate.
	* doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
	__INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
	__UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
	__INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
	__INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
	__UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
	__INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
	__UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
	__UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
	__WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
	__SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
	__INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
	__UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
	__INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
	__UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
	__INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
	__INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
	__UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
	__UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
	__INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
	__UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
	* doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
	INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
	INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.

2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (suitable_set_for_replacement): Renamed from
	simplify_using_assignment; changed to return bool and to accept new
	args DEST and SRC.  Return true iff we find a source/destination pair
	that can be used to make a replacement, and fill SRC and DEST if so.
	Remove arg ALTERED.  Don't deal with altered regs here.  All callers
	changed.
	(simplify_using_initial_values): Deal with altered regs here and track
	more precisely the effect they have on the validity of our expression.

	* loop-iv.c (simplify_using_condition): A condition of the form
	(EQ REG CONST) can be used to simply make a substitution.
	(simplify_using_initial_values): Keep track of conditions we have seen
	and keep using them to simplify new expressions, while applying the
	same substitutions to them as to the expression.

	* simplify-rtx.c (simplify_relational_operation_1): Simplify
	(LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
	GEU/LTU reversed.

	* loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
	changed.  Use this when trying to improve the upper bound.
	Generate the comparison by using simplify_gen_relational.

	* loop-iv.c (simple_rhs_p): Allow more kinds of expressions.

	* loop-iv.c (replace_single_def_regs, replace_in_expr): New static
	functions.
	(simplify_using_assignment, simplify_using_initial_values): Call
	replace_in_expr to make replacements.  Call replace_single_def_regs
	once on the initial version of the expression.

2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/27237
	* doc/invoke.texi (ARM Options): Update documentation for -mthumb.

2009-03-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31029
	* fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
	equality comparisons.  Fold C - X CMP X if C % 2 == 1.

2009-03-31  Richard Guenther  <rguenther@suse.de>

	* tree.h (div_if_zero_remainder): Declare.
	* fold-const.c (div_if_zero_remainder): Export.
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Handle
	constant array index addition outside of the variable index.

2009-03-31  Joseph Myers  <joseph@codesourcery.com>

	PR target/39592
	* config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
	define_splits, floatunssi<mode>2): Require x87 conversions from
	DImode to be permitted.

2009-03-31  Joseph Myers  <joseph@codesourcery.com>

	PR preprocessor/15638
	* c-common.c (c_cpp_error): Handle CPP_DL_FATAL.

2009-03-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/23401
	PR middle-end/27810
	* tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
	(struct tree_decl_with_vis): Remove gimple_formal_temp member.
	* tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
	a separate statement.
	* gimplify.c (pop_gimplify_context): Remove formal temp handling.
	(lookup_tmp_var): Likewise.
	(is_gimple_formal_tmp_or_call_rhs): Remove.
	(is_gimple_reg_or_call_rhs): Rename to ...
	(is_gimple_reg_rhs_or_call): ... this.
	(is_gimple_mem_or_call_rhs): Rename to ...
	(is_gimple_mem_rhs_or_call): ... this.
	(internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
	DECL_GIMPLE_REG_P only if is_formal is true.
	(gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
	for non-proper post-modify expression gimplification.
	(gimplify_self_mod_expr): For post-modify expressions gimplify
	the lvalue to a minimal lvalue.
	(rhs_predicate_for): Remove formal temp case.
	(gimplify_modify_expr_rhs): Likewise.
	(gimplify_addr_expr): Use is_gimple_reg.
	(gimplify_expr): Remove formal temp cases.
	(gimple_regimplify_operands): Likewise.
	* tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
	and FILTER_EXPR like constants.
	* gimple.c (walk_gimple_op): Fix val_only initialization, use
	is_gimple_reg.
	(is_gimple_formal_tmp_rhs): Remove.
	(is_gimple_reg_rhs): Remove special casing.
	(is_gimple_mem_rhs): Fix.
	(is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
	(is_gimple_formal_tmp_var): Remove.
	(is_gimple_formal_tmp_reg): Likewise.
	(is_gimple_min_lval): Allow invariant component ref parts.
	* gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
	is_gimple_formal_tmp_reg): Remove declarations.
	* tree-cfg.c (verify_expr): Verify that variables with address
	taken do not have DECL_GIMPLE_REG_P set.
	* tree-mudflap.c (mf_build_check_statement_for): Use
	force_gimple_operand instead of gimplify_expr.

2009-03-31  Ayal Zaks  <zaks@il.ibm.com>

	* modulo-sched.c (sms_schedule_by_order): Pass the actual
	schedulable rows to compute_split_row.

2009-03-31  Ben Elliston  <bje@au.ibm.com>

	PR target/31635
	* config/rs6000/rs6000.c (rs6000_handle_option): Handle
	OPT_mvrsave.

2009-03-31  Alan Modra  <amodra@bigpond.net.au>

	* doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
	* configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/rs6000.opt (mtls-markers): Add.
	* config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
	* config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
	(tls_ld_aix, tls_ld_sysv): Likewise.
	(tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
	(tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.

2009-03-31  Alan Modra  <amodra@bigpond.net.au>

	* config/spu/spu.c (spu_expand_prologue): Delete redundant code.

2009-03-30  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (make_eh_edges): Set probability 100% to first edge
	out of RESX.
	(tree_remove_unreachable_handlers): Cleanup EH predecestor
	detection and label handling.

2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (ira_allocno): Rename left_conflicts_num to
	left_conflicts_size.
	(ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
	ALLOCNO_LEFT_CONFLICTS_SIZE.

	* ira-color.c (allocno_spill_priority, push_allocno_to_stack,
	remove_allocno_from_bucket_and_push,
	allocno_spill_priority_compare, push_allocnos_to_stack,
	setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
	instead of ALLOCNO_LEFT_CONFLICTS_NUM.
	(setup_allocno_left_conflicts_num): Ditto.  Rename to
	setup_allocno_left_conflicts_size.
	(put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
	instead of ALLOCNO_LEFT_CONFLICTS_NUM and
	setup_allocno_left_conflicts_size instead of
	setup_allocno_left_conflicts_num.

	* ira-build.c (ira_create_allocno): Use
	ALLOCNO_LEFT_CONFLICTS_SIZE instead of
	ALLOCNO_LEFT_CONFLICTS_NUM.

2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>

	* reload.c (push_reload, find_dummy_reload): Use df_get_live_out
	instead of DF_LR_OUT.

	* ira-lives.c (process_bb_node_lives): Ditto.

	* ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
	instead of DF_LR_{OUT,IN}.

	* ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.

	* ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.

2009-03-30  Jan Hubicka  <jh@suse.cz>

	* except.c (label_to_region_map): Fix thinko.

2009-03-30  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/38237
	* tree.h (tree_find_value): New declaration.
	* tree.c (tree_find_value): New function.
	* varasm.c (assemble_external): Avoid duplicate entries on lists.

2009-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/39563
	* c-decl.c (struct c_binding): Add locus field.
	(bind): Add locus argument, set locus field from it.
	(pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
	add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
	(push_file_scope, pushtag, pushdecl, pushdecl_top_level,
	implicitly_declare, undeclared_variable, lookup_label,
	declare_label, c_make_fname_decl, c_builtin_function,
	c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
	bind callers.

2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38781
	* config/i386/i386.c (classify_argument): Check total size of
	structure.

2009-03-30  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
	IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
	IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
	respectively.

	* tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
	seen_variable_array_ref while also traversing a union.

	* tree-inline.c (optimize_inline_calls): Do not call
	cgraph_node_remove_callees.
	* cgraphbuild.c (remove_cgraph_callee_edges): New function.
	(pass_remove_cgraph_callee_edges): New variable.
	* passes.c (init_optimization_passes): Add
	pass_remove_cgraph_callee_edges after early inlining and before all
	late intraprocedural passes.

	* omp-low.c (expand_omp_taskreg): Always set current_function_decl.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
	Fix typos in names.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (simplify_comparison): Use have_insn_for.
	* dojump.c (do_jump): Likewise.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* config/sparc/sparc.c (sparc_compare_emitted): Remove.
	(gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
	sparc_compare_op0 like sparc_compare_emitted used to be handled.
	(sparc_expand_compare_and_swap_12): Set sparc_compare_op0
	instead of sparc_compare_emitted.
	* config/sparc/sparc.h (sparc_compare_emitted): Remove.
	* config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
	instead of sparc_compare_emitted.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* bb-reorder.c (partition_hot_cold_basic_blocks): Do not
	enter/exit cfglayout mode.
	(pass_partition_block): Require it.
	* combine.c (find_single_use, reg_dead_at_p): Use CFG.
	(combine_instructions): Track basic blocks instead of labels.
	(update_cfg_for_uncondjump): New.
	(try_combine): Use it.  Update jumps after rescanning.
	(pass_combine): Require PROP_cfglayout.
	* passes.c (pass_outof_cfg_layout_mode): Move after regmove.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
	Provide/destroy PROP_cfglayout respectively.
	* gcse.c (pass_jump_bypass, pass_gcse): Require it.
	* tree-pass.h (PROP_cfglayout): New.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c (const_binop, fold_convert_const_real_from_fixed,
	fold_convert_const_fixed_from_fixed,
	fold_convert_const_fixed_from_int,
	fold_convert_const_fixed_from_real, fold_negate_const): Do not
	set TREE_CONSTANT_OVERFLOW.
	* tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
	* tree.h (TREE_CONSTANT_OVERFLOW): Delete.

2009-03-30  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop-manip.c: New file.
	* tree-vectorizer.c: Update documentation and included files.
	(vect_loop_location): Make extern.
	(rename_use_op): Move to tree-vect-loop-manip.c
	(rename_variables_in_bb, rename_variables_in_loop,
	slpeel_update_phis_for_duplicate_loop,
	slpeel_update_phi_nodes_for_guard1,
	slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
	slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
	slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
	set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
	find_loop_location): Likewise.
	(new_stmt_vec_info): Move to tree-vect-stmts.c.
	(init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
	get_vectype_for_scalar_type, vect_is_simple_use,
	supportable_widening_operation, supportable_narrowing_operation):
	Likewise.
	(bb_in_loop_p): Move to tree-vect-loop.c.
	(new_loop_vec_info, destroy_loop_vec_info,
	reduction_code_for_scalar_code, report_vect_op,
	vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
	(vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
	(vect_supportable_dr_alignment): Likewise.
	* tree-vectorizer.h (tree-data-ref.h): Include.
	(vect_loop_location): Declare.
	Reorganize function declarations according to the new file structure.
	* tree-vect-loop.c: New file.
	* tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
	tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
	* tree-vect-data-refs.c: New file.
	* tree-vect-patterns.c (timevar.h): Don't include.
	* tree-vect-stmts.c: New file.
	* tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
	tree-vect-slp.c, tree-vect-loop.c.
	* Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
	tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
	tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
	(tree-vect-analyze.o): Remove.
	(tree-vect-transform.o): Likewise.
	(tree-vect-data-refs.o): Add rule.
	(tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
	tree-vect-slp.o): Likewise.
	(tree-vect-patterns.o): Remove redundant dependencies.
	(tree-vectorizer.o): Likewise.
	* tree-vect-slp.c: New file.

2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* optc-gen.awk: Warn if an option flag has multiple different
	help strings.

2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-floop-interchange, -floop-strip-mine,
	-floop-block): Document dependences on PPL, CLooG and Graphite.

2009-03-30  Joseph Myers  <joseph@codesourcery.com>

	PR rtl-optimization/323
	* c-common.c (c_fully_fold, convert_and_check,
	c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
	(c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
	* c-common.def (EXCESS_PRECISION_EXPR): New.
	* c-cppbuiltin.c (builtin_define_float_constants): Define
	constants with enough digits for long double.
	* c-lex.c (interpret_float): Interpret constant with excess
	precision where appropriate.
	* c-opts.c (c_common_post_options): Set
	flag_excess_precision_cmdline.  Give an error for
	-fexcess-precision=standard for C++ for processors where the
	option is significant.
	* c-parser.c (c_parser_conditional_expression): Handle excess
	precision in condition.
	* c-typeck.c (convert_arguments): Handle arguments with excess
	precision.
	(build_unary_op): Move excess precision outside operation.
	(build_conditional_expr): Likewise.
	(build_compound_expr): Likewise.
	(build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
	(build_modify_expr): Handle excess precision in RHS.
	(convert_for_assignment): Handle excess precision in converted
	value.
	(digest_init, output_init_element, process_init_element): Handle
	excess precision in initializer.
	(c_finish_return): Handle excess precision in return value.
	(build_binary_op): Handle excess precision in operands and add
	excess precision as needed for operation.
	* common.opt (-fexcess-precision=): New option.
	* config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
	For standard excess precision, output explicit conversion to and
	truncation from XFmode.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
	define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
	define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
	floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
	divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
	*fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
	*fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
	define_splits, sqrt<mode>2): Disable where appropriate for
	standard excess precision.
	* convert.c (convert_to_real): Do not shorten arithmetic to type
	for which excess precision would be used.
	* defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
	* doc/invoke.texi (-fexcess-precision=): Document option.
	(-mfpmath=): Correct index entry.
	* flags.h (enum excess_precision, flag_excess_precision_cmdline,
	flag_excess_precision): New.
	* langhooks.c (lhd_post_options): Set
	flag_excess_precision_cmdline.
	* opts.c (common_handle_option): Handle -fexcess-precision=.
	* toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
	init_excess_precision): New.
	(lang_dependent_init_target): Call init_excess_precision.
	* tree.c (excess_precision_type): New.
	* tree.h (excess_precision_type): Declare.

2009-03-30  Joseph Myers  <joseph@codesourcery.com>

	PR c/35235
	* c-typeck.c (build_component_ref): Do not copy qualifiers from
	non-lvalue to component.

2009-03-29  Joseph Myers  <joseph@codesourcery.com>

	PR preprocessor/34695
	* Makefile.in (c-opts.o): Depend on c-tree.h.
	* c-common.c: Move down include of diagnostic.h.
	(done_lexing, c_cpp_error): New.
	* c-common.h (done_lexing): Declare.
	* c-decl.c (c_write_global_declarations): Don't check cpp_errors
	(parse_in).
	* c-opts.c: Include c-tree.h.
	(c_common_init_options): Set preprocessor error callback.
	(c_common_handle_option): Do not set preprocessor
	inhibit_warnings, warnings_are_errors, warn_system_headers,
	pedantic_errors or inhibit_warnings flags.
	(c_common_post_options): Do not check cpp_errors (parse_in).
	(c_common_finish): Do not output dependencies if there were
	errors.  Do not check return value of cpp_finish.
	* c-ppoutput.c (pp_file_change): Set input_location.
	* c-tree.h (c_cpp_error): Declare.
	* diagnostic.c (diagnostic_set_info_translated): Also initialize
	override_column.
	(diagnostic_build_prefix): Check override_column.
	* diagnostic.h (diagnostic_info): Add override_column field.
	(diagnostic_override_column): Define.

2009-03-28  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (c_expand_expr, c_staticp): Remove.
	* c-common.def (COMPOUND_LITERAL_EXPR): Delete.
	* c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
	COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
	* c-gimplify.c (gimplify_compound_literal_expr,
	optimize_compound_literals_in_ctor): Remove.
	(c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
	* c-objc-common.h (LANG_HOOKS_STATICP): Remove.
	* c-semantics.c (emit_local_var): Remove.

	* langhooks-def.h (lhd_expand_expr): Remove.
	* langhooks.c (lhd_expand_expr): Remove.
	* langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.

	* expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
	handling from c-semantics.c; don't call into langhook.
	(expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
	* gimplify.c (gimplify_compound_literal_expr,
	optimize_compound_literals_in_ctor): Move from c-gimplify.c.
	(gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
	(gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
	as was done in c-gimplify.c.
	* tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
	* tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
	Move from c-common.h.
	* tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.

	* tree.c (staticp): Do not call langhook.
	* langhooks.c (lhd_staticp): Delete.
	* langhooks-def.h (lhd_staticp): Delete prototype.
	(LANG_HOOKS_STATICP): Delete.
	(LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.

	* doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
	instead of DECL_STMTs.

2009-03-29  Joseph Myers  <joseph@codesourcery.com>

	PR c/456
	PR c/5675
	PR c/19976
	PR c/29116
	PR c/31871
	PR c/35198
	* builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
	void_type_node.
	(fold_call_expr): Return a NOP_EXPR from folding rather than the
	contained expression.
	* c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
	(c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
	conditional expressions for C.
	(decl_constant_value_for_optimization): Move from
 	decl_constant_value_for_broken_optimization in c-typeck.c.  Check
	whether optimizing and that the expression is a VAR_DECL not of
	array type instead of doing such checks in the caller.  Do not
	check pedantic.  Call gcc_unreachable for C++.
	* c-common.def (C_MAYBE_CONST_EXPR): New.
	* c-common.h (c_fully_fold, c_save_expr,
	decl_constant_value_for_optimization): New prototypes.
	(C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
	C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
	EXPR_INT_CONST_OPERANDS): Define.
	* c-convert.c (convert): Strip nops from expression.
	* c-decl.c (groktypename): Take extra parameters expr and
	expr_const_operands.  Update call to grokdeclarator.
	(start_decl): Update call to grokdeclarator.  Add statement for
	expressions used in type of decl.
	(grokparm): Update call to grokdeclarator.
	(push_parm_decl): Update call to grokdeclarator.
	(build_compound_literal): Add parameter non_const and build a
	C_MAYBE_COSNT_EXPR if applicable.
	(grokdeclarator): Take extra parameters expr and
	expr_const_operands.  Track expressions used in declaration
	specifiers and declarators.  Fold array sizes and track whether
	they are constant expressions and whether they are integer
	constant expressions.
	(parser_xref_tag): Set expr and expr_const_operands fields in
	return value.
	(grokfield): Update call to grokdeclarator.
	(start_function): Update call to grokdeclarator.
	(build_null_declspecs): Set expr and expr_const_operands fields in
	return value.
	(declspecs_add_type): Handle expressions in typeof specifiers.
	* c-parser.c (c_parser_declspecs): Set expr and
	expr_const_operands fields for declaration specifiers.
	(c_parser_enum_specifier): Likewise.
	(c_parser_struct_or_union_specifier): Likewise.
	(c_parser_typeof_specifier): Likewise.  Update call to
	groktypename.  Fold expression as needed.  Return expressions with
	type instead of adding statements.
	(c_parser_attributes): Update calls to c_parser_expr_list.
	(c_parser_statement_after_labels): Fold expression before passing
	to objc_build_throw_stmt.
	(c_parser_condition): Fold expression.
	(c_parser_asm_operands): Fold expression.
	(c_parser_conditional_expression): Use c_save_expr.  Update call
	to build_conditional_expr.
	(c_parser_alignof_expression): Update call to groktypename.
	(c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
	original_code.  Fold expression argument of va_arg.  Create
	C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
	argument to va_arg.  Update calls to groktypename.  Fold array
	index for offsetof.  Verify that first argument to
	__builtin_choose_expr has integer type.
	(c_parser_postfix_expression_after_paren_type): Update calls to
	groktypename and build_compound_literal.  Handle expressions with
	side effects in type name.
	(c_parser_postfix_expression_after_primary): Update call to
	c_parser_expr_list.  Set original_code for calls to
	__builtin_constant_p.
	(c_parser_expr_list): Take extra parameter fold_p.  Fold
	expressions if requested.
	(c_parser_objc_type_name): Update call to groktypename.
	(c_parser_objc_synchronized_statement): Fold expression.
	(c_parser_objc_receiver): Fold expression.
	(c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
	(c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
	c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
	* c-tree.h (CONSTRUCTOR_NON_CONST): Define.
	(struct c_typespec): Add elements expr and expr_const_operands.
	(struct c_declspecs): Add elements expr and expr_const_operands.
	(groktypename, build_conditional_expr, build_compound_literal):
	Update prototypes.
	(in_late_binary_op): Declare.
	* c-typeck.c (note_integer_operands): New function.
	(in_late_binary_op): New variable.
	(decl_constant_value_for_broken_optimization): Move to c-common.c
	and rename to decl_constant_value_for_optimization.
	(default_function_array_conversion): Do not strip nops.
	(default_conversion): Do not call
	decl_constant_value_for_broken_optimization.
	(build_array_ref): Do not fold result.
	(c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
	result when operand is a VLA.
	(c_expr_sizeof_type): Update call to groktypename.  Handle
	expressions included in type name.  Use C_MAYBE_CONST_EXPR for
	result when operand names a VLA type.
	(build_function_call): Update call to build_compound_literal.
	Only fold result for calls to __builtin_* functions.  Strip
	NOP_EXPR from INTEGER_CST returned from such functions.  Fold
	the function designator.
	(convert_arguments): Fold arguments.  Update call to
	convert_for_assignment.
	(build_unary_op): Handle increment and decrement of
	C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
	decrement earlier.  Fold operand of increment and decrement.
	Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
	built for integer operand.  Wrap returns that are INTEGER_CSTs
	without being integer constant expressions or that have integer
	constant operands without being INTEGER_CSTs.
	(lvalue_p): Handle C_MAYBE_CONST_EXPR.
	(build_conditional_expr): Add operand ifexp_bcp.  Track whether
	result is an integer constant expression or can be used in
	unevaluated parts of one and avoid folding and wrap as
	appropriate.  Fold operands before possibly doing -Wsign-compare
	warnings.
	(build_compound_expr): Wrap result for C99 if operands can be used
	in integer constant expressions.
	(build_c_cast): Update call to digest_init.  Do not ignore
	overflow from casting floating-point constants to integers.  Wrap
	results that could be confused with integer constant expressions,
	null pointer constants or floating-point constants.
	(c_cast_expr): Update call to groktypename.  Handle expressions
	included in type name.
	(build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
	lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
	Update calls to convert_for_assignment.
	(convert_for_assignment): Take new parameter
	null_pointer_constant.  Do not strip nops or call
	decl_constant_value_for_broken_optimization.  Set
	in_late_binary_op for conversions to boolean.
	(store_init_value): Update call to digest_init.
	(digest_init): Take new parameter null_pointer_constant.  Do not
	call decl_constant_value_for_broken_optimization.  pedwarn for
	initializers not constant expressions.  Update calls to
	convert_for_assignment.
	(constructor_nonconst): New.
	(struct constructor_stack): Add nonconst element.
	(really_start_incremental_init, push_init_level, pop_init_level):
	Handle constructor_nonconst and nonconst element.
	(set_init_index): Call constant_expression_warning for array
	designators.
	(output_init_element): Fold value.  Set constructor_nonconst as
	applicable.  pedwarn for initializers not constant expressions.
	Update call to digest_init.  Call constant_expression_warning
	where constant initializers are required.
	(process_init_element): Use c_save_expr.
	(c_finish_goto_ptr): Fold expression.
	(c_finish_return): Fold return value.  Update call to
	convert_for_assignment.
	(c_start_case): Fold switch expression.
	(c_process_expr_stmt): Fold expression.
	(c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
	ensure statement expression is not evaluated in constant expression.
	(build_binary_op): Track whether results are integer constant
	expressions or may occur in such, disable folding and wrap results
	as applicable.  Fold operands for -Wsign-compare warnings unless
	in_late_binary_op.
	(c_objc_common_truthvalue_conversion): Handle results folded to
	integer constants that are not integer constant expressions.
	* doc/extend.texi: Document when typeof operands are evaluated,
	that condition of __builtin_choose_expr is an integer constant
	expression, and more about use of __builtin_constant_p in
	initializers.

2009-03-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
	propagate addresses of array references.

2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>

	* regmove.c (perhaps_ends_bb_p): Remove.
	(optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
	from INSN and check that the main loop stays within that basic block.
	(optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
	(regmove_forward_pass): Split out from regmove_optimize.  Use
	FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
	(regmove_backward_pass): Split out from regmove_optimize.  Use
	FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
	(regmove_optimize): Simplify.

2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39545
	* config/i386/i386.c (classify_argument): Ignore flexible array
	member in struct and warn ABI change.

2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_agi_dependent): New.

	* config/i386/i386.c (ix86_agi_dependent): Rewrite.
	(ix86_adjust_cost): Updated.

2009-03-29  Jan Hubicka  <jh@suse.cz>

	PR middle-end/28850
	* tree-pass.h (pass_cleanup_eh): New function.
	(remove_unreachable_regions): Break code handling RTL
	to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
	that can not be reached by runtime.
	(can_be_reached_by_runtime): New function.
	(label_to_region_map): New function.
	(num_eh_regions): New function.
	(rtl_remove_unreachable_regions): New function.
	(convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
	(remove_eh_region): New function.
	* except.h: Include sbitmap and vecprim.
	(remove_eh_region, remove_unreachable_regions, label_to_region_map,
	num_eh_regions): Declare.
	* passes.c (init_optimization_passes): Schedule cleanup_eh.
	* Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
	* tree-eh.c (tree_remove_unreachable_handlers): New function.
	(tree_empty_eh_handler_p): New function.
	(cleanup_empty_eh): New function.
	(cleanup_eh): New function.
	(pass_cleanup_eh): New function.

2009-03-29  Jan Hubicka  <jh@suse.cz>

	* except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
	for removed regions.

2009-03-29  Jan Hubicka  <jh@suse.cz>

	* except.c (dump_eh_tree): Dump all datastructures.

2009-03-29  Jan Hubicka  <jh@suse.cz>

	* except.c (duplicate_eh_regions_0): Handle AKA bitmap.
	(duplicate_eh_regions_1): Likewise.
	(duplicate_eh_regions): Likewise; cleanup code gorwing the region
	vector; call EH verification.
	(foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
	Be ready for region being removed.

2009-03-29  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_last_set_bit): New function.
	* bitmap.h (bitmap_last_set_bit): Declare.

2009-03-29  David Ayers  <ayers@fsfe.org>

	PR objc/27377
	* c-typeck.c (build_conditional_expr): Emit ObjC warnings
	by calling objc_compare_types and surpress warnings about
	incompatible C pointers that are compatible ObjC pointers.

2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>

	* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
	call initialize_inline_failed.
	(initialize_inline_failed): Move it from here ...
	* cgraph.c (initialize_inline_failed): ... to here.
	(cgraph_create_edge): Call initialize_inline_failed rather than
	setting inline_failed directly.

2009-03-29  Ben Elliston  <bje@au.ibm.com>

	PR target/32542
	* sysv4.opt (msdata): Improve comment.
	* linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
	* sysv4.h (SVR4_ASM_SPEC): Likewise.

2009-03-29  Ben Elliston  <bje@au.ibm.com>

	PR target/30451
	* config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
	load and store attributes.

2009-03-29  Ben Elliston  <bje@au.ibm.com>

	* config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
	(ix86_init_builtins): Add built-in function __builtin_huge_valq.
	(ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
	* doc/extend.texi (X86 Built-in Functions): Add index entries for
	__builtin_infq and __builtin_huge_valq.

2009-03-28  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
	atmega8m1 devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)

2009-03-28  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
	(do_dbg_cnt): New function.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	Merge from pretty-ipa:

	2009-03-27  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Add replace output flag by process.
	* tree-pass.h (function_called_by_processed_nodes_p): Declare.
	* passes.c (function_called_by_processed_nodes_p): New.
	* ipa-pure-const.c (check_call): Fix handling of operands.
	(analyze_function): Dump debug output for skipped bodies.
	(local_pure_const): Use function_called_by_processed_nodes_p.
	* dwarf2out.c (reference_to_unused): Use output.
	* passes.c (do_per_function_toporder): Likewise.

	2008-11-12  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
	* ipa-pure-const.c (funct_state_d): Add can throw field; make
	state_set_in_source enum
	(check_decl): Ignore memory tags; do not set fake looping flags;
	dump diagnostics.
	(check_operand, check_tree, check_rhs_var, check_lhs_var,
	get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
	(check_call, analyze_function): Rewrite.
	(check_stmt): New.
	(add_new_function): Update call of analyze_function.
	(generate_summary): Add call of analyze_function.
	(propagate): Propagate can_throw; handle state_set_in_source correctly.
	(local_pure_const): New function.
	(pass_local_pure_const): New pass.
	* ipa-inline.c (inline_transform): Set after_inlining.
	* tree-eh.c (stmt_can_throw_external): New.
	* tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
	work with aliasing built.
	* tree-flow.h (stmt_can_throw_external): New.
	* passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
	and local pure/const pass in early and late optimization queue.

2009-03-28  Martin Jambor  <mjambor@suse.cz>

	* fold-const.c (get_pointer_modulus_and_residue): New parameter
	allow_func_align.
	(fold_binary): Allow function decl aligment consideration is the
	second argument is integer constant one.
	* tree-ssa-forwprop.c (simplify_bitwise_and): New function.
	(tree_ssa_forward_propagate_single_use_vars): Handle assing statements
	with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
	* tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
	* function.h (rtl_data): Add nothrow flag.
	* except.c (set_nothrow_function_flags): Use crtl->nothrow;
	set DECL_NOTHROW for AVAILABLE functions.

2009-03-28  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
	following vector keyword has expansion starting with pixel or bool
	keyword, expand vector to __vector and pixel or bool to __pixel or
	__bool.

	PR c++/39554
	* opts.c (warning_disallowed_functions, warn_disallowed_functions,
	warn_if_disallowed_function_p): Removed.
	(common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
	* c-parser.c (c_parser_postfix_expression_after_primary): Don't call
	warning_if_disallowed_function_p.
	* flags.h (warn_if_disallowed_function_p,
	warn_disallowed_functions): Removed.
	* common.opt (Wdisallowed-function-list=): Removed.
	* doc/invoke.texi (-Wdisallowed-function-list=): Removed.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38723
	* tree-ssa-pre.c (compute_avail): Add all default definitions to
	the entry block.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
	test introduced by my previous patch.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
	the PHIs value undefined.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_fixup_cfg): New pass.
	* ipa-inline.c (inline_transform): Set
	always_inline_functions_inlined/after_inlining.
	* tree-optimize.c (execute_fixup_cfg): Do not set them here.
	(pass_fixup_cfg): New pass.
	* passes.c (init_optimization_passes): Add fixup_cfg.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38458
	* tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
	argument use the arguments copy-of value.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38180
	* tree-ssa-ccp.c (get_default_value): Simplify.
	(likely_value): Likewise.
	(surely_varying_stmt_p): Properly handle VOP case.
	(ccp_initialize): Likewise.
	(ccp_fold): Handle propagating through *&.
	(fold_const_aggregate_ref): Also handle decls.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Add replace output flag by process.
	* cgraph.h (cgraph_node): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): Set process flag.
	(cgraph_reset_node): Use process flag.
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_expand_all_functions): Likewise.
	(cgraph_output_in_order): Likewise.
	* dwarf2out.c (reference_to_unused): Likewise.
	* passes.c do_per_function_toporder): Likewise.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	Bring from lto-branch:

	2008-09-03  Doug Kwan  <dougkwan@google.com>

	* cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
	enums instead of reason strings.
	* cgraph.c (cgraph_create_edge): Same.
	(cgraph_inline_failed_string): New function.
	* cgraph.h (cgraph_inline_failed_t): New enum type.
	(cgraph_inline_failed_string): New prototype.
	(struct cgraph_edge): Change type of INLINED_FAILED from constant
	char pointer to cgraph_inline_failed_t.
	(cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
	(cgraph_default_inline_p): Ditto.
	* cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
	to cgraph_inline_failed_t pointer.
	* cif-code.def: New file.
	* ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
	reason string.
	(cgraph_check_inline_limits): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Replace reason strings with enums.
	(cgraph_default_inline_p): Ditto.
	(cgraph_recursive_inlining_p): Ditto.
	(update_caller_keys): Change type of FAILED_REASON to
	cgraph_inline_failed_t.
	(cgraph_set_inline_failed): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
	convert enums to strings for text output.
	(cgraph_decide_inlining_of_small_function): Change FAILED_REASON
	to be of type cgraph_inline_failed_t.  Replace reason strings with
	enums.  Call cgraph_inline_failed_string to covert enums
	to strings for text output.
	(cgraph_decide_inlining): Replace reason strings with enums.
	(cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
	to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
	for text output.
	* tree-inline.c (expand_call_inline): Change type of REASON
	to cgraph_inline_failed_t.  Replace reason strings with enums.
	Call cgraph_inline_failed_string for text output.
	* Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
	(cgraph.o): Ditto.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
	cgraph_clone_node): Remove master clone handling.
	(cgraph_is_master_clone, cgraph_master_clone): Remove.
	* cgraph.h (master_clone): Remove.
	(cgraph_is_master_clone, cgraph_master_clone): Remove.
	* ipa-type-escape.c (type_escape_execute): Remove use of master clone.
	(tree-ssa-structalias.c (ipa_pta_execute): Likewise.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_function_body_availability): Functions declared
	inline are always safe to assume that it is not going to be replaced.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38513
	* tree-ssa-pre.c (eliminate): Remove redundant stores.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
	EXC_PTR_EXPR and FILTER_EXPR.
	(get_ref_from_reference_ops): Likewise.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38968
	* tree-vect-analyze.c (vect_compute_data_ref_alignment):
	Use FLOOR_MOD_EXPR to compute misalignment.

2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37795
	* tree.h (combine_comparisons): Declare.
	* fold-const.c (combine_comparisons): Export.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
	comparisons.
	(ifcombine_iforif): Use combine_comparisons.

2009-03-28  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (inlinable_call_p): New function.
	(make_eh_edges): Use it.
	(verify_eh_edges): Use it.
	(stmt_can_throw_external, stmt_can_throw_internal): Use it.
	* except.c (reachable_next_level): Add inlinable_function argument
	(sjlj_find_directly_reachable_regions): Update.
	(add_reachable_handler): Do not set saw_any_handlers.
	(reachable_next_level): Handle MUST_NOT_THROW more curefully.
	(foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
	Add new inlinable call parameter.
	(can_throw_internal, can_throw_external): Update.
	* except.h (can_throw_internal_1, can_throw_external_1,
	foreach_reachable_handler): Update declaration.

2009-03-28  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/t-arm-coff, config/h8300/coff.h,
	config/i386/i386-aout.h, config/i386/i386-coff.h,
	config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
	config/pdp11/2bsd.h, config/rs6000/aix41.h,
	config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
	fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
	scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
	sys-types.h: Remove.
	* Makefile.in: Remove protoize and fixproto support and references
	in comments.
	(SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
	PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
	Remove.
	(ALL_HOST_OBJS): Remove $(PROTO_OBJS).
	(MOSTLYCLEANFILES): Remove protoize$(exeext) and
	unprotoize$(exeext).
	(rest.encap): Don't depend on $(STMP_FIXPROTO)
	(.PHONY): Don't depend on proto.
	(libgcc-support): Don't depend on $(STMP_FIXPROTO).
	(proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
	protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
	deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
	build/gen-protos.o, build/scan.o, xsys-protos.h,
	build/fix-header$(build_exeext), build/fix-header.o,
	build/scan-decls.o, fixhdr.ready, stmp-fixproto,
	stmp-install-fixproto): Remove.
	(mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
	SYSCALLS.c or fixproto files.
	(install-common): Don't install protoize.
	(install-headers-tar, install-headers-cpio, install-headers-cp):
	Don't depend on $(STMP_FIXPROTO).
	(install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
	install fixproto files or write out fixproto settings.
	(uninstall): Don't uninstall protoize.
	* config.gcc (use_fixproto): Remove.
	(arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
	i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
	rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
	* config/m32r/t-linux (STMP_FIXPROTO): Remove.
	* config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
	* config/mips/t-iris (FIXPROTO_DEFINES): Remove.
	* config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
	* config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
	* config/t-svr4 (FIXPROTO_DEFINES): Remove.
	* config/t-vxworks (STMP_FIXPROTO): Remove.
	* configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
	STMP_FIXPROTO): Remove.
	* config.in, configure: Regenerate.
	* crtstuff.c (gid_t, uid_t): Don't undefine.
	* doc/install.texi: Change m68k-coff to m68k-elf in example.
	(arm-*-coff, arm-*-aout: Remove target entries.
	(*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
	Remove mention of AIX 4.1.
	(m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
	* doc/invoke.texi (Running Protoize): Remove.
	* doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
	(Protoize Caveats): Remove.
	* tsystem.h: Update comments on headers assumed to exist.

2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c: Add a new year to the copyright.  Add a new
	reference.
	(struct insn_reserv_decl): Add comments for member bypass_list.
	(find_bypass): Remove.
	(insert_bypass): New.
	(process_decls): Use insert_bypass.
	(output_internal_insn_latency_func): Output all bypasses with the
	same input insn in one switch case.

	* rtl.def (define_bypass): Describe bypass choice.
	* doc/md.texi (define_bypass): Ditto.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (mark_addressable): Export.
	* tree-flow.h (mark_addressable): Declare.
	* tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
	* tree-ssa.c (verify_phi_args): Verify that address taken
	variables have TREE_ADDRESSABLE set.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
	(build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
	Do not mark decls TREE_ADDRESSABLE.
	(build_fold_addr_expr): Adjust.
	(fold_addr_expr): Remove.
	(fold_unary): Use build_fold_addr_expr.
	(fold_comparison): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* coverage.c (tree_coverage_counter_addr): Mark the array decl
	TREE_ADDRESSABLE.
	* gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
	(gimplify_modify_expr_to_memcpy): Mark source and destination
	addressable.
	* omp-low.c (create_omp_child_function): Mark the object decl
	TREE_ADDRESSABLE.
	(lower_rec_input_clauses): Mark the var we take the address of
	TREE_ADDRESSABLE.
	(lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/39315
	* cfgexpand.c (expand_one_stack_var_at): Change alignment
	limit to MAX_SUPPORTED_STACK_ALIGNMENT.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39120
	* tree-ssa-structalias.c (handle_rhs_call): Fill out return
	constraints.
	(handle_lhs_call): Process return constraints.  Add escape
	constraints if necessary.
	(handle_const_call): Fill out return constraints.  Make nested
	case more precise.  Avoid consttmp if possible.
	(handle_pure_call): Fill out return constraints.  Avoid
	callused if possible.
	(find_func_aliases): Simplify call handling.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39120
	* tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
	as a representative.
	(solve_graph): Do propagate CALLUSED.
	(handle_pure_call): Use a scalar constraint from CALLUSED for
	the return value.
	(find_what_p_points_to): CALLUSED shall not appear in poins-to
	solutions.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* c-common.c (handle_aligned_attribute): Properly check alignment
	overflow.  Use (1U << i) instead of (1 << i).

	* emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.

	* expr.h (get_mem_align_offset): Updated.

	* tree.h (tree_decl_common): Change align to "unsigned int" and
	move it before pointer_alias_set.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/38034
	* config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
	gr_register_operand with gr_reg_or_0_operand.
	(cmpxchg_rel_di): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
	(true_regnum): Likewise.

	* rtlanal.c (subreg_info): Moved to ...
	* rtl.h (subreg_info): Here.  New.
	(subreg_get_info): New.

	* rtlanal.c (subreg_get_info): Make it extern.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39472
	* config/i386/i386.c (ix86_abi): New.
	(override_options): Handle -mabi=.
	(ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
	(ix86_call_abi_override): Likewise.
	(init_cumulative_args): Likewise.
	(function_arg_advance): Likewise.
	(function_arg_64): Likewise.
	(function_arg): Likewise.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(ix86_build_builtin_va_list_abi): Likewise.
	(setup_incoming_varargs_64): Likewise.
	(is_va_list_char_pointer): Likewise.
	(ix86_init_machine_status): Likewise.
	(ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
	(ix86_function_type_abi): Return enum calling_abi.  Rewrite
	for 64bit.  Replace DEFAULT_ABI with ix86_abi.
	(ix86_function_abi): Make it static and return enum calling_abi.
	(ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
	with ix86_abi.
	(ix86_fn_abi_va_list): Updated.

	* config/i386/i386.h (ix86_abi): New.
	(STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
	(CONDITIONAL_REGISTER_USAGE): Likewise.
	(CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
	(machine_function): Likewise.

	* config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
	with ix86_abi.
	* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
	(STACK_BOUNDARY): Likewise.
	* config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.

	* config/i386/i386.opt (mabi=): New.

	* config/i386/i386-protos.h (ix86_cfun_abi): Changed to
	return enum calling_abi.
	(ix86_function_type_abi): Likewise.
	(ix86_function_abi): Removed.

	* doc/invoke.texi: Document -mabi= option for x86.

2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (real_dconstp): Delete.
	(fold_builtin_logarithm): Remove inaccurate log(e) special case.

2009-03-27  Dodji Seketeli  <dodji@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR debug/37959
	* dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
	(gen_subprogram_die): When a function is explicit, generate the
	DW_AT_explicit attribute.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_decl_explicit_p langhook.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.

2009-03-27  Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (fold_builtin_memory_op): Optimize memmove
	into memcpy if we can prove source and destination don't overlap.

	* tree-inline.c: Include gt-tree-inline.h.
	(clone_fn_id_num): New variable.
	(clone_function_name): New function.
	(tree_function_versioning): Use it.
	* Makefile.in (GTFILES): Add tree-inline.c.

2009-03-27  Mark Mitchell  <mark@codesourcery.com>

	* BASE-VER: Change to 4.5.0.

2009-03-27  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/39557
	* tree-ssa.c (warn_uninitialized_vars): free postdom info.

2009-03-27  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/39548
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
	candidate check.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* c-common.c (pointer_int_sum): Use %wd on return from
	tree_low_cst.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
	on return from tree_low_cst.

2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c++/36799
	* ginclude/stdarg.h (va_copy): Define also for
	__GXX_EXPERIMENTAL_CXX0X__.

2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/35652
	* builtins.h (c_strlen): Do not warn here.
	* c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
	* c-common.c (pointer_int_sum): Take an explicit location.
	Warn about offsets out of bounds.
	* c-common.h (pointer_int_sum): Adjust declaration.

2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
	markup glitch.

2009-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/39554
	* opts.c (warn_if_disallowed_function_p): Don't assume
	get_callee_fndecl must return non-NULL.

2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/39522
	* reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
	when reg_reloaded_valid is set.

2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/divv2df3.c: New file.
	* config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
	(DPBIT_FUNCS): Filter out _div_df.

2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
	a jump insn, count that jump in the distance to the loop start.

2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/39523
	* config/sh/sh.c (calc_live_regs): Fix condition for global
	registers except PIC_OFFSET_TABLE_REGNUM.

2009-03-25  Kai Tietz  <kai.tietz@onevision.com>

	PR/39518
	* doc/invoke.texi (-mconsole): New.
	(-mcygwin): New.
	(-mno-cygwin): New.
	(-mdll): New.
	(-mnop-fun-dllimport): New.
	(-mthread): New.
	(-mwin32): New.
	(-mwindows): New.
	(sub section "i386 and x86-64 Windows Options"): New.

2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
	* config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.

2009-03-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39497
	* Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
	of -Wno-error.

2009-03-25  Andrey Belevantsev  <abel@ispras.ru>

	* config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
	neither of haifa/selective schedulers are working.

2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Debugging Options): Fix description of
	-fno-merge-debug-strings.

2009-03-24  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/libgcc.ver: New version-script.
	* config/cris/t-linux (SHLIB_MAPFILES): Use it.

	* configure.ac <GAS features, nop mnemonic>: Add pattern
	crisv32-*-* for "nop".
	<GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
	* configure: Regenerate.

2009-03-24  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39529
	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
	mark_sym_for_renaming for the tag copied to the new vector
	pointer.

2009-03-24  Arthur Loiret  <aloiret@debian.org>

	* config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
	* config/alpha/linux.h (host_detect_local_cpu): Declare, add to
	EXTRA_SPEC_FUNCTIONS.
	(MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
	* config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
	* doc/invoke.texi (DEC Alpha Options): Document 'native' value for
	-march and -mtune options.

2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/m68k/t-rtems: Add m5329 multilib.

2009-03-24  Dodji Seketeli  <dodji@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR debug/39524
	* dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
	nodes.

2009-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR c/39495
	* c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
	instead of c_parser_expression_conv, if original_code isn't one of the
	4 allowed comparison codes, fail.

2009-03-23  Richard Guenther  <rguenther@suse.de>

	* cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
	* tree.h (struct tree_type): Likewise.
	* reload.h (struct insn_chain): Likewise.
	* dwarf2out.c (struct dw_loc_descr_struct): Likewise.
	* function.h (struct function): Likewise.
	* tree-ssa-structalias.c (struct equiv_class_label): Likewise.

2009-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/39516
	* lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.

2009-03-23  Bingfeng Mei  <bmei@broadcom.com>

	* config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
	should be set true if BITS_PER_WORD of target is bigger than 32

2009-03-22  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
	Translate -B-options to -rpath-link.  Correct existing
	rpath-link and conditionalize on !nostdlib.

2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Function Attributes, Variable Attributes):
	Fix typos.
	* doc/invoke.texi (Debugging Options, Optimize Options)
	(i386 and x86-64 Options, MCore Options): Likewise.

2009-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/37890
	* dwarf2out.c (gen_namespace_die): Add context_die argument and use
	it for block local namespace aliases.
	(gen_decl_die): Pass context_die to gen_namespace_die.

2009-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/39495
	* c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
	minimum or maximum value.

2009-03-19  Alexandre Oliva  <aoliva@redhat.com>

	* reginfo.c (globalize_reg): Recompute derived reg sets.

2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>

	PR target/39063
	* libgcc2.c (mprotect): Do not use signed arguments for
	VirtualProtect, use DWORD arguments.  Also fix the 'may
	be used uninitialized' warning for the np variable.

2009-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/39496
	* config/i386/i386.c (ix86_function_regparm): Don't optimize local
	functions using regparm calling conventions when not optimizing.
	(ix86_function_sseregparm): Similarly for sseregparm calling
	conventions.

2009-03-19  Li Feng  <nemokingdom@gmail.com>

	PR middle-end/39500
	* tree-data-ref.c (analyze_subscript_affine_affine): There is no
	dependence if the first conflict is after niter iterations.

2009-03-19  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/38609
	* config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
	functions with dynamic stack-pointer adjustments.

2009-03-19  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
	option; change to -msdata=data.

2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
	and -fopenmp.

2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/35180
	* config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.

2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Code Gen Options): Expand discussion of
	-fno-common.

2009-03-18  Jakub Jelinek  <jakub@redhat.com>

	* dse.c (struct group_info): Reorder fields for 64-bit hosts.
	* matrix-reorg.c (struct matrix_info): Likewise.
	* tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
	* rtl.h (struct mem_attrs): Likewise.
	* df.h (struct df): Likewise.
	* tree-data-ref.h (struct data_dependence_relation): Likewise.
	* ira-int.h (struct ira_allocno): Likewise.
	* df-scan.c (struct df_collection_rec): Likewise.
	* ira.c (struct equivalence): Likewise.
	* function.c (struct temp_slot): Likewise.
	* cfgloop.h (struct loop): Likewise.

	PR debug/39485
	* function.c (use_register_for_decl): When not optimizing, disregard
	register keyword for variables with types containing methods.

2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39447
	* graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
	(is_simple_operand): Call contains_component_ref_p before calling data
	reference analysis that would fail on COMPONENT_REFs.

	* tree-vrp.c (search_for_addr_array): Fix formatting.

2009-03-18  Richard Guenther  <rguenther@suse.de>

	* tree-vect-transform.c (vect_loop_versioning): Fold the
	generated comparisons.
	* tree-vectorizer.c (set_prologue_iterations): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.

2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR middle-end/37805
	* opts.c (print_specific_help): In addition to `undocumented',
	accept `separate' and `joined' flags if passed alone.  Describe
	output by the first matched one of those.
	(common_handle_option): Skip over empty strings.
	* gcc.c (display_help): Fix help string for `--help='.
	* doc/invoke.texi (Option Summary, Overall Options): With
	`--help=', classes and qualifiers can both be repeated, but
	only the latter can be negated.  One should not pass only
	negated qualifiers.  Fix markup and examples.

	Revert
	2008-10-14  Jakub Jelinek  <jakub@redhat.com>
	PR middle-end/37805
	* opts.c (common_handle_option): Don't ICE on -fhelp=joined
	and -fhelp=separate.

2009-03-17  Jing Yu  <jingyu@google.com>

	PR middle-end/39378
	* function.h (struct rtl_data): Move is_thunk from here...
	(struct function): ...to here.
	* cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
	* varasm.c (assemble_start_function): Change is_thunk from crtl to
	cfun.
	* config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
	cfun.
	(alpha_does_function_need_gp, alpha_start_function): Likewise.
	(alpha_output_function_end_prologue): Likewise.
	(alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
	(rs6000_output_function_epilogue): Likewise.
	* config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.

2009-03-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39482
	* config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
	from different units in a single alternative.
	(*truncdfsf_i387): Ditto.
	(*truncxfsf2_mixed): Ditto.
	(*truncxfdf2_mixed): Ditto.

2009-03-17  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
	non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.

	PR debug/39474
	* tree-ssa-live.c (remove_unused_locals): Don't remove local
	unused non-artificial variables when not optimizing.

	PR debug/39471
	* dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
	DW_TAG_imported_module even if decl is IMPORTED_DECL with
	NAMESPACE_DECL in its DECL_INITIAL.

	PR middle-end/39443
	* optabs.c (set_user_assembler_libfunc): New function.
	* expr.h (set_user_assembler_libfunc): New prototype.
	* c-common.c: Include libfuncs.h.
	(set_builtin_user_assembler_name): Call set_user_assembler_libfunc
	for memcmp, memset, memcpy, memmove and abort.
	* Makefile.in (c-common.o): Depend on libfuncs.h.

	PR debug/39412
	* dwarf2out.c (gen_inlined_enumeration_type_die,
	gen_inlined_structure_type_die, gen_inlined_union_type_die,
	gen_tagged_type_instantiation_die): Removed.
	(gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
	do nothing.

2009-03-17  Janis Johnson  <janis187@us.ibm.com>

	PR testsuite/38526
	* Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
	its use.
	(check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
	(check-parallel-%): Ditto.
	(check-consistency): Ditto.

2009-03-17  Kai Tietz  <kai.tietz@onevision.com>

	* ipa-struct-reorg.c (create_general_new_stmt): Initialize
	local variable rhs by NULL_TREE.

2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39477
	* doc/extend.texi: Correct register behavior for regparm on Intel 386.

2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39476
	* config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.

2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39473
	* config/i386/i386.c (ix86_expand_call): Check extra clobbers
	for ms->sysv ABI calls only in 64bit mode.

	* config/i386/i386.md (untyped_call): Support 32bit.

2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi: Replace x86_65 with x86_64.

2009-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/39455
	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
	mismatches for POINTER_TYPE_P (type).
	(number_of_iterations_le): Likewise.

2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c: Removed profiling support.
	* config/picochip/picochip.md: Removed profiling instruction.
	* config/picochip/picochip.h: Removed profiling builtin.

2009-03-16  Joseph Myers  <joseph@codesourcery.com>

	* doc/install.texi (--with-host-libstdcxx): Document.

2009-03-14  Anatoly Sokolov  <aesok@post.ru>

	PR target/34299
	* config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
	generate a warning if the function name does not begin with
	"__vector" and the function has either the 'signal' or 'interrupt'
	attribute, from here to ...
	(avr_declare_function_name): ...here. New function.
	* config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
	* config/avr/avr-protos.h (avr_declare_function_name): Declare.

2009-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/39454
	* cse.c (fold_rtx): Don't modify original const_arg1 when
	canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
	separate variable instead.
	* rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
	from out of range shift counts.
	(num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.

2009-03-13  Catherine Moore  <clm@codesourcery.com>

	* config/i386/x-mingw32 (host-mingw32.o): Replace
	diagnostic.h with $(DIAGNOSTIC_H).

2009-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/39431
	* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
	predicate.
	* config/i386/sync.md (sync_compare_and_swap<mode>,
	sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
	if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
	into a register.
	(sync_double_compare_and_swapdi_pic,
	sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
	cmpxchg8b_pic_memory_operand instead of just memory_operand.

2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39445
	* config/i386/i386.c (ix86_expand_push): Don't set memory alignment.

2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39327
	* config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
	(avx_addsubv4df3): Likewise.
	(*avx_addsubv4sf3): Likewise.
	(sse3_addsubv4sf3): Likewise.

2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38824
	* config/i386/i386.md: Compare REGNO on the new peephole2 patterns.

2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR debug/39432
	* ira-int.h (struct allocno): Fix comment for calls_crossed_num.
	* ira-conflicts.c (ira_build_conflicts): Prohibit call used
	registers for allocnos created from user-defined variables.

2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/39181
	* config/spu/spu.c (spu_expand_mov): Handle invalid subregs
	of non-integer mode as well.

2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>

	* gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
	for functions for which the parameter types are unknown.

2009-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/39137
	* cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
	* defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
	* config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
	* config/i386/i386.c (ix86_local_alignment): For
	-m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
	long long variables on the stack to avoid dynamic realignment.
	Allow the first argument to be a decl rather than type.
	* doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.

2009-03-11  Nick Clifton  <nickc@redhat.com>

	PR target/5362
	* config/mcore/mcore.opt: Remove deprecated m4align and m8align
	options.
	Add description to mno-lsim option.
	* config/mcore/mcore.h: Remove comment about deprecated m4align
	option.
	(TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
	* doc/invoke.texi: Add description of mno-lsim and
	mstack-increment options.

	* config/fr30/fr30.opt: Document the -mno-lsim option.
	* doc/invoke.texi: Add descriptions of the FR30's -msmall-model
	and -mno-lsim options.

2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* fold-const.c (fold_comparison): Only call fold_inf_compare
	if the mode supports infinities.

2009-03-11  Jason Merrill  <jason@redhat.com>

	PR debug/39086
	* tree-nrv.c (tree_nrv): Don't do this optimization if the front
	end already did.  Notice GIMPLE_CALL modifications of the result.
	Don't copy debug information from an ignored decl or a decl from
	another function.

2009-03-10  Richard Guenther  <rguenther@suse.de>
	    Nathan Froyd  <froydnj@codesourcery.com>

	PR middle-end/37850
	* libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
	(__divMODE3): Likewise.

2009-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/39394
	* gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
	DECL_SIZE_UNIT of variable length FIELD_DECLs.

2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* recog.c (verfiy_changes): Disallow renaming of hard regs in
	inline asms for register asm ("") declarations.

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

	* fold-const.c (fold_unary): Fix comment.

2009-03-07  Jan Hubicka  <jh@suse.cz>

	PR target/39361
	* tree-inline.c (setup_one_parameter): Do replacement of const
	argument by constant in SSA form.

2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR middle-end/38028
	* function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
	determine alignment passed to assign_stack_local.
	(assign_parms_unsplit_complex): Likewise.
	* except.c (sjlj_build_landing_pads): Likewise.

2009-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/39360
	* tree-flow.h (add_referenced_var): Return bool instead of void.
	* tree-dfa.c (add_referenced_var): Return result of
	referenced_var_check_and_insert call.
	* tree-inline.c (expand_call_inline): Call add_referenced_var instead
	of referenced_var_check_and_insert.

	PR debug/39372
	* dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
	(gen_variable_die): Emit DW_AT_location on abstract static variable's
	DIE, don't emit it if abstract origin already has it.
	* tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
	BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.

2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* genpreds.c (needs_variable): Fix parentheses at variable name
	detection.
	(write_tm_constrs_h): Indent generated code.

2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* doc/extend.texi (Function Attributes): Add documentation
	for isr attributes.

2009-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR debug/39387
	* dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
	take locus from its DECL_SOURCE_LOCATION instead of input_location.

2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
	the loop as bad.

2009-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/39379
	* tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
	with blocks containing IMPORTED_DECLs in BLOCK_VARS.

2009-03-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (R8_REG, R9_REG): New constants.
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
	constants instead of magic numbers.
	(HARD_REGNO_CALLER_SAVE_MODE): Ditto.
	(QI_REG_P): Ditto.
	* config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
	(x86_64_ms_abi_int_parameter_registers): Ditto.
	(x86_64_int_return_registers): Ditto.
	(ix86_maybe_switch_abi): Ditto.
	(ix86_expand_call): Ditto for clobbered_registers array.
	(ix86_hard_regno_mode_ok): Ditto.
	(x86_extended_QIreg_mentioned_p): Ditto.

2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>

	PR tree-optimization/39349
	* cse.c (cse_insn): Fix loop to stop at VOIDmode.

	* combine.c (gen_lowpart_for_combine): Use omode when generating
	clobber.

2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>

	PR rtl-optimization/39235
	* loop-iv.c (get_simple_loop_desc): Use XCNEW.

2009-03-04  Zdenek Dvorak  <ook@ucw.cz>

	* graphite.c (nb_reductions_in_loop): Update simple_iv arguments.

2009-03-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39362
	* tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
	that occur in abnormal PHIs should be varying.

2009-03-04  Zdenek Dvorak  <ook@ucw.cz>

	* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
	Extend comments.
	(simple_iv):  Take loop as an argument instead of statement.
	* tree-scalar-evolution.h (simple_iv): Declaration changed.
	* tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
	to simple_iv.
	* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
	Ditto.
	* tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
	* matrix-reorg.c (analyze_transpose): Ditto.
	* tree-data-ref.c (dr_analyze_innermost): Ditto.
	* tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
	* tree-predcom.c (ref_at_iteration): Ditto.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.

2009-03-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39358
	* tree-ssa-structalias.c (do_sd_constraint): Fix check for
	escaped_id and callused_id.
	(solve_graph): Likewise.

2009-03-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39339
	* tree-sra.c (try_instantiate_multiple_fields): Make it
	no longer ICE on the above.

2009-03-03  Joseph Myers  <joseph@codesourcery.com>

	* emit-rtl.c (adjust_address_1): Reduce offset to a signed value
	that fits within Pmode.

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

	PR middle-end/10109
	* tm.texi (LIBCALL_VALUE): Update description.

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

	PR middle-end/34443
	* doc/extend.texi (section): Update description.

2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/39345
	* tree-inline.c (remapped_type): New.
	(can_be_nonlocal): Call remapped_type instead of remap_type.

2009-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/39354
	* gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
	TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.

2009-03-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39272
	* tree.c (tree_nonartificial_location): New function.
	* tree.h (tree_nonartificial_location): Declare.
	* builtins.c (expand_builtin_memory_chk): Provide location
	of the call location for artificial function pieces.
	(maybe_emit_chk_warning): Likewise.
	(maybe_emit_sprintf_chk_warning): Likewise.
	(maybe_emit_free_warning): Likewise.
	* expr.c (expand_expr_real_1): Likewise.

2009-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/39343
	* tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
	COMPONENT_REF t has ARRAY_TYPE.

2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39335
	* tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
	when the type precision of the induction variable should be
	larger than the type precision of nit.
	(gen_parallel_loop): Update use of canonicalize_loop_ivs.
	* graphite.c (graphite_loop_normal_form): Same.
	* tree-flow.h (canonicalize_loop_ivs): Update declaration.

2009-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ST?_REG, MM?_REG): New constants.
	(*call_1_rex64_ms_sysv): Use named constants instead of magic
	numbers to describe clobbered registers.
	(*call_value_0_rex64_ms_sysv): Ditto.
	* config/i386/mmx.md (mmx_emms): Ditto.
	(mmx_femms): Ditto.

2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
	of ABI_64.

2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
	(spu_section_type_flags): New function.

2009-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
	reg_class_contents of FLOAT_REGS into a temporary.

2009-03-02  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/39318
	* tree-vect-transform.c (vectorizable_call): Transfer the EH region
	information to the vectorized statement.

2009-03-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
	variable.  Use defined names instead of magic constants for REX SSE
	registers.

2009-03-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39331
	* omp-low.c (lower_send_shared_vars): Do not receive new
	values for the reference of DECL_BY_REFERENCE parms or results.

2009-03-01  Jan Hubicka  <jh@suse.cz>

	PR debug/39267
	* tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
	BLOCK_NONLOCALIZED_VAR): New macros.
	(tree_block): Add nonlocalized_vars.
	* dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
	gen_decl_die): Add origin argument.  Allow generation of die with
	origin at hand only.
	(gen_member_die, gen_type_die_with_usage, force_decl_die,
	declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
	of gen_*.
	(gen_block_die): Fix checking for unused blocks.
	(process_scope_var): Break out from .... ; work with origins only.
	(decls_for_scope) ... here; process nonlocalized list.
	(dwarf2out_ignore_block): Look for nonlocalized vars.
	* tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
	vars.
	(dump_scope_block): Dump them.
	* tree-inline.c (remap_decls): Handle nonlocalized vars.
	(remap_block): Likewise.
	(can_be_nonlocal): New predicate.
	(copy_bind_expr, copy_gimple_bind): Update use of remap_block.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* optc-gen.awk: No need to duplicate option flags twice.
	Reuse help texts for duplicate options which do not have any.

	* gcc.c (display_help): Document --version.

	* gcc.c (main): If print_help_list and verbose_flag, ensure
	driver output comes before subprocess output.

	* optc-gen.awk: Assign all remaining fields to help string,
	space-separated, for multi-line help in *.opt.

	* doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
	-Wno-pedantic-ms-format is for MinGW targets only.

	* doc/options.texi (Option file format): Fix bad indentation,
	restoring dropped sentence.

2009-02-28  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (tree_function_versioning): Output debug info.

2009-02-28  Jan Hubicka  <jh@suse.cz>

	PR debug/39267
	* tree-inline.c (setup_one_parameter): Do not copy propagate
	arguments when not optimizing.

2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39327
	* config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
	(avx_addsubv4df3): Likewise.
	(*avx_addsubv4sf3): Likewise.
	(sse3_addsubv4sf3): Likewise.
	(*avx_addsubv2df3): Likewise.
	(sse3_addsubv2df3): Likewise.
	(avx_unpckhps256): Correct item selectors.
	(avx_unpcklps256): Likewise.
	(avx_unpckhpd256): Likewise.
	(avx_unpcklpd256): Likewise.

2009-02-28  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (expand_call_inline): Avoid duplicate declarations of
	static vars.
	(copy_arguments_for_versioning): If var is declared don't declare it.
	(tree_function_versioning): First setup substitutions and then copy
	args.

2009-02-27  Jan Hubicka  <jh@suse.cz>

	PR debug/39267
	* cgraph.h (varpool_output_debug_info): Remove.
	* cgraphunit.c (varpool_output_debug_info): Remove.
	* dwarf2out.c (deferred_locations_struct): New struct
	(deferred_locations): New type.
	(deferred_locations_list): New static var.
	(deffer_location): New function.
	(gen_variable_die): Use it.
	(decls_for_scope): Output info on local static vars.
	(dwarf2out_finish): Process deferred locations.
	* varpool.c (varpool_output_debug_info): Remove.

2009-02-27  Jan Hubicka  <jh@suse.cz>

	PR debug/39267
	* tree.h (TREE_PROTECTED): Fix comment.
	(BLOCK_HANDLER_BLOCK): Remove.
	(struct tree_block): Remove handler_block add body_block.
	(inlined_function_outer_scope_p): New.
	(is_body_block): Remove.
	* dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
	* dwarf2out.c (is_inlined_entry_point): Remove.
	(add_high_low_attributes): Use inlined_function_outer_scope_p.
	(gen_block_die): Use is_inlined_entry_point check.  Remove body block
	code.
	* langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
	* gimplify.c (gimplify_expr): Gimplify body blocks.
	* tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
	block with multiple subblocks.
	(dump_scope_block): Prettier output; dump more flags and info.
	(dump_scope_blocks): New.
	(remove_unused_locals): Use dump_scope_blocks.
	* tree-flow.h (dump_scope_blocks): Declare.
	* tree-cfg.c (execute_build_cfg): Dump scope blocks.
	* stmt.c (is_body_block): Remove.
	* tree-inline.c (remap_block): Copy BODY_BLOCK info.
	* langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.

2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39308
	* graphite.c (graphite_loop_normal_form): Do not call
	number_of_iterations_exit from a gcc_assert.

2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_swap_cmp): Look for conditional
	jumps if COND is NULL.
	(find_cond_jump): New function.
	(s390_z10_optimize_cmp): Handling for reg-reg compares added.
	* config/s390/s390.md: Remove z10_cobra attribute value.

2009-02-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (alpha_expand_mov): Return false if
	force_const_mem returns NULL_RTX.

2009-02-26  Jan Hubicka  <jh@suse.cz>

	PR debug/39267
	* cgraph.h (varpool_output_debug_info): Remove.
	* cgraphunit.c (varpool_output_debug_info): Remove.
	* dwarf2out.c (deferred_locations_struct): New struct
	(deferred_locations): New type.
	(deferred_locations_list): New static var.
	(deffer_location): New function.
	(gen_variable_die): Use it.
	(decls_for_scope): Output info on local static vars.
	(dwarf2out_finish): Process deferred locations.
	* varpool.c (varpool_output_debug_info): Remove.

2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/39241
	* jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
	to subreg_offset_representable_p.

2009-02-25  Paolo Bonzini  <bonzini@gnu.org>

	* regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
	execute function prototype.  Get f and nregs from max_reg_num
	and get_insns.  Remove the first backward pass as it's dead,
	guard the forward pass by flag_expensive_optimizations.
	(rest_of_handle_regmove): Delete.
	(pass_regmove): Replace it with regmove_optimize.

2009-02-25  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/39259
	* tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
	calls_alloca function flags.
	(copy_bb): Set calls_setjmp and alls_alloca function flags if such
	calls are detected.

2009-02-25  Paolo Bonzini  <bonzini@gnu.org>

	* regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
	flags_set_1_rtx, flags_set_1_set): Delete.
	(regmove_optimize): Do not call mark_flags_life_zones.

2009-02-24  Julian Brown  <julian@codesourcery.com>

	PR target/35965
	* config/arm/arm.c (require_pic_register): Only set
	cfun->machine->pic_reg once per function.

2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Link Options): Document an easier way to pass
	options that take arguments to the GNU linker using -Xlinker and -Wl.

2009-02-24  Steve Ellcey  <sje@cup.hp.com>

	PR target/33785
	* doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.

2009-02-24  Richard Guenther  <rguenther@suse.de>

	PR debug/39285
	* dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.

2009-02-24  Richard Guenther  <rguenther@suse.de>
	    Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/39233
	* tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
	from converting them to a generic type.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/39260
	* graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
	contains a condition with a real type.
	(build_scop_conditions_1): Conditions are always last_stmt of a bb.

2009-02-23  Jason Merrill  <jason@redhat.com>

	PR c++/38880
	* varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
	narrowing_initializer_constant_valid_p.
	(narrowing_initializer_constant_valid_p): Don't return
	null_pointer_node for adding a pointer to itself.

2009-02-23  Jan Hubicka  <jh@suse.cz>

	PR c/12245
	* ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
	resizing.

2009-02-23  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/37709
	* tree.c (block_ultimate_origin): Move here from dwarf2out.
	* tree.h (block_ultimate_origin): Declare.
	* dwarf2out.c (block_ultimate_origin): Move to tree.c
	* tree-ssa-live.c (remove_unused_scope_block_p):
	Eliminate blocks containig no instructions nor live variables nor
	nested blocks.
	(dump_scope_block): New function.
	(remove_unused_locals): Enable removal of dead blocks by default;
	enable dumping at TDF_DETAILS.

2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (classify_argument): Don't allow COImode
	and OImode.
	(function_arg_advance_32): Don't allow OImode.
	(function_arg_32): Likewise.
	(function_value_32): Likewise.
	(return_in_memory_32): Likewise.
	(function_arg_64): Remove OImode comment.

2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39261
	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
	ix86_expand_vector_set for V4DImode in 64bit mode only.
	(ix86_expand_vector_init_one_var): Likewise.

2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_trans_loop_block): Adjust tile size to 51.

2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/39257
	* loop-iv.c: Revert last change.
	* emit-rtl.c: Likewise.

2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39256
	* config/i386/i386.c (type_natural_mode): Remove an extra
	space in the warning message.
	(function_value_32): Handle 32-byte vector modes.
	(return_in_memory_32): Likewise.

2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* loop-iv.c (truncate_value): New function.
	(iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
	of lowpart_subreg.
	(lowpart_subreg): Move to...
	* emit-rtl.c: ...here.

2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
	accidental and undocumented change at revision 140860.

2009-02-21  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
	take gimple_seq * arguments.
	(arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
	types_compatible_p langhook.

2009-02-20  Mark Mitchell  <mark@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_builtin_va_list): New function.
	(arm_expand_builtin_va_start): Likewise.
	(arm_gimplify_va_arg_expr): Likewise.
	(TARGET_BUILD_BUILTIN_VA_LIST): Define.
	(TARGET_BUILD_BUILTIN_VA_START): Likewise.
	(TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
	(va_list_type): New variable.
	(arm_mangle_type): Mangle va_list_type appropriately.

2009-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/39157
	* Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
	* params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
	* params.def (loop-invariant-max-bbs-in-loop): New parameter.
	* opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
	parameter to 1000 for -O1 by default.
	* doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
	parameter.
	* loop-invariant.c: Include params.h.
	(move_loop_invariants): Don't call move_single_loop_invariants on
	very large loops.

2009-02-20  Jaka Mocnik  <jaka@xlab.si>

	* calls.c (emit_library_call_value_1): Use slot_offset instead of
	offset when calculating bounds for indexing stack_usage_map.  Fixes
	a buffer overflow with certain target setups.

2009-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/39240
	* calls.c (expand_call): Clear try_tail_call if caller and callee
	disagree in promotion of function return value.

2009-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/39175
	* c-common.c (c_determine_visibility): If visibility changed and
	DECL_RTL has been already set, call make_decl_rtl to update symbol
	flags.

2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/39188
	* varasm.c (assemble_variable): Don't check DECL_NAME when
	globalizing a variable.

2009-02-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/38483
	* builtins.c (gimplify_va_arg_expr): Evaluate the va_list
	expression before any __builtin_trap call.
	* c-typeck.c (build_function_call): Convert and check function
	arguments before generating a call to a trap.  Evaluate the
	function arguments before the trap.

2009-02-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39228
	* config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
	(UNSPEC_FXAM_MEM): New unspec.
	(fxam<mode>2_i387_with_temp): New insn and split pattern.
	(isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
	memory using fxam<mode>2_i387_with_temp to remove excess precision.

2009-02-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39207
	PR tree-optimization/39074
	* tree-ssa-structalias.c (storedanything_id, var_storedanything,
	storedanything_tree): New.
	(do_ds_constraint): Simplify ANYTHING shortcutting.  Update
	the STOREDANYTHING solution if the lhs solution contains ANYTHING.
	(build_succ_graph): Add edges from STOREDANYTHING to all
	non-direct nodes.
	(init_base_vars): Initialize STOREDANYTHING.
	(compute_points_to_sets): Free substitution info after
	building the succ graph.
	(ipa_pta_execute): Likewise.

	* tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
	field.
	(do_ds_constraint): Do not add to special var or non-pointer
	field solutions.
	(type_could_have_pointers): Split out from ...
	(could_have_pointers): ... here.  For arrays use the element type.
	(create_variable_info_for): Initialize may_have_pointers.
	(new_var_info): Likewise.
	(handle_lhs_call): Make the HEAP variable unknown-sized.
	(intra_create_variable_infos): Use a type with pointers for
	PARM_NOALIAS, make it unknown-sized.

2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39224
	* config/i386/i386.c (ix86_return_in_memory): Properly check ABI.

2009-02-18  Jason Merrill  <jason@redhat.com>

	PR target/39179
	* tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
	value if DECL_EXTERNAL.
	* tree-sra.c (sra_walk_gimple_assign): Likewise.
	* target.h (gcc_target::binds_local_p): Clarify "module".
	* tree.h (TREE_PUBLIC): Clarify "module".

2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>

	PR target/38891
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
	initialization for MS_ABI prior to the hunk of !TARGET_MMX.

2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39082
	* c.opt (Wabi): Support C and ObjC.
	(Wpsabi): New.

	* c-opts.c (c_common_handle_option): Handle OPT_Wabi.

	* config/i386/i386.c (classify_argument): Warn once about the ABI
	change when passing union with long double.

	* doc/invoke.texi: Update -Wabi for warning psABI changes.

2009-02-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/35447
	* c-parser.c (c_parser_compound_statement): Always enter and leave
	a scope.

2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/34587
	* config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.

2009-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36922
	* tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
	* tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
	Likewise.

2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
	to 0 for EABI64.

2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (type): Reclassify lui_movf as "unknown".

2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
	tree sharing.

2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
	* config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
	(loongson_biadd): ...this.

2009-02-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39202
	* tree-ssa-structalias.c (do_structure_copy): Before collapsing
	a var make sure to follow existing collapses.

2009-02-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39214
	* langhooks.c (lhd_print_error_function): Check for NULL block.

2009-02-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39204
	* tree-ssa-pre.c (phi_translate_1): Lookup the value-number
	of the PHI arg.

2009-02-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/soft-fp/double.h: Update from glibc CVS.

2009-02-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39207
	* tree-ssa-structalias.c (find_what_p_points_to): Do not emit
	strict-aliasing warnings for pointers pointing to NULL.

2009-02-16  Joseph Myers  <joseph@codesourcery.com>

	PR c/35446
	* c-parser.c (c_parser_braced_init): Call pop_init_level when
	skipping until next close brace.

2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37049
	* config/i386/i386.c (ix86_expand_push): Set memory alignment
	to function argument boundary.

2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.md (lea_add): Allow any nonimmediate
	in the lea_add. Reload eventually constraints it properly.
	* config/picochip/constraints.md: Remove the target constraint
	"b", since it is not needed anymore.

2009-02-16  Jakub Jelinek  <jakub@redhat.com>

	* gthr-dce.h: Uglify function parameter and local variable names.
	* gthr-gnat.h: Likewise.
	* gthr-mipssde.h: Likewise.
	* gthr-nks.h: Likewise.
	* gthr-posix95.h: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-rtems.h: Likewise.
	* gthr-single.h: Likewise.
	* gthr-solaris.h: Likewise.
	* gthr-tpf.h: Likewise.
	* gthr-vxworks.h: Likewise.
	* gthr-win32.h: Likewise.

2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39196
	* config/i386/i386.md: Restrict the new peephole2 to move
	between MMX/SSE registers.

2009-02-15  Richard Guenther  <rguenther@suse.de>

	Revert
	2009-02-13  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Enable LFS.
	* configure: Re-generate.
	* config.in: Likewise.

2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
	spu_srqwbyte, spu_srqwbytebc): Define.
	* config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
	spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
	* config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
	"shrqby_<mode>"): New insn-and-split patterns.
	* config/spu/spu.c (expand_builtin_args): Determine and return
	number of operands using spu_builtin_description data.
	(spu_expand_builtin_1): Use it.

2009-02-13  Steve Ellcey  <sje@cup.hp.com>

	PR target/38056
	* config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
	TARGET_CONST_GP.

2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39149
	* config/i386/i386.c (override_options): Correct warning
	messages for -malign-loops, -malign-jumps and -malign-functions.

2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39152
	* config/i386/i386.md: Restrict the new peephole2 to move
	between the general purpose registers.

2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39162
	* config/i386/i386.c (type_natural_mode): Add a new argument.
	Return the original mode and warn ABI change if vector size is 32byte.
	(function_arg_advance): Updated.
	(function_arg): Likewise.
	(ix86_function_value): Likewise.
	(ix86_return_in_memory): Likewise.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_gimplify_va_arg): Likewise.
	(function_arg_32): Don't warn ABX ABI change here.
	(function_arg_64): Likewise.

2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (implies_p): In the final case, test that operands 0
	of the two comparisons match.

	* config/bfin/bfin.c (find_prev_insn_start): New function.
	(bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
	(find_next_insn_start): Move.

2009-02-13  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Enable LFS.
	* configure: Re-generate.
	* config.in: Likewise.

2009-02-13  Joseph Myers  <joseph@codesourcery.com>

	PR c/35444
	* c-parser.c (c_parser_parms_list_declarator): Discard pending
	sizes on syntax error after some arguments have been parsed.

2009-02-12  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-fira): Remove.

2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>

	* caller-save.c: Replace regclass.c with reginfo.c in comments.
	* recog.c: Likewise.
	* rtl.h: Likewise.

2009-02-12  Uros Bizjak  <ubizjak@gmail.com>

	* longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
	(umul_ppmm): Likewise.
	(count_leading_zeros): Likewise.
	(count_trailing_zeros): Likewise.
	(UMUL_TIME): Likewise.

2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
	soft-fp/t-softfp to tmake_file.

	* config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
	(ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
	(ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
	IA64_BUILTIN_INFQ]: New.
	(ia64_init_builtins): Initialize __builtin_infq,
	__builtin_fabsq and __builtin_copysignq if not HPUX.
	(ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
	IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.

	* config/ia64/lib1funcs.asm (__divtf3): Define only if
	SHARED is defined.
	(__fixtfti): Likewise.
	(__fixunstfti): Likewise.
	(__floattitf): Likewise.

	* config/ia64/libgcc-glibc.ver: New.
	* config/ia64/t-fprules-softfp: Likewise.
	* config/ia64/sfp-machine.h: Likewise.

	* config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
	(LIBGCC2_TF_CEXT): Likewise.
	(TF_SIZE): Likewise.
	(TARGET_INIT_LIBFUNCS): Likewise.

	* config/ia64/t-glibc (SHLINB_MAPFILES):
	Add $(srcdir)/config/ia64/libgcc-glibc.ver.

2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (construct_container): Rewrite processing
	BLKmode with X86_64_SSE_CLASS.

2009-02-12  Paolo Bonzini  <bonzini@gnu.org>

	PR target/39152
	* config/i386/i386.md: Replace simplify_replace_rtx with
	replace_rtx in the new peephole2.

2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (Optimize Options): Stop claiming inlining and
	loop unrolling do not happen at -O2.

2009-02-12  Michael Matz  <matz@suse.de>

	* gcc.c (ASM_DEBUG_SPEC): Check for -g0.

2009-02-12  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
	for -g3.

2009-02-12  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.md (allocate_stack): Use _stack form of
	patterns when updating the back chain.  Missed in the 2009-02-10
	change.

2009-02-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/extend.texi (Decimal Floating Types): Update identifier of
	draft TR and list of missing support.

2009-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/39154
	* gimplify.c (omp_notice_variable): If adding GOVD_SEEN
	bit to variable length decl's flags, add it also to its
	pointer replacement variable.

2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/39118
	* config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
	(memory_blockage): New expander.
	(*memory_blockage): New insn pattern.
	* config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
	instead of general blockage at the end of function prologue when
	frame pointer is used to access red zone area.  Do not emit blockage
	when profiling, it is emitted in generic code.
	(ix86_expand_epilogue): Emit memory_blockage at the beginning of
	function epilogue when frame pointer is used to access red zone area.

2009-02-11  Paolo Bonzini  <bonzini@gnu.org>

	PR target/38824
	* config/i386/i386.md: Add two new peephole2 to avoid mov followed
	by arithmetic with memory operands.
	* config/i386/predicates.md (commutative_operator): New.

2009-02-10  Janis Johnson  <janis187@us.ibm.com>

	* doc/extend.texi (Fixed-Point Types): Break long paragraphs into
	bulleted lists.

2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>

	* alias.h (record_alias_subset): Declare.
	* alias.c (record_alias_subset): Make global.

2009-02-10  Nick Clifton  <nickc@redhat.com>

	* tree-parloops.c: Change license to GPLv3.
	* ipa-struct-reorg.c: Change license to GPLv3.
	* ipa-struct-reorg.h: Change license to GPLv3.

2009-02-10  Steve Ellcey  <sje@cup.hp.com>

	PR c/39084
	* c-decl.c (start_struct): Return NULL on error.

2009-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/39124
	* cfgloopmanip.c (remove_path): Call remove_bbs after
	cancel_loop_tree, not before it.

	PR target/39139
	* function.h (struct function): Add has_local_explicit_reg_vars bit.
	* gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
	VAR_DECLs were seen.
	* tree-ssa-live.c (remove_unused_locals): Recompute
	cfun->has_local_explicit_reg_vars.
	* tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
	copies or clearings if cfun->has_local_explicit_reg_vars.

2009-02-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/39118
	* config/i386/i386.c (expand_prologue): Emit blockage at the end
	of function prologue when frame pointer is used to access
	red zone area.

2009-02-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39127
	* gimplify.c (gimple_regimplify_operands): Always look if
	we need to create a temporary.

2009-02-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39132
	* tree-loop-distribution.c (todo): New global var.
	(generate_memset_zero): Trigger TODO_rebuild_alias.
	(tree_loop_distribution): Return todo.

2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39119
	* config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
	(x86_64_reg_class_name): Removed.
	(classify_argument): Return 0 if bytes > 32.  Return 0 if the
	first one isn't X86_64_SSE_CLASS or any other ones aren't
	X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
	X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
	is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
	and 3 X86_64_SSEUP_CLASS.
	(construct_container): Remove X86_64_AVX_CLASS.  Handle 4
	registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.

2009-02-10  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.md (allocate_stack): Always use an update
	form instruction to update the stack back chain word, even if the
	user has disabled the generation of update instructions.
	(movdi_<mode>_update_stack): New.
	(movsi_update_stack): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
	always use an update form instruction to update the stack back
	chain word.

2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38953
	* graphite.c (if_region_set_false_region): After moving a region in
	the false branch of a condition, remove the empty dummy basic block.
	(gloog): Remove wrong fix for PR38953.

2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
	generation due to implicit sign extension.

2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/38981
	* tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
	at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.

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

	PR middle-end/35202
	* convert.c (convert_to_real): Disable (float)fn((double)x)
	to fnf(x) conversion if errno differences may occur and
	-fmath-errno is set.

2009-02-07  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_t): Add ata6289 device.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2009-02-06  Joseph Myers  <joseph@codesourcery.com>

	PR c/35434
	* c-common.c (handle_alias_attribute): Disallow attribute for
	anything not a FUNCTION_DECL or VAR_DECL.

2009-02-06  Janis Johnson  <janis187@us.ibm.com>

	PR c/39035
	* real.c (do_compare): Special-case compare of zero against
	decimal float value.

2009-02-06  Joseph Myers  <joseph@codesourcery.com>

	PR c/36432
	* c-decl.c (grokdeclarator): Don't treat [] declarators in fields
	as indicating flexible array members unless the field itself is
	being declarared as the incomplete array.

2009-02-06  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/38844
	* ipa-inline.c (try_inline): Stop inlining recursion when edge
	is already inlined.

2009-02-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38977
	* tree-cfg.c (need_fake_edge_p): Force a fake edge for
	fork because we may expand it as __gcov_fork.

2009-02-06  Nick Clifton  <nickc@redhat.com>

	* config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.

2009-02-06  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/35659
	* tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
	vn_phi_eq): Shortcut if hashcode does not match.
	(vn_reference_op_compute_hash): Do not call iterative_hash_expr for
	NULL operands.
	* tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
	and avoid iterative_hash_expr.
	(FOR_EACH_VALUE_ID_IN_SET): New.
	(value_id_compare): Remove.
	(sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
	sort expressions by value id.

2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/38991
	* config/sh/predicates.md (general_movsrc_operand): Don't check
	the subreg of system registers here.

2009-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/39106
	* cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
	on the copied decl.

2009-02-05  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39110
	* rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
	addresses, not aligned ones.

2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39100
	* tree-ssa-structalias.c (do_ds_constraint): Actually do what the
	comment says and add edges.

2009-02-05  Joseph Myers  <joseph@codesourcery.com>

	PR c/35435
	* c-common.c (handle_tls_model_attribute): Ignore attribute for
	non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.

2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
	sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
	register_bb_in_sese, new_sese, free_sese): Moved.
	(dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
	outermost_loop_in_scop, build_scop_iteration_domain,
	expand_scalar_variables_ssa_name, get_vdef_before_scop,
	limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
	Use loop_in_sese_p instead of loop_in_scop_p.
	(new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
	(new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
	(scopdet_basic_block_info): Fix bug in scop detection.
	(new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
	eq_loop_to_cloog_loop): Remove.
	(nb_loops_around_loop_in_scop, nb_loop
	ref_nb_loops): Moved here...
	* graphite.h (ref_nb_loops): ... from here.
	(struct scop): Remove bbs_b bitmap and loop2cloog_loop.
	(loop_domain_dim, loop_iteration_vector_dim): Remove.
	(SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.

2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
	    Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/37889
	* rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
	Move offset handling from PLUS to before the switch.  Use new
	arguments when considering SYMBOL_REFs too.
	(rtx_addr_can_trap_p): Pass dummy offset and size.
	(enum may_trap_p_flags): Remove.
	(may_trap_p_1): Pass size from MEM_SIZE.

	PR rtl-optimization/38921
	* loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
	* rtl.h (may_trap_after_code_motion_p): Delete prototype.
	* rtlanal.c (may_trap_after_code_motion_p): Delete.
	(may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.

2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (January, 2009)
	* config/i386/sse.md (*vpclmulqdq): New.

2009-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38977
	PR gcov-profile/38292
	* calls.c (special_function_p): Disregard __builtin_ prefix.

2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
	non-indexable addresses even before reload.

2009-02-03  Joseph Myers  <joseph@codesourcery.com>

	PR c/29129
	* c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
	as having variable size.  Do not give an error for unnamed
	parameters with [*] declarators.  Give a warning for type names
	with [*] declarators and mark them as variable size.
	* c-parser.c (c_parser_sizeof_expression): Do not give an error
	for sizeof applied to [*] type names.

2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C++/36607
	* convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.

2009-02-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.

2009-02-03  Joseph Myers  <joseph@codesourcery.com>

	PR c/35433
	* c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
	for composite type involving a zero-length array type.

2009-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/35318
	* function.c (match_asm_constraints_1): Skip over
	initial optional % in the constraint.

	PR inline-asm/39059
	* c-parser.c (c_parser_postfix_expression): If fixed point is not
	supported, don't accept FIXED_CSTs.
	* c-decl.c (finish_declspecs): Error if fixed point is not supported
	and _Sat is used without _Fract/_Accum.  Set specs->type to
	integer_type_node for cts_fract/cts_accum if fixed point is not
	supported.

2009-02-02  Catherine Moore  <clm@codesourcery.com>

	* sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.

2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
	(ABI_HAS_64BIT_SYMBOLS): Use it.
	(DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.

2009-02-02  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (arm_addsi3): Add r/r/k alternative.

2009-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/39058
	* recog.h (asm_operand_ok): Add constraints argument.
	* recog.c (asm_operand_ok): Likewise.  If it is set, for digits
	recurse on matching constraint.
	(check_asm_operands): Pass constraints as 3rd argument to
	asm_operand_ok.  Don't look up matching constraint here.
	* stmt.c (expand_asm_operands): Pass NULL as 3rd argument
	to asm_operand_ok.

2009-02-02  Ben Elliston  <bje@au.ibm.com>

	* doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
	TARGET_NARROW_VOLATILE_BITFIELD macro names.

2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
	information.  Remove some obsolete information.  Reorganize.

	* config/pa/fptr.c: Revert license to GPL 2.
	* config/pa/milli64.S: Likewise.

2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/38904
	* mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
	LIBRARY name in, instead of hard-coding it.
	* config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
	extra target make frag to tmake_files according to EH model.
	(i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
	frags that define makefile variable EH_MODEL appropriately.
	* config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
	* config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
	to "-sjlj" according to type of EH configured.
	(LIBGCC_SONAME):  Concatenate it to shared library base name.
	* config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
	to "_sjlj" according to type of EH configured.
	(LIBGCC_SONAME):  Concatenate it to shared library base name.
	* config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
	(SHLIB_LINK):  Add missing semicolon to if-else construct.
	(SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
	string value of "pe_dll" command-line option.
	* config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
	(SHLIB_SONAME):  Use it when overriding t-cygming default.
	(SHLIB_IMPLIB):  Override t-cygming default.
	(SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
	string value of "pe_dll" command-line option.

2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/38952
	* config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
	(TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.

2009-01-31  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38937
	* tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
	computing the transitive closure.

2009-01-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39041
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
	Propagate variable indices only if the types match for this stmt.

2009-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/39013
	* c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
	inline but never defined.

2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
	(*insv_h_di_reg_extimm): New insn.
	(*insv_l<mode>_reg_extimm): New insn.

2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (flag_conserve_stack): set
	PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
	fconserve-stack. Reduce call-overhead used by inliner.

2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>

	PR/38157
	* common.opt (flag_conserve_stack): Initialised to zero.

2009-01-30  Kai Tietz  <kai.tietz@onevision.com>

	PR/39002
	* config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
	(ix86_expand_epilogue): Take nsseregs in account to use proper restore
	method.

2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>

	* ira-color.c (allocno_reload_assign): Update comments.
	* regmove.c (regmove_optimize): Likewise.

	* ra.h: Removed.

2009-01-29  Robert Millan  <rmh@aybabtu.com>

	* config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
	* config/i386/kopensolaris-gnu.h: New file.  Undefine
	`MD_UNWIND_SUPPORT'.
	* config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).

2009-01-29  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/39007
	* tree-loop-distribution.c (generate_builtin): Use
	recompute_dominator to compute the immediate dominator of the
	basic block just after the loop.

2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
	(ASM_OUTPUT_DWARF_PCREL): Define.

2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
	* doc/passes.texi: Remove entries about regclass, local-alloc, and
	global.  Modify entries about regmove and IRA.

	* ra-conflict.c: Remove the file.

	* reload.c (push_reload, find_dummy_reload): Remove flag_ira.

	* tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
	(pass_regclass_init): Rename to pass_reginfo_init.

	* cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.

	* toplev.h (flag_ira): Remove.

	* caller-save.c (setup_save_areas): Remove flag_ira.

	* ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.

	* global.c: Remove the file.

	* opts.c (decode_options): Remove flag_ira.

	* hard-reg-set.h (losing_caller_save_reg_set): Remove.

	* regmove.c: Modify file description.
	(find_use_as_address, try_auto_increment): Define them only if
	AUTO_INC_DEC is defined.
	(replacement_quality, replace_in_call_usage, fixup_match_1,
	stable_and_no_regs_but_for_p): Remove.
	(reg_set_in_bb): Make it static.
	(regmove_optimize): Remove flag_ira and code which worked for
	!flag_ira.

	* local-alloc.c: Remove the file.

	* common.opt (fira): Remove.

	* ira.c: Include except.h.
	(eliminable_regset): Move from global.c.
	(mark_elimination): Ditto.  Remove flag_ira.
	(reg_renumber, struct equivalence, reg_equiv, equiv_mem,
	equiv_mem_modified, validate_equiv_mem_from_store,
	validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
	contains_replace_regs, memref_referenced_p, memref_used_between_p,
	no_equiv, recorded_label_ref): Move from local-alloc.c.
	(update_equiv_regs): Ditto.  Make it static.
	(print_insn_chain, print_insn_chains): Move it from global.c.
	(pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
	(build_insn_chain): Ditto.  Make it static.
	(ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
	Rename to init_live_subregs.
	(gate_ira): Remove flag_ira.

	* regclass.c: Rename reginfo.c.  Change file description.
	(FORBIDDEN_INC_DEC_CLASSES): Remove.
	(reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
	(init_reg_sets_1): Remove code for evaluation of
	reg_class_superclasses and losing_caller_save_reg_set.
	(init_regs): Remove init_reg_autoinc.
	(struct costs, costs, init_cost, ok_for_index_p_nonstrict,
	ok_for_base_p_nonstrict): Remove.
	(regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
	(pass_regclass_init): Rename to pass_reginfo_init.  Modify
	corresponding entries.
	(dump_regclass, record_operand_costs, scan_one_insn,
	init_reg_autoinc, regclass, record_reg_classes, copy_cost,
	record_address_regs, auto_inc_dec_reg_p): Remove.
	(gt-regclass.h): Rename to gt-reginfo.h.

	* rtl.h (dump_global_regs, retry_global_alloc,
	build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.

	* Makefile.in (RA_H): Remove.
	(OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
	Rename regclass.o to reginfo.o.
	(regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
	gt-reginfo.h.
	(global.o, local-alloc.o, ra-conflict.o): Remove entries.
	(GTFILES): Rename regclass.c to	reginfo.c.

	* passes.c (init_optimization_passes): Remove pass_local_alloc and
	pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.

	* reload1.c (compute_use_by_pseudos, reload, count_pseudo,
	count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
	Remove flag_ira.
	(finish_spills): Ditto.  Remove code for !flag_ira.

2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR middle-end/35854
	* doc/invoke.texi (rtl debug options): Complete rewrite.
	* auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
	to auto_inc_dec".
	* mode-switching.c (pass_mode_switching): Rename pass from
	"mode-sw" to "mode_sw".
	* except.c (pass_convert_to_eh_ranges): Rename pass from
	"eh-ranges" to "eh_ranges".
	* lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
	to "subreg1".


2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/38857
	* sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
	register.
	(move_exprs_to_boundary): Change return type and pass through
	should_move from move_op.  Relax assert.  Update usage ...
	(schedule_expr_on_boundary): ... here.  Use should_move instead of
	cant_move.
	(move_op_orig_expr_found): Indicate that insn was disconnected from
	stream.
	(code_motion_process_successors): Do not call after_merge_succs
	callback if original expression was not found when traversing any of
	the branches.
	(code_motion_path_driver): Change return type.  Update prototype.
	(move_op): Update comment.  Add a new parameter (should_move).  Update
	prototype.  Set *should_move based on indication provided by
	move_op_orig_expr_found.

2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>

	* doc/invoke.texi (avoid-indexed-addresses): Document new option.
	* config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
	* config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
	* config/rs6000/rs6000.c (rs6000_override_options): Default
	avoid-indexed-addresses on for Power6, off for everything else.
	(avoiding_indexed_address_p): New function.
	(rs6000_legitimize_address): Use it.
	(rs6000_legitimate_address): Likewise.
	* config/rs6000/rs6000.md (movXX_updateX): Likewise

2009-01-28  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/38997
	* tree-loop-distribution.c (generate_memset_zero): Use
	POINTER_PLUS_EXPR for a pointer addition.

2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (bswap<mode>2): New pattern added.

2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md (*tls_load_31): Added type attribute.

2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md: Fix a few comments.

2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
	(*tm<mode>_full): Fixed z10prop attribute.
	(*tst<mode>_extimm): Fixed z10prop attribute.
	(*tst<mode>_cconly_extimm): Fixed z10prop attribute.
	(*tstqiCCT_cconly): Fixed z10prop attribute.
	(*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
	(*movsi_larl): Fixed z10prop attribute.
	(*movsi_zarch): Fixed z10prop attribute.
	(*movsi_eas): Fixed z10prop attribute.
	(*movhi): Fixed z10prop attribute.
	(*movqi): Fixed z10prop attribute.
	(*movstrictqi): Fixed z10prop attribute.
	(*mov<mode>): Fixed z10prop attribute.
	(*movcc): Fixed z10prop attribute.
	(*sethighpartdi_64): Fixed z10prop attribute.
	(*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
	(*negdi2_sign_cc): Fixed z10prop attribute.
	(*negdi2_sign): Fixed z10prop attribute.
	(*absdi2_sign_cc): Fixed z10prop attribute.
	(*absdi2_sign): Fixed z10prop attribute.
	(*negabsdi2_sign_cc): Fixed z10prop attribute.
	(*negabsdi2_sign): Fixed z10prop attribute.
	(*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
	(*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
	(doloop_si64): Fixed z10prop attribute.
	(doloop_si31): Fixed z10prop attribute.
	(doloop_long): Fixed z10prop attribute.
	(indirect_jump): Fixed z10prop attribute.
	(nop): Fixed z10prop attribute.
	(main_base_64): Fixed z10prop attribute.
	(reload_base_64): Fixed z10prop attribute.

2009-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38740
	* reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
	if !optimize.
	* config/mips/mips.c (mips_reorg): Likewise.

2009-01-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38926
	* tree-ssa-pre.c (add_to_value): Assert we add only expressions
	with the correct value id to a value.
	(do_regular_insertion): Use the value number of edoubleprime
	for the value number of the expr.

	Revert
	2008-08-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
	a PHI ask VN if it is already available.
	* tree-ssa-sccvn.h (vn_phi_lookup): Declare.
	* tree-ssa-sccvn.c (vn_phi_lookup): Export.

2009-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38934
	* tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
	set to varying whenever max has TREE_OVERFLOW set, similarly
	for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.

2009-01-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38908
	* tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
	uninitialized aggregate uses in call arguments.

2009-01-28  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/38984
	* tree-ssa-structalias.c (get_constraints_for_1): Do not use
	the nothing_id variable if -fno-delete-null-pointer-checks.

2009-01-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38988
	* config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
	(set_got_offset_rex64): Ditto.

2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38941
	* doc/extend.texi: Improve local variable with asm reg.

2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>

	* c.opt (Wpacked-bitfield-compat): Change init value to -1.
	* c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
	was not supplied then set warn_packed_bitfield_compat to the
	default value of 1.
	* stor-layout.c (place_field): Check warn_packed_bitfield_compat
	against 1.

2009-01-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38503
	* cfgexpand.c (expand_gimple_basic_block): Ignore
	GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
	* tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
	variables that cannot have TBAA applied.
	(compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
	statements.

2009-01-27  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/38969
	* calls.c (initialize_argument_information): Do not wrap complex
	arguments in SAVE_EXPR.

2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>

	* config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
	(INSTALL_LIBGCC): Revert typo commit.

2009-01-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38745
	* tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
	from special handling.

2009-01-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38745
	* tree-ssa.c (execute_update_addresses_taken): Do not include
	variables that cannot possibly be a register in not_reg_needs.
	Do not clear TREE_ADDRESSABLE on vars that may not become
	registers.
	* tree-ssa.c (update_alias_info_1): Include those in the set
	of addressable vars.

2009-01-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38851
	* Makefile.in (tree-ssa-dse.o): Add langhooks.h.
	* tree-ssa-dse.c: Include langhooks.h
	(execute_simple_dse): Remove stores with zero size.

2009-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/38957
	* c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
	as PLUS_EXPR.

2009-01-24  Julian Brown  <julian@codesourcery.com>

	* config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
	config/arm/linux-atomic.c.
	* config/arm/linux-atomic.c: New.

2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
	* config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
	* config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.

2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/38938
	* c-opts.c (c_common_handle_option): Update warn_pointer_sign
	properly.

2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38953
	* graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
	(scop_adjust_phis_for_liveouts): Initialize false_i to zero.
	(gloog): Split the exit of the scop when the scop exit is a loop exit.
	(graphite_transform_loops): Only call cleanup_tree_cfg if gloog
	changed the CFG.

2009-01-24  Paul Brook  <paul@codesourcery.com>

	* config/arm/neon.md (neon_type): Move to arm.md.
	(neon_mov<VSTRUCT>): Add neon_type attribute.
	* config/arm/arm.md (neon_type): Move to here.
	(conds): Add "unconditioal" and use as default for NEON insns.

2009-01-24  Ben Elliston  <bje@au.ibm.com>

	* bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
	void *' warning from -Wc++-compat.
	* Makefile.in (dominance.o-warn): Remove.

2009-01-23  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/38932
	* fold-const.c (fold_unary_ignore_overflow): New.
	* tree.h (fold_unary_ignore_overflow): Declare.
	* tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
	* tree-ssa-sccvn.c (visit_reference_op_load,
	simplify_unary_expression): Likewise.

2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>

	* c-decl.c (finish_struct): Move code to set DECL_PACKED after
	DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
	regardless of their type.
	* c-common.c (handle_packed_attribute): Don't ignore packed on
	bitfields.
	* c.opt (Wpacked-bitfield-compat): New warning option.
	* stor-layout.c (place_field): Warn if offset of a field changed.
	* doc/extend.texi (packed): Mention the ABI change.
	* doc/invoke.texi (-Wpacked-bitfield-compat): Document.
	(Warning Options): Add it to the list.

2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>

	* c-opts.c (c_common_post_options): Fix a typo in comments.

2009-01-22  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/38615
	* gimplify.c (gimplify_init_constructor): Fix promotion of const
	variables to static.
	* doc/invoke.texi (-fmerge-all-constants): Update description.

2009-01-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38931
	* config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
	(*movdi_1_rex64): Use type "mmx" for alternative 5.

2009-01-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
	a word boundary.
	(LOCAL_ALIGNMENT): Similarly.

2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
	* config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
	* config/arm/arm-tune.md: Regenerate.
	* doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
	-march=iwmmxt2.

2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>

	* config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
	version number to five.

2009-01-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/38930
	* c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
	* c-common.c (set_underlying_type): Likewise.
	(is_typedef_decl ): Likewise
	* tree.h: Likewise
	(set_underlying_type): Likewise.
	(is_typedef_type): Likewise.

2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/38587
	* ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
	crossing setjmps.

2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR bootstrap/37660
	* config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
	(LIBGCC_SPEC):  Don't define.
	(REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.

2009-01-21  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/38879
	* alias.c (base_alias_check): Unaligned access via AND address can
	alias all surrounding object types except those with sizes equal
	or wider than the size of unaligned access.

2009-01-21  Dodji Seketeli  <dodji@redhat.com>

	PR c++/26693
	* c-decl.c (clone_underlying_type): Move this ...
	* c-common.c (set_underlying_type): ... here.
	Also, make sure the function properly sets TYPE_STUB_DECL() on
	the newly created typedef variant type.
	(is_typedef_decl ): New entry point.
	* tree.h: Added a new member member_types_needing_access_check to
	struct tree_decl_non_common.
	(set_underlying_type): New entry point.
	(is_typedef_type): Likewise.

2009-01-21  Bingfeng Mei  <bmei@broadcom.com>

	* alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
	Check whether two instructions have memory references that
	belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
	are helper functions for traversing.
	* alias.h (insn_alias_sets_confilict_p): New prototypes.
	* ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
	not to draw dependency edge for instructions with non-conflicting
	alias sets.

2009-01-20  Joseph Myers  <joseph@codesourcery.com>

	PR other/38758
	* longlong.h: Update copyright years.  Use soft-fp license notice.
	Sync __clz_tab declaration with glibc.

2009-01-20  Steve Ellcey  <sje@cup.hp.com>

	PR target/30687
	* doc/extend.texi (syscall_linkage): New.
	(version_id): Modify.

2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38747
	PR tree-optimization/38748
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
	conversion if the base address is an indirect reference and the
	aliasing sets could cause issues.

2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (fgraphite, fgraphite-identity): Add comment for
	explaining why these options are not documented.

2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (stmt_simple_for_scop_p): Also handle cases when
	gimple_call_lhs is NULL.

2009-01-20  Paolo Bonzini  <bonzini@gnu.org>

	PR target/38868
	* emit-rtl.c (adjust_address_1): Make sure memref is never
	overwritten.

2009-01-20  Ben Elliston  <bje@au.ibm.com>

	* libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
	const qualifier from arg parameter. Remove unnecessary cast to char *.
	* gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
	const qualifier from arg 2.

2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>

	* config/darwin.h: Add static-libgfortran to LINK_SPEC.

2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR c/38869
	* rtl.h (reinit_regs): New prototype.
	* regclass.c: Include ira.h.
	(reinit_regs): New.
	* Makefile.in (regclass.o): Add ira.h.
	* config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.

2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38736
	* c-common.c (handle_aligned_attribute): Use
	ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
	default alignment value.

	* c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.

	* defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
	* config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.

	* doc/extend.texi: Update __attribute__ ((aligned)).  Document
	__BIGGEST_ALIGNMENT__.

	* doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.

2009-01-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38819
	* tree-flow.h (operation_could_trap_helper_p): Declare.
	* tree-eh.c (operation_could_trap_helper_p): Export.
	* tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
	* tree-ssa-sccvn.c (vn_nary_may_trap): New function.
	* tree-ssa-pre.c (insert_into_preds_of_block): Check if we
	are about to insert a possibly trapping instruction and fail
	in this case.

2009-01-18  Andreas Schwab  <schwab@suse.de>

	* doc/install.texi (Configuration): Remove obsolete paragraph
	about use of --with-gnu-ld with --with-gnu-as.

2009-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
	doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
	Follow spelling conventions.

2009-01-18  Ben Elliston  <bje@au.ibm.com>

	* bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
	C++ warning about implicit conversion from void * to struct
	bitmap_head_def *.
	(bitmap_obstack_free): Likewise for bitmap_element *.
	* Makefile.in (bitmap.o-warn): Remove.

2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>

	* Makefile.in (BACKENDLIBS):  Reorder to match dependencies.

2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (graphite_trans_scop_block): Do not block single
	nested loops.

2009-01-16  Alexandre Oliva  <aoliva@redhat.com>

	* ebitmap.h (ebitmap_iter_init): Initialize all fields.
	* ipa-struct-reorg.c (gen_struct_type): Replace known-true
	test with assertion.

2009-01-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38835
	PR middle-end/36227
	* fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
	and INT + PTR -> (INT)(PTR p+ INT) folding.
	* tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.

2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>

	PR target/38554
	* expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
	the subreg from a lowpart subreg if it is also casting the value.

2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (compare_prefix_loops): New.
	(build_scop_canonical_schedules): Rewritten.
	(graphite_transform_loops): Move build_scop_canonical_schedules
	after build_scop_iteration_domain.

2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (add_conditions_to_domain): Add the loops to
	the dimension of the iteration domain.  Do copy the domain
	only when it exists.
	(build_scop_conditions_1): Do not call add_conditions_to_domain.
	(add_conditions_to_constraints): New.
	(can_generate_code_stmt, can_generate_code): Removed.
	(gloog): Do not call can_generate_code.
	(graphite_transform_loops): Call add_conditions_to_constraints
	after building the iteration domain.

2009-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38789
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
	__builtin_constant_p.

2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* dce.c (delete_unmarked_insns): Reversed the order that insns are
	examined before deleting them.

2009-01-16  Richard Earnshaw  <rearnsha@arm.com>

	* function.c (aggregate_value_p): Correctly extract the function
	type from CALL_EXPR_FN lookup.

2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_override_options): Revert
	CFI asm flag disable commited previously.

2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (scan_tree_for_params): On substractions negate
	all the coefficients of the term.
	(clast_to_gcc_expression_red): New.  Handle reduction expressions
	of more than two operands.
	(clast_to_gcc_expression): Call clast_to_gcc_expression_red.
	(get_vdef_before_scop): Handle also the case of default definitions.

2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* caller-save.c (add_used_regs_1, add_used_regs): New functions.
	(insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
	Also use them when walking CALL_INSN_FUNCTION_USAGE.

2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
	    Joey Ye  <joey.ye@intel.com>

	PR middle-end/37843
	* cfgexpand.c (expand_stack_alignment): Don't update stack
	boundary nor check incoming stack boundary here.
	(gimple_expand_cfg): Update stack boundary and check incoming
	stack boundary here.

2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.

2009-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38245
	* calls.c (expand_call): Add stack arguments to
	CALL_INSN_FUNCTION_USAGE even for pure calls (when
	ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
	in regs and partially in memory or BLKmode arguments.
	(emit_library_call_value_1): Add stack arguments to
	CALL_INSN_FUNCTION_USAGE even for pure calls (when
	ACCUMULATE_OUTGOING_ARGS).
	* dce.c: Include tm_p.h.
	(find_call_stack_args): New function.
	(deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
	argument.
	(mark_insn): Call find_call_stack_args for CALL_Ps.
	(prescan_insns_for_dce): Walk insns backwards in bb rather than
	forwards.  Allocate and free arg_stores bitmap if needed, pass it
	down to deletable_insn_p, don't mark stores set in arg_stores
	bitmap, clear the bitmap at the beginning of each bb.
	* Makefile.in (dce.o): Depend on $(TM_P_H).

2009-01-14  Michael Meissner  <gnu@the-meissners.org>

	PR target/22599
	* config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
	to make sure the insn is a conditional test (bug 22599).  Reformat a
	few long lines.

2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38431
	* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
	(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
	(gloog): Do not call cleanup_tree_cfg.
	(graphite_transform_loops): Call cleanup_tree_cfg after all
	scops have been code generated.

2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
	* doc/gty.texi (Invoking the garbage collector): Added new node
	and section documenting ggc_collect.

2009-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38826
	PR middle-end/38477
	* tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
	initialization notes only if we actually emitted a warning.
	(intra_create_variable_infos): Add constraints for a result decl
	that is passed by hidden reference.
	(build_pred_graph): Mark all related variables non-direct on
	address-taking.

2009-01-14  Nick Clifton  <nickc@redhat.com>

	* ira-conflicts.c: Include addresses.h for the definition of
	base_reg_class.
	(ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
	* Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.

2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/38811
	* Makefile.in (ira-lives.o): Add except.h.

	* ira-lives.c: Include except.h.
	(process_bb_node_lives): Process can_throw_internal.

2009-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38774
	* combine.c (simplify_set): When undoing cc_use change, don't do
	PUT_CODE on the newly created comparison, but instead put back the
	old comparison.

2009-01-13  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
	values.  Remove duplicate arm8 entry.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38786
	* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
	the SSA_NAME case of expand_scalar_variables_expr.
	Set the type of an expression to the type of its assign	statement.
	(expand_scalar_variables_expr): Also gather the scalar computation
	used to index the memory access.  Do not pass loop_p.
	Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
	(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
	the gimple_stmt_iterator where it inserts new code.
	Do not pass loop_p.
	(copy_bb_and_scalar_dependences): Do not pass loop_p.
	(translate_clast): Update call to copy_bb_and_scalar_dependences.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.h (debug_value): Removed.
	* graphite.c (debug_value): Removed.

2009-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.c (output_move_double): Don't synthesize thumb-2
	ldrd/strd with two 32-bit instructions.

2009-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.c (struct processors): Pass for speed down into
	cost helper functions.
	(const_ok_for_op): Handle COMPARE and inequality nodes.
	(arm_rtx_costs_1): Rewrite.
	(arm_size_rtx_costs): Update prototype.
	(arm_rtx_costs): Pass speed down to helper functions.
	(arm_slowmul_rtx_costs): Rework cost calculations.
	(arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
	(arm_9e_rtx_costs): Likewise.

2009-01-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
	relocations of local symbols wider than UNITS_PER_WORD are not valid.
	(alpha_legitimize_address): Do not split local symbols wider than
	UNITS_PER_WORD into HIGH/LO_SUM parts.

2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>

	PR bootstrap/38580
	* gcc.c (process_command): Replace call to execvp with calls
	to pex_one and exit.

2009-01-03  Anatoly Sokolov  <aesok@post.ru>

	PR target/29141
	* config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
	* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
	variant for devices with 3-byte PC.
	(__tablejump_elpm__): New.

2009-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/32041
	* c-parser.c (c_parser_postfix_expression): Allow `->' in
	offsetof member-designator, handle it as `[0].'.

2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
	function when not using named sections on targets with named sections
	if branch distance is less than 262132.

2009-01-12  Richard Earnshaw  <rearnsha@arm.com>

	* combine.c (combine_instructions):  Recompute
	optimize_this_for_speed_p  for each BB in the main combine loop.

2009-01-12  Tomas Bily  <tbily@suse.cz>

	PR middlend/38385
	* tree-loop-distribution.c (prop_phis): New function.
	(generate_builtin): Call prop_phis.

2009-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38807
	* tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
	gimple_visited_p unless stmt is GIMPLE_ASSIGN.

2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>

	* expmed.c (store_bit_field_1): Properly truncate the paradoxical
	subreg of op0 to the original op0.

2009-01-11  Laurent GUERBY  <laurent@guerby.net>

	* doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.

2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>

	PR debug/7055
	* mips-tfile.c (parse_def): Fix parsing of def strings
	starting with digits.

2009-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/38695
	* config/arm/arm.c (arm_is_long_call_p): Don't call
	arm_function_in_section_p if decl isn't a FUNCTION_DECL.

2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>

	* regrename.c (regrename_optimize): Fix dumping.
	(find_oldest_value_reg): Preserve REG_POINTER.
	(copy_hardreg_forward_1): Likewise.

2009-01-09  Diego Novillo  <dnovillo@google.com>

	* gimple.h (struct gimple_statement_base) <uid>: Document
	the restrictions on its use.
	(gimple_uid): Tidy.
	(gimple_set_uid): Tidy.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
	zero guard even if align_bytes != 0 and count is smaller than
	size_needed.

2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/38495
	* ira-emit.c (print_move_list, ira_debug_move_list): New functions.
	(add_range_and_copies_from_move_list): Print all added ranges.
	Add ranges to memory optimized destination.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/38686
	PR target/38708
	* config/i386/i386.c (override_options): Reject
	-mstringop-strategy=rep_8byte with -m32.
	(ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
	to 1.  Do count comparison against epilogue_size_needed at compile
	time even when count_exp was constant forced into register.  For
	size_needed don't jump to epilogue, instead just avoid aligning
	and invoke the body algorithm.  If need_zero_guard, add zero guard
	even if count is non-zero, but smaller than size_needed + number of
	bytes that could be stored for alignment.
	(ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
	to 1.  If need_zero_guard, add zero guard even if count is non-zero,
	but smaller than size_needed + number of bytes that could be stored
	for alignment.  Compare size_needed with epilogue_size_needed instead
	of desired_align - align, don't adjust size_needed, pass
	epilogue_size_needed to the epilogue expanders.

	PR c/35742
	* c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.

2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (last_address): Change to unsigned.
	(update_total_code_bytes): Change argument to unsigned.  Don't
	check if insn addresses are set.
	(pa_output_function_epilogue): Set last_address to UINT_MAX if insn
	addresses are not set.
	(pa_asm_output_mi_thunk): Handle wrap when updating last_address.

2009-01-09  Nick Clifton  <nickc@redhat.com>

	* config/sh/symbian.c: Replace uses of DECL_INLINE with
	DECL_DECLARED_INLINE_P.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38347
	* dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
	GET_MODE (op0) in operand_subword_force calls.

	PR middle-end/38771
	* fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
	fold_convert arg0 operands to TREE_TYPE (op0) first.

2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (ira-max-conflict-table-size): Decrease default value
	to 1000.

2009-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37031
	* lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
	on parameter_set.
	(build_access_matrix): Reserve correct size for AM_MATRIX vector,
	allocate it using gc instead of heap, use VEC_quick_push instead of
	VEC_safe_push.
	* graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
	instead of heap, use VEC_quick_push instead of VEC_safe_push.
	* tree-data-ref.h (struct access_matrix): Change matrix to gc
	allocated vector from heap allocated.
	* lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
	* tree-loop-linear.c (linear_transform_loops): Allocate nest
	vector only after perfect_loop_nest_depth call.

2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38559
	* graphite.c (debug_value, copy_constraint,
	swap_constraint_variables, scale_constraint_variable, ): New.
	(get_lower_bound, get_upper_bound): Removed.
	(graphite_trans_bb_strip_mine): Clean up this code that works
	only for constant number of iterations.  Fully copy upper and
	lower bound constraints, not only the constant part of them.
	* graphite.h (debug_value): Declared.

2009-01-08  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37194
	* tree-vect-transform.c (vect_estimate_min_profitable_iters):
	Don't add the cost of cost model guard in prologue to scalar
	outside cost in case of known number of iterations.

2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
	non-word-aligned REG+CONST addressing.

2009-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38706
	* config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
	free_after_compilation when outputting a thunk.
	(alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
	Do not call free_after_compilation here.

2009-01-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
	(ix86_valid_target_attribute_inner_p): Ditto.

2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38492
	PR tree-optimization/38498
	* tree-check.c (operator_is_linear, scev_is_linear_expression): New.
	* tree-chrec.h (scev_is_linear_expression): Declared.
	* graphite.c (graphite_cannot_represent_loop_niter): New.
	(scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
	(graphite_loop_normal_form): Use gcc_assert.
	(scan_tree_for_params): Use CASE_CONVERT.
	(phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
	(build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
	Use gcc_assert.  Discard scops that contain unhandled cases.
	(build_scop_conditions): Return a boolean status for unhandled cases.
	(strip_mine_profitable_p): Print the loop number, not its depth.
	(is_interchange_valid): Pass the depth of the loop nest, don't
	recompute it wrongly.
	(graphite_trans_bb_block): Same.
	(graphite_trans_bb_block): Print tentative of loop blocking.
	(graphite_trans_scop_block): Do not print that the loop has been
	blocked.
	(graphite_transform_loops): Do not handle scops that contain condition
	scalar phi nodes.

2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (December, 2008)
	* config/i386/avxintrin.h (_mm256_stream_si256): New.
	(_mm256_stream_pd): Likewise.
	(_mm256_stream_ps): Likewise.

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
	IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
	(ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
	(bdesc_special_args): Add __builtin_ia32_movntdq256,
	__builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
	(ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
	(ix86_expand_special_args_builtin): Likewise.

	* config/i386/sse.md (AVXMODEDI): New.
	(avx_movnt<mode>): Likewise.
	(avx_movnt<mode>): Likewise.
	(<sse>_movnt<mode>): Remove AVX support.
	(sse2_movntv2di): Likewise.

2009-01-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38751
	* fold-const.c (extract_muldiv): Remove obsolete comment.
	(fold_plusminus_mult_expr): Undo MINUS_EXPR
	to PLUS_EXPR canonicalization for the canonicalization.

2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
	hosted cross-compilers generating less efficient code.

2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* function.h (rtl_data): Add a dbr_scheduled_p field.
	* reorg.c (dbr_schedule): Set it.
	(gate_handle_delay_slots): Check it.
	* config/mips/mips.c (mips_base_delayed_branch): Delete.
	(mips_reorg): Check flag_delayed_branch instead of
	mips_base_delayed_branch.
	(mips_override_options): Don't set mips_base_delayed_branch
	or flag_delayed_branch.

2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/38426.
	* ira.c (ira): Set current_function_is_leaf earlier.

2009-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38722
	* combine.c (try_combine): Don't modify PATTERN (i3) and notes
	too early, only set a flag and modify after last possible
	undo_all point.

2009-01-06  Janis Johnson  <janis187@us.ibm.com>

	PR c/34252
	* ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
	* real.c (decimal_single_format): Correct values of emin and emax.
	(decimal_double_format): Ditto.
	(decimal_quad_format): Ditto.
	* c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
	computation of DECnn_MIN and DECnn_MAX for corrected values of
	emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
	__DECnn_MIN__, and adjust its computation for the corrected value
	of emin.

2009-01-06  Jan Hubicka  <jh@suse.cz>

	PR target/38744
	* config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.

2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Slightly adjust the end note.
	Add Robert Clark to the list of testers.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
	* config/i386/i386.c (ix86_expand_call): Add clobbers.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
	for w64 ABI.
	* config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
	(ix86_nsaved_regs): Count only general purpose regs.
	(ix86_nsaved_sseregs): New.
	(ix86_compute_frame_layout): Update nsseregs; set preferred alignment
	to 16 for w64; compute padding and size of sse reg save area.
	(ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
	general purpose regs.
	(ix86_emit_save_sse_regs_using_mov): New.
	(ix86_expand_prologue): Save SSE regs if needed.
	(ix86_emit_restore_regs_using_mov): Use only general purpose regs.
	(ix86_emit_restore_sse_regs_using_mov): New.
	(ix86_expand_epilogue): Save SSE regs if needed.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
	* config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
	functions when accumulate outgoing args is off.

2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/38742
	* ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
	before using pseudos_have_intersected_live_ranges_p.

	* ira-int.h (ira_assert): Always define.

2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (December, 2008)
	* config/i386/avxintrin.h (_mm_permute2_pd): Removed.
	(_mm256_permute2_pd): Likewise.
	(_mm_permute2_ps): Likewise.
	(_mm256_permute2_ps): Likewise.
	* config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
	* config/i386/sse.md (avx_vpermil2<mode>3): Likewise.

	* config/i386/i386.c (ix86_builtins): Remove
	IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
	IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
	(ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
	V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
	and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
	(bdesc_args): Remove __builtin_ia32_vpermil2pd,
	__builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
	__builtin_ia32_vpermil2ps256.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Likewise.

2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_call): Relocate non-jump insns in the delay slot of
	long absolute calls when generating PA 2.0 code.

2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/38583
	* params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.

	* params.def (ira-max-conflict-table-size): New.

	* doc/invoke.texi (ira-max-conflict-table-size): Decribe.

	* ira.h (ira_conflicts_p): New external definition.

	* ira-conflicts.c (build_conflict_bit_table): Do not build too big
	table.  Report this.  Return result of building.
	(ira_build_conflicts): Use ira_conflicts_p.  Check result of
	building conflict table.

	* ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
	(ira_color): Use ira_conflicts_p.

	* global.c: Include ira.h.
	(pseudo_for_reload_consideration_p, build_insn_chain): Use
	ira_conflicts_p.

	* Makefile.in (global.o): Add ira.h.

	* ira-build.c (mark_all_loops_for_removal,
	propagate_some_info_from_allocno): New.
	(remove_unnecessary_allocnos): Call
	propagate_some_info_from_allocno.
	(remove_low_level_allocnos): New.
	(remove_unnecessary_regions): Add parameter.  Call
	mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
	parameter to remove_unnecessary_regions.
	(ira_build): Remove all regions but root if the conflict table was
	not built.  Update conflict hard regs for allocnos crossing calls.

	* ira.c (ira_conflicts_p): New global.
	(ira): Define and use ira_conflicts_p.

	* reload1.c (compute_use_by_pseudos, reload, count_pseudo,
	count_spilled_pseudo, find_reg, alter_reg, finish_spills,
	emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.

2009-01-06  Ben Elliston  <bje@au.ibm.com>

	* gengtype-lex.l (YY_NO_INPUT): Define.

2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/34911
	* c-common.c (handle_vector_size_attribute): Also reject
	BOOLEAN_TYPE types.

2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38492
	* graphite.c (rename_map_elt, debug_rename_elt,
	debug_rename_map_1, debug_rename_map, new_rename_map_elt,
	rename_map_elt_info, eq_rename_map_elts,
	get_new_name_from_old_name, bb_in_sese_p): Moved around.
	(sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
	(sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
	(sese_build_livein_liveouts): New.
	(new_sese, free_sese): New.
	(new_scop): Call new_sese.
	(free_scop): Call free_sese.
	(rename_variables_from_edge, rename_phis_end_scop): Removed.
	(register_old_new_names): Renamed register_old_and_new_names.
	(register_scop_liveout_renames, add_loop_exit_phis,
	insert_loop_close_phis, struct igp,
	default_liveout_before_guard, add_guard_exit_phis,
	insert_guard_phis, copy_renames): New.
	(translate_clast): Call insert_loop_close_phis and insert_guard_phis.
	(sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
	(rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
	(scop_adjust_phis_for_liveouts): New.
	(gloog): Call scop_adjust_phis_for_liveouts.

	* graphite.h (struct sese): Documented.  Added fields liveout,
	num_ver and livein.
	(SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
	(new_sese, free_sese, sese_build_livein_liveouts): Declared.
	(struct scop): Added field liveout_renames.
	(SCOP_LIVEOUT_RENAMES): New.

2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/38510
	* graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
	(translate_clast): Call recompute_all_dominators before
	graphite_verify.
	(gloog): Call recompute_all_dominators before graphite_verify.

2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38500
	* graphite.c (create_sese_edges): Call fix_loop_structure after
	splitting blocks.

2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* config.gcc: Add m32r*-*-rtems*.
	* config/m32r/rtems.h: New file.

2009-01-05  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
	(.po.pox): Likewise.
	(po/gcc.pot): Likewise.

2009-01-04  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
	(STARTING_FRAME_OFFSET): Always set to zero.

2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
	* tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
	fixed-point types, and vectors of the same.

2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/sync.md (*mb_barrier): Rename to...
	(*memory_barrier): ...this.

2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Function Attributes): Move @cindex after @item
	for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
	and put in alphabetical order. Fix 'target' name and put in order.
	* doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
	typos.

2009-01-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
	* config/sparc/sync.md (memory_barrier): Expand as unspec instead of
	unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
	scratch register.  Remove operand 1.
	(*stbar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove (const_int 8).
	(*membar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove input operand 2.

	* config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*memory_barrier): New insn pattern.

	* config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
	insn operands.
	(*memory_barrier): Use (match_dup 0) as input operand.

	* config/mips/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*mb_internal): New insn pattern.

	* config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38586
	* function.c (struct temp_slot): Move to the section of the file
	that deals with temp slots.  Remove field 'address'.
	(temp_slot_address_table): New hash table of address -> temp slot.
	(struct temp_slot_address_entry): New struct, items for the table.
	(temp_slot_address_compute_hash, temp_slot_address_hash,
	temp_slot_address_eq, insert_temp_slot_address): Support functions
	for the new table.
	(find_temp_slot_from_address): Rewrite to use the new hash table.
	(remove_unused_temp_slot_addresses): Remove addresses of temp
	slots that have been made available.
	(remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
	worker function for remove_unused_temp_slot_addresses.
	(assign_stack_temp_for_type): Don't clear the temp slot address list.
	Add the temp slot address to the address -> temp slot map.
	(update_temp_slot_address): Update via insert_temp_slot_address.
	(free_temp_slots): Call remove_unused_temp_slot_addresses.
	(pop_temp_slots): Likewise.
	(init_temp_slots): Allocate the address -> temp slot map, or empty
	the map if it is already allocated.
	(prepare_function_start): Initialize temp slot processing.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38584
	* cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
	Calculate the size of all stack vars assuming no packing of stack
	vars will happen, replacing a quadratic algorithm with a linear one.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/38707
	* expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
	can't be used.

2009-01-03  Diego Novillo  <dnovillo@google.com>

	* doc/contrib.texi: Update contributions.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/38705
	* builtins.c (fold_builtin_memory_op): Give up if either operand
	is volatile.  Set srctype or desttype to non-qualified version
	of the other type.

	PR c/38700
	* builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
	and FUNCTION_DECLs.

2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/35805
	* df-problems.c (df_lr_finalize): Add recursive call to resolve lr
	problem if fast dce is able to remove any instructions.
	* dce.c (dce_process_block): Fix dump message.

2009-01-02  Mark Mitchell  <mark@codesourcery.com>

	PR 33649
	* tree-ssa-pre.c (compute_antic): Correct loop bounds.

2009-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38690
	* tree-flow.h (op_code_prio, op_prio): New prototypes.
	* tree-pretty-print.c (op_code_prio): New function.
	(op_prio): No longer static.  Use op_code_prio.
	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
	Use op_prio and op_code_prio to determine if () should be
	printed around operand(s) or not.

	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
	dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
	dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
	dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
	pp_character instead of pp_string for single letter printing.

2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/extend.texi: Fix '#pragma GCC option' typo.

2009-01-02  Richard Guenther  <rguenther@suse.de>

	* doc/install.texi (--enable-checking): Mention different
	default for stage1.
	(--enable-stage1-checking): Document.

2009-01-01  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/30142
	* tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
	case to be an error.

2009-01-02  Ben Elliston  <bje@au.ibm.com>

	* config/fp-bit.h (pack_d): Constify argument.
	* config/fp-bit.c (makenan): Constify return type. Remove casts.
	(isnan): Constify argument.
	(isinf): Likewise.
	(iszero): Likewise.
	(pack_d): Likewise.
	(_fpadd_parts): Constify return type.
	(_fpmul_parts): Likewise.
	(_fpdiv_parts): Likewise.

2009-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/36489
	* c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
	warn about overwriting initializer with side-effects or
	-Woverride-init if !IMPLICIT.
	(output_init_element): Likewise.  Pass IMPLICIT down to
	add_pending_init.
	(process_init_element): Add IMPLICIT argument.  Pass it down
	to output_init_element.
	(push_init_element, pop_init_level, set_designator): Adjust
	process_init_element callers.
	(set_nonincremental_init, set_nonincremental_init_from_string):
	Adjust add_pending_init callers.
	(output_pending_init_elements): Adjust output_init_element callers.
	* c-tree.h (process_init_element): Adjust prototype.
	* c-parser.c (c_parser_initelt, c_parser_initval): Adjust
	process_init_element callers.


Copyright (C) 2009 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.
