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.
