From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001
From: upstream source tree <ports@midipix.org>
Date: Sun, 15 Mar 2015 20:14:05 -0400
Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified
 gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream
 tarball.

downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.

if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
---
 gcc/ChangeLog-2009 | 34876 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 34876 insertions(+)
 create mode 100644 gcc/ChangeLog-2009

(limited to 'gcc/ChangeLog-2009')

diff --git a/gcc/ChangeLog-2009 b/gcc/ChangeLog-2009
new file mode 100644
index 000000000..af1a94f7b
--- /dev/null
+++ b/gcc/ChangeLog-2009
@@ -0,0 +1,34876 @@
+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  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_parital_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.
-- 
cgit v1.2.3